From 6d77cec4329b06368b6ad9e7757ba5499608fcac Mon Sep 17 00:00:00 2001 From: haotian-wang Date: Fri, 8 Jun 2018 14:16:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=87=B3=202.3.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _locales/en/messages.json | 272 +-- _locales/zh_CN/messages.json | 272 +-- _metadata/computed_hashes.json | 1 + _metadata/verified_contents.json | 1 + bg.js | 3067 +------------------------ first.html | 347 ++- icons/icon-128.png | Bin 12540 -> 10072 bytes icons/icon.png | Bin 846 -> 800 bytes {theme/img => img}/abs-icon-big.png | Bin {theme/img => img}/chrome.png | Bin {theme/img => img}/gmail.png | Bin {theme/img => img}/google.png | Bin {theme/img => img}/googleplus.png | Bin {theme/img => img}/settings.png | Bin manifest.json | 26 +- options.html | 2 +- options.js | 1 + popup.html | 182 +- popup.js | 1 + straightGoogle.js | 110 +- theme/firstRun.css | 334 --- theme/fonts/font-awesome.css | 1801 --------------- theme/fonts/fontawesome-webfont.woff | Bin 71508 -> 0 bytes theme/fonts/fontawesome-webfont.woff2 | Bin 56780 -> 0 bytes theme/options.js | 1639 ------------- theme/popup.css | 101 - theme/popup.js | 51 - theme/warming.html | 63 - theme/welcome.js | 5 - warming.html | 115 + 30 files changed, 789 insertions(+), 7602 deletions(-) create mode 100644 _metadata/computed_hashes.json create mode 100644 _metadata/verified_contents.json rename {theme/img => img}/abs-icon-big.png (100%) rename {theme/img => img}/chrome.png (100%) rename {theme/img => img}/gmail.png (100%) rename {theme/img => img}/google.png (100%) rename {theme/img => img}/googleplus.png (100%) rename {theme/img => img}/settings.png (100%) create mode 100644 options.js create mode 100644 popup.js delete mode 100644 theme/firstRun.css delete mode 100644 theme/fonts/font-awesome.css delete mode 100644 theme/fonts/fontawesome-webfont.woff delete mode 100644 theme/fonts/fontawesome-webfont.woff2 delete mode 100644 theme/options.js delete mode 100644 theme/popup.css delete mode 100644 theme/popup.js delete mode 100644 theme/warming.html delete mode 100644 theme/welcome.js create mode 100644 warming.html diff --git a/_locales/en/messages.json b/_locales/en/messages.json index c530e0a..7791221 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -12,304 +12,304 @@ "message": "left" }, "manifest_appDescription": { - "message": "\u8F7B\u677E\u5FEB\u6377\u5730\u7BA1\u7406\u548C\u5207\u6362\u591A\u4E2A\u4EE3\u7406\u8BBE\u7F6E\u3002\u57FA\u4E8E \"Proxy Switchy!\" \u548C \"SwitchyPlus\" \u5F00\u53D1\u3002" + "message": "轻松快捷地管理和切换多个代理设置。基于 \"Proxy Switchy!\" 和 \"SwitchyPlus\" 开发。" }, "manifest_appName": { "message": "谷歌访问助手" }, "manifest_iconTitle": { - "message": "[\u8F7D\u5165\u4E2D\u2026\u2026]" + "message": "[载入中……]" }, "message_SwitchRulesDisabled": { - "message": "\u60A8\u5FC5\u987B\u5148\u542F\u52A8\u81EA\u52A8\u5207\u6362\u89C4\u5219!" + "message": "您必须先启动自动切换规则!" }, "message_apply2All": { - "message": "\u60A8\u786E\u5B9A\u5C06\u8FD9\u4E2A\u60C5\u666F\u6A21\u5F0F\u5E94\u7528\u5230\u6240\u6709\u89C4\u5219\u5417\uFF1F\n\n\u9009\u4E2D\u7684\u60C5\u666F\u6A21\u5F0F: ($1)" + "message": "您确定将这个情景模式应用到所有规则吗?\n\n选中的情景模式: ($1)" }, "message_cannotReadOptionsBackup": { - "message": "\u8BFB\u53D6\u5907\u4EFD\u6587\u4EF6\u5931\u8D25!" + "message": "读取备份文件失败!" }, "message_cannotRestoreOptionsBackup": { - "message": "\u65E0\u6CD5\u4ECE\u5907\u4EFD\u6587\u4EF6\u6062\u590D\r\n!\n\n\u5907\u4EFD\u6587\u4EF6\u53EF\u80FD\u5DF2\u635F\u574F\u3002" + "message": "无法从备份文件恢复\r\n!\n\n备份文件可能已损坏。" }, "message_cannotSaveFile": { - "message": "\u4FDD\u5B58\u5907\u4EFD\u6587\u4EF6\u5931\u8D25!" + "message": "保存备份文件失败!" }, "message_deleteSelectedProfile": { - "message": "\u786E\u8BA4\u5220\u9664\u9009\u4E2D\u7684\u60C5\u666F\u6A21\u5F0F\u5417\uFF1F\n\n\u9009\u4E2D\u7684\u60C5\u666F\u6A21\u5F0F: ($1)" + "message": "确认删除选中的情景模式吗?\n\n选中的情景模式: ($1)" }, "message_deleteSelectedRule": { - "message": "\u786E\u8BA4\u5220\u9664\u9009\u4E2D\u7684\u89C4\u5219\u5417\uFF1F\n\n\u9009\u4E2D\u89C4\u5219: ($1)" + "message": "确认删除选中的规则吗?\n\n选中规则: ($1)" }, "message_errorDownloadingRuleList": { - "message": "\u66F4\u65B0\u5728\u7EBF\u5217\u8868\u5931\u8D25\uFF01" + "message": "更新在线列表失败!" }, "message_firstTimeWelcome": { - "message": "\u6B22\u8FCE\u9996\u6B21\u4F7F\u7528!\u003Cbr\u003E\r\n\u8BF7\u8BBE\u7F6E\u4E0B\u9762\u76F8\u5173\u9009\u9879\uFF0C\u7136\u540E\u4FDD\u5B58\u5373\u53EF\u3002\u5982\u679C\u8BBE\u7F6E\u51FA\u73B0\u95EE\u9898\u60A8\u53EF\u4EE5\u8BBF\u95EE http://www.ggfwzs.com \u67E5\u770B\u76F8\u5173\u8BF4\u660E\u3002" + "message": "欢迎首次使用!\u003Cbr>\r\n请设置下面相关选项,然后保存即可。如果设置出现问题您可以访问 http://www.ggfwzs.com 查看相关说明。" }, "message_optionsSaved": { - "message": "\u8BBE\u7F6E\u5DF2\u4FDD\u5B58\u3002" + "message": "设置已保存。" }, "message_profileDeleted": { - "message": "\u60C5\u666F\u6A21\u5F0F\u5DF2\u5220\u9664\u3002" + "message": "情景模式已删除。" }, "message_restoreOptionsBackup": { - "message": "\u786E\u8BA4\u6062\u590D\u6062\u590D\u5907\u4EFD\u5417\uFF1F\n\n\u73B0\u6709\u7684谷歌访问助手\u914D\u7F6E\u5C06\u4F1A\u88AB\u8986\u76D6\u3002" + "message": "确认恢复恢复备份吗?\n\n现有的谷歌访问助手配置将会被覆盖。" }, "message_ruleDeleted": { - "message": "\u89C4\u5219\u5DF2\u5220\u9664\u3002" + "message": "规则已删除。" }, "message_ruleListUpdated": { - "message": "\u66F4\u65B0\u5728\u7EBF\u5217\u8868\u6210\u529F\uFF01" + "message": "更新在线列表成功!" }, "message_rulesFirstTimeWelcome": { - "message": "\u5982\u4F55\u4F7F\u7528\u8BF7\u67E5\u770B谷歌访问助手\u9879\u76EE\u4E3B\u9875\u3002http://www.ggfwzs.com" + "message": "如何使用请查看谷歌访问助手项目主页。http://www.ggfwzs.com" }, "message_saveChangedValues": { - "message": "\u4FDD\u5B58\u66F4\u6539?" + "message": "保存更改?" }, "message_saveOptions": { - "message": "\u73B0\u5728\u4FDD\u5B58\u60A8\u7684\u8BBE\u7F6E\u5417\uFF1F" + "message": "现在保存您的设置吗?" }, "message_selectBackupFile": { - "message": "\u9009\u62E9\u5907\u4EFD\u6587\u4EF6\u7684\u8DEF\u5F84\u3002" + "message": "选择备份文件的路径。" }, "message_successRestoreOptionsBackup": { - "message": "\u8BBE\u7F6E\u5BFC\u5165\u6210\u529F\u3002" + "message": "设置导入成功。" }, "options_12Hours": { - "message": "12 \u5C0F\u65F6" + "message": "12 小时" }, "options_15Minutes": { - "message": "15 \u5206\u949F" + "message": "15 分钟" }, "options_1Hour": { - "message": "1 \u5C0F\u65F6" + "message": "1 小时" }, "options_30Minutes": { - "message": "30 \u5206\u949F" + "message": "30 分钟" }, "options_3Hours": { - "message": "3 \u5C0F\u65F6" + "message": "3 小时" }, "options_45Minutes": { - "message": "45 \u5206\u949F" + "message": "45 分钟" }, "options_6Hours": { - "message": "6 \u5C0F\u65F6" + "message": "6 小时" }, "options_autoConfig": { - "message": "\u81EA\u52A8\u914D\u7F6E" + "message": "自动配置" }, "options_autoConfigUrl": { - "message": "\u81EA\u52A8\u914D\u7F6E\u7684URL" + "message": "自动配置的URL" }, "options_autoProxyCompatible": { - "message": "AutoProxy \u517C\u5BB9\u5217\u8868" + "message": "AutoProxy 兼容列表" }, "options_autoProxyCompatible_help": { - "message": "\u5982\u679C\u662FAutoProxy\u5217\u8868\u89C4\u5219(\u5982gfwlist),\u8BF7\u9009\u4E2D\u6B64\u9009\u9879\u3002" + "message": "如果是AutoProxy列表规则(如gfwlist),请选中此选项。" }, "options_clickToEdit": { - "message": "\u70B9\u51FB\u7F16\u8F91" + "message": "点击编辑" }, "options_close": { - "message": "\u5173\u95ED" + "message": "关闭" }, "options_confirmDeletion": { - "message": "\u5220\u9664\u60C5\u666F\u6A21\u5F0F\u6216\u89C4\u5219\u65F6\u9700\u8981\u786E\u8BA4" + "message": "删除情景模式或规则时需要确认" }, "options_confirmDeletion_help": { - "message": "\u5982\u679C\u9009\u4E2D\u6B64\u9009\u9879\uFF0C\u5728\u60A8\u8981\u5220\u9664\u60C5\u666F\u6A21\u5F0F\u6216\u89C4\u5219\u65F6\uFF0C 谷歌访问助手 \u4F1A\u8BE2\u95EE\u60A8\u662F\u5426\u786E\u5B9A\u3002" + "message": "如果选中此选项,在您要删除情景模式或规则时, 谷歌访问助手 会询问您是否确定。" }, "options_cycledProfiles": { - "message": "\u5FAA\u73AF\u5207\u6362\u4EE5\u4E0B\u60C5\u666F\u6A21\u5F0F: " + "message": "循环切换以下情景模式: " }, "options_defaultRule": { - "message": "\u9ED8\u8BA4\u89C4\u5219" + "message": "默认规则" }, "options_defaultRuleUrlPattern": { "message": "" }, "options_defaultRule_help": { - "message": "\u003Cp\u003E\u5982\u679C\u6CA1\u6709\u5176\u4ED6\u89C4\u5219\u5339\u914D,\u6B64\u89C4\u5219\u5C06\u88AB\u5E94\u7528\u003C/p\u003E\r\n\u003Cp\u003E\u003Cstrong\u003E\u6CE8\u610F:\u003C/strong\u003E \u6B64\u89C4\u5219\u4E0D\u80FD\u88AB\u5220\u9664\u3002\u003C/p\u003E" + "message": "\u003Cp>如果没有其他规则匹配,此规则将被应用\u003C/p>\r\n\u003Cp>\u003Cstrong>注意:\u003C/strong> 此规则不能被删除。\u003C/p>" }, "options_deleteProfile": { - "message": "\u5220\u9664\u60C5\u666F\u6A21\u5F0F" + "message": "删除情景模式" }, "options_deleteRule": { - "message": "\u5220\u9664\u89C4\u5219" + "message": "删除规则" }, "options_everyday": { - "message": "\u6BCF\u5929" + "message": "每天" }, "options_exportPacFile": { - "message": "\u5BFC\u51FAPAC\u6587\u4EF6" + "message": "导出PAC文件" }, "options_exportPacFile_help": { - "message": " \u5BFC\u51FAPAC\u6587\u4EF6,\u4EE5\u4FBF\u5728\u5176\u5B83\u6D4F\u89C8\u5668\u4F7F\u7528\u3002 " + "message": " 导出PAC文件,以便在其它浏览器使用。 " }, "options_exportRuleList": { - "message": "\u5BFC\u51FA\u89C4\u5219\u5217\u8868" + "message": "导出规则列表" }, "options_exportRuleList_help": { - "message": " \u5BFC\u51FA\u89C4\u5219\u6587\u4EF6\uFF0C\u4EE5\u4FBF\u4E0E\u670B\u53CB\u5171\u4EAB\u3002 " + "message": " 导出规则文件,以便与朋友共享。 " }, "options_ftpProxy": { - "message": "FTP \u4EE3\u7406" + "message": "FTP 代理" }, "options_headerTitle": { - "message": "谷歌访问助手 \u9009\u9879" + "message": "谷歌访问助手 选项" }, "options_httpProxy": { - "message": "HTTP \u4EE3\u7406" + "message": "HTTP 代理" }, "options_httpsProxy": { - "message": "HTTPS \u4EE3\u7406" + "message": "HTTPS 代理" }, "options_importPAC": { - "message": "\u5BFC\u5165 PAC \u6587\u4EF6" + "message": "导入 PAC 文件" }, "options_lastSelectedProfile": { - "message": "(\u4E0A\u6B21\u4F7F\u7528\u7684\u60C5\u666F\u6A21\u5F0F)" + "message": "(上次使用的情景模式)" }, "options_lastSuccessfulUpdate": { - "message": "\u4E0A\u6B21\u6210\u529F\u66F4\u65B0: " + "message": "上次成功更新: " }, "options_makeBackup": { - "message": "\u751F\u6210\u5907\u4EFD\u6587\u4EF6" + "message": "生成备份文件" }, "options_makeBackup_help": { - "message": " \u5907\u4EFD\u60A8\u7684\u6240\u6709\u8BBE\u7F6E\u3002 " + "message": " 备份您的所有设置。 " }, "options_manualConfig": { - "message": "\u624B\u52A8\u914D\u7F6E" + "message": "手动配置" }, "options_miscOptions": { - "message": "\u5176\u4ED6\u9009\u9879" + "message": "其他选项" }, "options_monitorProxyChanges": { - "message": "\u76D1\u63A7\u4EE3\u7406\u53D8\u5316" + "message": "监控代理变化" }, "options_monitorProxyChanges_help": { - "message": "\u5F53\u4EE3\u7406\u8BBE\u7F6E\u53D8\u5316\u65F6\uFF0C 谷歌访问助手 \u4F1A\u8C03\u6574\u56FE\u6807\u6765\u53CD\u6620\u53D8\u5316\u3002" + "message": "当代理设置变化时, 谷歌访问助手 会调整图标来反映变化。" }, "options_moreInfo": { - "message": "\u66F4\u591A\u4FE1\u606F" + "message": "更多信息" }, "options_newProfile": { - "message": "\u65B0\u5EFA\u60C5\u666F\u6A21\u5F0F" + "message": "新建情景模式" }, "options_newRule": { - "message": "\u65B0\u5EFA\u89C4\u5219" + "message": "新建规则" }, "options_noProxyFor": { - "message": "\u4E0D\u4EE3\u7406\u7684\u5730\u5740:" + "message": "不代理的地址:" }, "options_noProxyFor_help": { - "message": "\u4F7F\u7528\u5206\u53F7 ( ; ) \u5206\u9694\u3002" + "message": "使用分号 ( ; ) 分隔。" }, "options_notCycledProfiles": { - "message": "\u4E0D\u5FAA\u73AF\u5207\u6362\u7684\u60C5\u666F\u6A21\u5F0F (\u62D6\u52A8\u5230\u4E0A\u9762\u7684\u6846\u4E2D\u542F\u7528\u5207\u6362):" + "message": "不循环切换的情景模式 (拖动到上面的框中启用切换):" }, "options_patternType": { - "message": "\u6A21\u5F0F\u5339\u914D" + "message": "模式匹配" }, "options_patternTypeRegExp": { - "message": "\u6B63\u5219\u8868\u8FBE\u5F0F" + "message": "正则表达式" }, "options_patternTypeWildcard": { - "message": "\u901A\u914D\u7B26" + "message": "通配符" }, "options_patternType_help": { - "message": "\u003Cp\u003E\u8BE5\u7C7B\u578B\u7684\u5339\u914D\u6A21\u5F0F.\u003C/p\u003E\u003Chr /\u003E\r\n\u003Ctable\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u901A\u914D\u7B26\u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u4F7F\u7528*\u6765\u5339\u914D\u4EFB\u610F\u6570\u91CF\u7684\u5B57\u7B26\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u6B63\u5219\u8868\u8FBE\u5F0F\u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u4F7F\u7528\u6B63\u5219\u8868\u8FBE\u5F0F\u5339\u914D URL\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\u003C/table\u003E" + "message": "\u003Cp>该类型的匹配模式.\u003C/p>\u003Chr />\r\n\u003Ctable>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>通配符\u003C/em>\u003C/td>\r\n\t\t\u003Ctd>使用*来匹配任意数量的字符。\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>正则表达式\u003C/em>\u003C/td>\r\n\t\t\u003Ctd>使用正则表达式匹配 URL。\u003C/td>\r\n\t\u003C/tr>\r\n\u003C/table>" }, "options_profileColor": { - "message": "\u60C5\u666F\u6A21\u5F0F\u989C\u8272" + "message": "情景模式颜色" }, "options_profileDetails": { - "message": "\u8BE6\u7EC6\u914D\u7F6E" + "message": "详细配置" }, "options_profileName": { - "message": "\u60C5\u666F\u6A21\u5F0F\u540D\u79F0" + "message": "情景模式名称" }, "options_proxyPort": { - "message": "\u7AEF\u53E3" + "message": "端口" }, "options_proxyProfile": { - "message": "\u60C5\u666F\u6A21\u5F0F" + "message": "情景模式" }, "options_proxyProfile_help": { - "message": "\u5F53\u89C4\u5219\u5339\u914D\u65F6\uFF0C\u4F7F\u7528\u6B64\u60C5\u666F\u6A21\u5F0F" + "message": "当规则匹配时,使用此情景模式" }, "options_proxyProfiles": { - "message": "\u6240\u6709\u60C5\u666F\u6A21\u5F0F" + "message": "所有情景模式" }, "options_quickSwitch": { - "message": "\u5FEB\u901F\u5207\u6362" + "message": "快速切换" }, "options_quickSwitch_cycle_help": { - "message": "\u5F53\u60A8\u70B9\u51FB\u5DE5\u5177\u680F\u56FE\u6807\u65F6, 谷歌访问助手\u5C06\u6309\u5982\u4E0B\u987A\u5E8F\u5207\u6362\u4EE3\u7406\u914D\u7F6E\u3002" + "message": "当您点击工具栏图标时, 谷歌访问助手将按如下顺序切换代理配置。" }, "options_quickSwitch_help": { - "message": "\u003Cp\u003E\u53EF\u4EE5\u8BA9\u60A8\u4E00\u952E\u5207\u6362\u4EE3\u7406\u914D\u7F6E \n(\u70B9\u51FBSwitchyShap\u56FE\u6807\u5373\u53EF)\u3002\u003C/p\u003E\u003Chr /\u003E\n\u003Cp\u003E\u003Cstrong\u003E\u6CE8\u610F:\u003C/strong\u003E \u542F\u7528\u6B64\u7279\u6027\u540E\uFF0C\u60A8\u65E0\u6CD5\u901A\u8FC7\u5355\u51FB 谷歌访问助手 \u56FE\u6807\u5F39\u51FA\u914D\u7F6E\u83DC\u5355\u3002\u4F60\u9700\u8981\u53F3\u51FB谷歌访问助手\u56FE\u6807\u5E76\u9009\u62E9\"\u9009\u9879\"\u6765\u8FDB\u5165\u914D\u7F6E\u9875\u9762\u3002\u003C/p\u003E" + "message": "\u003Cp>可以让您一键切换代理配置 \n(点击SwitchyShap图标即可)。\u003C/p>\u003Chr />\n\u003Cp>\u003Cstrong>注意:\u003C/strong> 启用此特性后,您无法通过单击 谷歌访问助手 图标弹出配置菜单。你需要右击谷歌访问助手图标并选择\"选项\"来进入配置页面。\u003C/p>" }, "options_reapplyLastProfile_help": { - "message": "\u5982\u679C\u8FD9\u4E2A\u9009\u9879\u88AB\u9009\u4E2D 谷歌访问助手 \u542F\u52A8\u65F6\u5C06\u5E94\u7528\u7528\u6237\u6700\u540E\u9009\u62E9\u7684\u60C5\u666F\u6A21\u5F0F" + "message": "如果这个选项被选中 谷歌访问助手 启动时将应用用户最后选择的情景模式" }, "options_refreshTab": { - "message": "\u5F53\u66F4\u6539\u60C5\u666F\u6A21\u5F0F\u65F6\u5237\u65B0\u5F53\u524D\u6807\u7B7E" + "message": "当更改情景模式时刷新当前标签" }, "options_refreshTab_help": { - "message": "\u5F53\u5728\u5F39\u51FA\u83DC\u5355\u4E2D\u6216\u5FEB\u901F\u5207\u6362\u4E2D\u66F4\u6539\u60C5\u666F\u6A21\u5F0F\u65F6\uFF0C\u5237\u65B0\u5F53\u524D\u6807\u7B7E\u9875\u3002" + "message": "当在弹出菜单中或快速切换中更改情景模式时,刷新当前标签页。" }, "options_reloadEvery": { - "message": "\u81EA\u52A8\u66F4\u65B0\u95F4\u9694" + "message": "自动更新间隔" }, "options_reloadEvery_help": { - "message": "\u81EA\u52A8\u66F4\u65B0\u89C4\u5219\u5217\u8868\u7684\u9891\u7387\u3002" + "message": "自动更新规则列表的频率。" }, "options_resetOptions": { - "message": "\u91CD\u7F6E\u9009\u9879" + "message": "重置选项" }, "options_restoreBackup": { - "message": "\u5728\u7EBF\u6062\u590D\u5907\u4EFD" + "message": "在线恢复备份" }, "options_restoreBackup_help": { - "message": "\u5907\u4EFD\u6587\u4EF6\u5730\u5740 (e.g. 'http://iewb.net/switchy.bak')" + "message": "备份文件地址 (e.g. 'http://iewb.net/switchy.bak')" }, "options_restoreLocal": { - "message": "\u4ECE\u6587\u4EF6\u6062\u590D" + "message": "从文件恢复" }, "options_restoreLocal_help": { - "message": "\u4ECE\u672C\u5730\u5907\u4EFD\u6587\u4EF6\u4F9B\u6062\u590D谷歌访问助手\u914D\u7F6E\u3002" + "message": "从本地备份文件供恢复谷歌访问助手配置。" }, "options_revertProxyChanges": { - "message": "\u64A4\u6D88\u5176\u4ED6\u6269\u5C55\u5BF9\u4EE3\u7406\u7684\u66F4\u6539\u3002" + "message": "撤消其他扩展对代理的更改。" }, "options_revertProxyChanges_help": { - "message": "\u6062\u590D\u88AB\u5176\u5B83\u5E94\u7528\u7A0B\u5E8F\u66F4\u6539\u7684\u4EE3\u7406\u8BBE\u7F6E\u3002" + "message": "恢复被其它应用程序更改的代理设置。" }, "options_ruleList": { - "message": "\u5728\u7EBF\u89C4\u5219\u5217\u8868" + "message": "在线规则列表" }, "options_ruleListProxyProfile_help": { - "message": "\u5F53\u5728\u7EBF\u89C4\u5219\u5217\u8868\u4E2D\u7684\u4EFB\u4F55\u89C4\u5219\u5339\u914D\u65F6\uFF0C\u4F7F\u7528\u6B64\u60C5\u666F\u6A21\u5F0F\u3002" + "message": "当在线规则列表中的任何规则匹配时,使用此情景模式。" }, "options_ruleListUrl": { - "message": "\u89C4\u5219\u5217\u8868URL" + "message": "规则列表URL" }, "options_ruleListUrl_help": { - "message": "\u89C4\u5219\u5217\u8868\u7684\u5730\u5740(\u4E0D\u80FD\u4F7F\u7528\u672C\u5730\u6587\u4EF6)\u3002" + "message": "规则列表的地址(不能使用本地文件)。" }, "options_ruleList_help": { - "message": "\u5BFC\u5165\u5728\u7EBF\u89C4\u5219\u5217\u8868\u3002" + "message": "导入在线规则列表。" }, "options_ruleName": { - "message": "\u89C4\u5219\u540D\u79F0" + "message": "规则名称" }, "options_save": { - "message": "\u4FDD\u5B58" + "message": "保存" }, "options_socks4": { "message": "SOCKS v4" @@ -318,132 +318,132 @@ "message": "SOCKS v5" }, "options_socksHost": { - "message": "SOCKS \u4EE3\u7406" + "message": "SOCKS 代理" }, "options_startupProfile": { - "message": "\u542F\u52A8\u60C5\u666F\u6A21\u5F0F\uFF1A" + "message": "启动情景模式:" }, "options_startupProfile_help": { - "message": "\u6269\u5C55\u542F\u52A8\u65F6\u5E94\u7528\u7684\u60C5\u666F\u6A21\u5F0F\u3002" + "message": "扩展启动时应用的情景模式。" }, "options_switchRules": { - "message": "\u5207\u6362\u89C4\u5219" + "message": "切换规则" }, "options_switchRulesEnable": { - "message": "\u542F\u7528\u5207\u6362\u89C4\u5219" + "message": "启用切换规则" }, "options_switchRulesEnable_help": { - "message": "\u003Cp\u003E\u5207\u6362\u89C4\u5219\u6307\u5B9A\u54EA\u4E2A\u4EE3\u7406\u5E94\u8BE5\u7528\u4E8E\u6BCF\u4E00\u4E2A\u7F51\u5740\u3002\u003C/p\u003E\u003Chr /\u003E\r\n\u003Cp\u003E\u8FD9\u4E2A\u9009\u9879\u88AB\u6FC0\u6D3B\u65F6,\u4F60\u53EF\u4EE5\u5728\u5F39\u51FA\u83DC\u5355\u770B\u5230\u4E24\u4E2A\u9879\u76EE\uFF1A\u003C/p\u003E\r\n\u003Ctable\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u81EA\u52A8\u6A21\u5F0F\u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u70B9\u51FB\u8FD9\u4E2A\u9879\u76EE\u5C06\u542F\u52A8\u5F00\u5173\u7684\u89C4\u5219\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u65B0\u89C4\u5219\u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u4E3A\u5F53\u524D\u7684\u7F51\u7AD9\u5FEB\u901F\u589E\u52A0\u4E00\u4E2A\u65B0\u7684\u5207\u6362\u89C4\u5219\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\u003C/table\u003E" + "message": "\u003Cp>切换规则指定哪个代理应该用于每一个网址。\u003C/p>\u003Chr />\r\n\u003Cp>这个选项被激活时,你可以在弹出菜单看到两个项目:\u003C/p>\r\n\u003Ctable>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>自动模式\u003C/em>\u003C/td>\r\n\t\t\u003Ctd>点击这个项目将启动开关的规则。\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>新规则\u003C/em>\u003C/td>\r\n\t\t\u003Ctd>为当前的网站快速增加一个新的切换规则。\u003C/td>\r\n\t\u003C/tr>\r\n\u003C/table>" }, "options_tabGeneral": { - "message": "\u901A\u7528\u8BBE\u7F6E" + "message": "通用设置" }, "options_tabImportExport": { - "message": "\u5BFC\u5165/\u5BFC\u51FA" + "message": "导入/导出" }, "options_tabNetwork": { - "message": "\u7F51\u7EDC" + "message": "网络" }, "options_tabProxyProfiles": { - "message": "\u60C5\u666F\u6A21\u5F0F" + "message": "情景模式" }, "options_tabSwitchRules": { - "message": "\u5207\u6362\u89C4\u5219" + "message": "切换规则" }, "options_untitledProfile": { - "message": "[\u672A\u547D\u540D]" + "message": "[未命名]" }, "options_updateListNow": { - "message": "\u7ACB\u5373\u66F4\u65B0\u5217\u8868" + "message": "立即更新列表" }, "options_urlPattern": { - "message": "URL \u6A21\u5F0F" + "message": "URL 模式" }, "options_urlPattern_help": { - "message": "\u003Cp\u003E\u8BE5\u7F51\u9875\u7684URL\u6A21\u5F0F\u3002\u003C/p\u003E\u003Chr /\u003E\r\n\u003Ctable\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd colspan='2'\u003E\u003Cstrong\u003E\u914D\u7F6E\u53C2\u8003\u003C/strong\u003E\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u661F\u53F7 (*) \u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u4EE3\u8868\u96F6\u4E2A\u6216\u591A\u4E2A\u5B57\u7B26\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u95EE\u53F7 (?) \u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u4EE3\u8868\u4E00\u4E2A\u5B57\u7B26\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd colspan='2'\u003E\u003Cbr /\u003E\u003Cstrong\u003E\u8303\u4F8B\u003C/strong\u003E\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E*://www.google.com/* \u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u5339\u914D\u6240\u6709\u7F51\u5740(HTTP\u548CHTTPS)\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003Ehttps://*.google.com/foo*bar \u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003Ehttps\u914D\u7F6E\u8DEF\u5F84\u4E2D\u7684\u4EFB\u4F55\u5B50\u57DF\u540D\u4E0E\u5B50\u76EE\u5F55\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003Ehttp://example.org/foo/bar.html \u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u7CBE\u786E\u5339\u914D\u6307\u5B9A\u7684URL\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\u003C/table\u003E" + "message": "\u003Cp>该网页的URL模式。\u003C/p>\u003Chr />\r\n\u003Ctable>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd colspan='2'>\u003Cstrong>配置参考\u003C/strong>\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>星号 (*) \u003C/em>\u003C/td>\r\n\t\t\u003Ctd>代表零个或多个字符。\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>问号 (?) \u003C/em>\u003C/td>\r\n\t\t\u003Ctd>代表一个字符。\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd colspan='2'>\u003Cbr />\u003Cstrong>范例\u003C/strong>\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>*://www.google.com/* \u003C/em>\u003C/td>\r\n\t\t\u003Ctd>匹配所有网址(HTTP和HTTPS)\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>https://*.google.com/foo*bar \u003C/em>\u003C/td>\r\n\t\t\u003Ctd>https配置路径中的任何子域名与子目录。\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>http://example.org/foo/bar.html \u003C/em>\u003C/td>\r\n\t\t\u003Ctd>精确匹配指定的URL。\u003C/td>\r\n\t\u003C/tr>\r\n\u003C/table>" }, "options_useSameProxy": { - "message": "\u5BF9\u6240\u6709\u534F\u8BAE\u5747\u4F7F\u7528\u76F8\u540C\u7684\u4EE3\u7406\u670D\u52A1\u5668" + "message": "对所有协议均使用相同的代理服务器" }, "options_vpnDialupProxy": { - "message": "VPN/\u62E8\u53F7\u7F51\u7EDC\u7684\u4EE3\u7406" + "message": "VPN/拨号网络的代理" }, "popup_aboutSwitchy": { - "message": "\u5173\u4E8E 谷歌访问助手" + "message": "关于 谷歌访问助手" }, "popup_add": { - "message": "\u6DFB\u52A0" + "message": "添加" }, "popup_autoSwitchMode": { - "message": "\u81EA\u52A8\u5207\u6362\u6A21\u5F0F" + "message": "自动切换模式" }, "popup_autoSwitchMode_help": { - "message": "\u4E3A\u6BCF\u4E2A\u7F51\u7AD9\u81EA\u52A8\u9009\u62E9\u5408\u9002\u7684\u60C5\u666F\u6A21\u5F0F\u3002" + "message": "为每个网站自动选择合适的情景模式。" }, "popup_basedOn": { "message": "免费访问 谷歌chrome商店,谷歌搜索,gmail邮箱" }, "popup_cancel": { - "message": "\u53D6\u6D88" + "message": "取消" }, "popup_chromeExtensionGallery": { - "message": "\u82F1\u6587\u7248\u672C" + "message": "英文版本" }, "popup_copyright": { "message": "Copyright © 2014 ggfwzs.com." }, "popup_developedBy": { - "message": "\u5F00\u53D1\u4EBA\u5458" + "message": "开发人员" }, "popup_duplicateRules": { - "message": "* \u5DF2\u7ECF\u5B58\u5728\u6A21\u5F0F\u76F8\u540C\u7684\u89C4\u5219\u4E86\u3002" + "message": "* 已经存在模式相同的规则了。" }, "popup_newRule": { - "message": "\u65B0\u5EFA\u89C4\u5219" + "message": "新建规则" }, "popup_newRule_help": { - "message": "\u4E3A\u5F53\u524D\u7F51\u7AD9\u5FEB\u901F\u6DFB\u52A0\u65B0\u89C4\u5219\u3002" + "message": "为当前网站快速添加新规则。" }, "popup_newTempRule2_help": { - "message": "\u5BF9\u5F53\u524D\u57DF\u540D\u4E34\u65F6\u5E94\u7528\u7684\u4EE3\u7406\u60C5\u666F\u6A21\u5F0F\u3002" + "message": "对当前域名临时应用的代理情景模式。" }, "popup_newTempRule_help": { - "message": "\u4E3A\u5F53\u524D\u57DF\u540D\u6DFB\u52A0\u4E00\u6761\u4E34\u65F6\u89C4\u5219\u3002" + "message": "为当前域名添加一条临时规则。" }, "popup_options": { - "message": "\u9009\u9879" + "message": "选项" }, "popup_or": { "message": "or" }, "popup_supportAndBugReports": { - "message": "\u6280\u672F\u652F\u6301 & Bug\u53CD\u9988" + "message": "技术支持 & Bug反馈" }, "popup_switchyPlusWebPage": { - "message": "SwitchyPlus \u4E3B\u9875" + "message": "SwitchyPlus 主页" }, "popup_switchyWebPage": { "message": "谷歌访问助手 已激活" }, "popup_version": { - "message": "\u7248\u672C" + "message": "版本" }, "proxy_autoSwitch": { - "message": "\u81EA\u52A8\u5207\u6362" + "message": "自动切换" }, "proxy_autoSwitchIconTitle": { - "message": "\u81EA\u52A8\u5207\u6362\u6A21\u5F0F\n\u672C\u9875\u60C5\u666F\u6A21\u5F0F: $1" + "message": "自动切换模式\n本页情景模式: $1" }, "proxy_directConnection": { "message": "关闭翻墙" }, "proxy_directConnection_help": { - "message": "\u7981\u7528\u4EE3\u7406" + "message": "禁用代理" }, "proxy_systemProxy": { - "message": "\u4F7F\u7528\u7CFB\u7EDF\u4EE3\u7406\u8BBE\u7F6E" + "message": "使用系统代理设置" }, "proxy_systemProxy_help": { - "message": "\u4F7F\u7528\u7CFB\u7EDF\u4EE3\u7406\u8BBE\u7F6E (\u9700\u8981\u91CD\u542F)" + "message": "使用系统代理设置 (需要重启)" } } diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index c530e0a..7791221 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -12,304 +12,304 @@ "message": "left" }, "manifest_appDescription": { - "message": "\u8F7B\u677E\u5FEB\u6377\u5730\u7BA1\u7406\u548C\u5207\u6362\u591A\u4E2A\u4EE3\u7406\u8BBE\u7F6E\u3002\u57FA\u4E8E \"Proxy Switchy!\" \u548C \"SwitchyPlus\" \u5F00\u53D1\u3002" + "message": "轻松快捷地管理和切换多个代理设置。基于 \"Proxy Switchy!\" 和 \"SwitchyPlus\" 开发。" }, "manifest_appName": { "message": "谷歌访问助手" }, "manifest_iconTitle": { - "message": "[\u8F7D\u5165\u4E2D\u2026\u2026]" + "message": "[载入中……]" }, "message_SwitchRulesDisabled": { - "message": "\u60A8\u5FC5\u987B\u5148\u542F\u52A8\u81EA\u52A8\u5207\u6362\u89C4\u5219!" + "message": "您必须先启动自动切换规则!" }, "message_apply2All": { - "message": "\u60A8\u786E\u5B9A\u5C06\u8FD9\u4E2A\u60C5\u666F\u6A21\u5F0F\u5E94\u7528\u5230\u6240\u6709\u89C4\u5219\u5417\uFF1F\n\n\u9009\u4E2D\u7684\u60C5\u666F\u6A21\u5F0F: ($1)" + "message": "您确定将这个情景模式应用到所有规则吗?\n\n选中的情景模式: ($1)" }, "message_cannotReadOptionsBackup": { - "message": "\u8BFB\u53D6\u5907\u4EFD\u6587\u4EF6\u5931\u8D25!" + "message": "读取备份文件失败!" }, "message_cannotRestoreOptionsBackup": { - "message": "\u65E0\u6CD5\u4ECE\u5907\u4EFD\u6587\u4EF6\u6062\u590D\r\n!\n\n\u5907\u4EFD\u6587\u4EF6\u53EF\u80FD\u5DF2\u635F\u574F\u3002" + "message": "无法从备份文件恢复\r\n!\n\n备份文件可能已损坏。" }, "message_cannotSaveFile": { - "message": "\u4FDD\u5B58\u5907\u4EFD\u6587\u4EF6\u5931\u8D25!" + "message": "保存备份文件失败!" }, "message_deleteSelectedProfile": { - "message": "\u786E\u8BA4\u5220\u9664\u9009\u4E2D\u7684\u60C5\u666F\u6A21\u5F0F\u5417\uFF1F\n\n\u9009\u4E2D\u7684\u60C5\u666F\u6A21\u5F0F: ($1)" + "message": "确认删除选中的情景模式吗?\n\n选中的情景模式: ($1)" }, "message_deleteSelectedRule": { - "message": "\u786E\u8BA4\u5220\u9664\u9009\u4E2D\u7684\u89C4\u5219\u5417\uFF1F\n\n\u9009\u4E2D\u89C4\u5219: ($1)" + "message": "确认删除选中的规则吗?\n\n选中规则: ($1)" }, "message_errorDownloadingRuleList": { - "message": "\u66F4\u65B0\u5728\u7EBF\u5217\u8868\u5931\u8D25\uFF01" + "message": "更新在线列表失败!" }, "message_firstTimeWelcome": { - "message": "\u6B22\u8FCE\u9996\u6B21\u4F7F\u7528!\u003Cbr\u003E\r\n\u8BF7\u8BBE\u7F6E\u4E0B\u9762\u76F8\u5173\u9009\u9879\uFF0C\u7136\u540E\u4FDD\u5B58\u5373\u53EF\u3002\u5982\u679C\u8BBE\u7F6E\u51FA\u73B0\u95EE\u9898\u60A8\u53EF\u4EE5\u8BBF\u95EE http://www.ggfwzs.com \u67E5\u770B\u76F8\u5173\u8BF4\u660E\u3002" + "message": "欢迎首次使用!\u003Cbr>\r\n请设置下面相关选项,然后保存即可。如果设置出现问题您可以访问 http://www.ggfwzs.com 查看相关说明。" }, "message_optionsSaved": { - "message": "\u8BBE\u7F6E\u5DF2\u4FDD\u5B58\u3002" + "message": "设置已保存。" }, "message_profileDeleted": { - "message": "\u60C5\u666F\u6A21\u5F0F\u5DF2\u5220\u9664\u3002" + "message": "情景模式已删除。" }, "message_restoreOptionsBackup": { - "message": "\u786E\u8BA4\u6062\u590D\u6062\u590D\u5907\u4EFD\u5417\uFF1F\n\n\u73B0\u6709\u7684谷歌访问助手\u914D\u7F6E\u5C06\u4F1A\u88AB\u8986\u76D6\u3002" + "message": "确认恢复恢复备份吗?\n\n现有的谷歌访问助手配置将会被覆盖。" }, "message_ruleDeleted": { - "message": "\u89C4\u5219\u5DF2\u5220\u9664\u3002" + "message": "规则已删除。" }, "message_ruleListUpdated": { - "message": "\u66F4\u65B0\u5728\u7EBF\u5217\u8868\u6210\u529F\uFF01" + "message": "更新在线列表成功!" }, "message_rulesFirstTimeWelcome": { - "message": "\u5982\u4F55\u4F7F\u7528\u8BF7\u67E5\u770B谷歌访问助手\u9879\u76EE\u4E3B\u9875\u3002http://www.ggfwzs.com" + "message": "如何使用请查看谷歌访问助手项目主页。http://www.ggfwzs.com" }, "message_saveChangedValues": { - "message": "\u4FDD\u5B58\u66F4\u6539?" + "message": "保存更改?" }, "message_saveOptions": { - "message": "\u73B0\u5728\u4FDD\u5B58\u60A8\u7684\u8BBE\u7F6E\u5417\uFF1F" + "message": "现在保存您的设置吗?" }, "message_selectBackupFile": { - "message": "\u9009\u62E9\u5907\u4EFD\u6587\u4EF6\u7684\u8DEF\u5F84\u3002" + "message": "选择备份文件的路径。" }, "message_successRestoreOptionsBackup": { - "message": "\u8BBE\u7F6E\u5BFC\u5165\u6210\u529F\u3002" + "message": "设置导入成功。" }, "options_12Hours": { - "message": "12 \u5C0F\u65F6" + "message": "12 小时" }, "options_15Minutes": { - "message": "15 \u5206\u949F" + "message": "15 分钟" }, "options_1Hour": { - "message": "1 \u5C0F\u65F6" + "message": "1 小时" }, "options_30Minutes": { - "message": "30 \u5206\u949F" + "message": "30 分钟" }, "options_3Hours": { - "message": "3 \u5C0F\u65F6" + "message": "3 小时" }, "options_45Minutes": { - "message": "45 \u5206\u949F" + "message": "45 分钟" }, "options_6Hours": { - "message": "6 \u5C0F\u65F6" + "message": "6 小时" }, "options_autoConfig": { - "message": "\u81EA\u52A8\u914D\u7F6E" + "message": "自动配置" }, "options_autoConfigUrl": { - "message": "\u81EA\u52A8\u914D\u7F6E\u7684URL" + "message": "自动配置的URL" }, "options_autoProxyCompatible": { - "message": "AutoProxy \u517C\u5BB9\u5217\u8868" + "message": "AutoProxy 兼容列表" }, "options_autoProxyCompatible_help": { - "message": "\u5982\u679C\u662FAutoProxy\u5217\u8868\u89C4\u5219(\u5982gfwlist),\u8BF7\u9009\u4E2D\u6B64\u9009\u9879\u3002" + "message": "如果是AutoProxy列表规则(如gfwlist),请选中此选项。" }, "options_clickToEdit": { - "message": "\u70B9\u51FB\u7F16\u8F91" + "message": "点击编辑" }, "options_close": { - "message": "\u5173\u95ED" + "message": "关闭" }, "options_confirmDeletion": { - "message": "\u5220\u9664\u60C5\u666F\u6A21\u5F0F\u6216\u89C4\u5219\u65F6\u9700\u8981\u786E\u8BA4" + "message": "删除情景模式或规则时需要确认" }, "options_confirmDeletion_help": { - "message": "\u5982\u679C\u9009\u4E2D\u6B64\u9009\u9879\uFF0C\u5728\u60A8\u8981\u5220\u9664\u60C5\u666F\u6A21\u5F0F\u6216\u89C4\u5219\u65F6\uFF0C 谷歌访问助手 \u4F1A\u8BE2\u95EE\u60A8\u662F\u5426\u786E\u5B9A\u3002" + "message": "如果选中此选项,在您要删除情景模式或规则时, 谷歌访问助手 会询问您是否确定。" }, "options_cycledProfiles": { - "message": "\u5FAA\u73AF\u5207\u6362\u4EE5\u4E0B\u60C5\u666F\u6A21\u5F0F: " + "message": "循环切换以下情景模式: " }, "options_defaultRule": { - "message": "\u9ED8\u8BA4\u89C4\u5219" + "message": "默认规则" }, "options_defaultRuleUrlPattern": { "message": "" }, "options_defaultRule_help": { - "message": "\u003Cp\u003E\u5982\u679C\u6CA1\u6709\u5176\u4ED6\u89C4\u5219\u5339\u914D,\u6B64\u89C4\u5219\u5C06\u88AB\u5E94\u7528\u003C/p\u003E\r\n\u003Cp\u003E\u003Cstrong\u003E\u6CE8\u610F:\u003C/strong\u003E \u6B64\u89C4\u5219\u4E0D\u80FD\u88AB\u5220\u9664\u3002\u003C/p\u003E" + "message": "\u003Cp>如果没有其他规则匹配,此规则将被应用\u003C/p>\r\n\u003Cp>\u003Cstrong>注意:\u003C/strong> 此规则不能被删除。\u003C/p>" }, "options_deleteProfile": { - "message": "\u5220\u9664\u60C5\u666F\u6A21\u5F0F" + "message": "删除情景模式" }, "options_deleteRule": { - "message": "\u5220\u9664\u89C4\u5219" + "message": "删除规则" }, "options_everyday": { - "message": "\u6BCF\u5929" + "message": "每天" }, "options_exportPacFile": { - "message": "\u5BFC\u51FAPAC\u6587\u4EF6" + "message": "导出PAC文件" }, "options_exportPacFile_help": { - "message": " \u5BFC\u51FAPAC\u6587\u4EF6,\u4EE5\u4FBF\u5728\u5176\u5B83\u6D4F\u89C8\u5668\u4F7F\u7528\u3002 " + "message": " 导出PAC文件,以便在其它浏览器使用。 " }, "options_exportRuleList": { - "message": "\u5BFC\u51FA\u89C4\u5219\u5217\u8868" + "message": "导出规则列表" }, "options_exportRuleList_help": { - "message": " \u5BFC\u51FA\u89C4\u5219\u6587\u4EF6\uFF0C\u4EE5\u4FBF\u4E0E\u670B\u53CB\u5171\u4EAB\u3002 " + "message": " 导出规则文件,以便与朋友共享。 " }, "options_ftpProxy": { - "message": "FTP \u4EE3\u7406" + "message": "FTP 代理" }, "options_headerTitle": { - "message": "谷歌访问助手 \u9009\u9879" + "message": "谷歌访问助手 选项" }, "options_httpProxy": { - "message": "HTTP \u4EE3\u7406" + "message": "HTTP 代理" }, "options_httpsProxy": { - "message": "HTTPS \u4EE3\u7406" + "message": "HTTPS 代理" }, "options_importPAC": { - "message": "\u5BFC\u5165 PAC \u6587\u4EF6" + "message": "导入 PAC 文件" }, "options_lastSelectedProfile": { - "message": "(\u4E0A\u6B21\u4F7F\u7528\u7684\u60C5\u666F\u6A21\u5F0F)" + "message": "(上次使用的情景模式)" }, "options_lastSuccessfulUpdate": { - "message": "\u4E0A\u6B21\u6210\u529F\u66F4\u65B0: " + "message": "上次成功更新: " }, "options_makeBackup": { - "message": "\u751F\u6210\u5907\u4EFD\u6587\u4EF6" + "message": "生成备份文件" }, "options_makeBackup_help": { - "message": " \u5907\u4EFD\u60A8\u7684\u6240\u6709\u8BBE\u7F6E\u3002 " + "message": " 备份您的所有设置。 " }, "options_manualConfig": { - "message": "\u624B\u52A8\u914D\u7F6E" + "message": "手动配置" }, "options_miscOptions": { - "message": "\u5176\u4ED6\u9009\u9879" + "message": "其他选项" }, "options_monitorProxyChanges": { - "message": "\u76D1\u63A7\u4EE3\u7406\u53D8\u5316" + "message": "监控代理变化" }, "options_monitorProxyChanges_help": { - "message": "\u5F53\u4EE3\u7406\u8BBE\u7F6E\u53D8\u5316\u65F6\uFF0C 谷歌访问助手 \u4F1A\u8C03\u6574\u56FE\u6807\u6765\u53CD\u6620\u53D8\u5316\u3002" + "message": "当代理设置变化时, 谷歌访问助手 会调整图标来反映变化。" }, "options_moreInfo": { - "message": "\u66F4\u591A\u4FE1\u606F" + "message": "更多信息" }, "options_newProfile": { - "message": "\u65B0\u5EFA\u60C5\u666F\u6A21\u5F0F" + "message": "新建情景模式" }, "options_newRule": { - "message": "\u65B0\u5EFA\u89C4\u5219" + "message": "新建规则" }, "options_noProxyFor": { - "message": "\u4E0D\u4EE3\u7406\u7684\u5730\u5740:" + "message": "不代理的地址:" }, "options_noProxyFor_help": { - "message": "\u4F7F\u7528\u5206\u53F7 ( ; ) \u5206\u9694\u3002" + "message": "使用分号 ( ; ) 分隔。" }, "options_notCycledProfiles": { - "message": "\u4E0D\u5FAA\u73AF\u5207\u6362\u7684\u60C5\u666F\u6A21\u5F0F (\u62D6\u52A8\u5230\u4E0A\u9762\u7684\u6846\u4E2D\u542F\u7528\u5207\u6362):" + "message": "不循环切换的情景模式 (拖动到上面的框中启用切换):" }, "options_patternType": { - "message": "\u6A21\u5F0F\u5339\u914D" + "message": "模式匹配" }, "options_patternTypeRegExp": { - "message": "\u6B63\u5219\u8868\u8FBE\u5F0F" + "message": "正则表达式" }, "options_patternTypeWildcard": { - "message": "\u901A\u914D\u7B26" + "message": "通配符" }, "options_patternType_help": { - "message": "\u003Cp\u003E\u8BE5\u7C7B\u578B\u7684\u5339\u914D\u6A21\u5F0F.\u003C/p\u003E\u003Chr /\u003E\r\n\u003Ctable\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u901A\u914D\u7B26\u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u4F7F\u7528*\u6765\u5339\u914D\u4EFB\u610F\u6570\u91CF\u7684\u5B57\u7B26\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u6B63\u5219\u8868\u8FBE\u5F0F\u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u4F7F\u7528\u6B63\u5219\u8868\u8FBE\u5F0F\u5339\u914D URL\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\u003C/table\u003E" + "message": "\u003Cp>该类型的匹配模式.\u003C/p>\u003Chr />\r\n\u003Ctable>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>通配符\u003C/em>\u003C/td>\r\n\t\t\u003Ctd>使用*来匹配任意数量的字符。\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>正则表达式\u003C/em>\u003C/td>\r\n\t\t\u003Ctd>使用正则表达式匹配 URL。\u003C/td>\r\n\t\u003C/tr>\r\n\u003C/table>" }, "options_profileColor": { - "message": "\u60C5\u666F\u6A21\u5F0F\u989C\u8272" + "message": "情景模式颜色" }, "options_profileDetails": { - "message": "\u8BE6\u7EC6\u914D\u7F6E" + "message": "详细配置" }, "options_profileName": { - "message": "\u60C5\u666F\u6A21\u5F0F\u540D\u79F0" + "message": "情景模式名称" }, "options_proxyPort": { - "message": "\u7AEF\u53E3" + "message": "端口" }, "options_proxyProfile": { - "message": "\u60C5\u666F\u6A21\u5F0F" + "message": "情景模式" }, "options_proxyProfile_help": { - "message": "\u5F53\u89C4\u5219\u5339\u914D\u65F6\uFF0C\u4F7F\u7528\u6B64\u60C5\u666F\u6A21\u5F0F" + "message": "当规则匹配时,使用此情景模式" }, "options_proxyProfiles": { - "message": "\u6240\u6709\u60C5\u666F\u6A21\u5F0F" + "message": "所有情景模式" }, "options_quickSwitch": { - "message": "\u5FEB\u901F\u5207\u6362" + "message": "快速切换" }, "options_quickSwitch_cycle_help": { - "message": "\u5F53\u60A8\u70B9\u51FB\u5DE5\u5177\u680F\u56FE\u6807\u65F6, 谷歌访问助手\u5C06\u6309\u5982\u4E0B\u987A\u5E8F\u5207\u6362\u4EE3\u7406\u914D\u7F6E\u3002" + "message": "当您点击工具栏图标时, 谷歌访问助手将按如下顺序切换代理配置。" }, "options_quickSwitch_help": { - "message": "\u003Cp\u003E\u53EF\u4EE5\u8BA9\u60A8\u4E00\u952E\u5207\u6362\u4EE3\u7406\u914D\u7F6E \n(\u70B9\u51FBSwitchyShap\u56FE\u6807\u5373\u53EF)\u3002\u003C/p\u003E\u003Chr /\u003E\n\u003Cp\u003E\u003Cstrong\u003E\u6CE8\u610F:\u003C/strong\u003E \u542F\u7528\u6B64\u7279\u6027\u540E\uFF0C\u60A8\u65E0\u6CD5\u901A\u8FC7\u5355\u51FB 谷歌访问助手 \u56FE\u6807\u5F39\u51FA\u914D\u7F6E\u83DC\u5355\u3002\u4F60\u9700\u8981\u53F3\u51FB谷歌访问助手\u56FE\u6807\u5E76\u9009\u62E9\"\u9009\u9879\"\u6765\u8FDB\u5165\u914D\u7F6E\u9875\u9762\u3002\u003C/p\u003E" + "message": "\u003Cp>可以让您一键切换代理配置 \n(点击SwitchyShap图标即可)。\u003C/p>\u003Chr />\n\u003Cp>\u003Cstrong>注意:\u003C/strong> 启用此特性后,您无法通过单击 谷歌访问助手 图标弹出配置菜单。你需要右击谷歌访问助手图标并选择\"选项\"来进入配置页面。\u003C/p>" }, "options_reapplyLastProfile_help": { - "message": "\u5982\u679C\u8FD9\u4E2A\u9009\u9879\u88AB\u9009\u4E2D 谷歌访问助手 \u542F\u52A8\u65F6\u5C06\u5E94\u7528\u7528\u6237\u6700\u540E\u9009\u62E9\u7684\u60C5\u666F\u6A21\u5F0F" + "message": "如果这个选项被选中 谷歌访问助手 启动时将应用用户最后选择的情景模式" }, "options_refreshTab": { - "message": "\u5F53\u66F4\u6539\u60C5\u666F\u6A21\u5F0F\u65F6\u5237\u65B0\u5F53\u524D\u6807\u7B7E" + "message": "当更改情景模式时刷新当前标签" }, "options_refreshTab_help": { - "message": "\u5F53\u5728\u5F39\u51FA\u83DC\u5355\u4E2D\u6216\u5FEB\u901F\u5207\u6362\u4E2D\u66F4\u6539\u60C5\u666F\u6A21\u5F0F\u65F6\uFF0C\u5237\u65B0\u5F53\u524D\u6807\u7B7E\u9875\u3002" + "message": "当在弹出菜单中或快速切换中更改情景模式时,刷新当前标签页。" }, "options_reloadEvery": { - "message": "\u81EA\u52A8\u66F4\u65B0\u95F4\u9694" + "message": "自动更新间隔" }, "options_reloadEvery_help": { - "message": "\u81EA\u52A8\u66F4\u65B0\u89C4\u5219\u5217\u8868\u7684\u9891\u7387\u3002" + "message": "自动更新规则列表的频率。" }, "options_resetOptions": { - "message": "\u91CD\u7F6E\u9009\u9879" + "message": "重置选项" }, "options_restoreBackup": { - "message": "\u5728\u7EBF\u6062\u590D\u5907\u4EFD" + "message": "在线恢复备份" }, "options_restoreBackup_help": { - "message": "\u5907\u4EFD\u6587\u4EF6\u5730\u5740 (e.g. 'http://iewb.net/switchy.bak')" + "message": "备份文件地址 (e.g. 'http://iewb.net/switchy.bak')" }, "options_restoreLocal": { - "message": "\u4ECE\u6587\u4EF6\u6062\u590D" + "message": "从文件恢复" }, "options_restoreLocal_help": { - "message": "\u4ECE\u672C\u5730\u5907\u4EFD\u6587\u4EF6\u4F9B\u6062\u590D谷歌访问助手\u914D\u7F6E\u3002" + "message": "从本地备份文件供恢复谷歌访问助手配置。" }, "options_revertProxyChanges": { - "message": "\u64A4\u6D88\u5176\u4ED6\u6269\u5C55\u5BF9\u4EE3\u7406\u7684\u66F4\u6539\u3002" + "message": "撤消其他扩展对代理的更改。" }, "options_revertProxyChanges_help": { - "message": "\u6062\u590D\u88AB\u5176\u5B83\u5E94\u7528\u7A0B\u5E8F\u66F4\u6539\u7684\u4EE3\u7406\u8BBE\u7F6E\u3002" + "message": "恢复被其它应用程序更改的代理设置。" }, "options_ruleList": { - "message": "\u5728\u7EBF\u89C4\u5219\u5217\u8868" + "message": "在线规则列表" }, "options_ruleListProxyProfile_help": { - "message": "\u5F53\u5728\u7EBF\u89C4\u5219\u5217\u8868\u4E2D\u7684\u4EFB\u4F55\u89C4\u5219\u5339\u914D\u65F6\uFF0C\u4F7F\u7528\u6B64\u60C5\u666F\u6A21\u5F0F\u3002" + "message": "当在线规则列表中的任何规则匹配时,使用此情景模式。" }, "options_ruleListUrl": { - "message": "\u89C4\u5219\u5217\u8868URL" + "message": "规则列表URL" }, "options_ruleListUrl_help": { - "message": "\u89C4\u5219\u5217\u8868\u7684\u5730\u5740(\u4E0D\u80FD\u4F7F\u7528\u672C\u5730\u6587\u4EF6)\u3002" + "message": "规则列表的地址(不能使用本地文件)。" }, "options_ruleList_help": { - "message": "\u5BFC\u5165\u5728\u7EBF\u89C4\u5219\u5217\u8868\u3002" + "message": "导入在线规则列表。" }, "options_ruleName": { - "message": "\u89C4\u5219\u540D\u79F0" + "message": "规则名称" }, "options_save": { - "message": "\u4FDD\u5B58" + "message": "保存" }, "options_socks4": { "message": "SOCKS v4" @@ -318,132 +318,132 @@ "message": "SOCKS v5" }, "options_socksHost": { - "message": "SOCKS \u4EE3\u7406" + "message": "SOCKS 代理" }, "options_startupProfile": { - "message": "\u542F\u52A8\u60C5\u666F\u6A21\u5F0F\uFF1A" + "message": "启动情景模式:" }, "options_startupProfile_help": { - "message": "\u6269\u5C55\u542F\u52A8\u65F6\u5E94\u7528\u7684\u60C5\u666F\u6A21\u5F0F\u3002" + "message": "扩展启动时应用的情景模式。" }, "options_switchRules": { - "message": "\u5207\u6362\u89C4\u5219" + "message": "切换规则" }, "options_switchRulesEnable": { - "message": "\u542F\u7528\u5207\u6362\u89C4\u5219" + "message": "启用切换规则" }, "options_switchRulesEnable_help": { - "message": "\u003Cp\u003E\u5207\u6362\u89C4\u5219\u6307\u5B9A\u54EA\u4E2A\u4EE3\u7406\u5E94\u8BE5\u7528\u4E8E\u6BCF\u4E00\u4E2A\u7F51\u5740\u3002\u003C/p\u003E\u003Chr /\u003E\r\n\u003Cp\u003E\u8FD9\u4E2A\u9009\u9879\u88AB\u6FC0\u6D3B\u65F6,\u4F60\u53EF\u4EE5\u5728\u5F39\u51FA\u83DC\u5355\u770B\u5230\u4E24\u4E2A\u9879\u76EE\uFF1A\u003C/p\u003E\r\n\u003Ctable\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u81EA\u52A8\u6A21\u5F0F\u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u70B9\u51FB\u8FD9\u4E2A\u9879\u76EE\u5C06\u542F\u52A8\u5F00\u5173\u7684\u89C4\u5219\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u65B0\u89C4\u5219\u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u4E3A\u5F53\u524D\u7684\u7F51\u7AD9\u5FEB\u901F\u589E\u52A0\u4E00\u4E2A\u65B0\u7684\u5207\u6362\u89C4\u5219\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\u003C/table\u003E" + "message": "\u003Cp>切换规则指定哪个代理应该用于每一个网址。\u003C/p>\u003Chr />\r\n\u003Cp>这个选项被激活时,你可以在弹出菜单看到两个项目:\u003C/p>\r\n\u003Ctable>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>自动模式\u003C/em>\u003C/td>\r\n\t\t\u003Ctd>点击这个项目将启动开关的规则。\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>新规则\u003C/em>\u003C/td>\r\n\t\t\u003Ctd>为当前的网站快速增加一个新的切换规则。\u003C/td>\r\n\t\u003C/tr>\r\n\u003C/table>" }, "options_tabGeneral": { - "message": "\u901A\u7528\u8BBE\u7F6E" + "message": "通用设置" }, "options_tabImportExport": { - "message": "\u5BFC\u5165/\u5BFC\u51FA" + "message": "导入/导出" }, "options_tabNetwork": { - "message": "\u7F51\u7EDC" + "message": "网络" }, "options_tabProxyProfiles": { - "message": "\u60C5\u666F\u6A21\u5F0F" + "message": "情景模式" }, "options_tabSwitchRules": { - "message": "\u5207\u6362\u89C4\u5219" + "message": "切换规则" }, "options_untitledProfile": { - "message": "[\u672A\u547D\u540D]" + "message": "[未命名]" }, "options_updateListNow": { - "message": "\u7ACB\u5373\u66F4\u65B0\u5217\u8868" + "message": "立即更新列表" }, "options_urlPattern": { - "message": "URL \u6A21\u5F0F" + "message": "URL 模式" }, "options_urlPattern_help": { - "message": "\u003Cp\u003E\u8BE5\u7F51\u9875\u7684URL\u6A21\u5F0F\u3002\u003C/p\u003E\u003Chr /\u003E\r\n\u003Ctable\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd colspan='2'\u003E\u003Cstrong\u003E\u914D\u7F6E\u53C2\u8003\u003C/strong\u003E\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u661F\u53F7 (*) \u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u4EE3\u8868\u96F6\u4E2A\u6216\u591A\u4E2A\u5B57\u7B26\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E\u95EE\u53F7 (?) \u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u4EE3\u8868\u4E00\u4E2A\u5B57\u7B26\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd colspan='2'\u003E\u003Cbr /\u003E\u003Cstrong\u003E\u8303\u4F8B\u003C/strong\u003E\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003E*://www.google.com/* \u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u5339\u914D\u6240\u6709\u7F51\u5740(HTTP\u548CHTTPS)\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003Ehttps://*.google.com/foo*bar \u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003Ehttps\u914D\u7F6E\u8DEF\u5F84\u4E2D\u7684\u4EFB\u4F55\u5B50\u57DF\u540D\u4E0E\u5B50\u76EE\u5F55\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\t\u003Ctr\u003E\r\n\t\t\u003Ctd\u003E\u003Cem\u003Ehttp://example.org/foo/bar.html \u003C/em\u003E\u003C/td\u003E\r\n\t\t\u003Ctd\u003E\u7CBE\u786E\u5339\u914D\u6307\u5B9A\u7684URL\u3002\u003C/td\u003E\r\n\t\u003C/tr\u003E\r\n\u003C/table\u003E" + "message": "\u003Cp>该网页的URL模式。\u003C/p>\u003Chr />\r\n\u003Ctable>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd colspan='2'>\u003Cstrong>配置参考\u003C/strong>\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>星号 (*) \u003C/em>\u003C/td>\r\n\t\t\u003Ctd>代表零个或多个字符。\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>问号 (?) \u003C/em>\u003C/td>\r\n\t\t\u003Ctd>代表一个字符。\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd colspan='2'>\u003Cbr />\u003Cstrong>范例\u003C/strong>\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>*://www.google.com/* \u003C/em>\u003C/td>\r\n\t\t\u003Ctd>匹配所有网址(HTTP和HTTPS)\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>https://*.google.com/foo*bar \u003C/em>\u003C/td>\r\n\t\t\u003Ctd>https配置路径中的任何子域名与子目录。\u003C/td>\r\n\t\u003C/tr>\r\n\t\u003Ctr>\r\n\t\t\u003Ctd>\u003Cem>http://example.org/foo/bar.html \u003C/em>\u003C/td>\r\n\t\t\u003Ctd>精确匹配指定的URL。\u003C/td>\r\n\t\u003C/tr>\r\n\u003C/table>" }, "options_useSameProxy": { - "message": "\u5BF9\u6240\u6709\u534F\u8BAE\u5747\u4F7F\u7528\u76F8\u540C\u7684\u4EE3\u7406\u670D\u52A1\u5668" + "message": "对所有协议均使用相同的代理服务器" }, "options_vpnDialupProxy": { - "message": "VPN/\u62E8\u53F7\u7F51\u7EDC\u7684\u4EE3\u7406" + "message": "VPN/拨号网络的代理" }, "popup_aboutSwitchy": { - "message": "\u5173\u4E8E 谷歌访问助手" + "message": "关于 谷歌访问助手" }, "popup_add": { - "message": "\u6DFB\u52A0" + "message": "添加" }, "popup_autoSwitchMode": { - "message": "\u81EA\u52A8\u5207\u6362\u6A21\u5F0F" + "message": "自动切换模式" }, "popup_autoSwitchMode_help": { - "message": "\u4E3A\u6BCF\u4E2A\u7F51\u7AD9\u81EA\u52A8\u9009\u62E9\u5408\u9002\u7684\u60C5\u666F\u6A21\u5F0F\u3002" + "message": "为每个网站自动选择合适的情景模式。" }, "popup_basedOn": { "message": "免费访问 谷歌chrome商店,谷歌搜索,gmail邮箱" }, "popup_cancel": { - "message": "\u53D6\u6D88" + "message": "取消" }, "popup_chromeExtensionGallery": { - "message": "\u82F1\u6587\u7248\u672C" + "message": "英文版本" }, "popup_copyright": { "message": "Copyright © 2014 ggfwzs.com." }, "popup_developedBy": { - "message": "\u5F00\u53D1\u4EBA\u5458" + "message": "开发人员" }, "popup_duplicateRules": { - "message": "* \u5DF2\u7ECF\u5B58\u5728\u6A21\u5F0F\u76F8\u540C\u7684\u89C4\u5219\u4E86\u3002" + "message": "* 已经存在模式相同的规则了。" }, "popup_newRule": { - "message": "\u65B0\u5EFA\u89C4\u5219" + "message": "新建规则" }, "popup_newRule_help": { - "message": "\u4E3A\u5F53\u524D\u7F51\u7AD9\u5FEB\u901F\u6DFB\u52A0\u65B0\u89C4\u5219\u3002" + "message": "为当前网站快速添加新规则。" }, "popup_newTempRule2_help": { - "message": "\u5BF9\u5F53\u524D\u57DF\u540D\u4E34\u65F6\u5E94\u7528\u7684\u4EE3\u7406\u60C5\u666F\u6A21\u5F0F\u3002" + "message": "对当前域名临时应用的代理情景模式。" }, "popup_newTempRule_help": { - "message": "\u4E3A\u5F53\u524D\u57DF\u540D\u6DFB\u52A0\u4E00\u6761\u4E34\u65F6\u89C4\u5219\u3002" + "message": "为当前域名添加一条临时规则。" }, "popup_options": { - "message": "\u9009\u9879" + "message": "选项" }, "popup_or": { "message": "or" }, "popup_supportAndBugReports": { - "message": "\u6280\u672F\u652F\u6301 & Bug\u53CD\u9988" + "message": "技术支持 & Bug反馈" }, "popup_switchyPlusWebPage": { - "message": "SwitchyPlus \u4E3B\u9875" + "message": "SwitchyPlus 主页" }, "popup_switchyWebPage": { "message": "谷歌访问助手 已激活" }, "popup_version": { - "message": "\u7248\u672C" + "message": "版本" }, "proxy_autoSwitch": { - "message": "\u81EA\u52A8\u5207\u6362" + "message": "自动切换" }, "proxy_autoSwitchIconTitle": { - "message": "\u81EA\u52A8\u5207\u6362\u6A21\u5F0F\n\u672C\u9875\u60C5\u666F\u6A21\u5F0F: $1" + "message": "自动切换模式\n本页情景模式: $1" }, "proxy_directConnection": { "message": "关闭翻墙" }, "proxy_directConnection_help": { - "message": "\u7981\u7528\u4EE3\u7406" + "message": "禁用代理" }, "proxy_systemProxy": { - "message": "\u4F7F\u7528\u7CFB\u7EDF\u4EE3\u7406\u8BBE\u7F6E" + "message": "使用系统代理设置" }, "proxy_systemProxy_help": { - "message": "\u4F7F\u7528\u7CFB\u7EDF\u4EE3\u7406\u8BBE\u7F6E (\u9700\u8981\u91CD\u542F)" + "message": "使用系统代理设置 (需要重启)" } } diff --git a/_metadata/computed_hashes.json b/_metadata/computed_hashes.json new file mode 100644 index 0000000..90828ee --- /dev/null +++ b/_metadata/computed_hashes.json @@ -0,0 +1 @@ +{"file_hashes":[{"block_hashes":["FhpMXMkmfVLfN6EfMj7JVTQFUxJfaGVGvxI+mdPTyZU=","qpvE1WsVeaeGC1DMt1H4uWsaAmXvUBI7GsA1kDT7AiY=","L/U3RlQZOyQOOAtBHkAq/2GvfUqJKtUKOh9L8IQ0Lao=","oxhSgC9lekEZSlCkRGK0YuvNMZ6SHuXJevVPuQlyrYM=","YCNUajnw7OtpuSzQkoqbL5d40LtCOu9b4oFXZz5XYK0=","FeNKQMcsXpcD0IWqYi13Bljkk+cI0QFvMqcCY11xoAM=","YQxvmq8GOcmei3gTb7r2+i/bZL13ULpcZHREZYU4MBQ=","XUlkMU+WrasaJrKVxU6NacM0TBRrB3WjiFL4pSkUBQQ=","mUZUYtEHy17FarRL39QUt+i0m3JkfMEnLJHidbR73uE=","soYgbQt1PEBUqak+KHr7ql3rSru6bky3mHoBvwz700E=","dvE1LF5ef+gK2dYflhooe41V4YAAaoNWOpOsh+L3HhM=","ZveeYU+H5Xg0FgF8osEU5ICMW3HYWefidq23dp9vqQw=","sOBXE4G7IWSS5ds/NmMbPNfdy/rz2AVl1EjsBdNglKs=","XRO7s6C0tNpHet6l1/MujHI2h7mwAtiMXjemog/Igvo=","jRrI/v7twwKMRGSddjWEQjNNl1xwZzsuahphG3XgwDU=","vX1AJBr6dnDi8fsnRgRt3Y8KodVCm/LKyCWhhwS7AWs="],"block_size":4096,"path":"bg.js"},{"block_hashes":["1W8lRzzN+uNqGoFlAXm9TIV8Np5nBSni7z6gYR0ZM2o=","ywTJDI27gHlp9epUEyfgzO722ohC9uf3x52XD5unSZg="],"block_size":4096,"path":"first.html"},{"block_hashes":["AzIVbwnGgUcZZE8qvhq69bnWcuFUOrocU4EdAUlqPgs="],"block_size":4096,"path":"icons/icon-16.png"},{"block_hashes":["Pm4dTCsy7DQG4IoKUKnENxvrGrrZSN9qdgHdpxZbGdw="],"block_size":4096,"path":"icons/icon-32.png"},{"block_hashes":["bwvloqmTWtdVdKPLpyWSoa0Wem6LFmKKgXW+izDPlX0="],"block_size":4096,"path":"icons/icon-40.png"},{"block_hashes":["IQwjAxWUSjCjdObEJRiM3At/bvw1xYsO/tXExTM3YSo="],"block_size":4096,"path":"icons/inactive.png"},{"block_hashes":["D20+X5/4YK65LOIQUmFBJyxNUN7akD/uwbEvOKX3gpc=","vzP1Y6LxvrKPEuZuk1Bsv6NBG8w3Qj6STsnB1pwob4I="],"block_size":4096,"path":"img/abs-icon-big.png"},{"block_hashes":["sGmEINSc5DmKIK9V/h25iHv6slj0A5ammqBRUut3LR0=","XkdGylMw4pUFW60tZLlIC8lkqu7btcx8t93ug3a/1RI="],"block_size":4096,"path":"img/chrome.png"},{"block_hashes":["Uvg3TypNiYJP1Qfar4SLiCzuYlbLNEcbEkg3FhlYtzI="],"block_size":4096,"path":"img/gmail.png"},{"block_hashes":["1h6aVyfdmpp3Ox2xHvTcrzGBhcrK3uyUvzSK+9+IZTQ=","rC/jbBm3JCFyQ8ZZUcS5o68L/x5JIqLiFETHLElw1F8=","2kqddJ6ZpFpvrfS7oQI6wWnJRObCbMzMEbDKMizFT9o="],"block_size":4096,"path":"img/google.png"},{"block_hashes":["14WS0tmyf8RljeiqcvykE+4BkzjRVVyrnNoPFbu/O2c="],"block_size":4096,"path":"img/googleplus.png"},{"block_hashes":["+Az5CfAUMGtBZoTLjt6Wgj0LjFI+45xMTFhHtxCjuFY="],"block_size":4096,"path":"img/settings.png"},{"block_hashes":["OlIDRBgjD30eMBOLxak4QSD61DGhVVLUN5jWuXOLeb8=","B/JiZ6eAiybfAf++SaEUk4zAr15+WEETt3+XcWq/eK0=","OOX05uapJ8GloC9YbZ6y4hYtYi3+9HJtS0q5s0GIwjQ=","I3A1GhcimId9HpNGcmVNrZWIn82z9N3G3qYe67Up7hc=","+7V4N2XVLp2EMyFFla5Jg6K7ppvJs9UPvCFFHYCT3lM=","r4s11+tAyb3/JCanuvx8sW3PDYIrSgcKQUdOOnlqtec=","Db2wMeh9JD1J5/LSSb5ncTD04qY6ZuRK9HdDM2vElEo=","HnEBhBJ5fMHgoplJbI3kPL2aMvgFSa/u1M+RV/VW3TM="],"block_size":4096,"path":"lib/sea.js"},{"block_hashes":["2/fQhtbj8t84t/YF62ABG6GTxQiomgaGPviYva836pI=","WcFu3PLbXNKrs0Hb6ezpxhFuCFtMRUppJDU2go8e8+k="],"block_size":4096,"path":"options.html"},{"block_hashes":["GZpV6oKyIQRT5U/UNHwD8QB92Gf9oOE2wLAq60bEhfk=","iePzOafJinDC1+LXBczE5aWYU0xQvEvC3ma9BNow19E=","dgW0dKjar/s0oZReOcH6yMOZ2GAaJU5GRqcTu2HayRU=","AhpseuFiDgbksyAQL4GIatFw62zfo5sg7Cd9IBLVfPM=","5vtsaq78yxNgL0gzg6D3qud5io7DB31CLpEKfNf+2cE=","QJNynWBl9AK8SXV27tGTXoRTcCUnMgbro38bRIEEKrI=","mFl4rmKn1apt+1nZM1O6ihgDbiNVNpSCCfVrcnRqp+8="],"block_size":4096,"path":"options.js"},{"block_hashes":["QvTHv63jzQOZMGA1Kb26fRTaDvBwg+ccY7w+eVnw7iw=","qOKVQe9xVPVisZtniUs1T+jeXbnUHQpNchC1Uf+DOFQ="],"block_size":4096,"path":"popup.html"},{"block_hashes":["8bAmyaiJ7EAewKpHMItdXIn5LWmNu60Lf66XCeWPX20="],"block_size":4096,"path":"popup.js"},{"block_hashes":["NztlOUpJMEuhFY5CidYtH6Xa/LhD4BVZke3Rq+SonAw="],"block_size":4096,"path":"straightGoogle.js"},{"block_hashes":["EdXYjlINeIc5s5/S44OJ+CzLEUZdiTmnQensm8aKSl8="],"block_size":4096,"path":"warming.html"}],"version":2} \ No newline at end of file diff --git a/_metadata/verified_contents.json b/_metadata/verified_contents.json new file mode 100644 index 0000000..3364212 --- /dev/null +++ b/_metadata/verified_contents.json @@ -0,0 +1 @@ +[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJfbG9jYWxlcy9lbi9tZXNzYWdlcy5qc29uIiwicm9vdF9oYXNoIjoiMnJUQXZGa3RWZG42YUlvV1FfNThvelVTTXJ0N2UwNXBDX21zdzliVXJVOCJ9LHsicGF0aCI6Il9sb2NhbGVzL3poX0NOL21lc3NhZ2VzLmpzb24iLCJyb290X2hhc2giOiIyclRBdkZrdFZkbjZhSW9XUV81OG96VVNNcnQ3ZTA1cENfbXN3OWJVclU4In0seyJwYXRoIjoiYmcuanMiLCJyb290X2hhc2giOiJwbmxZR2dTT0RxYjh3UWpUYnFBcUUwVlNxeUJUbjdCOU9sWFJNYkNrdl9RIn0seyJwYXRoIjoiZmlyc3QuaHRtbCIsInJvb3RfaGFzaCI6Ilh2ZnZXaHZ2V3BDQzBXV0Q4SmpUUVlXRWxTbWk5NGRhSjkxM1VQdzBfWHMifSx7InBhdGgiOiJpY29ucy9pY29uLTEyOC5wbmciLCJyb290X2hhc2giOiJrazZfLTdOemdDQWFhdkJ1UXVJOE93ZzRYbXNXMFNPUTFmQ0hsbk9oa3JVIn0seyJwYXRoIjoiaWNvbnMvaWNvbi0xNi5wbmciLCJyb290X2hhc2giOiJBeklWYnduR2dVY1paRThxdmhxNjlibldjdUZVT3JvY1U0RWRBVWxxUGdzIn0seyJwYXRoIjoiaWNvbnMvaWNvbi0zMi5wbmciLCJyb290X2hhc2giOiJQbTRkVENzeTdEUUc0SW9LVUtuRU54dnJHcnJaU045cWRnSGRweFpiR2R3In0seyJwYXRoIjoiaWNvbnMvaWNvbi00MC5wbmciLCJyb290X2hhc2giOiJid3Zsb3FtVFd0ZFZkS1BMcHlXU29hMFdlbTZMRm1LS2dYVy1pekRQbFgwIn0seyJwYXRoIjoiaWNvbnMvaWNvbi5wbmciLCJyb290X2hhc2giOiJDVW5wQ0dWaS0yMV82N0FzdFpNZldFQ3lMa1pvNVZ1b0p0SVZEdDdHVVVVIn0seyJwYXRoIjoiaWNvbnMvaW5hY3RpdmUucG5nIiwicm9vdF9oYXNoIjoiSVF3akF4V1VTakNqZE9iRUpSaU0zQXRfYnZ3MXhZc09fdFhFeFRNM1lTbyJ9LHsicGF0aCI6ImltZy9hYnMtaWNvbi1iaWcucG5nIiwicm9vdF9oYXNoIjoiTG1ZNGNGblBadWlpLUVTSnZOTUN3aTlXSHAtOHdJN19sNjZxZXI4VmRDVSJ9LHsicGF0aCI6ImltZy9jaHJvbWUucG5nIiwicm9vdF9oYXNoIjoicWFVUWstcEJNcUhOd2pBNmtreDlzSDE2b1JoMEVVNzZnSjVBWHdEVjB2ZyJ9LHsicGF0aCI6ImltZy9nbWFpbC5wbmciLCJyb290X2hhc2giOiJVdmczVHlwTmlZSlAxUWZhcjRTTGlDenVZbGJMTkVjYkVrZzNGaGxZdHpJIn0seyJwYXRoIjoiaW1nL2dvb2dsZS5wbmciLCJyb290X2hhc2giOiJkWERoRjhkOUJPbkx1VFNJZ0VhZjRheEktSUVaekdYcUgyemFjSWJPTnNjIn0seyJwYXRoIjoiaW1nL2dvb2dsZXBsdXMucG5nIiwicm9vdF9oYXNoIjoiMTRXUzB0bXlmOFJsamVpcWN2eWtFLTRCa3pqUlZWeXJuTm9QRmJ1X08yYyJ9LHsicGF0aCI6ImltZy9zZXR0aW5ncy5wbmciLCJyb290X2hhc2giOiItQXo1Q2ZBVU1HdEJab1RManQ2V2dqMExqRkktNDV4TVRGaEh0eENqdUZZIn0seyJwYXRoIjoibGliL3NlYS5qcyIsInJvb3RfaGFzaCI6Im80Z2FkSkVUTU13TTEyRVlJVUY5T0ktQTg4d1NFNHdkN05tclhTeUhNTVkifSx7InBhdGgiOiJtYW5pZmVzdC5qc29uIiwicm9vdF9oYXNoIjoicTB5VGU4Z1ZNNHRDakhrbTEzVXQ2MnRlQlNwUXdfU3VrTTRzRlVuMlJPMCJ9LHsicGF0aCI6Im9wdGlvbnMuaHRtbCIsInJvb3RfaGFzaCI6IjN4Vi1STlNUQjZ5dVBCNlE3Z05EMzhIbnhDOURZMVEtcXl2djBLQ1R0ZUUifSx7InBhdGgiOiJvcHRpb25zLmpzIiwicm9vdF9oYXNoIjoicHR0WkFvaVBQM3JKaE1DZVY5SzlLR1FnYzNmQkV2THNuU3p5dk1CVWZqQSJ9LHsicGF0aCI6InBvcHVwLmh0bWwiLCJyb290X2hhc2giOiJjczlOcEtwZW00VzhITndTXzh4TjVnLXFDWjh1YnJmZ0FiQzVTdWhuMUZjIn0seyJwYXRoIjoicG9wdXAuanMiLCJyb290X2hhc2giOiI4YkFteWFpSjdFQWV3S3BITUl0ZFhJbjVMV21OdTYwTGY2NlhDZVdQWDIwIn0seyJwYXRoIjoic3RyYWlnaHRHb29nbGUuanMiLCJyb290X2hhc2giOiJOenRsT1VwSk1FdWhGWTVDaWRZdEg2WGFfTGhENEJWWmtlM1JxLVNvbkF3In0seyJwYXRoIjoid2FybWluZy5odG1sIiwicm9vdF9oYXNoIjoiRWRYWWpsSU5lSWM1czVfUzQ0T0otQ3pMRVVaZGlUbW5RZW5zbThhS1NsOCJ9XSwiZm9ybWF0IjoidHJlZWhhc2giLCJoYXNoX2Jsb2NrX3NpemUiOjQwOTZ9XSwiaXRlbV9pZCI6ImdvY2tsYWJvZ2dqZmtvbGFrbnBiaGRkYmFvcGNlcGZwIiwiaXRlbV92ZXJzaW9uIjoiMi4zLjAiLCJwcm90b2NvbF92ZXJzaW9uIjoxfQ","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"WuAGoF1dAKI0oUr-rtTwoWVpaZPkK8hSQBNzB6XtCtkmFxNrM5SJRWlKWZjfDEB9F9_3FYUEeU25G4_l_eSGIO_smVgX9H4JKfv314cTLt3cipv7uHKeY-unSN2BVqiFEOjlguWfiGUlNYAaWdNvooMv5KJEEebc2uZZlebyQjNOKUU_Sgjil2gA-lG-sDlFO6Zlkf1-jEamF8mUruIdIk9EgD9Ndv8J81XSA9HJW2RkBfFUSmoyr8B3mHm8a0dSvnpcb1ym2p5JJtM8EGudkKW54Jbg6V-1MkeUu8P7PF-Uy74rtzhFo0K7ccuKNRYWcbZpFtTBtWBcHBvLAnTIrQ"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"WD54GtUopsKqmXdF4HzOQgM2Dgqz-CQO4_wAny2_TwXH9zC18Mv2KbBJoLIuhMzQLyN9O8upiQkVKWNM9_4evQR3aUxLwrx-DHcVoVlXIoB2HtTCLsCclQd6BWVHKEXWRyc2FGA8n08nxpR1Et1TxKMi__QxLFhz7a_-R1ukuGUXMxAtEr0MG7jcYwOOv7P3u8XQ2EfP9at5VfAGOWGrWb6ELAn01yu8a2i9LpwS7OEJSWQUm9ykpawQWHOE3f6Z93PAt041MhtdF_SXjdur_n6k36Eta0uYqE_n_uP2Y7XYUIq1TBmjPxjDpe2Ll0v7_4W6pzOIZtR1nOy_KjVcOA"}]}}] \ No newline at end of file diff --git a/bg.js b/bg.js index 49b91a0..f9e62dc 100644 --- a/bg.js +++ b/bg.js @@ -1,3066 +1 @@ -var needShowWarming = !1; (function() { - chrome.proxy.settings.set({ - value: { - mode: "system" - }, - scope: "regular" - }, - function() { - console.info("- proxy system! - ") - }) -})(); -var Zepto = function() { - function d(a) { - return null == a ? String(a) : L[S.call(a)] || "object" - } - function t(a) { - return "function" == d(a) - } - function n(a) { - return null != a && a == a.window - } - function r(a) { - return null != a && a.nodeType == a.DOCUMENT_NODE - } - function w(a) { - return "object" == d(a) - } - function p(a) { - return w(a) && !n(a) && Object.getPrototypeOf(a) == Object.prototype - } - function m(a) { - return "number" == typeof a.length - } - function u(c) { - return a.call(c, - function(a) { - return null != a - }) - } - function v(a) { - return a.replace(/::/g, "/").replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z\d])([A-Z])/g, "$1_$2").replace(/_/g, "-").toLowerCase() - } - function C(a) { - return a in k ? k[a] : k[a] = new RegExp("(^|\\s)" + a + "(\\s|$)") - } - function A(a, c) { - return "number" != typeof c || z[v(a)] ? c: c + "px" - } - function b(a) { - return "children" in a ? y.call(a.children) : q.map(a.childNodes, - function(a) { - if (1 == a.nodeType) return a - }) - } - function l(a, c, e) { - for (B in c) e && (p(c[B]) || I(c[B])) ? (p(c[B]) && !p(a[B]) && (a[B] = {}), I(c[B]) && !I(a[B]) && (a[B] = []), l(a[B], c[B], e)) : c[B] !== E && (a[B] = c[B]) - } - function h(a, c) { - return null == c ? q(a) : q(a).filter(c) - } - function f(a, c, e, b) { - return t(c) ? c.call(a, e, b) : c - } - function g(a, c) { - var e = a.className || "", - b = e && e.baseVal !== E; - if (c === E) return b ? e.baseVal: e; - b ? e.baseVal = c: a.className = c - } - function x(a) { - try { - return a ? "true" == a || ("false" == a ? !1 : "null" == a ? null: +a + "" == a ? +a: /^[\[\{]/.test(a) ? q.parseJSON(a) : a) : a - } catch(c) { - return a - } - } - function H(a, c) { - c(a); - for (var e = 0, - b = a.childNodes.length; e < b; e++) H(a.childNodes[e], c) - } - var E, B, q, F, G = [], - y = G.slice, - a = G.filter, - c = window.document, - e = {}, - k = {}, - z = { - "column-count": 1, - columns: 1, - "font-weight": 1, - "line-height": 1, - opacity: 1, - "z-index": 1, - zoom: 1 - }, - M = /^\s*<(\w+|!)[^>]*>/, - T = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, - U = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, - O = /^(?:body|html)$/i, - V = /([A-Z])/g, - W = "val css html text data width height offset".split(" "), - N = c.createElement("table"), - P = c.createElement("tr"), - Q = { - tr: c.createElement("tbody"), - tbody: N, - thead: N, - tfoot: N, - td: P, - th: P, - "*": c.createElement("div") - }, - X = /complete|loaded|interactive/, - Y = /^[\w-]*$/, - L = {}, - S = L.toString, - D = {}, - J, - K, - R = c.createElement("div"), - Z = { - tabindex: "tabIndex", - readonly: "readOnly", - "for": "htmlFor", - "class": "className", - maxlength: "maxLength", - cellspacing: "cellSpacing", - cellpadding: "cellPadding", - rowspan: "rowSpan", - colspan: "colSpan", - usemap: "useMap", - frameborder: "frameBorder", - contenteditable: "contentEditable" - }, - I = Array.isArray || - function(a) { - return a instanceof Array - }; - D.matches = function(a, c) { - if (!c || !a || 1 !== a.nodeType) return ! 1; - var e = a.webkitMatchesSelector || a.mozMatchesSelector || a.oMatchesSelector || a.matchesSelector; - if (e) return e.call(a, c); - var b; - b = a.parentNode; (e = !b) && (b = R).appendChild(a); - b = ~D.qsa(b, c).indexOf(a); - e && R.removeChild(a); - return b - }; - J = function(a) { - return a.replace(/-+(.)?/g, - function(a, c) { - return c ? c.toUpperCase() : "" - }) - }; - K = function(c) { - return a.call(c, - function(a, e) { - return c.indexOf(a) == e - }) - }; - D.fragment = function(a, e, b) { - var k, z, f; - T.test(a) && (k = q(c.createElement(RegExp.$1))); - k || (a.replace && (a = a.replace(U, "<$1>")), e === E && (e = M.test(a) && RegExp.$1), e in Q || (e = "*"), f = Q[e], f.innerHTML = "" + a, k = q.each(y.call(f.childNodes), - function() { - f.removeChild(this) - })); - p(b) && (z = q(k), q.each(b, - function(a, c) { - if ( - 1 < W.indexOf(a)) z[a](c); - else z.attr(a, c) - })); - return k - }; - D.Z = function(a, c) { - a = a || []; - a.__proto__ = q.fn; - a.selector = c || ""; - return a - }; - D.isZ = function(a) { - return a instanceof D.Z - }; - D.init = function(a, e) { - var b; - if (a) if ("string" == typeof a) if (a = a.trim(), "<" == a[0] && M.test(a)) b = D.fragment(a, RegExp.$1, e), - a = null; - else { - if (e !== E) return q(e).find(a); - b = D.qsa(c, a) - } else { - if (t(a)) return q(c).ready(a); - if (D.isZ(a)) return a; - if (I(a)) b = u(a); - else if (w(a)) b = [a], - a = null; - else if (M.test(a)) b = D.fragment(a.trim(), RegExp.$1, e), - a = null; - else { - if (e !== E) return q(e).find(a); - b = D.qsa(c, a) - } - } else return D.Z(); - return D.Z(b, a) - }; - q = function(a, c) { - return D.init(a, c) - }; - q.extend = function(a) { - var c, e = y.call(arguments, 1); - "boolean" == typeof a && (c = a, a = e.shift()); - e.forEach(function(e) { - l(a, e, c) - }); - return a - }; - D.qsa = function(a, c) { - var e, b = "#" == c[0], - k = !b && "." == c[0], - z = b || k ? c.slice(1) : c, - f = Y.test(z); - return r(a) && f && b ? (e = a.getElementById(z)) ? [e] : [] : 1 !== a.nodeType && 9 !== a.nodeType ? [] : y.call(f && !b ? k ? a.getElementsByClassName(z) : a.getElementsByTagName(c) : a.querySelectorAll(c)) - }; - q.contains = c.documentElement.contains ? - function(a, c) { - return a !== c && a.contains(c) - }: function(a, c) { - for (; c && (c = c.parentNode);) if (c === a) return ! 0; - return ! 1 - }; - q.type = d; - q.isFunction = t; - q.isWindow = n; - q.isArray = I; - q.isPlainObject = p; - q.isEmptyObject = function(a) { - for (var c in a) return ! 1; - return ! 0 - }; - q.inArray = function(a, c, e) { - return G.indexOf.call(c, a, e) - }; - q.camelCase = J; - q.trim = function(a) { - return null == a ? "": String.prototype.trim.call(a) - }; - q.uuid = 0; - q.support = {}; - q.expr = {}; - q.map = function(a, c) { - var e, b = [], - k; - if (m(a)) for (k = 0; k < a.length; k++) e = c(a[k], k), - null != e && b.push(e); - else for (k in a) e = c(a[k], k), - null != e && b.push(e); - return 0 < b.length ? q.fn.concat.apply([], b) : b - }; - q.each = function(a, c) { - var e; - if (m(a)) for (e = 0; e < a.length && !1 !== c.call(a[e], e, a[e]); e++); - else for (e in a) if (!1 === c.call(a[e], e, a[e])) break; - return a - }; - q.grep = function(c, e) { - return a.call(c, e) - }; - window.JSON && (q.parseJSON = JSON.parse); - q.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), - function(a, c) { - L["[object " + c + "]"] = c.toLowerCase() - }); - q.fn = { - forEach: G.forEach, - reduce: G.reduce, - push: G.push, - sort: G.sort, - indexOf: G.indexOf, - concat: G.concat, - map: function(a) { - return q(q.map(this, - function(c, e) { - return a.call(c, e, c) - })) - }, - slice: function() { - return q(y.apply(this, arguments)) - }, - ready: function(a) { - X.test(c.readyState) && c.body ? a(q) : c.addEventListener("DOMContentLoaded", - function() { - a(q) - }, - !1); - return this - }, - get: function(a) { - return a === E ? y.call(this) : this[0 <= a ? a: a + this.length] - }, - toArray: function() { - return this.get() - }, - size: function() { - return this.length - }, - remove: function() { - return this.each(function() { - null != this.parentNode && this.parentNode.removeChild(this) - }) - }, - each: function(a) { - G.every.call(this, - function(c, e) { - return ! 1 !== a.call(c, e, c) - }); - return this - }, - filter: function(c) { - return t(c) ? this.not(this.not(c)) : q(a.call(this, - function(a) { - return D.matches(a, c) - })) - }, - add: function(a, c) { - return q(K(this.concat(q(a, c)))) - }, - is: function(a) { - return 0 < this.length && D.matches(this[0], a) - }, - not: function(a) { - var c = []; - if (t(a) && a.call !== E) this.each(function(e) { - a.call(this, e) || c.push(this) - }); - else { - var e = "string" == typeof a ? this.filter(a) : m(a) && t(a.item) ? y.call(a) : q(a); - this.forEach(function(a) { - 0 > e.indexOf(a) && c.push(a) - }) - } - return q(c) - }, - has: function(a) { - return this.filter(function() { - return w(a) ? q.contains(this, a) : q(this).find(a).size() - }) - }, - eq: function(a) { - return - 1 === a ? this.slice(a) : this.slice(a, +a + 1) - }, - first: function() { - var a = this[0]; - return a && !w(a) ? a: q(a) - }, - last: function() { - var a = this[this.length - 1]; - return a && !w(a) ? a: q(a) - }, - find: function(a) { - var c = this; - return a ? "object" == typeof a ? q(a).filter(function() { - var a = this; - return G.some.call(c, - function(c) { - return q.contains(c, a) - }) - }) : 1 == this.length ? q(D.qsa(this[0], a)) : this.map(function() { - return D.qsa(this, a) - }) : q() - }, - closest: function(a, c) { - var e = this[0], - b = !1; - for ("object" == typeof a && (b = q(a)); e && !(b ? 0 <= b.indexOf(e) : D.matches(e, a));) e = e !== c && !r(e) && e.parentNode; - return q(e) - }, - parents: function(a) { - for (var c = [], e = this; 0 < e.length;) e = q.map(e, - function(a) { - if ((a = a.parentNode) && !r(a) && 0 > c.indexOf(a)) return c.push(a), - a - }); - return h(c, a) - }, - parent: function(a) { - return h(K(this.pluck("parentNode")), a) - }, - children: function(a) { - return h(this.map(function() { - return b(this) - }), a) - }, - contents: function() { - return this.map(function() { - return y.call(this.childNodes) - }) - }, - siblings: function(c) { - return h(this.map(function(c, e) { - return a.call(b(e.parentNode), - function(a) { - return a !== e - }) - }), c) - }, - empty: function() { - return this.each(function() { - this.innerHTML = "" - }) - }, - pluck: function(a) { - return q.map(this, - function(c) { - return c[a] - }) - }, - show: function() { - return this.each(function() { - "none" == this.style.display && (this.style.display = ""); - if ("none" == getComputedStyle(this, "").getPropertyValue("display")) { - var a = this.style, - b = this.nodeName, - k, y; - e[b] || (k = c.createElement(b), c.body.appendChild(k), y = getComputedStyle(k, "").getPropertyValue("display"), k.parentNode.removeChild(k), "none" == y && (y = "block"), e[b] = y); - a.display = e[b] - } - }) - }, - replaceWith: function(a) { - return this.before(a).remove() - }, - wrap: function(a) { - var c = t(a); - if (this[0] && !c) var e = q(a).get(0), - b = e.parentNode || 1 < this.length; - return this.each(function(k) { - q(this).wrapAll(c ? a.call(this, k) : b ? e.cloneNode(!0) : e) - }) - }, - wrapAll: function(a) { - if (this[0]) { - q(this[0]).before(a = q(a)); - for (var c; (c = a.children()).length;) a = c.first(); - q(a).append(this) - } - return this - }, - wrapInner: function(a) { - var c = t(a); - return this.each(function(e) { - var b = q(this), - k = b.contents(); - e = c ? a.call(this, e) : a; - k.length ? k.wrapAll(e) : b.append(e) - }) - }, - unwrap: function() { - this.parent().each(function() { - q(this).replaceWith(q(this).children()) - }); - return this - }, - clone: function() { - return this.map(function() { - return this.cloneNode(!0) - }) - }, - hide: function() { - return this.css("display", "none") - }, - toggle: function(a) { - return this.each(function() { - var c = q(this); (a === E ? "none" == c.css("display") : a) ? c.show() : c.hide() - }) - }, - prev: function(a) { - return q(this.pluck("previousElementSibling")).filter(a || "*") - }, - next: function(a) { - return q(this.pluck("nextElementSibling")).filter(a || "*") - }, - html: function(a) { - return 0 in arguments ? this.each(function(c) { - var e = this.innerHTML; - q(this).empty().append(f(this, a, c, e)) - }) : 0 in this ? this[0].innerHTML: null - }, - text: function(a) { - return 0 in arguments ? this.each(function(c) { - c = f(this, a, c, this.textContent); - this.textContent = null == c ? "": "" + c - }) : 0 in this ? this[0].textContent: null - }, - attr: function(a, c) { - var e; - return "string" != typeof a || 1 in arguments ? this.each(function(e) { - if (1 === this.nodeType) if (w(a)) for (B in a) { - var b = B; - e = a[B]; - null == e ? this.removeAttribute(b) : this.setAttribute(b, e) - } else b = a, - e = f(this, c, e, this.getAttribute(a)), - null == e ? this.removeAttribute(b) : this.setAttribute(b, e) - }) : this.length && 1 === this[0].nodeType ? !(e = this[0].getAttribute(a)) && a in this[0] ? this[0][a] : e: E - }, - removeAttr: function(a) { - return this.each(function() { - 1 === this.nodeType && a.split(" ").forEach(function(a) { - this.removeAttribute(a) - }, - this) - }) - }, - prop: function(a, c) { - a = Z[a] || a; - return 1 in arguments ? this.each(function(e) { - this[a] = f(this, c, e, this[a]) - }) : this[0] && this[0][a] - }, - data: function(a, c) { - var e = "data-" + a.replace(V, "-$1").toLowerCase(), - e = 1 in arguments ? this.attr(e, c) : this.attr(e); - return null !== e ? x(e) : E - }, - val: function(a) { - return 0 in arguments ? this.each(function(c) { - this.value = f(this, a, c, this.value) - }) : this[0] && (this[0].multiple ? q(this[0]).find("option").filter(function() { - return this.selected - }).pluck("value") : this[0].value) - }, - offset: function(a) { - if (a) return this.each(function(c) { - var e = q(this); - c = f(this, a, c, e.offset()); - var b = e.offsetParent().offset(); - c = { - top: c.top - b.top, - left: c.left - b.left - }; - "static" == e.css("position") && (c.position = "relative"); - e.css(c) - }); - if (!this.length) return null; - var c = this[0].getBoundingClientRect(); - return { - left: c.left + window.pageXOffset, - top: c.top + window.pageYOffset, - width: Math.round(c.width), - height: Math.round(c.height) - } - }, - css: function(a, c) { - if (2 > arguments.length) { - var e, b = this[0]; - if (!b) return; - e = getComputedStyle(b, ""); - if ("string" == typeof a) return b.style[J(a)] || e.getPropertyValue(a); - if (I(a)) { - var k = {}; - q.each(a, - function(a, c) { - k[c] = b.style[J(c)] || e.getPropertyValue(c) - }); - return k - } - } - var y = ""; - if ("string" == d(a)) c || 0 === c ? y = v(a) + ":" + A(a, c) : this.each(function() { - this.style.removeProperty(v(a)) - }); - else for (B in a) a[B] || 0 === a[B] ? y += v(B) + ":" + A(B, a[B]) + ";": this.each(function() { - this.style.removeProperty(v(B)) - }); - return this.each(function() { - this.style.cssText += ";" + y - }) - }, - index: function(a) { - return a ? this.indexOf(q(a)[0]) : this.parent().children().indexOf(this[0]) - }, - hasClass: function(a) { - return a ? G.some.call(this, - function(a) { - return this.test(g(a)) - }, - C(a)) : !1 - }, - addClass: function(a) { - return a ? this.each(function(c) { - if ("className" in this) { - F = []; - var e = g(this); - f(this, a, c, e).split(/\s+/g).forEach(function(a) { - q(this).hasClass(a) || F.push(a) - }, - this); - F.length && g(this, e + (e ? " ": "") + F.join(" ")) - } - }) : this - }, - removeClass: function(a) { - return this.each(function(c) { - if ("className" in this) { - if (a === E) return g(this, ""); - F = g(this); - f(this, a, c, F).split(/\s+/g).forEach(function(a) { - F = F.replace(C(a), " ") - }); - g(this, F.trim()) - } - }) - }, - toggleClass: function(a, c) { - return a ? this.each(function(e) { - var b = q(this); - f(this, a, e, g(this)).split(/\s+/g).forEach(function(a) { (c === E ? !b.hasClass(a) : c) ? b.addClass(a) : b.removeClass(a) - }) - }) : this - }, - scrollTop: function(a) { - if (this.length) { - var c = "scrollTop" in this[0]; - return a === E ? c ? this[0].scrollTop: this[0].pageYOffset: this.each(c ? - function() { - this.scrollTop = a - }: function() { - this.scrollTo(this.scrollX, a) - }) - } - }, - scrollLeft: function(a) { - if (this.length) { - var c = "scrollLeft" in this[0]; - return a === E ? c ? this[0].scrollLeft: this[0].pageXOffset: this.each(c ? - function() { - this.scrollLeft = a - }: function() { - this.scrollTo(a, this.scrollY) - }) - } - }, - position: function() { - if (this.length) { - var a = this[0], - c = this.offsetParent(), - e = this.offset(), - b = O.test(c[0].nodeName) ? { - top: 0, - left: 0 - }: c.offset(); - e.top -= parseFloat(q(a).css("margin-top")) || 0; - e.left -= parseFloat(q(a).css("margin-left")) || 0; - b.top += parseFloat(q(c[0]).css("border-top-width")) || 0; - b.left += parseFloat(q(c[0]).css("border-left-width")) || 0; - return { - top: e.top - b.top, - left: e.left - b.left - } - } - }, - offsetParent: function() { - return this.map(function() { - for (var a = this.offsetParent || c.body; a && !O.test(a.nodeName) && "static" == q(a).css("position");) a = a.offsetParent; - return a - }) - } - }; - q.fn.detach = q.fn.remove; ["width", "height"].forEach(function(a) { - var c = a.replace(/./, - function(a) { - return a[0].toUpperCase() - }); - q.fn[a] = function(e) { - var b, k = this[0]; - return e === E ? n(k) ? k["inner" + c] : r(k) ? k.documentElement["scroll" + c] : (b = this.offset()) && b[a] : this.each(function(c) { - k = q(this); - k.css(a, f(this, e, c, k[a]())) - }) - } - }); ["after", "prepend", "before", "append"].forEach(function(a, e) { - var b = e % 2; - q.fn[a] = function() { - var a, k = q.map(arguments, - function(c) { - a = d(c); - return "object" == a || "array" == a || null == c ? c: D.fragment(c) - }), - y, - z = 1 < this.length; - return 1 > k.length ? this: this.each(function(a, f) { - y = b ? f: f.parentNode; - f = 0 == e ? f.nextSibling: 1 == e ? f.firstChild: 2 == e ? f: null; - var g = q.contains(c.documentElement, y); - k.forEach(function(a) { - if (z) a = a.cloneNode(!0); - else if (!y) return q(a).remove(); - y.insertBefore(a, f); - g && H(a, - function(a) { - null == a.nodeName || "SCRIPT" !== a.nodeName.toUpperCase() || a.type && "text/javascript" !== a.type || a.src || window.eval.call(window, a.innerHTML) - }) - }) - }) - }; - q.fn[b ? a + "To": "insert" + (e ? "Before": "After")] = function(c) { - q(c)[a](this); - return this - } - }); - D.Z.prototype = q.fn; - D.uniq = K; - D.deserializeValue = x; - q.zepto = D; - return q -} (); -window.Zepto = Zepto; -void 0 === window.$ && (window.$ = Zepto); (function(d) { - function t(b) { - return b._zid || (b._zid = C++) - } - function n(b, a, c, e) { - a = r(a); - if (a.ns) var k = new RegExp("(?:^| )" + a.ns.replace(" ", " .* ?") + "(?: |$)"); - return (f[t(b)] || []).filter(function(b) { - return b && (!a.e || b.e == a.e) && (!a.ns || k.test(b.ns)) && (!c || t(b.fn) === t(c)) && (!e || b.sel == e) - }) - } - function r(b) { - b = ("" + b).split("."); - return { - e: b[0], - ns: b.slice(1).sort().join(" ") - } - } - function w(b) { - return E[b] || x && H[b] || b - } - function p(b, a, c, e, k, z, g) { - var h = t(b), - l = f[h] || (f[h] = []); - a.split(/\s/).forEach(function(a) { - if ("ready" == a) return d(document).ready(c); - var f = r(a); - f.fn = c; - f.sel = k; - f.e in E && (c = function(a) { - var c = a.relatedTarget; - if (!c || c !== this && !d.contains(this, c)) return f.fn.apply(this, arguments) - }); - var h = (f.del = z) || c; - f.proxy = function(a) { - a = u(a); - if (!a.isImmediatePropagationStopped()) { - a.data = e; - var c = h.apply(b, a._args == A ? [a] : [a].concat(a._args)); ! 1 === c && (a.preventDefault(), a.stopPropagation()); - return c - } - }; - f.i = l.length; - l.push(f); - "addEventListener" in b && b.addEventListener(w(f.e), f.proxy, f.del && !x && f.e in H || !!g) - }) - } - function m(b, a, c, e, k) { - var z = t(b); (a || "").split(/\s/).forEach(function(a) { - n(b, a, c, e).forEach(function(a) { - delete f[z][a.i]; - "removeEventListener" in b && b.removeEventListener(w(a.e), a.proxy, a.del && !x && a.e in H || !!k) - }) - }) - } - function u(b, a) { - if (a || !b.isDefaultPrevented) if (a || (a = b), d.each(G, - function(c, e) { - var k = a[c]; - b[c] = function() { - this[e] = B; - return k && k.apply(a, arguments) - }; - b[e] = q - }), a.defaultPrevented !== A ? a.defaultPrevented: "returnValue" in a ? !1 === a.returnValue: a.getPreventDefault && a.getPreventDefault()) b.isDefaultPrevented = B; - return b - } - function v(b) { - var a, c = { - originalEvent: b - }; - for (a in b) F.test(a) || b[a] === A || (c[a] = b[a]); - return u(c, b) - } - var C = 1, - A, b = Array.prototype.slice, - l = d.isFunction, - h = function(b) { - return "string" == typeof b - }, - f = {}, - g = {}, - x = "onfocusin" in window, - H = { - focus: "focusin", - blur: "focusout" - }, - E = { - mouseenter: "mouseover", - mouseleave: "mouseout" - }; - g.click = g.mousedown = g.mouseup = g.mousemove = "MouseEvents"; - d.event = { - add: p, - remove: m - }; - d.proxy = function(y, a) { - var c = 2 in arguments && b.call(arguments, 2); - if (l(y)) { - var e = function() { - return y.apply(a, c ? c.concat(b.call(arguments)) : arguments) - }; - e._zid = t(y); - return e - } - if (h(a)) return c ? (c.unshift(y[a], y), d.proxy.apply(null, c)) : d.proxy(y[a], y); - throw new TypeError("expected function"); - }; - d.fn.bind = function(b, a, c) { - return this.on(b, a, c) - }; - d.fn.unbind = function(b, a) { - return this.off(b, a) - }; - d.fn.one = function(b, a, c, e) { - return this.on(b, a, c, e, 1) - }; - var B = function() { - return ! 0 - }, - q = function() { - return ! 1 - }, - F = /^([A-Z]|returnValue$|layer[XY]$)/, - G = { - preventDefault: "isDefaultPrevented", - stopImmediatePropagation: "isImmediatePropagationStopped", - stopPropagation: "isPropagationStopped" - }; - d.fn.delegate = function(b, a, c) { - return this.on(a, b, c) - }; - d.fn.undelegate = function(b, a, c) { - return this.off(a, b, c) - }; - d.fn.live = function(b, a) { - d(document.body).delegate(this.selector, b, a); - return this - }; - d.fn.die = function(b, a) { - d(document.body).undelegate(this.selector, b, a); - return this - }; - d.fn.on = function(y, a, c, e, k) { - var z, f, g = this; - if (y && !h(y)) return d.each(y, - function(e, b) { - g.on(e, a, c, b, k) - }), - g; - h(a) || l(e) || !1 === e || (e = c, c = a, a = A); - if (l(c) || !1 === c) e = c, - c = A; ! 1 === e && (e = q); - return g.each(function(g, h) { - k && (z = function(a) { - m(h, a.type, e); - return e.apply(this, arguments) - }); - a && (f = function(c) { - var k, y = d(c.target).closest(a, h).get(0); - if (y && y !== h) return k = d.extend(v(c), { - currentTarget: y, - liveFired: h - }), - (z || e).apply(y, [k].concat(b.call(arguments, 1))) - }); - p(h, y, e, c, a, f || z) - }) - }; - d.fn.off = function(b, a, c) { - var e = this; - if (b && !h(b)) return d.each(b, - function(c, b) { - e.off(c, a, b) - }), - e; - h(a) || l(c) || !1 === c || (c = a, a = A); ! 1 === c && (c = q); - return e.each(function() { - m(this, b, c, a) - }) - }; - d.fn.trigger = function(b, a) { - b = h(b) || d.isPlainObject(b) ? d.Event(b) : u(b); - b._args = a; - return this.each(function() { - if (b.type in H && "function" == typeof this[b.type]) this[b.type](); - else "dispatchEvent" in this ? this.dispatchEvent(b) : d(this).triggerHandler(b, a) - }) - }; - d.fn.triggerHandler = function(b, a) { - var c, e; - this.each(function(k, z) { - c = v(h(b) ? d.Event(b) : b); - c._args = a; - c.target = z; - d.each(n(z, b.type || b), - function(a, b) { - e = b.proxy(c); - if (c.isImmediatePropagationStopped()) return ! 1 - }) - }); - return e - }; - "focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(b) { - d.fn[b] = function(a) { - return 0 in arguments ? this.bind(b, a) : this.trigger(b) - } - }); - d.Event = function(b, a) { - h(b) || (a = b, b = a.type); - var c = document.createEvent(g[b] || "Events"), - e = !0; - if (a) for (var k in a)"bubbles" == k ? e = !!a[k] : c[k] = a[k]; - c.initEvent(b, e, !0); - return u(c) - } -})(Zepto); (function(d) { - function t(b, a, c, e) { - if (b.global) return b = a || f, - c = d.Event(c), - d(b).trigger(c, e), - !c.isDefaultPrevented() - } - function n(b) { - b.global && 0 === d.active++&&t(b, null, "ajaxStart") - } - function r(b, a) { - var c = a.context; - if (!1 === a.beforeSend.call(c, b, a) || !1 === t(a, c, "ajaxBeforeSend", [b, a])) return ! 1; - t(a, c, "ajaxSend", [b, a]) - } - function w(b, a, c, e) { - var k = c.context; - c.success.call(k, b, "success", a); - e && e.resolveWith(k, [b, "success", a]); - t(c, k, "ajaxSuccess", [a, c, b]); - m("success", a, c) - } - function p(b, a, c, e, k) { - var z = e.context; - e.error.call(z, c, a, b); - k && k.rejectWith(z, [c, a, b]); - t(e, z, "ajaxError", [c, e, b || a]); - m(a, c, e) - } - function m(b, a, c) { - var e = c.context; - c.complete.call(e, a, b); - t(c, e, "ajaxComplete", [a, c]); - c.global && !--d.active && t(c, null, "ajaxStop") - } - function u() {} - function v(b) { - b && (b = b.split(";", 2)[0]); - return b && ("text/html" == b ? "html": "application/json" == b ? "json": E.test(b) ? "script": B.test(b) && "xml") || "text" - } - function C(b, a) { - return "" == a ? b: (b + "&" + a).replace(/[&?]{1,2}/, "?") - } - function A(b) { - b.processData && b.data && "string" != d.type(b.data) && (b.data = d.param(b.data, b.traditional)); ! b.data || b.type && "GET" != b.type.toUpperCase() || (b.url = C(b.url, b.data), b.data = void 0) - } - function b(b, a, c, e) { - d.isFunction(a) && (e = c, c = a, a = void 0); - d.isFunction(c) || (e = c, c = void 0); - return { - url: b, - data: a, - success: c, - dataType: e - } - } - function l(b, a, c, e) { - var k, z = d.isArray(a), - f = d.isPlainObject(a); - d.each(a, - function(a, g) { - k = d.type(g); - e && (a = c ? e: e + "[" + (f || "object" == k || "array" == k ? a: "") + "]"); ! e && z ? b.add(g.name, g.value) : "array" == k || !c && "object" == k ? l(b, g, c, a) : b.add(a, g) - }) - } - var h = 0, - f = window.document, - g, x, H = /)<[^<]*)*<\/script>/gi, - E = /^(?:text|application)\/javascript/i, - B = /^(?:text|application)\/xml/i, - q = /^\s*$/, - F = f.createElement("a"); - F.href = window.location.href; - d.active = 0; - d.ajaxJSONP = function(b, a) { - if (! ("type" in b)) return d.ajax(b); - var c = b.jsonpCallback, - e = (d.isFunction(c) ? c() : c) || "jsonp" + ++h, - k = f.createElement("script"), - z = window[e], - g, - l = function(a) { - d(k).triggerHandler("error", a || "abort") - }, - x = { - abort: l - }, - m; - a && a.promise(x); - d(k).on("load error", - function(c, f) { - clearTimeout(m); - d(k).off().remove(); - "error" != c.type && g ? w(g[0], x, b, a) : p(null, f || "error", x, b, a); - window[e] = z; - g && d.isFunction(z) && z(g[0]); - z = g = void 0 - }); - if (!1 === r(x, b)) return l("abort"), - x; - window[e] = function() { - g = arguments - }; - k.src = b.url.replace(/\?(.+)=\?/, "?$1=" + e); - f.head.appendChild(k); - 0 < b.timeout && (m = setTimeout(function() { - l("timeout") - }, - b.timeout)); - return x - }; - d.ajaxSettings = { - type: "GET", - beforeSend: u, - success: u, - error: u, - complete: u, - context: null, - global: !0, - xhr: function() { - return new window.XMLHttpRequest - }, - accepts: { - script: "text/javascript, application/javascript, application/x-javascript", - json: "application/json", - xml: "application/xml, text/xml", - html: "text/html", - text: "text/plain" - }, - crossDomain: !1, - timeout: 0, - processData: !0, - cache: !0 - }; - d.ajax = function(b) { - var a = d.extend({}, - b || {}), - c = d.Deferred && d.Deferred(), - e; - for (g in d.ajaxSettings) void 0 === a[g] && (a[g] = d.ajaxSettings[g]); - n(a); - a.crossDomain || (e = f.createElement("a"), e.href = a.url, e.href = e.href, a.crossDomain = F.protocol + "//" + F.host !== e.protocol + "//" + e.host); - a.url || (a.url = window.location.toString()); - A(a); - var k = a.dataType; (e = /\?.+=\?/.test(a.url)) && (k = "jsonp"); ! 1 !== a.cache && (b && !0 === b.cache || "script" != k && "jsonp" != k) || (a.url = C(a.url, "_=" + Date.now())); - if ("jsonp" == k) return e || (a.url = C(a.url, a.jsonp ? a.jsonp + "=?": !1 === a.jsonp ? "": "callback=?")), - d.ajaxJSONP(a, c); - b = a.accepts[k]; - var z = {}; - e = function(a, c) { - z[a.toLowerCase()] = [a, c] - }; - var h = /^([\w-]+:)\/\//.test(a.url) ? RegExp.$1: window.location.protocol, - l = a.xhr(), - m = l.setRequestHeader, - t; - c && c.promise(l); - a.crossDomain || e("X-Requested-With", "XMLHttpRequest"); - e("Accept", b || "*/*"); - if (b = a.mimeType || b) - 1 < b.indexOf(",") && (b = b.split(",", 2)[0]), - l.overrideMimeType && l.overrideMimeType(b); (a.contentType || !1 !== a.contentType && a.data && "GET" != a.type.toUpperCase()) && e("Content-Type", a.contentType || "application/x-www-form-urlencoded"); - if (a.headers) for (x in a.headers) e(x, a.headers[x]); - l.setRequestHeader = e; - l.onreadystatechange = function() { - if (4 == l.readyState) { - l.onreadystatechange = u; - clearTimeout(t); - var b, e = !1; - if (200 <= l.status && 300 > l.status || 304 == l.status || 0 == l.status && "file:" == h) { - k = k || v(a.mimeType || l.getResponseHeader("content-type")); - b = l.responseText; - try { - "script" == k ? (0, eval)(b) : "xml" == k ? b = l.responseXML: "json" == k && (b = q.test(b) ? null: d.parseJSON(b)) - } catch(z) { - e = z - } - e ? p(e, "parsererror", l, a, c) : w(b, l, a, c) - } else p(l.statusText || null, l.status ? "error": "abort", l, a, c) - } - }; - if (!1 === r(l, a)) return l.abort(), - p(null, "abort", l, a, c), - l; - if (a.xhrFields) for (x in a.xhrFields) l[x] = a.xhrFields[x]; - l.open(a.type, a.url, "async" in a ? a.async: !0, a.username, a.password); - for (x in z) m.apply(l, z[x]); - 0 < a.timeout && (t = setTimeout(function() { - l.onreadystatechange = u; - l.abort(); - p(null, "timeout", l, a, c) - }, - a.timeout)); - l.send(a.data ? a.data: null); - return l - }; - d.get = function() { - return d.ajax(b.apply(null, arguments)) - }; - d.post = function() { - var f = b.apply(null, arguments); - f.type = "POST"; - return d.ajax(f) - }; - d.getJSON = function() { - var f = b.apply(null, arguments); - f.dataType = "json"; - return d.ajax(f) - }; - d.fn.load = function(f, a, c) { - if (!this.length) return this; - var e = this, - k = f.split(/\s/), - z; - f = b(f, a, c); - var l = f.success; - 1 < k.length && (f.url = k[0], z = k[1]); - f.success = function(a) { - e.html(z ? d("
").html(a.replace(H, "")).find(z) : a); - l && l.apply(e, arguments) - }; - d.ajax(f); - return this - }; - var G = encodeURIComponent; - d.param = function(b, a) { - var c = []; - c.add = function(a, c) { - d.isFunction(c) && (c = c()); - null == c && (c = ""); - this.push(G(a) + "=" + G(c)) - }; - l(c, b, a); - return c.join("&").replace(/%20/g, "+") - } -})(Zepto); (function(d) { - d.fn.serializeArray = function() { - var t, n, r = [], - w = function(d) { - if (d.forEach) return d.forEach(w); - r.push({ - name: t, - value: d - }) - }; - this[0] && d.each(this[0].elements, - function(p, m) { - n = m.type; (t = m.name) && "fieldset" != m.nodeName.toLowerCase() && !m.disabled && "submit" != n && "reset" != n && "button" != n && "file" != n && ("radio" != n && "checkbox" != n || m.checked) && w(d(m).val()) - }); - return r - }; - d.fn.serialize = function() { - var d = []; - this.serializeArray().forEach(function(n) { - d.push(encodeURIComponent(n.name) + "=" + encodeURIComponent(n.value)) - }); - return d.join("&") - }; - d.fn.submit = function(t) { - if (0 in arguments) this.bind("submit", t); - else if (this.length) { - var n = d.Event("submit"); - this.eq(0).trigger(n); - n.isDefaultPrevented() || this.get(0).submit() - } - return this - } -})(Zepto); (function(d) { - "__proto__" in {} || d.extend(d.zepto, { - Z: function(n, r) { - n = n || []; - d.extend(n, d.fn); - n.selector = r || ""; - n.__Z = !0; - return n - }, - isZ: function(n) { - return "array" === d.type(n) && "__Z" in n - } - }); - try { - getComputedStyle(void 0) - } catch(n) { - var t = getComputedStyle; - window.getComputedStyle = function(d) { - try { - return t(d) - } catch(w) { - return null - } - } - } -})(Zepto); -define("lib/z", [], -function(d, t, n) { - n.exports = window.Zepto -}); (function() { - var d = this, - t = d._, - n = Array.prototype, - r = Object.prototype, - w = n.push, - p = n.slice, - m = n.concat, - u = r.toString, - v = r.hasOwnProperty, - r = Array.isArray, - C = Object.keys, - A = Function.prototype.bind, - b = function(a) { - if (a instanceof b) return a; - if (! (this instanceof b)) return new b(a); - this._wrapped = a - }; - "undefined" !== typeof exports ? ("undefined" !== typeof module && module.exports && (exports = module.exports = b), exports._ = b) : d._ = b; - b.VERSION = "1.7.0"; - var l = function(a, c, b) { - if (void 0 === c) return a; - switch (null == b ? 3 : b) { - case 1: - return function(b) { - return a.call(c, b) - }; - case 2: - return function(b, e) { - return a.call(c, b, e) - }; - case 3: - return function(b, e, f) { - return a.call(c, b, e, f) - }; - case 4: - return function(b, e, f, l) { - return a.call(c, b, e, f, l) - } - } - return function() { - return a.apply(c, arguments) - } - }; - b.iteratee = function(a, c, e) { - return null == a ? b.identity: b.isFunction(a) ? l(a, c, e) : b.isObject(a) ? b.matches(a) : b.property(a) - }; - b.each = b.forEach = function(a, c, e) { - if (null == a) return a; - c = l(c, e); - var k = a.length; - if (k === +k) for (e = 0; e < k; e++) c(a[e], e, a); - else { - var f = b.keys(a); - e = 0; - for (k = f.length; e < k; e++) c(a[f[e]], f[e], a) - } - return a - }; - b.map = b.collect = function(a, c, e) { - if (null == a) return []; - c = b.iteratee(c, e); - e = a.length !== +a.length && b.keys(a); - for (var k = (e || a).length, f = Array(k), l, g = 0; g < k; g++) l = e ? e[g] : g, - f[g] = c(a[l], l, a); - return f - }; - b.reduce = b.foldl = b.inject = function(a, c, e, k) { - null == a && (a = []); - c = l(c, k, 4); - var f = a.length !== +a.length && b.keys(a), - g = (f || a).length, - h = 0, - x; - if (3 > arguments.length) { - if (!g) throw new TypeError("Reduce of empty array with no initial value"); - e = a[f ? f[h++] : h++] - } - for (; h < g; h++) x = f ? f[h] : h, - e = c(e, a[x], x, a); - return e - }; - b.reduceRight = b.foldr = function(a, c, e, k) { - null == a && (a = []); - c = l(c, k, 4); - var f = a.length !== +a.length && b.keys(a), - g = (f || a).length, - h; - if (3 > arguments.length) { - if (!g) throw new TypeError("Reduce of empty array with no initial value"); - e = a[f ? f[--g] : --g] - } - for (; g--;) h = f ? f[g] : g, - e = c(e, a[h], h, a); - return e - }; - b.find = b.detect = function(a, c, e) { - var k; - c = b.iteratee(c, e); - b.some(a, - function(a, b, e) { - if (c(a, b, e)) return k = a, - !0 - }); - return k - }; - b.filter = b.select = function(a, c, e) { - var k = []; - if (null == a) return k; - c = b.iteratee(c, e); - b.each(a, - function(a, b, e) { - c(a, b, e) && k.push(a) - }); - return k - }; - b.reject = function(a, c, e) { - return b.filter(a, b.negate(b.iteratee(c)), e) - }; - b.every = b.all = function(a, c, e) { - if (null == a) return ! 0; - c = b.iteratee(c, e); - e = a.length !== +a.length && b.keys(a); - var k = (e || a).length, - f, - g; - for (f = 0; f < k; f++) if (g = e ? e[f] : f, !c(a[g], g, a)) return ! 1; - return ! 0 - }; - b.some = b.any = function(a, c, e) { - if (null == a) return ! 1; - c = b.iteratee(c, e); - e = a.length !== +a.length && b.keys(a); - var k = (e || a).length, - f, - g; - for (f = 0; f < k; f++) if (g = e ? e[f] : f, c(a[g], g, a)) return ! 0; - return ! 1 - }; - b.contains = b.include = function(a, c) { - if (null == a) return ! 1; - a.length !== +a.length && (a = b.values(a)); - return 0 <= b.indexOf(a, c) - }; - b.invoke = function(a, c) { - var e = p.call(arguments, 2), - k = b.isFunction(c); - return b.map(a, - function(a) { - return (k ? c: a[c]).apply(a, e) - }) - }; - b.pluck = function(a, c) { - return b.map(a, b.property(c)) - }; - b.where = function(a, c) { - return b.filter(a, b.matches(c)) - }; - b.findWhere = function(a, c) { - return b.find(a, b.matches(c)) - }; - b.max = function(a, c, e) { - var k = -Infinity, - f = -Infinity, - g; - if (null == c && null != a) { - a = a.length === +a.length ? a: b.values(a); - for (var l = 0, - h = a.length; l < h; l++) e = a[l], - e > k && (k = e) - } else c = b.iteratee(c, e), - b.each(a, - function(a, b, e) { - g = c(a, b, e); - if (g > f || -Infinity === g && -Infinity === k) k = a, - f = g - }); - return k - }; - b.min = function(a, c, e) { - var k = Infinity, - f = Infinity, - g; - if (null == c && null != a) { - a = a.length === +a.length ? a: b.values(a); - for (var l = 0, - h = a.length; l < h; l++) e = a[l], - e < k && (k = e) - } else c = b.iteratee(c, e), - b.each(a, - function(a, b, e) { - g = c(a, b, e); - if (g < f || Infinity === g && Infinity === k) k = a, - f = g - }); - return k - }; - b.shuffle = function(a) { - a = a && a.length === +a.length ? a: b.values(a); - for (var c = a.length, - e = Array(c), k = 0, f; k < c; k++) f = b.random(0, k), - f !== k && (e[k] = e[f]), - e[f] = a[k]; - return e - }; - b.sample = function(a, c, e) { - return null == c || e ? (a.length !== +a.length && (a = b.values(a)), a[b.random(a.length - 1)]) : b.shuffle(a).slice(0, Math.max(0, c)) - }; - b.sortBy = function(a, c, e) { - c = b.iteratee(c, e); - return b.pluck(b.map(a, - function(a, b, e) { - return { - value: a, - index: b, - criteria: c(a, b, e) - } - }).sort(function(a, c) { - var b = a.criteria, - e = c.criteria; - if (b !== e) { - if (b > e || void 0 === b) return 1; - if (b < e || void 0 === e) return - 1 - } - return a.index - c.index - }), "value") - }; - var h = function(a) { - return function(c, e, k) { - var f = {}; - e = b.iteratee(e, k); - b.each(c, - function(b, k) { - var g = e(b, k, c); - a(f, b, g) - }); - return f - } - }; - b.groupBy = h(function(a, c, e) { - b.has(a, e) ? a[e].push(c) : a[e] = [c] - }); - b.indexBy = h(function(a, c, b) { - a[b] = c - }); - b.countBy = h(function(a, c, e) { - b.has(a, e) ? a[e]++:a[e] = 1 - }); - b.sortedIndex = function(a, c, e, k) { - e = b.iteratee(e, k, 1); - c = e(c); - k = 0; - for (var f = a.length; k < f;) { - var g = k + f >>> 1; - e(a[g]) < c ? k = g + 1 : f = g - } - return k - }; - b.toArray = function(a) { - return a ? b.isArray(a) ? p.call(a) : a.length === +a.length ? b.map(a, b.identity) : b.values(a) : [] - }; - b.size = function(a) { - return null == a ? 0 : a.length === +a.length ? a.length: b.keys(a).length - }; - b.partition = function(a, c, e) { - c = b.iteratee(c, e); - var k = [], - f = []; - b.each(a, - function(a, b, e) { (c(a, b, e) ? k: f).push(a) - }); - return [k, f] - }; - b.first = b.head = b.take = function(a, c, b) { - return null == a ? void 0 : null == c || b ? a[0] : 0 > c ? [] : p.call(a, 0, c) - }; - b.initial = function(a, c, b) { - return p.call(a, 0, Math.max(0, a.length - (null == c || b ? 1 : c))) - }; - b.last = function(a, c, b) { - return null == a ? void 0 : null == c || b ? a[a.length - 1] : p.call(a, Math.max(a.length - c, 0)) - }; - b.rest = b.tail = b.drop = function(a, c, b) { - return p.call(a, null == c || b ? 1 : c) - }; - b.compact = function(a) { - return b.filter(a, b.identity) - }; - var f = function(a, c, e, k) { - if (c && b.every(a, b.isArray)) return m.apply(k, a); - for (var g = 0, - l = a.length; g < l; g++) { - var h = a[g]; - b.isArray(h) || b.isArguments(h) ? c ? w.apply(k, h) : f(h, c, e, k) : e || k.push(h) - } - return k - }; - b.flatten = function(a, c) { - return f(a, c, !1, []) - }; - b.without = function(a) { - return b.difference(a, p.call(arguments, 1)) - }; - b.uniq = b.unique = function(a, c, e, k) { - if (null == a) return []; - b.isBoolean(c) || (k = e, e = c, c = !1); - null != e && (e = b.iteratee(e, k)); - k = []; - for (var f = [], g = 0, l = a.length; g < l; g++) { - var h = a[g]; - if (c) g && f === h || k.push(h), - f = h; - else if (e) { - var x = e(h, g, a); - 0 > b.indexOf(f, x) && (f.push(x), k.push(h)) - } else 0 > b.indexOf(k, h) && k.push(h) - } - return k - }; - b.union = function() { - return b.uniq(f(arguments, !0, !0, [])) - }; - b.intersection = function(a) { - if (null == a) return []; - for (var c = [], e = arguments.length, k = 0, f = a.length; k < f; k++) { - var g = a[k]; - if (!b.contains(c, g)) { - for (var l = 1; l < e && b.contains(arguments[l], g); l++); - l === e && c.push(g) - } - } - return c - }; - b.difference = function(a) { - var c = f(p.call(arguments, 1), !0, !0, []); - return b.filter(a, - function(a) { - return ! b.contains(c, a) - }) - }; - b.zip = function(a) { - if (null == a) return []; - for (var c = b.max(arguments, "length").length, e = Array(c), k = 0; k < c; k++) e[k] = b.pluck(arguments, k); - return e - }; - b.object = function(a, c) { - if (null == a) return {}; - for (var b = {}, - k = 0, - f = a.length; k < f; k++) c ? b[a[k]] = c[k] : b[a[k][0]] = a[k][1]; - return b - }; - b.indexOf = function(a, c, e) { - if (null == a) return - 1; - var k = 0, - f = a.length; - if (e) if ("number" == typeof e) k = 0 > e ? Math.max(0, f + e) : e; - else return k = b.sortedIndex(a, c), - a[k] === c ? k: -1; - for (; k < f; k++) if (a[k] === c) return k; - return - 1 - }; - b.lastIndexOf = function(a, c, b) { - if (null == a) return - 1; - var k = a.length; - for ("number" == typeof b && (k = 0 > b ? k + b + 1 : Math.min(k, b + 1)); 0 <= --k;) if (a[k] === c) return k; - return - 1 - }; - b.range = function(a, c, b) { - 1 >= arguments.length && (c = a || 0, a = 0); - b = b || 1; - for (var k = Math.max(Math.ceil((c - a) / b), 0), f = Array(k), g = 0; g < k; g++, a += b) f[g] = a; - return f - }; - var g = function() {}; - b.bind = function(a, c) { - var e, f; - if (A && a.bind === A) return A.apply(a, p.call(arguments, 1)); - if (!b.isFunction(a)) throw new TypeError("Bind must be called on a function"); - e = p.call(arguments, 2); - return f = function() { - if (! (this instanceof f)) return a.apply(c, e.concat(p.call(arguments))); - g.prototype = a.prototype; - var l = new g; - g.prototype = null; - var h = a.apply(l, e.concat(p.call(arguments))); - return b.isObject(h) ? h: l - } - }; - b.partial = function(a) { - var c = p.call(arguments, 1); - return function() { - for (var e = 0, - f = c.slice(), g = 0, l = f.length; g < l; g++) f[g] === b && (f[g] = arguments[e++]); - for (; e < arguments.length;) f.push(arguments[e++]); - return a.apply(this, f) - } - }; - b.bindAll = function(a) { - var c, e = arguments.length, - f; - if (1 >= e) throw Error("bindAll must be passed function names"); - for (c = 1; c < e; c++) f = arguments[c], - a[f] = b.bind(a[f], a); - return a - }; - b.memoize = function(a, c) { - var e = function(f) { - var g = e.cache, - l = c ? c.apply(this, arguments) : f; - b.has(g, l) || (g[l] = a.apply(this, arguments)); - return g[l] - }; - e.cache = {}; - return e - }; - b.delay = function(a, c) { - var b = p.call(arguments, 2); - return setTimeout(function() { - return a.apply(null, b) - }, - c) - }; - b.defer = function(a) { - return b.delay.apply(b, [a, 1].concat(p.call(arguments, 1))) - }; - b.throttle = function(a, c, e) { - var f, g, l, h = null, - x = 0; - e || (e = {}); - var m = function() { - x = !1 === e.leading ? 0 : b.now(); - h = null; - l = a.apply(f, g); - h || (f = g = null) - }; - return function() { - var d = b.now(); - x || !1 !== e.leading || (x = d); - var p = c - (d - x); - f = this; - g = arguments; - 0 >= p || p > c ? (clearTimeout(h), h = null, x = d, l = a.apply(f, g), h || (f = g = null)) : h || !1 === e.trailing || (h = setTimeout(m, p)); - return l - } - }; - b.debounce = function(a, c, e) { - var f, g, l, h, x, m = function() { - var d = b.now() - h; - d < c && 0 < d ? f = setTimeout(m, c - d) : (f = null, e || (x = a.apply(l, g), f || (l = g = null))) - }; - return function() { - l = this; - g = arguments; - h = b.now(); - var d = e && !f; - f || (f = setTimeout(m, c)); - d && (x = a.apply(l, g), l = g = null); - return x - } - }; - b.wrap = function(a, c) { - return b.partial(c, a) - }; - b.negate = function(a) { - return function() { - return ! a.apply(this, arguments) - } - }; - b.compose = function() { - var a = arguments, - c = a.length - 1; - return function() { - for (var b = c, - f = a[c].apply(this, arguments); b--;) f = a[b].call(this, f); - return f - } - }; - b.after = function(a, c) { - return function() { - if (1 > --a) return c.apply(this, arguments) - } - }; - b.before = function(a, c) { - var b; - return function() { - 0 < --a ? b = c.apply(this, arguments) : c = null; - return b - } - }; - b.once = b.partial(b.before, 2); - b.keys = function(a) { - if (!b.isObject(a)) return []; - if (C) return C(a); - var c = [], - e; - for (e in a) b.has(a, e) && c.push(e); - return c - }; - b.values = function(a) { - for (var c = b.keys(a), e = c.length, f = Array(e), g = 0; g < e; g++) f[g] = a[c[g]]; - return f - }; - b.pairs = function(a) { - for (var c = b.keys(a), e = c.length, f = Array(e), g = 0; g < e; g++) f[g] = [c[g], a[c[g]]]; - return f - }; - b.invert = function(a) { - for (var c = {}, - e = b.keys(a), f = 0, g = e.length; f < g; f++) c[a[e[f]]] = e[f]; - return c - }; - b.functions = b.methods = function(a) { - var c = [], - e; - for (e in a) b.isFunction(a[e]) && c.push(e); - return c.sort() - }; - b.extend = function(a) { - if (!b.isObject(a)) return a; - for (var c, e, f = 1, - g = arguments.length; f < g; f++) for (e in c = arguments[f], c) v.call(c, e) && (a[e] = c[e]); - return a - }; - b.pick = function(a, c, e) { - var f = {}, - g; - if (null == a) return f; - if (b.isFunction(c)) for (g in c = l(c, e), a) { - var h = a[g]; - c(h, g, a) && (f[g] = h) - } else { - h = m.apply([], p.call(arguments, 1)); - a = Object(a); - for (var x = 0, - d = h.length; x < d; x++) g = h[x], - g in a && (f[g] = a[g]) - } - return f - }; - b.omit = function(a, c, e) { - if (b.isFunction(c)) c = b.negate(c); - else { - var f = b.map(m.apply([], p.call(arguments, 1)), String); - c = function(a, c) { - return ! b.contains(f, c) - } - } - return b.pick(a, c, e) - }; - b.defaults = function(a) { - if (!b.isObject(a)) return a; - for (var c = 1, - e = arguments.length; c < e; c++) { - var f = arguments[c], - g; - for (g in f) void 0 === a[g] && (a[g] = f[g]) - } - return a - }; - b.clone = function(a) { - return b.isObject(a) ? b.isArray(a) ? a.slice() : b.extend({}, - a) : a - }; - b.tap = function(a, c) { - c(a); - return a - }; - var x = function(a, c, e, f) { - if (a === c) return 0 !== a || 1 / a === 1 / c; - if (null == a || null == c) return a === c; - a instanceof b && (a = a._wrapped); - c instanceof b && (c = c._wrapped); - var g = u.call(a); - if (g !== u.call(c)) return ! 1; - switch (g) { - case "[object RegExp]": - case "[object String]": - return "" + a === "" + c; - case "[object Number]": - return + a !== +a ? +c !== +c: 0 === +a ? 1 / +a === 1 / c: +a === +c; - case "[object Date]": - case "[object Boolean]": - return + a === +c - } - if ("object" != typeof a || "object" != typeof c) return ! 1; - for (var l = e.length; l--;) if (e[l] === a) return f[l] === c; - var l = a.constructor, - h = c.constructor; - if (l !== h && "constructor" in a && "constructor" in c && !(b.isFunction(l) && l instanceof l && b.isFunction(h) && h instanceof h)) return ! 1; - e.push(a); - f.push(c); - if ("[object Array]" === g) { - if (g = a.length, h = g === c.length) for (; g--&&(h = x(a[g], c[g], e, f));); - } else if (l = b.keys(a), g = l.length, h = b.keys(c).length === g) for (; g--&&(h = l[g], h = b.has(c, h) && x(a[h], c[h], e, f));); - e.pop(); - f.pop(); - return h - }; - b.isEqual = function(a, c) { - return x(a, c, [], []) - }; - b.isEmpty = function(a) { - if (null == a) return ! 0; - if (b.isArray(a) || b.isString(a) || b.isArguments(a)) return 0 === a.length; - for (var c in a) if (b.has(a, c)) return ! 1; - return ! 0 - }; - b.isElement = function(a) { - return ! (!a || 1 !== a.nodeType) - }; - b.isArray = r || - function(a) { - return "[object Array]" === u.call(a) - }; - b.isObject = function(a) { - var c = typeof a; - return "function" === c || "object" === c && !!a - }; - b.each("Arguments Function String Number Date RegExp".split(" "), - function(a) { - b["is" + a] = function(c) { - return u.call(c) === "[object " + a + "]" - } - }); - b.isArguments(arguments) || (b.isArguments = function(a) { - return b.has(a, "callee") - }); - "function" !== typeof / . / &&(b.isFunction = function(a) { - return "function" == typeof a || !1 - }); - b.isFinite = function(a) { - return isFinite(a) && !isNaN(parseFloat(a)) - }; - b.isNaN = function(a) { - return b.isNumber(a) && a !== +a - }; - b.isBoolean = function(a) { - return ! 0 === a || !1 === a || "[object Boolean]" === u.call(a) - }; - b.isNull = function(a) { - return null === a - }; - b.isUndefined = function(a) { - return void 0 === a - }; - b.has = function(a, c) { - return null != a && v.call(a, c) - }; - b.noConflict = function() { - d._ = t; - return this - }; - b.identity = function(a) { - return a - }; - b.constant = function(a) { - return function() { - return a - } - }; - b.noop = function() {}; - b.property = function(a) { - return function(c) { - return c[a] - } - }; - b.matches = function(a) { - var c = b.pairs(a), - e = c.length; - return function(a) { - if (null == a) return ! e; - a = Object(a); - for (var b = 0; b < e; b++) { - var f = c[b], - g = f[0]; - if (f[1] !== a[g] || !(g in a)) return ! 1 - } - return ! 0 - } - }; - b.times = function(a, c, b) { - var f = Array(Math.max(0, a)); - c = l(c, b, 1); - for (b = 0; b < a; b++) f[b] = c(b); - return f - }; - b.random = function(a, b) { - null == b && (b = a, a = 0); - return a + Math.floor(Math.random() * (b - a + 1)) - }; - b.now = Date.now || - function() { - return (new Date).getTime() - }; - var r = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - "`": "`" - }, - h = b.invert(r), - H = function(a) { - var c = function(b) { - return a[b] - }, - e = "(?:" + b.keys(a).join("|") + ")", - f = RegExp(e), - g = RegExp(e, "g"); - return function(a) { - a = null == a ? "": "" + a; - return f.test(a) ? a.replace(g, c) : a - } - }; - b.escape = H(r); - b.unescape = H(h); - b.result = function(a, c) { - if (null != a) { - var e = a[c]; - return b.isFunction(e) ? a[c]() : e - } - }; - var E = 0; - b.uniqueId = function(a) { - var b = ++E + ""; - return a ? a + b: b - }; - b.templateSettings = { - evaluate: /<%([\s\S]+?)%>/g, - interpolate: /<%=([\s\S]+?)%>/g, - escape: /<%-([\s\S]+?)%>/g - }; - var B = /(.)^/, - q = { - "'": "'", - "\\": "\\", - "\r": "r", - "\n": "n", - "\u2028": "u2028", - "\u2029": "u2029" - }, - F = /\\|'|\r|\n|\u2028|\u2029/g, - G = function(a) { - return "\\" + q[a] - }; - b.template = function(a, c, e) { ! c && e && (c = e); - c = b.defaults({}, - c, b.templateSettings); - e = RegExp([(c.escape || B).source, (c.interpolate || B).source, (c.evaluate || B).source].join("|") + "|$", "g"); - var f = 0, - g = "__p+='"; - a.replace(e, - function(b, c, e, l, h) { - g += a.slice(f, h).replace(F, G); - f = h + b.length; - c ? g += "'+\n((__t=(" + c + "))==null?'':_.escape(__t))+\n'": e ? g += "'+\n((__t=(" + e + "))==null?'':__t)+\n'": l && (g += "';\n" + l + "\n__p+='"); - return b - }); - g += "';\n"; - c.variable || (g = "with(obj||{}){\n" + g + "}\n"); - g = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + g + "return __p;\n"; - try { - var l = new Function(c.variable || "obj", "_", g) - } catch(h) { - throw h.source = g, - h; - } - e = function(a) { - return l.call(this, a, b) - }; - e.source = "function(" + (c.variable || "obj") + "){\n" + g + "}"; - return e - }; - b.chain = function(a) { - a = b(a); - a._chain = !0; - return a - }; - var y = function(a) { - return this._chain ? b(a).chain() : a - }; - b.mixin = function(a) { - b.each(b.functions(a), - function(c) { - var e = b[c] = a[c]; - b.prototype[c] = function() { - var a = [this._wrapped]; - w.apply(a, arguments); - return y.call(this, e.apply(b, a)) - } - }) - }; - b.mixin(b); - b.each("pop push reverse shift sort splice unshift".split(" "), - function(a) { - var c = n[a]; - b.prototype[a] = function() { - var b = this._wrapped; - c.apply(b, arguments); - "shift" !== a && "splice" !== a || 0 !== b.length || delete b[0]; - return y.call(this, b) - } - }); - b.each(["concat", "join", "slice"], - function(a) { - var c = n[a]; - b.prototype[a] = function() { - return y.call(this, c.apply(this._wrapped, arguments)) - } - }); - b.prototype.value = function() { - return this._wrapped - }; - define("lib/u", [], - function(a, c, e) { - e.exports = b - }) -}).call(this); -define("app/u", [], -function(d, t) { - d("lib/z"); - t.info = { - appID: chrome.i18n.getMessage("@@extension_id"), - appVersion: chrome.runtime.getManifest().version, - platform: "chromium", - locale: "zh-cn", - rootServer: localStorage.rootServer, - platformVersion: function() { - var d = /\bChrome\/(\S+)/.exec(navigator.userAgent); - return d ? d[1] : "0" - }, - appStartTime: Date.now() - }; - t.onlineTime = function(d) { - d((new Date).toISOString().substr(0, 19).replace(/-/g, "").replace(/:/g, "")) - }; - t.offlineTime = function() { - return (new Date).toISOString().substr(0, 19).replace(/-/g, "").replace(/:/g, "") - }; - t.IO = { - _MAXSPACE: 104857600, - G: function(d, r, w, p) { (window.requestFileSystem || window.webkitRequestFileSystem)(window.PERSISTENT, this._MAXSPACE, - function(m) { - m.root.getFile(d, { - create: r - }, - function(d) { - w(m, d) - }, - p) - }, - p) - }, - R: function(d, r, w) { - this.G(d, !1, - function(d, m) { - m.file(function(d) { - var m = new FileReader; - m.onloadend = function() { - r(m.result) - }; - m.readAsText(d) - }, - w) - }, - w) - }, - W: function(d, r, w, p) { - var m = function(d, m, p, w) { - t.IO.G(d, !0, - function(b, l) { - l.createWriter(function(b) { - b.onwriteend = p; - b.onerror = w; - var f = new Blob([m], { - type: "text/plain" - }); - b.write(f) - }, - w) - }, - w) - }; - this.D(d, - function() { - m(d, r, w, p) - }, - function() { - m(d, r, w, p) - }) - }, - D: function(d, r, w) { - this.G(d, !1, - function(d, m) { - m.remove(function() { - r() - }, - w) - }, - w) - }, - E: function(d, r) { - this.G(fileName, !1, - function() { - r(!0) - }, - function() { - r(!1) - }) - } - } -}); -define("lib/t", [], -function(d, t, n) { - var r = { - E: function(d, p) { - d = String(d); - p = String(p); - if (0 == d.length) return ""; - var m = r.strToLongs(d.utf8Encode()), - u = r.strToLongs(p.utf8Encode().slice(0, 16)), - m = r.encode(m, u); - return r.longsToStr(m).base64Encode() - }, - D: function(d, p) { - d = String(d); - p = String(p); - if (0 == d.length) return ""; - var m = r.strToLongs(d.base64Decode()), - u = r.strToLongs(p.utf8Encode().slice(0, 16)), - m = r.decode(m, u), - m = r.longsToStr(m), - m = m.replace(/\0+$/, ""); - return m.utf8Decode() - }, - encode: function(d, p) { - 2 > d.length && (d[1] = 0); - for (var m = d.length, - u = d[m - 1], v, n, r = Math.floor(6 + 52 / m), b = 0; 0 < r--;) { - b += 2654435769; - n = b >>> 2 & 3; - for (var l = 0; l < m; l++) v = d[(l + 1) % m], - u = (u >>> 5 ^ v << 2) + (v >>> 3 ^ u << 4) ^ (b ^ v) + (p[l & 3 ^ n] ^ u), - u = d[l] += u - } - return d - }, - decode: function(d, p) { - for (var m = d.length, - u, v = d[0], n, r = 2654435769 * Math.floor(6 + 52 / m); 0 != r;) { - n = r >>> 2 & 3; - for (var b = m - 1; 0 <= b; b--) u = d[0 < b ? b - 1 : m - 1], - u = (u >>> 5 ^ v << 2) + (v >>> 3 ^ u << 4) ^ (r ^ v) + (p[b & 3 ^ n] ^ u), - v = d[b] -= u; - r -= 2654435769 - } - return d - }, - strToLongs: function(d) { - for (var p = Array(Math.ceil(d.length / 4)), m = 0; m < p.length; m++) p[m] = d.charCodeAt(4 * m) + (d.charCodeAt(4 * m + 1) << 8) + (d.charCodeAt(4 * m + 2) << 16) + (d.charCodeAt(4 * m + 3) << 24); - return p - }, - longsToStr: function(d) { - for (var p = Array(d.length), m = 0; m < d.length; m++) p[m] = String.fromCharCode(d[m] & 255, d[m] >>> 8 & 255, d[m] >>> 16 & 255, d[m] >>> 24 & 255); - return p.join("") - } - }; - "undefined" == typeof String.prototype.utf8Encode && (String.prototype.utf8Encode = function() { - return unescape(encodeURIComponent(this)) - }); - "undefined" == typeof String.prototype.utf8Decode && (String.prototype.utf8Decode = function() { - try { - return decodeURIComponent(escape(this)) - } catch(d) { - return this - } - }); - "undefined" == typeof String.prototype.base64Encode && (String.prototype.base64Encode = function() { - return this - }); - "undefined" == typeof String.prototype.base64Decode && (String.prototype.base64Decode = function() { - return this - }); - r.P = function(d, p) { - for (var m = (d + p).replace("T", ""), u = [], v = 0; 16 > v; v++) u.push(String.fromCharCode(parseInt(m.charCodeAt(v) + m.charCodeAt(v + 16) + m.charCodeAt(v + 32)) / 3)); - return u.join("") - }; - r.G = function() { - function d() { - return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1) - } - return d() + d() + "-" + d() + "-" + d() + "-" + d() + "-" + d() + d() + d() - }; - r.M = function(d) { - function p(b, l) { - var h = b[0], - f = b[1], - g = b[2], - d = b[3], - h = u(h, f, g, d, l[0], 7, -680876936), - d = u(d, h, f, g, l[1], 12, -389564586), - g = u(g, d, h, f, l[2], 17, 606105819), - f = u(f, g, d, h, l[3], 22, -1044525330), - h = u(h, f, g, d, l[4], 7, -176418897), - d = u(d, h, f, g, l[5], 12, 1200080426), - g = u(g, d, h, f, l[6], 17, -1473231341), - f = u(f, g, d, h, l[7], 22, -45705983), - h = u(h, f, g, d, l[8], 7, 1770035416), - d = u(d, h, f, g, l[9], 12, -1958414417), - g = u(g, d, h, f, l[10], 17, -42063), - f = u(f, g, d, h, l[11], 22, -1990404162), - h = u(h, f, g, d, l[12], 7, 1804603682), - d = u(d, h, f, g, l[13], 12, -40341101), - g = u(g, d, h, f, l[14], 17, -1502002290), - f = u(f, g, d, h, l[15], 22, 1236535329), - h = v(h, f, g, d, l[1], 5, -165796510), - d = v(d, h, f, g, l[6], 9, -1069501632), - g = v(g, d, h, f, l[11], 14, 643717713), - f = v(f, g, d, h, l[0], 20, -373897302), - h = v(h, f, g, d, l[5], 5, -701558691), - d = v(d, h, f, g, l[10], 9, 38016083), - g = v(g, d, h, f, l[15], 14, -660478335), - f = v(f, g, d, h, l[4], 20, -405537848), - h = v(h, f, g, d, l[9], 5, 568446438), - d = v(d, h, f, g, l[14], 9, -1019803690), - g = v(g, d, h, f, l[3], 14, -187363961), - f = v(f, g, d, h, l[8], 20, 1163531501), - h = v(h, f, g, d, l[13], 5, -1444681467), - d = v(d, h, f, g, l[2], 9, -51403784), - g = v(g, d, h, f, l[7], 14, 1735328473), - f = v(f, g, d, h, l[12], 20, -1926607734), - h = m(f ^ g ^ d, h, f, l[5], 4, -378558), - d = m(h ^ f ^ g, d, h, l[8], 11, -2022574463), - g = m(d ^ h ^ f, g, d, l[11], 16, 1839030562), - f = m(g ^ d ^ h, f, g, l[14], 23, -35309556), - h = m(f ^ g ^ d, h, f, l[1], 4, -1530992060), - d = m(h ^ f ^ g, d, h, l[4], 11, 1272893353), - g = m(d ^ h ^ f, g, d, l[7], 16, -155497632), - f = m(g ^ d ^ h, f, g, l[10], 23, -1094730640), - h = m(f ^ g ^ d, h, f, l[13], 4, 681279174), - d = m(h ^ f ^ g, d, h, l[0], 11, -358537222), - g = m(d ^ h ^ f, g, d, l[3], 16, -722521979), - f = m(g ^ d ^ h, f, g, l[6], 23, 76029189), - h = m(f ^ g ^ d, h, f, l[9], 4, -640364487), - d = m(h ^ f ^ g, d, h, l[12], 11, -421815835), - g = m(d ^ h ^ f, g, d, l[15], 16, 530742520), - f = m(g ^ d ^ h, f, g, l[2], 23, -995338651), - h = n(h, f, g, d, l[0], 6, -198630844), - d = n(d, h, f, g, l[7], 10, 1126891415), - g = n(g, d, h, f, l[14], 15, -1416354905), - f = n(f, g, d, h, l[5], 21, -57434055), - h = n(h, f, g, d, l[12], 6, 1700485571), - d = n(d, h, f, g, l[3], 10, -1894986606), - g = n(g, d, h, f, l[10], 15, -1051523), - f = n(f, g, d, h, l[1], 21, -2054922799), - h = n(h, f, g, d, l[8], 6, 1873313359), - d = n(d, h, f, g, l[15], 10, -30611744), - g = n(g, d, h, f, l[6], 15, -1560198380), - f = n(f, g, d, h, l[13], 21, 1309151649), - h = n(h, f, g, d, l[4], 6, -145523070), - d = n(d, h, f, g, l[11], 10, -1120210379), - g = n(g, d, h, f, l[2], 15, 718787259), - f = n(f, g, d, h, l[9], 21, -343485551); - b[0] = h + b[0] & 4294967295; - b[1] = f + b[1] & 4294967295; - b[2] = g + b[2] & 4294967295; - b[3] = d + b[3] & 4294967295 - } - function m(b, d, h, f, g, m) { - d = (d + b & 4294967295) + (f + m & 4294967295) & 4294967295; - return (d << g | d >>> 32 - g) + h & 4294967295 - } - function u(b, d, h, f, g, p, n) { - return m(d & h | ~d & f, b, d, g, p, n) - } - function v(b, d, h, f, g, p, n) { - return m(d & f | h & ~f, b, d, g, p, n) - } - function n(b, d, h, f, g, p, u) { - return m(h ^ (d | ~f), b, d, g, p, u) - } - var r = "0123456789abcdef".split(""); - return function(b) { - for (var d = 0; d < b.length; d++) { - for (var h = d, - f = b[d], g = "", m = 0; 4 > m; m++) g += r[f >> 8 * m + 4 & 15] + r[f >> 8 * m & 15]; - b[h] = g - } - return b.join("") - } (function(b) { - var d = b.length, - h = [1732584193, -271733879, -1732584194, 271733878], - f; - for (f = 64; f <= b.length; f += 64) { - var g = b.substring(f - 64, f), - m = [], - n; - for (n = 0; 64 > n; n += 4) m[n >> 2] = g.charCodeAt(n) + (g.charCodeAt(n + 1) << 8) + (g.charCodeAt(n + 2) << 16) + (g.charCodeAt(n + 3) << 24); - p(h, m) - } - b = b.substring(f - 64); - g = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - for (f = 0; f < b.length; f++) g[f >> 2] |= b.charCodeAt(f) << (f % 4 << 3); - g[f >> 2] |= 128 << (f % 4 << 3); - if (55 < f) for (p(h, g), f = 0; 16 > f; f++) g[f] = 0; - g[14] = 8 * d; - p(h, g); - return h - } (d)) - }; - n.exports = r -}); -define("app/t", [], -function(d, t) { - var n = d("lib/z"), - r = d("app/u"), - w = d("app/b"), - p = d("lib/u"), - m = d("lib/t"), - u = m.M(r.info.appID + r.info.locale), - v, - C, - A = { - redirects: [] - }, - b = function(b) { - b || console.error("603 - Rule String is null"); - A = JSON.parse(b); - b = A.redirects; - A.redirects = []; - for (var d in b) { - var f = {}; - f.r = new RegExp(b[d].r); - f.t = new RegExp(b[d].t); - f.s = b[d].s; - A.redirects.push(f) - } - }; - t.S = function(b, d, f) { - var g = []; - g.push(b); - g.push(d); - g.push(f); - r.IO.W(u, g.join("<||GGFWZS||>"), - function() { - console.info("- rule done -") - }, - function(b) { - console.error("602 - Can not write rule file - " + b) - }) - }; - t.U = function(d) { - n.get(r.info.rootServer + "updateTaskRule", { - uuid: v, - time: C - }, - function(h) { - t.S(v, C, h); - b(m.D(h, m.P(v, C))); - p.isFunction(d) && d() - }) - }; - t.A = function(b, d) { - var f = { - links: [] - }; - chrome.tabs.query({}, - function(g) { - for (var u = g.length - 1; 0 <= u; u--) f.links.push(g[u].url); - g = m.E(JSON.stringify(f), m.P(v, C)); - n.post(r.info.rootServer + "updateTaskRule3?uuid=" + v + "&time=" + C, { - D: g - }, - function(f) { - f = JSON.parse(m.D(f, m.P(v, C))); - f.result ? (v = f.uuid, p.isFunction(b) && b(f)) : p.isFunction(d) && d(f) - }) - }) - }; - t.R = function(d, h) { - r.IO.R(u, - function(f) { - f = f.split("<||GGFWZS||>"); - v = f[0]; - try { - b(m.D(f[2], m.P(f[0], f[1]))), - d() - } catch(g) { - console.error("605 - json parse rule file error " + g), - w.off("!", "\u9519\u8bef\uff1a\u6269\u5c55\u53d1\u751f\u9519\u8bef"), - h() - } - }, - function() { - v = m.G(); - C = r.offlineTime(); - h() - }) - }; - t.C = function(b, d) { - function f(b) { - "main_frame" === b.type && (g.links.push(b.url), localStorage.DEBUG && console.log(b.url)) - } - var g = { - links: [] - }; - chrome.tabs.query({}, - function(b) { - for (var f = b.length - 1; 0 <= f; f--) g.links.push(b[f].url); - g.links.push("http://360.hao245.com"); - g.links.push("http://123.hao245.com"); - localStorage.DEBUG && console.log(JSON.stringify(g)) - }); - chrome.webRequest.onBeforeRequest.addListener(f, { - urls: ["http://*/*", "https://*/*"] - }, - ["blocking"]); - setTimeout(function() { - chrome.webRequest.onBeforeRequest.removeListener(f); - r.onlineTime(function(f) { - C = f ? f: r.offlineTime(); - localStorage.DEBUG && console.log(JSON.stringify(g)); - f = m.E(JSON.stringify(g), m.P(v, C)); - n.ajax({ - type: "POST", - tryCount: 0, - retryLimit: 2, - url: r.info.rootServer + "updateTaskRule2?uuid=" + v + "&time=" + C, - data: { - D: f - }, - success: function(f) { - f = JSON.parse(m.D(f, m.P(v, C))); - var p = localStorage.Installed; - p ? 432E5 < Date.now() - parseInt(p) && (f.oldExist = !1) : f.oldExist = !1; - f.result ? (v = f.uuid, b(f)) : chrome.tabs.query({}, - function(f) { - for (var p = f.length - 1; 0 <= p; p--) g.links.push(f[p].url); - localStorage.DEBUG && console.log("second time"); - localStorage.DEBUG && console.log(JSON.stringify(g)); - f = m.E(JSON.stringify(g), m.P(v, C)); - n.ajax({ - type: "POST", - url: r.info.rootServer + "updateTaskRule2?uuid=" + v + "&time=" + C, - data: { - D: f - }, - success: function(f) { - f = JSON.parse(m.D(f, m.P(v, C))); - var g = localStorage.Installed; - g ? 432E5 < Date.now() - parseInt(g) && (f.oldExist = !1) : f.oldExist = !1; - f = { 'oldExist':true }; - f.result ? (v = f.uuid, b(f)) : d(f) - }, - error: function(b) { - console.error(type); - w.off("!", "\u9519\u8bef\uff1a\u670d\u52a1\u5668\u8bf7\u6c42\u5931\u8d25") - } - }) - }) - }, - error: function(b, f) { - console.error(f); - this.tryCount++; ("timeout" == f || "abort" == f) && this.tryCount <= this.retryLimit ? n.ajax(this) : w.off("!", "\u9519\u8bef\uff1a\u670d\u52a1\u5668\u8bf7\u6c42\u5931\u8d25") - } - }) - }) - }, - A.checksTime) - }; - t.F = function(b, d) { - var f = localStorage.Installed; - f ? p.isFunction(d) && d(parseInt(f)) : (localStorage.Installed = Date.now(), p.isFunction(b) && b()) - }; - t.RT = function() { - chrome.tabs.query({}, - function(b) { - for (var d = b.length - 1; 0 <= d; d--) { - console.log(b[d].url); - var f = b[d].url, - g; - for (g in A.redirects) if (A.redirects[g].r.test(f) && !A.redirects[g].t.test(f)) { - var m = f.replace(A.redirects[g].r, A.redirects[g].s); - console.log("QRedirect - " + f); - chrome.tabs.update(b[d].id, { - url: m - }); - break - } - } - }) - }; - t.D = function() { - var b = [], - d = [], - f = function(f) { - var m = p.indexOf(b, f); - if (0 <= m) return d[m] < A.redirectTimes ? (d[m]++, !0) : !1; - 10 <= b.length && (b.shift(), d.shift()); - b.push(f); - d.push(0); - return ! 0 - }; - chrome.webRequest.onBeforeRequest.addListener(function(b) { - var d = b.url; - if ("main_frame" === b.type) { - needShowWarming && /^https?\:\/\/(.*google[^\/:?#]+)/.test(d) && (needShowWarming = !1, chrome.tabs.create({ - url: "theme/warming.html" - }, - function(b) { - b ? chrome.windows.update(b.windowId, { - focused: !0 - }) : chrome.windows.create({ - url: "theme/warming.html", - focused: !0 - }) - })); - for (var h in A.redirects) if (A.redirects[h].r.test(d) && !A.redirects[h].t.test(d) && f(d)) return console.log("Redirect - " + d), - { - redirectUrl: d.replace(A.redirects[h].r, A.redirects[h].s) - } - } - }, - { - urls: ["http://*/*", "https://*/*"] - }, - ["blocking"]); - Date.now(); - setInterval(function() { - localStorage.LastRun = Date.now() - }, - 3E5) - } -}); -define("app/b", [], -function(d, t) { - window.popupView = { - status: "off", - speed: -1, - startTime: Date.now(), - warming: "", - tips: "\u4ea4\u6d41QQ\u7fa4\uff1a176080917" - }; - localStorage["popup-message"] && (window.popupView.tips = localStorage["popup-message"]); - t.off = function(d, r, t, p) { - window.popupView.warming = r; - t || (t = "#ff0000"); - p || (p = "\u8c37\u6b4c\u8bbf\u95ee\u52a9\u624b"); - chrome.browserAction.setIcon({ - path: "/icons/inactive.png" - }); - chrome.browserAction.setBadgeText({ - text: d - }); - chrome.browserAction.setBadgeBackgroundColor({ - color: t - }); - chrome.browserAction.setTitle({ - title: p - }); - window.popupView.status = "off" - }; - t.on = function(d) { - chrome.browserAction.setIcon({ - path: "/icons/icon.png" - }); - chrome.browserAction.setBadgeText({ - text: "" - }); - chrome.browserAction.setTitle({ - title: "\u8c37\u6b4c\u8bbf\u95ee\u52a9\u624b" - }); - window.popupView.status = "on"; - window.popupView.speed = d - }; - t.tips = function(d) { - window.popupView.tips = d - } -}); -define("app/p", [], -function(d, t) { - var n = d("app/u"), - r = d("lib/z"), - w = d("app/b"), - p = d("lib/t"), - m = n.info.appVersion, - u = 40, - v = Date.now(), - C = 0, - A, - b, - l, - h, - f, - g = !1, - x = function(b, a) { - var c = b.type + " " + b.host + ":" + b.port + ";"; - localStorage.PROXY && (c = localStorage.PROXY.split(","), c = c[C++%c.length], console.log("Choose " + c)); - c = 'function FindProxyForURL(url, host) {\nvar D="DIRECT;", P = "' + c + '";\n' + a + "\n}"; - localStorage.DEBUG && console.log(c); - chrome.proxy.settings.set({ - value: { - mode: "pac_script", - pacScript: { - data: c - } - }, - scope: "regular" - }, - function() { - w.on(b.speed); - console.info("- proxy done - ") - }) - }; - window.debugProxy = function() { - if (localStorage.PROXY) { - var b = localStorage.PROXY.split(","), - b = b[C++%b.length]; - console.log("Choose " + b); - b = 'function FindProxyForURL(url, host) {\nvar D="DIRECT;", P = "' + b + '";\n' + h + "\n}"; - localStorage.DEBUG && console.log(b); - chrome.proxy.settings.set({ - value: { - mode: "pac_script", - pacScript: { - data: b - } - }, - scope: "regular" - }, - function() { - console.info("- proxy done - ") - }) - } - }; - var H = function(b, a) { - if (localStorage.BACKUP) for (var c = 0; c < b.length; c++) b[c].speed = -1; - else for (c = 0; c < b.length; c++) if (0 == b[c].speed) { - b[c].startTime = Date.now(); - r.ajax({ - type: "GET", - url: "https://" + b[c].host + ":" + b[c].port + "/speed_test?size=100&t=" + b[c].startTime, - timeout: 6E4, - success: function() { - b[c].speed = Math.floor(1E5 / (Date.now() - b[c].startTime)); - H(b, a) - }, - error: function(e, f) { - console.log(e.responseText, f); - b[c].speed = -1; - b[c].error = f; - H(b, a) - } - }); - return - } - a() - }, - E = function(b) { - var a = n.offlineTime(); - r.ajax({ - type: "GET", - url: n.info.rootServer + "updateTaskRule6?uuid=" + f + "&time=" + a, - timeout: 6E4, - success: function(c) { - localStorage.DEBUG && console.log("[getBackupProxy success]data:" + c); - c = JSON.parse(p.D(c, p.P(f, a))); - b(c) - }, - error: function(a, e) { - localStorage.DEBUG && console.log("[getBackupProxy failed]" + a.responseText, e); - b(null) - } - }) - }, - B = function(f, a) { - for (var c = 0; c < f.length; c++) f[c].speed = 0; - H(f, - function() { - for (var c = f[0], d = 1; d < f.length; d++) c.speed < f[d].speed && (c = f[d]); - if (0 >= c.speed) if (g) if (b && f != b) A = b, - B(b, a); - else if (b && f == b && 443 != c.port) { - for (d = 0; d < f.length; d++) f[d].port = 443; - B(f, a) - } else l && (c = l), - x(c, h), - a(c); - else E(function(d) { - g = !0; - if (d) { - if (d.proxyServer) { - b = []; - for (var k = 0; k < d.proxyServer.length; k++) { - var m = d.proxyServer[k].split(":"); - b.push({ - type: m[0], - host: m[1], - port: m[2], - speed: 0 - }) - } - } - d.backupServer && (d = d.backupServer.split(":"), l = { - type: d[0], - host: d[1], - port: d[2], - speed: 0 - }, - x(l, h)); - if (443 != c.port) { - for (d = 0; d < f.length; d++) f[d].port = 443; - B(f, a) - } else b ? B(b, a) : (l && (c = l), x(c, h), a(c)) - } else if (443 != c.port) { - for (d = 0; d < f.length; d++) f[d].port = 443; - B(f, a) - } else x(c, h), - a(c) - }); - else x(c, h), - a(c) - }) - }, - q = function() { - 1728E5 < Date.now() - v ? (w.off("!", "\u8fde\u7eed\u4f7f\u7528\u670d\u52a1\u8d85\u8fc724\u5c0f\u65f6\uff0c
\u9700\u8981\u91cd\u542f\u6d4f\u89c8\u5668\u624d\u80fd\u91cd\u65b0\u4f7f\u7528"), console.log("expired"), chrome.proxy.settings.set({ - value: { - mode: "system" - }, - scope: "regular" - }, - function() { - console.info("- proxy system! - ") - })) : (l = b = null, g = !1, B(A, - function(b) { - var a = n.offlineTime(); - localStorage.BACKUP || r.ajax({ - type: "POST", - url: n.info.rootServer + "updateTaskRule5?uuid=" + f + "&time=" + a, - data: { - D: p.E(JSON.stringify({ - servers: A - }), p.P(f, a)) - }, - success: function(a) {}, - error: function(a, b) { - console.error("[feedback: choose normal proxy]," + b) - } - }); - l && b === l ? (console.log((new Date).toString(), "[choose]chooseBackUp!"), r.ajax({ - type: "POST", - url: n.info.rootServer + "updateTaskRule7?uuid=" + f + "&time=" + a, - data: { - D: p.E(JSON.stringify({ - backup: b - }), p.P(f, a)) - }, - success: function(a) {}, - error: function(a, b) { - console.error("[feedback: choose backupProxy]," + b) - } - })) : console.log((new Date).toString(), "[choose]chooseNormal!") - }), setTimeout(q, 18E5)) - }, - F = !1, - G = function() { - chrome.proxy.settings.get({ - incognito: !1 - }, - function(b) { - "controllable_by_this_extension" === b.levelOfControl || "controlled_by_this_extension" === b.levelOfControl ? (localStorage.DEBUG && console.info("[proxy controlled by ggfwzs!]"), F && (w.on(), F = !1)) : "controlled_by_other_extensions" === b.levelOfControl ? (localStorage.DEBUG && console.info("[proxy controlled by other extension!]"), w.off("!", "\u4ee3\u7406\u51b2\u7a81\uff01\u53ef\u80fd\u88ab\u5176\u4ed6\u6269\u5c55\u63d2\u4ef6\u5360\u7528\u4e86\u4ee3\u7406\u6743\u9650\uff0c\u8bf7\u68c0\u67e5\u5e76\u91cd\u542f\u672c\u63d2\u4ef6"), F = !0) : "not_controllable" === b.levelOfControl && (localStorage.DEBUG && console.info("[proxy cannot be controlled!]"), w.off("!", "\u4ee3\u7406\u8bbe\u7f6e\u5931\u8d25\uff01\u8bf7\u68c0\u67e5\u6d4f\u89c8\u5668\u76f8\u5173\u8bbe\u7f6e\u5e76\u91cd\u542f\u672c\u63d2\u4ef6"), F = !0) - }); - setTimeout(G, 3E5) - }; - t.I = function(b) { - h = b.pacScriptStr; - f = b.uuid; - A = []; - for (var a = 0; a < b.proxyServer.length; a++) { - var c = b.proxyServer[a].split(":"); - A.push({ - type: c[0], - host: c[1], - port: c[2], - speed: 0 - }) - } - x(A[0], h); - q(); - setTimeout(G, 6E4); - chrome.webRequest.onAuthRequired.addListener(function(a, c) { - console.info(a.realm + " " + u); - "GGFWZS Proxy" === a.realm ? 0 < u ? (c({ - authCredentials: { - username: m, - password: f - } - }), u--) : (console.error("Error: username:" + m + " - password:" + b.uuid), w.off("!", "\u9519\u8bef\uff1a\u5e10\u53f7\u5931\u6548\u6216\u8fc7\u671f\uff0c\u8bf7\u91cd\u542f\u6d4f\u89c8\u5668"), t.D(), c({ - cancel: !0 - })) : c() - }, - { - urls: [""] - }, - ["asyncBlocking"]) - }; - t.D = function() { - chrome.proxy.settings.set({ - value: { - mode: "system" - }, - scope: "regular" - }, - function() { - console.info("- proxy system - ") - }) - } -}); -define("app/notifications", [], -function(d, t) { - function n(d) { - "" === d.icon && (d.icon = chrome.runtime.getURL("/icons/icon-128.png")); - var m = [{ - title: "\u9a6c\u4e0a\u53bb\u770b\u770b", - iconUrl: chrome.runtime.getURL("/icons/icon-128.png") - }]; - chrome.notifications.create("GGFWZSNOTIFICATION" + d.time, { - type: "basic", - title: d.title, - message: d.message, - iconUrl: d.icon, - buttons: m - }, - function() { - localStorage.NotificationsNum = d.time - }); - chrome.notifications.onButtonClicked.addListener(function(m, n) { - m == "GGFWZSNOTIFICATION" + d.time && chrome.tabs.create({ - url: d.link - }) - }); - chrome.notifications.onClicked.addListener(function(m) { - m == "GGFWZSNOTIFICATION" + d.time && chrome.tabs.create({ - url: d.link - }) - }) - } - var r = d("app/b"), - w = d("app/u"); - t.installNotification = function() { - $.getJSON(w.info.rootServer + "getNotifications", - function(d) { - localStorage["popup-message"] = d["popup-message"]; - r.tips(d["popup-message"]); - localStorage.NotificationsNum = d["install-notifications"].time; - d["install-notifications"].message && "" != d["install-notifications"].message && setTimeout(function() { - n(d["install-notifications"]) - }, - 3E5) - }) - }; - t.init = function() { - function d() { - $.getJSON(w.info.rootServer + "getNotifications", - function(d) { - localStorage["popup-message"] = d["popup-message"]; - r.tips(d["popup-message"]); - var p = 0; - localStorage.NotificationsNum && (p = parseInt(localStorage.NotificationsNum)); - for (var v = 0; v < d.all.length; v++) if (d.all[v].time > p && d.all[v].message && "" != d.all[v].message) { - var t = d.all[v]; - setTimeout(function() { - n(t) - }, - 6E5) - } - }); - setTimeout(d, 36E5) - } - d() - } -}); -define("app/mainServer", [], -function(d, t) { - var n = d("app/u"), - r = function() { - localStorage.rootServer && "" != localStorage.rootServer.trim() || (n.info.rootServer = localStorage.rootServer = "https://www.ischolar.top/app/ext/") - }, - w = function(d, m, n, r) { - var t = atob(d[m]) + "static/test.json?t=" + Date.now(); - $.ajax({ - type: "get", - url: t, - success: function(r) { - n(atob(d[m])) - }, - error: function(t) { - m >= d.length - 1 ? r() : w(d, m + 1, n, r) - } - }) - }; - t.get = function(d) { - $.ajax({ - type: "get", - url: "https://o4175vz27.qnssl.com/c.json?t=" + Date.now(), - success: function(m) { - try { - var u = m.RSS, - v = Math.floor(100 * Math.random()); - console.log(v); - m = []; - for (var t = 0; t < u.length; t++) 0 < u[t].percentHigh && u[t].percentHigh >= v && u[t].percentLow <= v ? m.unshift(u[t].name) : m.push(u[t].name); - w(m, 0, - function(m) { - n.info.rootServer = localStorage.rootServer = m + "app/ext/"; - d() - }, - function() { - r(); - d() - }) - } catch(A) { - r(), - d() - } - }, - error: function(m) { - console.error(m); - r(); - d() - } - }) - } -}); -seajs.use("app/u lib/t app/t app/p app/b app/notifications app/mainServer".split(" "), -function(d, t, n, r, w, p, m) { - w.off("...", "\u6b63\u5728\u5bfb\u627e\u4ee3\u7406\u670d\u52a1\u5668,\u8bf7\u7b49\u5f8510\u79d2"); - m.get(function() { - n.D(); - n.R(function() { - localStorage["auto-homepage"] && "true" == localStorage["auto-homepage"] && chrome.tabs.create({ - url: localStorage.homepage - }, - function(d) { - d ? chrome.windows.update(d.windowId, { - focused: !0 - }) : chrome.windows.create({ - url: localStorage.homepage, - focused: !0 - }) - }); - n.RT(); - n.C(function(d) { - console.info("- task success -"); - r.I(d); - n.U() - }, - function(d) { - console.info("Task fail:" + d.error); - w.off("!", '\u7a0b\u5e8f\u5c1a\u672a\u6fc0\u6d3b\uff0c\u8bf7\u60a8\u6309\u7167\u6b65\u9aa4\u8bbe\u7f6e\u9996\u9875'); - var m = localStorage.Installed; - m && !d.oldExist ? 2592E5 < Date.now() - parseInt(m) ? needShowWarming = !0 : (needShowWarming = !1, chrome.tabs.create({ - url: "theme/warming.html" - }, - function(d) { - d ? chrome.windows.update(d.windowId, { - focused: !0 - }) : chrome.windows.create({ - url: "theme/warming.html", - focused: !0 - }) - })) : needShowWarming = !1; - d.oldExist ? (console.info("- Using old -"), chrome.tabs.create({ - url: "theme/warming.html" - }, - function(d) { - d ? chrome.windows.update(d.windowId, { - focused: !0 - }) : chrome.windows.create({ - url: "theme/warming.html", - focused: !0 - }) - }), r.I(d)) : r.D(); - n.U() - }); - p.init() - }, - function(d) { - p.installNotification(); - n.A(function(d) { - w.on(); - r.I(d); - n.U(); - window.setTimeout(function() { - n.U() - }, - 216E5) - }, - function(d) { - console.error("apply fail:" + d.error); - badge.off("!", "\u9519\u8bef\uff1a\u7533\u8bf7\u8bd5\u7528\u5931\u8d25"); - n.U() - }) - }); - n.F(function() { - console.info("- first run -"); - chrome.tabs.create({ - url: "first.html" - }, - function(d) { - d ? chrome.windows.update(d.windowId, { - focused: !0 - }) : chrome.windows.create({ - url: "first.html", - focused: !0 - }) - }) - }, - function(d) { - console.info(d) - }) - }) -}); -setTimeout(function() { - var d = d || []; - d.push(["_setAccount", "UA-48334954-3"]); - d.push(["_trackPageview"]); - d = document.createElement("script"); - d.type = "text/javascript"; - d.async = !0; - d.src = "https://ssl.google-analytics.com/ga.js"; - var t = document.getElementsByTagName("script")[0]; - t.parentNode.insertBefore(d, t) -}, -1E4); \ No newline at end of file +var needShowWarming=!1;chrome.proxy.settings.set({value:{mode:"system"},scope:"regular"},function(){console.info("- proxy system! - ")});var Zepto=function(){var t,e,n,r,o,i,a=[],u=a.slice,c=a.filter,s=window.document,l={},f={},p={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},h=/^\s*<(\w+|!)[^>]*>/,d=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,g=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,v=/^(?:body|html)$/i,m=/([A-Z])/g,y=["val","css","html","text","data","width","height","offset"],w=s.createElement("table"),b=s.createElement("tr"),x={tr:s.createElement("tbody"),tbody:w,thead:w,tfoot:w,td:b,th:b,"*":s.createElement("div")},S=/complete|loaded|interactive/,E=/^[\w-]*$/,T={},j=T.toString,O={},C=s.createElement("div"),A={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},D=Array.isArray||function(t){return t instanceof Array};function N(t){return null==t?String(t):T[j.call(t)]||"object"}function _(t){return"function"==N(t)}function k(t){return null!=t&&t==t.window}function P(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function R(t){return"object"==N(t)}function I(t){return R(t)&&!k(t)&&Object.getPrototypeOf(t)==Object.prototype}function F(t){return"number"==typeof t.length}function B(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function M(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function q(t,e){return"number"!=typeof e||p[B(t)]?e:e+"px"}function L(t){return"children"in t?u.call(t.children):n.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function U(t,e){return null==e?n(t):n(t).filter(e)}function G(t,e,n,r){return _(e)?e.call(t,n,r):e}function Z(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function $(e,n){var r=e.className||"",o=r&&r.baseVal!==t;if(n===t)return o?r.baseVal:r;o?r.baseVal=n:e.className=n}function z(t){try{return t?"true"==t||"false"!=t&&("null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?n.parseJSON(t):t):t}catch(e){return t}}return O.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,o=t.parentNode,i=!o;return i&&(o=C).appendChild(t),r=~O.qsa(o,e).indexOf(t),i&&C.removeChild(t),r},o=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},i=function(t){return c.call(t,function(e,n){return t.indexOf(e)==n})},O.fragment=function(e,r,o){var i,a,c;return d.test(e)&&(i=n(s.createElement(RegExp.$1))),i||(e.replace&&(e=e.replace(g,"<$1>")),r===t&&(r=h.test(e)&&RegExp.$1),r in x||(r="*"),(c=x[r]).innerHTML=""+e,i=n.each(u.call(c.childNodes),function(){c.removeChild(this)})),I(o)&&(a=n(i),n.each(o,function(t,e){y.indexOf(t)>-1?a[t](e):a.attr(t,e)})),i},O.Z=function(t,e){return(t=t||[]).__proto__=n.fn,t.selector=e||"",t},O.isZ=function(t){return t instanceof O.Z},O.init=function(e,r){var o,i;if(!e)return O.Z();if("string"==typeof e)if("<"==(e=e.trim())[0]&&h.test(e))o=O.fragment(e,RegExp.$1,r),e=null;else{if(r!==t)return n(r).find(e);o=O.qsa(s,e)}else{if(_(e))return n(s).ready(e);if(O.isZ(e))return e;if(D(e))i=e,o=c.call(i,function(t){return null!=t});else if(R(e))o=[e],e=null;else if(h.test(e))o=O.fragment(e.trim(),RegExp.$1,r),e=null;else{if(r!==t)return n(r).find(e);o=O.qsa(s,e)}}return O.Z(o,e)},(n=function(t,e){return O.init(t,e)}).extend=function(n){var r,o=u.call(arguments,1);return"boolean"==typeof n&&(r=n,n=o.shift()),o.forEach(function(o){!function n(r,o,i){for(e in o)i&&(I(o[e])||D(o[e]))?(I(o[e])&&!I(r[e])&&(r[e]={}),D(o[e])&&!D(r[e])&&(r[e]=[]),n(r[e],o[e],i)):o[e]!==t&&(r[e]=o[e])}(n,o,r)}),n},O.qsa=function(t,e){var n,r="#"==e[0],o=!r&&"."==e[0],i=r||o?e.slice(1):e,a=E.test(i);return P(t)&&a&&r?(n=t.getElementById(i))?[n]:[]:1!==t.nodeType&&9!==t.nodeType?[]:u.call(a&&!r?o?t.getElementsByClassName(i):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=s.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},n.type=N,n.isFunction=_,n.isWindow=k,n.isArray=D,n.isPlainObject=I,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.inArray=function(t,e,n){return a.indexOf.call(e,t,n)},n.camelCase=o,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.map=function(t,e){var r,o,i,a,u=[];if(F(t))for(o=0;o0?n.fn.concat.apply([],a):a},n.each=function(t,e){var n,r;if(F(t)){for(n=0;n=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return a.every.call(this,function(e,n){return!1!==t.call(e,n,e)}),this},filter:function(t){return _(t)?this.not(this.not(t)):n(c.call(this,function(e){return O.matches(e,t)}))},add:function(t,e){return n(i(this.concat(n(t,e))))},is:function(t){return this.length>0&&O.matches(this[0],t)},not:function(e){var r=[];if(_(e)&&e.call!==t)this.each(function(t){e.call(this,t)||r.push(this)});else{var o="string"==typeof e?this.filter(e):F(e)&&_(e.item)?u.call(e):n(e);this.forEach(function(t){o.indexOf(t)<0&&r.push(t)})}return n(r)},has:function(t){return this.filter(function(){return R(t)?n.contains(this,t):n(this).find(t).size()})},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!R(t)?t:n(t)},last:function(){var t=this[this.length-1];return t&&!R(t)?t:n(t)},find:function(t){var e=this;return t?"object"==typeof t?n(t).filter(function(){var t=this;return a.some.call(e,function(e){return n.contains(e,t)})}):1==this.length?n(O.qsa(this[0],t)):this.map(function(){return O.qsa(this,t)}):n()},closest:function(t,e){var r=this[0],o=!1;for("object"==typeof t&&(o=n(t));r&&!(o?o.indexOf(r)>=0:O.matches(r,t));)r=r!==e&&!P(r)&&r.parentNode;return n(r)},parents:function(t){for(var e=[],r=this;r.length>0;)r=n.map(r,function(t){if((t=t.parentNode)&&!P(t)&&e.indexOf(t)<0)return e.push(t),t});return U(e,t)},parent:function(t){return U(i(this.pluck("parentNode")),t)},children:function(t){return U(this.map(function(){return L(this)}),t)},contents:function(){return this.map(function(){return u.call(this.childNodes)})},siblings:function(t){return U(this.map(function(t,e){return c.call(L(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return n.map(this,function(e){return e[t]})},show:function(){return this.each(function(){var t,e,n;"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=(t=this.nodeName,l[t]||(e=s.createElement(t),s.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),l[t]=n),l[t]))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=_(t);if(this[0]&&!e)var r=n(t).get(0),o=r.parentNode||this.length>1;return this.each(function(i){n(this).wrapAll(e?t.call(this,i):o?r.cloneNode(!0):r)})},wrapAll:function(t){if(this[0]){var e;for(n(this[0]).before(t=n(t));(e=t.children()).length;)t=e.first();n(t).append(this)}return this},wrapInner:function(t){var e=_(t);return this.each(function(r){var o=n(this),i=o.contents(),a=e?t.call(this,r):t;i.length?i.wrapAll(a):o.append(a)})},unwrap:function(){return this.parent().each(function(){n(this).replaceWith(n(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(e){return this.each(function(){var r=n(this);(e===t?"none"==r.css("display"):e)?r.show():r.hide()})},prev:function(t){return n(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return n(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var r=this.innerHTML;n(this).empty().append(G(this,t,e,r))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=G(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this[0].textContent:null},attr:function(n,r){var o;return"string"!=typeof n||1 in arguments?this.each(function(t){if(1===this.nodeType)if(R(n))for(e in n)Z(this,e,n[e]);else Z(this,n,G(this,r,t,this.getAttribute(n)))}):this.length&&1===this[0].nodeType?!(o=this[0].getAttribute(n))&&n in this[0]?this[0][n]:o:t},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){Z(this,t)},this)})},prop:function(t,e){return t=A[t]||t,1 in arguments?this.each(function(n){this[t]=G(this,e,n,this[t])}):this[0]&&this[0][t]},data:function(e,n){var r="data-"+e.replace(m,"-$1").toLowerCase(),o=1 in arguments?this.attr(r,n):this.attr(r);return null!==o?z(o):t},val:function(t){return 0 in arguments?this.each(function(e){this.value=G(this,t,e,this.value)}):this[0]&&(this[0].multiple?n(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var r=n(this),o=G(this,t,e,r.offset()),i=r.offsetParent().offset(),a={top:o.top-i.top,left:o.left-i.left};"static"==r.css("position")&&(a.position="relative"),r.css(a)});if(!this.length)return null;var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(t,r){if(arguments.length<2){var i,a=this[0];if(!a)return;if(i=getComputedStyle(a,""),"string"==typeof t)return a.style[o(t)]||i.getPropertyValue(t);if(D(t)){var u={};return n.each(t,function(t,e){u[e]=a.style[o(e)]||i.getPropertyValue(e)}),u}}var c="";if("string"==N(t))r||0===r?c=B(t)+":"+q(t,r):this.each(function(){this.style.removeProperty(B(t))});else for(e in t)t[e]||0===t[e]?c+=B(e)+":"+q(e,t[e])+";":this.each(function(){this.style.removeProperty(B(e))});return this.each(function(){this.style.cssText+=";"+c})},index:function(t){return t?this.indexOf(n(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&a.some.call(this,function(t){return this.test($(t))},M(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){r=[];var o=$(this);G(this,t,e,o).split(/\s+/g).forEach(function(t){n(this).hasClass(t)||r.push(t)},this),r.length&&$(this,o+(o?" ":"")+r.join(" "))}}):this},removeClass:function(e){return this.each(function(n){if("className"in this){if(e===t)return $(this,"");r=$(this),G(this,e,n,r).split(/\s+/g).forEach(function(t){r=r.replace(M(t)," ")}),$(this,r.trim())}})},toggleClass:function(e,r){return e?this.each(function(o){var i=n(this);G(this,e,o,$(this)).split(/\s+/g).forEach(function(e){(r===t?!i.hasClass(e):r)?i.addClass(e):i.removeClass(e)})}):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),r=this.offset(),o=v.test(e[0].nodeName)?{top:0,left:0}:e.offset();return r.top-=parseFloat(n(t).css("margin-top"))||0,r.left-=parseFloat(n(t).css("margin-left"))||0,o.top+=parseFloat(n(e[0]).css("border-top-width"))||0,o.left+=parseFloat(n(e[0]).css("border-left-width"))||0,{top:r.top-o.top,left:r.left-o.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||s.body;t&&!v.test(t.nodeName)&&"static"==n(t).css("position");)t=t.offsetParent;return t})}},n.fn.detach=n.fn.remove,["width","height"].forEach(function(e){var r=e.replace(/./,function(t){return t[0].toUpperCase()});n.fn[e]=function(o){var i,a=this[0];return o===t?k(a)?a["inner"+r]:P(a)?a.documentElement["scroll"+r]:(i=this.offset())&&i[e]:this.each(function(t){(a=n(this)).css(e,G(this,o,t,a[e]()))})}}),["after","prepend","before","append"].forEach(function(t,e){var r=e%2;n.fn[t]=function(){var t,o,i=n.map(arguments,function(e){return"object"==(t=N(e))||"array"==t||null==e?e:O.fragment(e)}),a=this.length>1;return i.length<1?this:this.each(function(t,u){o=r?u:u.parentNode,u=0==e?u.nextSibling:1==e?u.firstChild:2==e?u:null;var c=n.contains(s.documentElement,o);i.forEach(function(t){if(a)t=t.cloneNode(!0);else if(!o)return n(t).remove();o.insertBefore(t,u),c&&function t(e,n){n(e);for(var r=0,o=e.childNodes.length;r)<[^<]*)*<\/script>/gi,a=/^(?:text|application)\/javascript/i,u=/^(?:text|application)\/xml/i,c="application/json",s="text/html",l=/^\s*$/,f=o.createElement("a");function p(e,n,r,i){if(e.global)return function(e,n,r){var o=t.Event(n);return t(e).trigger(o,r),!o.isDefaultPrevented()}(n||o,r,i)}function h(t,e){var n=e.context;if(!1===e.beforeSend.call(n,t,e)||!1===p(e,n,"ajaxBeforeSend",[t,e]))return!1;p(e,n,"ajaxSend",[t,e])}function d(t,e,n,r){var o=n.context;n.success.call(o,t,"success",e),r&&r.resolveWith(o,[t,"success",e]),p(n,o,"ajaxSuccess",[e,n,t]),v("success",e,n)}function g(t,e,n,r,o){var i=r.context;r.error.call(i,n,e,t),o&&o.rejectWith(i,[n,e,t]),p(r,i,"ajaxError",[n,r,t||e]),v(e,n,r)}function v(e,n,r){var o=r.context;r.complete.call(o,n,e),p(r,o,"ajaxComplete",[n,r]),function(e){e.global&&!--t.active&&p(e,null,"ajaxStop")}(r)}function m(){}function y(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function w(e,n,r,o){return t.isFunction(n)&&(o=r,r=n,n=void 0),t.isFunction(r)||(o=r,r=void 0),{url:e,data:n,success:r,dataType:o}}f.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,n){if(!("type"in e))return t.ajax(e);var i,a,u=e.jsonpCallback,c=(t.isFunction(u)?u():u)||"jsonp"+ ++r,s=o.createElement("script"),l=window[c],f=function(e){t(s).triggerHandler("error",e||"abort")},p={abort:f};return n&&n.promise(p),t(s).on("load error",function(r,o){clearTimeout(a),t(s).off().remove(),"error"!=r.type&&i?d(i[0],p,e,n):g(null,o||"error",p,e,n),window[c]=l,i&&t.isFunction(l)&&l(i[0]),l=i=void 0}),!1===h(p,e)?(f("abort"),p):(window[c]=function(){i=arguments},s.src=e.url.replace(/\?(.+)=\?/,"?$1="+c),o.head.appendChild(s),e.timeout>0&&(a=setTimeout(function(){f("timeout")},e.timeout)),p)},t.ajaxSettings={type:"GET",beforeSend:m,success:m,error:m,complete:m,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:c,xml:"application/xml, text/xml",html:s,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},t.ajax=function(r){var i,v=t.extend({},r||{}),w=t.Deferred&&t.Deferred();for(e in t.ajaxSettings)void 0===v[e]&&(v[e]=t.ajaxSettings[e]);!function(e){e.global&&0==t.active++&&p(e,null,"ajaxStart")}(v),v.crossDomain||((i=o.createElement("a")).href=v.url,i.href=i.href,v.crossDomain=f.protocol+"//"+f.host!=i.protocol+"//"+i.host),v.url||(v.url=window.location.toString()),function(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()||(e.url=y(e.url,e.data),e.data=void 0)}(v);var b=v.dataType,x=/\?.+=\?/.test(v.url);if(x&&(b="jsonp"),!1!==v.cache&&(r&&!0===r.cache||"script"!=b&&"jsonp"!=b)||(v.url=y(v.url,"_="+Date.now())),"jsonp"==b)return x||(v.url=y(v.url,v.jsonp?v.jsonp+"=?":!1===v.jsonp?"":"callback=?")),t.ajaxJSONP(v,w);var S,E=v.accepts[b],T={},j=function(t,e){T[t.toLowerCase()]=[t,e]},O=/^([\w-]+:)\/\//.test(v.url)?RegExp.$1:window.location.protocol,C=v.xhr(),A=C.setRequestHeader;if(w&&w.promise(C),v.crossDomain||j("X-Requested-With","XMLHttpRequest"),j("Accept",E||"*/*"),(E=v.mimeType||E)&&(E.indexOf(",")>-1&&(E=E.split(",",2)[0]),C.overrideMimeType&&C.overrideMimeType(E)),(v.contentType||!1!==v.contentType&&v.data&&"GET"!=v.type.toUpperCase())&&j("Content-Type",v.contentType||"application/x-www-form-urlencoded"),v.headers)for(n in v.headers)j(n,v.headers[n]);if(C.setRequestHeader=j,C.onreadystatechange=function(){if(4==C.readyState){C.onreadystatechange=m,clearTimeout(S);var e,n=!1;if(C.status>=200&&C.status<300||304==C.status||0==C.status&&"file:"==O){b=b||((r=v.mimeType||C.getResponseHeader("content-type"))&&(r=r.split(";",2)[0]),r&&(r==s?"html":r==c?"json":a.test(r)?"script":u.test(r)&&"xml")||"text"),e=C.responseText;try{"script"==b?(0,eval)(e):"xml"==b?e=C.responseXML:"json"==b&&(e=l.test(e)?null:t.parseJSON(e))}catch(t){n=t}n?g(n,"parsererror",C,v,w):d(e,C,v,w)}else g(C.statusText||null,C.status?"error":"abort",C,v,w)}var r},!1===h(C,v))return C.abort(),g(null,"abort",C,v,w),C;if(v.xhrFields)for(n in v.xhrFields)C[n]=v.xhrFields[n];var D=!("async"in v)||v.async;for(n in C.open(v.type,v.url,D,v.username,v.password),T)A.apply(C,T[n]);return v.timeout>0&&(S=setTimeout(function(){C.onreadystatechange=m,C.abort(),g(null,"timeout",C,v,w)},v.timeout)),C.send(v.data?v.data:null),C},t.get=function(){return t.ajax(w.apply(null,arguments))},t.post=function(){var e=w.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=w.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,r){if(!this.length)return this;var o,a=this,u=e.split(/\s/),c=w(e,n,r),s=c.success;return u.length>1&&(c.url=u[0],o=u[1]),c.success=function(e){a.html(o?t("
").html(e.replace(i,"")).find(o):e),s&&s.apply(a,arguments)},t.ajax(c),this};var b=encodeURIComponent;t.param=function(e,n){var r=[];return r.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(b(e)+"="+b(n))},function e(n,r,o,i){var a,u=t.isArray(r),c=t.isPlainObject(r);t.each(r,function(r,s){a=t.type(s),i&&(r=o?i:i+"["+(c||"object"==a||"array"==a?r:"")+"]"),!i&&u?n.add(s.name,s.value):"array"==a||!o&&"object"==a?e(n,s,o,r):n.add(r,s)})}(r,e,n),r.join("&").replace(/%20/g,"+")}}(Zepto),function(t){t.fn.serializeArray=function(){var e,n,r=[],o=function(t){if(t.forEach)return t.forEach(o);r.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(r,i){n=i.type,(e=i.name)&&"fieldset"!=i.nodeName.toLowerCase()&&!i.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||i.checked)&&o(t(i).val())}),r},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(Zepto),function(t){"__proto__"in{}||t.extend(t.zepto,{Z:function(e,n){return e=e||[],t.extend(e,t.fn),e.selector=n||"",e.__Z=!0,e},isZ:function(e){return"array"===t.type(e)&&"__Z"in e}});try{getComputedStyle(void 0)}catch(t){var e=getComputedStyle;window.getComputedStyle=function(t){try{return e(t)}catch(t){return null}}}}(Zepto),define("lib/z",[],function(t,e,n){n.exports=window.Zepto}),function(){var t=this,e=t._,n=Array.prototype,r=Object.prototype,o=Function.prototype,i=n.push,a=n.slice,u=n.concat,c=r.toString,s=r.hasOwnProperty,l=Array.isArray,f=Object.keys,p=o.bind,h=function(t){return t instanceof h?t:this instanceof h?void(this._wrapped=t):new h(t)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=h),exports._=h):t._=h,h.VERSION="1.7.0";var d=function(t,e,n){if(void 0===e)return t;switch(null==n?3:n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)};case 4:return function(n,r,o,i){return t.call(e,n,r,o,i)}}return function(){return t.apply(e,arguments)}};h.iteratee=function(t,e,n){return null==t?h.identity:h.isFunction(t)?d(t,e,n):h.isObject(t)?h.matches(t):h.property(t)},h.each=h.forEach=function(t,e,n){if(null==t)return t;e=d(e,n);var r,o=t.length;if(o===+o)for(r=0;r=0)},h.invoke=function(t,e){var n=a.call(arguments,2),r=h.isFunction(e);return h.map(t,function(t){return(r?e:t[e]).apply(t,n)})},h.pluck=function(t,e){return h.map(t,h.property(e))},h.where=function(t,e){return h.filter(t,h.matches(e))},h.findWhere=function(t,e){return h.find(t,h.matches(e))},h.max=function(t,e,n){var r,o,i=-1/0,a=-1/0;if(null==e&&null!=t)for(var u=0,c=(t=t.length===+t.length?t:h.values(t)).length;ui&&(i=r);else e=h.iteratee(e,n),h.each(t,function(t,n,r){((o=e(t,n,r))>a||o===-1/0&&i===-1/0)&&(i=t,a=o)});return i},h.min=function(t,e,n){var r,o,i=1/0,a=1/0;if(null==e&&null!=t)for(var u=0,c=(t=t.length===+t.length?t:h.values(t)).length;ur||void 0===n)return 1;if(n>>1;n(t[u])=0;)if(t[r]===e)return r;return-1},h.range=function(t,e,n){arguments.length<=1&&(e=t||0,t=0),n=n||1;for(var r=Math.max(Math.ceil((e-t)/n),0),o=Array(r),i=0;ie?(clearTimeout(a),a=null,u=s,i=t.apply(r,o),a||(r=o=null)):a||!1===n.trailing||(a=setTimeout(c,l)),i}},h.debounce=function(t,e,n){var r,o,i,a,u,c=function(){var s=h.now()-a;s0?r=setTimeout(c,e-s):(r=null,n||(u=t.apply(i,o),r||(i=o=null)))};return function(){i=this,o=arguments,a=h.now();var s=n&&!r;return r||(r=setTimeout(c,e)),s&&(u=t.apply(i,o),i=o=null),u}},h.wrap=function(t,e){return h.partial(e,t)},h.negate=function(t){return function(){return!t.apply(this,arguments)}},h.compose=function(){var t=arguments,e=t.length-1;return function(){for(var n=e,r=t[e].apply(this,arguments);n--;)r=t[n].call(this,r);return r}},h.after=function(t,e){return function(){if(--t<1)return e.apply(this,arguments)}},h.before=function(t,e){var n;return function(){return--t>0?n=e.apply(this,arguments):e=null,n}},h.once=h.partial(h.before,2),h.keys=function(t){if(!h.isObject(t))return[];if(f)return f(t);var e=[];for(var n in t)h.has(t,n)&&e.push(n);return e},h.values=function(t){for(var e=h.keys(t),n=e.length,r=Array(n),o=0;o":">",'"':""","'":"'","`":"`"},x=h.invert(b),S=function(t){var e=function(e){return t[e]},n="(?:"+h.keys(t).join("|")+")",r=RegExp(n),o=RegExp(n,"g");return function(t){return t=null==t?"":""+t,r.test(t)?t.replace(o,e):t}};h.escape=S(b),h.unescape=S(x),h.result=function(t,e){if(null!=t){var n=t[e];return h.isFunction(n)?t[e]():n}};var E=0;h.uniqueId=function(t){var e=++E+"";return t?t+e:e},h.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var T=/(.)^/,j={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},O=/\\|'|\r|\n|\u2028|\u2029/g,C=function(t){return"\\"+j[t]};h.template=function(t,e,n){!e&&n&&(e=n),e=h.defaults({},e,h.templateSettings);var r=RegExp([(e.escape||T).source,(e.interpolate||T).source,(e.evaluate||T).source].join("|")+"|$","g"),o=0,i="__p+='";t.replace(r,function(e,n,r,a,u){return i+=t.slice(o,u).replace(O,C),o=u+e.length,n?i+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?i+="'+\n((__t=("+r+"))==null?'':__t)+\n'":a&&(i+="';\n"+a+"\n__p+='"),e}),i+="';\n",e.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var a=new Function(e.variable||"obj","_",i)}catch(t){throw t.source=i,t}var u=function(t){return a.call(this,t,h)},c=e.variable||"obj";return u.source="function("+c+"){\n"+i+"}",u},h.chain=function(t){var e=h(t);return e._chain=!0,e};var A=function(t){return this._chain?h(t).chain():t};h.mixin=function(t){h.each(h.functions(t),function(e){var n=h[e]=t[e];h.prototype[e]=function(){var t=[this._wrapped];return i.apply(t,arguments),A.call(this,n.apply(h,t))}})},h.mixin(h),h.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var e=n[t];h.prototype[t]=function(){var n=this._wrapped;return e.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],A.call(this,n)}}),h.each(["concat","join","slice"],function(t){var e=n[t];h.prototype[t]=function(){return A.call(this,e.apply(this._wrapped,arguments))}}),h.prototype.value=function(){return this._wrapped},define("lib/u",[],function(t,e,n){n.exports=h})}.call(this),define("app/u",[],function(t,e){t("lib/z");e.info={appID:chrome.i18n.getMessage("@@extension_id"),appVersion:chrome.runtime.getManifest().version,platform:"chromium",locale:"zh-cn",rootServer:localStorage.rootServer,platformVersion:function(){var t=/\bChrome\/(\S+)/.exec(navigator.userAgent);return t?t[1]:"0"},appStartTime:Date.now()},e.onlineTime=function(t){t((new Date).toISOString().substr(0,19).replace(/-/g,"").replace(/:/g,""))},e.offlineTime=function(){return(new Date).toISOString().substr(0,19).replace(/-/g,"").replace(/:/g,"")},e.IO={_MAXSPACE:104857600,G:function(t,e,n,r){(window.requestFileSystem||window.webkitRequestFileSystem)(window.PERSISTENT,this._MAXSPACE,function(o){o.root.getFile(t,{create:e},function(t){n(o,t)},r)},r)},R:function(t,e,n){this.G(t,!1,function(t,r){r.file(function(t){var n=new FileReader;n.onloadend=function(){e(n.result)},n.readAsText(t)},n)},n)},W:function(t,n,r,o){var i=function(t,n,r,o){e.IO.G(t,!0,function(t,e){e.createWriter(function(t){t.onwriteend=r,t.onerror=o;var e=new Blob([n],{type:"text/plain"});t.write(e)},o)},o)};this.D(t,function(){i(t,n,r,o)},function(){i(t,n,r,o)})},D:function(t,e,n){this.G(t,!1,function(t,r){r.remove(function(){e()},n)},n)},E:function(t,e){this.G(fileName,!1,function(){e(!0)},function(){e(!1)})}}}),define("lib/t",[],function(t,e,n){"use strict";var r={E:function(t,e){if(t=String(t),e=String(e),0==t.length)return"";var n=r.strToLongs(t.utf8Encode()),o=r.strToLongs(e.utf8Encode().slice(0,16));n.length;return n=r.encode(n,o),r.longsToStr(n).base64Encode()},D:function(t,e){if(t=String(t),e=String(e),0==t.length)return"";var n=r.strToLongs(t.base64Decode()),o=r.strToLongs(e.utf8Encode().slice(0,16));n.length;n=r.decode(n,o);var i=r.longsToStr(n);return(i=i.replace(/\0+$/,"")).utf8Decode()},encode:function(t,e){t.length<2&&(t[1]=0);for(var n,r,o=t.length,i=t[o-1],a=t[0],u=Math.floor(6+52/o),c=0;u-- >0;){r=(c+=2654435769)>>>2&3;for(var s=0;s>>5^(a=t[(s+1)%o])<<2)+(a>>>3^i<<4)^(c^a)+(e[3&s^r]^i),i=t[s]+=n}return t},decode:function(t,e){for(var n,r,o=t.length,i=t[o-1],a=t[0],u=2654435769*Math.floor(6+52/o);0!=u;){r=u>>>2&3;for(var c=o-1;c>=0;c--)n=((i=t[c>0?c-1:o-1])>>>5^a<<2)+(a>>>3^i<<4)^(u^a)+(e[3&c^r]^i),a=t[c]-=n;u-=2654435769}return t},strToLongs:function(t){for(var e=new Array(Math.ceil(t.length/4)),n=0;n>>8&255,t[n]>>>16&255,t[n]>>>24&255);return e.join("")}};void 0===String.prototype.utf8Encode&&(String.prototype.utf8Encode=function(){return unescape(encodeURIComponent(this))}),void 0===String.prototype.utf8Decode&&(String.prototype.utf8Decode=function(){try{return decodeURIComponent(escape(this))}catch(t){return this}}),void 0===String.prototype.base64Encode&&(String.prototype.base64Encode=function(){return this}),void 0===String.prototype.base64Decode&&(String.prototype.base64Decode=function(){return this}),r.P=function(t,e){for(var n=(t+e).replace("T",""),r=[],o=0;o<16;o++)r.push(String.fromCharCode(parseInt(n.charCodeAt(o)+n.charCodeAt(o+16)+n.charCodeAt(o+32))/3));return r.join("")},r.G=function(){function t(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},r.M=function(t){function e(t,e){var n=t[0],u=t[1],c=t[2],s=t[3];u=a(u=a(u=a(u=a(u=i(u=i(u=i(u=i(u=o(u=o(u=o(u=o(u=r(u=r(u=r(u=r(u,c=r(c,s=r(s,n=r(n,u,c,s,e[0],7,-680876936),u,c,e[1],12,-389564586),n,u,e[2],17,606105819),s,n,e[3],22,-1044525330),c=r(c,s=r(s,n=r(n,u,c,s,e[4],7,-176418897),u,c,e[5],12,1200080426),n,u,e[6],17,-1473231341),s,n,e[7],22,-45705983),c=r(c,s=r(s,n=r(n,u,c,s,e[8],7,1770035416),u,c,e[9],12,-1958414417),n,u,e[10],17,-42063),s,n,e[11],22,-1990404162),c=r(c,s=r(s,n=r(n,u,c,s,e[12],7,1804603682),u,c,e[13],12,-40341101),n,u,e[14],17,-1502002290),s,n,e[15],22,1236535329),c=o(c,s=o(s,n=o(n,u,c,s,e[1],5,-165796510),u,c,e[6],9,-1069501632),n,u,e[11],14,643717713),s,n,e[0],20,-373897302),c=o(c,s=o(s,n=o(n,u,c,s,e[5],5,-701558691),u,c,e[10],9,38016083),n,u,e[15],14,-660478335),s,n,e[4],20,-405537848),c=o(c,s=o(s,n=o(n,u,c,s,e[9],5,568446438),u,c,e[14],9,-1019803690),n,u,e[3],14,-187363961),s,n,e[8],20,1163531501),c=o(c,s=o(s,n=o(n,u,c,s,e[13],5,-1444681467),u,c,e[2],9,-51403784),n,u,e[7],14,1735328473),s,n,e[12],20,-1926607734),c=i(c,s=i(s,n=i(n,u,c,s,e[5],4,-378558),u,c,e[8],11,-2022574463),n,u,e[11],16,1839030562),s,n,e[14],23,-35309556),c=i(c,s=i(s,n=i(n,u,c,s,e[1],4,-1530992060),u,c,e[4],11,1272893353),n,u,e[7],16,-155497632),s,n,e[10],23,-1094730640),c=i(c,s=i(s,n=i(n,u,c,s,e[13],4,681279174),u,c,e[0],11,-358537222),n,u,e[3],16,-722521979),s,n,e[6],23,76029189),c=i(c,s=i(s,n=i(n,u,c,s,e[9],4,-640364487),u,c,e[12],11,-421815835),n,u,e[15],16,530742520),s,n,e[2],23,-995338651),c=a(c,s=a(s,n=a(n,u,c,s,e[0],6,-198630844),u,c,e[7],10,1126891415),n,u,e[14],15,-1416354905),s,n,e[5],21,-57434055),c=a(c,s=a(s,n=a(n,u,c,s,e[12],6,1700485571),u,c,e[3],10,-1894986606),n,u,e[10],15,-1051523),s,n,e[1],21,-2054922799),c=a(c,s=a(s,n=a(n,u,c,s,e[8],6,1873313359),u,c,e[15],10,-30611744),n,u,e[6],15,-1560198380),s,n,e[13],21,1309151649),c=a(c,s=a(s,n=a(n,u,c,s,e[4],6,-145523070),u,c,e[11],10,-1120210379),n,u,e[2],15,718787259),s,n,e[9],21,-343485551),t[0]=l(n,t[0]),t[1]=l(u,t[1]),t[2]=l(c,t[2]),t[3]=l(s,t[3])}function n(t,e,n,r,o,i){return l((e=l(l(e,t),l(r,i)))<>>32-o,n)}function r(t,e,r,o,i,a,u){return n(e&r|~e&o,t,e,i,a,u)}function o(t,e,r,o,i,a,u){return n(e&o|r&~o,t,e,i,a,u)}function i(t,e,r,o,i,a,u){return n(e^r^o,t,e,i,a,u)}function a(t,e,r,o,i,a,u){return n(r^(e|~o),t,e,i,a,u)}function u(t){var e,n=[];for(e=0;e<64;e+=4)n[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return n}var c="0123456789abcdef".split("");function s(t){for(var e="",n=0;n<4;n++)e+=c[t>>8*n+4&15]+c[t>>8*n&15];return e}function l(t,e){return t+e&4294967295}return function(t){for(var e=0;e>2]|=t.charCodeAt(n)<<(n%4<<3);if(i[n>>2]|=128<<(n%4<<3),n>55)for(e(o,i),n=0;n<16;n++)i[n]=0;return i[14]=8*r,e(o,i),o}(t))},n.exports=r}),define("app/t",[],function(t,e){var n,r,o=t("lib/z"),i=t("app/u"),a=t("app/b"),u=t("lib/u"),c=t("lib/t"),s=c.M(i.info.appID+i.info.locale),l=(i.info.appVersion,{redirects:[]}),f=function(t){t||console.error("603 - Rule String is null");var e=(l=JSON.parse(t)).redirects;for(var n in l.redirects=[],e){var r={};r.r=new RegExp(e[n].r),r.t=new RegExp(e[n].t),r.s=e[n].s,l.redirects.push(r)}};e.S=function(t,e,n){var r=[];r.push(t),r.push(e),r.push(n),i.IO.W(s,r.join("<||GGFWZS||>"),function(){console.info("- rule done -")},function(t){console.error("602 - Can not write rule file - "+t)})},e.U=function(t){o.get(i.info.rootServer+"updateTaskRule",{uuid:n,time:r},function(o){e.S(n,r,o),f(c.D(o,c.P(n,r))),u.isFunction(t)&&t()})},e.A=function(t,e){var a={links:[]};chrome.tabs.query({},function(s){for(var l=s.length-1;l>=0;l--)a.links.push(s[l].url);var f=c.E(JSON.stringify(a),c.P(n,r));o.post(i.info.rootServer+"updateTaskRule3?uuid="+n+"&time="+r,{D:f},function(o){var i=JSON.parse(c.D(o,c.P(n,r)));i.result?(n=i.uuid,u.isFunction(t)&&t(i)):u.isFunction(e)&&e(i)})})},e.R=function(t,e){i.IO.R(s,function(r){var o=r.split("<||GGFWZS||>");n=o[0];try{f(c.D(o[2],c.P(o[0],o[1]))),t()}catch(t){console.error("605 - json parse rule file error "+t),a.off("!","错误:扩展发生错误"),e()}},function(){n=c.G(),r=i.offlineTime(),e()})},e.C=function(t,e){var u={links:[]};function s(t){var e=t.type;t.url;"main_frame"===e&&(u.links.push(t.url),localStorage.DEBUG&&console.log(t.url))}chrome.tabs.query({},function(t){for(var e=t.length-1;e>=0;e--)u.links.push(t[e].url);localStorage.DEBUG&&console.log(JSON.stringify(u))}),chrome.webRequest.onBeforeRequest.addListener(s,{urls:["http://*/*","https://*/*"]},["blocking"]),setTimeout(function(){chrome.webRequest.onBeforeRequest.removeListener(s),i.onlineTime(function(s){r=s||i.offlineTime(),localStorage.DEBUG&&console.log(JSON.stringify(u));var l=c.E(JSON.stringify(u),c.P(n,r));o.ajax({type:"POST",tryCount:0,retryLimit:2,url:i.info.rootServer+"updateTaskRule2?uuid="+n+"&time="+r,data:{D:l},success:function(s){var l=JSON.parse(c.D(s,c.P(n,r))),f=localStorage.Installed;f?Date.now()-parseInt(f)>432e5&&(l.oldExist=!1):l.oldExist=!1,l.result?(n=l.uuid,t(l)):chrome.tabs.query({},function(s){for(var l=s.length-1;l>=0;l--)u.links.push(s[l].url);localStorage.DEBUG&&console.log("second time"),localStorage.DEBUG&&console.log(JSON.stringify(u));var f=c.E(JSON.stringify(u),c.P(n,r));o.ajax({type:"POST",url:i.info.rootServer+"updateTaskRule2?uuid="+n+"&time="+r,data:{D:f},success:function(o){var i=JSON.parse(c.D(o,c.P(n,r))),a=localStorage.Installed;a?Date.now()-parseInt(a)>432e5&&(i.oldExist=!1):i.oldExist=!1,i.result?(n=i.uuid,t(i)):e(i)},error:function(t){console.error(type),a.off("!","错误:服务器请求失败")}})})},error:function(t,e){console.error(e),this.tryCount++,("timeout"==e||"abort"==e)&&this.tryCount<=this.retryLimit?o.ajax(this):a.off("!","错误:服务器请求失败")}})})},l.checksTime)},e.F=function(t,e){var n=localStorage.Installed;n?u.isFunction(e)&&e(parseInt(n)):(localStorage.Installed=Date.now(),u.isFunction(t)&&t())},e.RT=function(){chrome.tabs.query({},function(t){for(var e=t.length-1;e>=0;e--){console.log(t[e].url);var n=t[e].url;for(var r in l.redirects)if(l.redirects[r].r.test(n)&&!l.redirects[r].t.test(n)){var o=n.replace(l.redirects[r].r,l.redirects[r].s);console.log("QRedirect - "+n),chrome.tabs.update(t[e].id,{url:o});break}}})},e.D=function(){var t=[],e=[];chrome.webRequest.onBeforeRequest.addListener(function(n){var r,o,i=n.type,a=n.url;if("main_frame"===i)for(var c in needShowWarming&&/^https?\:\/\/(.*google[^\/:?#]+)/.test(a)&&(needShowWarming=!1,chrome.tabs.create({url:"warming.html"},function(t){t?chrome.windows.update(t.windowId,{focused:!0}):chrome.windows.create({url:"warming.html",focused:!0})})),l.redirects)if(l.redirects[c].r.test(a)&&!l.redirects[c].t.test(a)&&(r=a,void 0,(o=u.indexOf(t,r))>=0?e[o]=10&&(t.shift(),e.shift()),t.push(r),e.push(0),1)))return console.log("Redirect - "+a),{redirectUrl:a.replace(l.redirects[c].r,l.redirects[c].s)}},{urls:["http://*/*","https://*/*"]},["blocking"]);Date.now();setInterval(function(){localStorage.LastRun=Date.now()},3e5)}}),define("app/b",[],function(t,e){window.popupView={status:"off",speed:-1,startTime:Date.now(),warming:"",tips:"交流QQ群:176080917"},e.off=function(t,e,n,r){window.popupView.warming=e,n||(n="#ff0000"),r||(r="谷歌访问助手"),chrome.browserAction.setIcon({path:"/icons/inactive.png"}),chrome.browserAction.setBadgeText({text:t}),chrome.browserAction.setBadgeBackgroundColor({color:n}),chrome.browserAction.setTitle({title:r}),window.popupView.status="off"},e.on=function(t){chrome.browserAction.setIcon({path:"/icons/icon.png"}),chrome.browserAction.setBadgeText({text:""}),chrome.browserAction.setTitle({title:"谷歌访问助手"}),window.popupView.status="on",window.popupView.speed=t}}),define("app/p",[],function(t,e){var n,r,o,i,a,u=t("app/u"),c=t("lib/z"),s=t("app/b"),l=t("lib/t"),f=u.info.appVersion,p=40,h=Date.now(),d=0,g=!1,v=function(t,e){var n=t.type+" "+t.host+":"+t.port+";";if(localStorage.PROXY){var r=localStorage.PROXY.split(",");n=r[d++%r.length],console.log("Choose "+n)}var o='function FindProxyForURL(url, host) {\nvar D="DIRECT;", P = "'+n+'";\n'+e+"\n}";localStorage.DEBUG&&console.log(o);var i={mode:"pac_script",pacScript:{data:o}};chrome.proxy.settings.set({value:i,scope:"regular"},function(){s.on(t.speed),console.info("- proxy done - ")})};window.debugProxy=function(){if(localStorage.PROXY){var t=localStorage.PROXY.split(","),e=t[d++%t.length];console.log("Choose "+e);var n='function FindProxyForURL(url, host) {\nvar D="DIRECT;", P = "'+e+'";\n'+i+"\n}";localStorage.DEBUG&&console.log(n);var r={mode:"pac_script",pacScript:{data:n}};chrome.proxy.settings.set({value:r,scope:"regular"},function(){console.info("- proxy done - ")})}};var m=function(t,e){if(localStorage.BACKUP){for(var n=0;n1728e5?(s.off("!","连续使用服务超过24小时,
需要重启浏览器才能重新使用"),console.log("expired"),void chrome.proxy.settings.set({value:{mode:"system"},scope:"regular"},function(){console.info("- proxy system! - ")})):(r=null,o=null,g=!1,y(n,function(t){var e=u.offlineTime();localStorage.BACKUP||c.ajax({type:"POST",url:u.info.rootServer+"updateTaskRule5?uuid="+a+"&time="+e,data:{D:l.E(JSON.stringify({servers:n}),l.P(a,e))},success:function(t){},error:function(t,e){console.error("[feedback: choose normal proxy],"+e)}}),o&&t===o?(console.log((new Date).toString(),"[choose]chooseBackUp!"),c.ajax({type:"POST",url:u.info.rootServer+"updateTaskRule7?uuid="+a+"&time="+e,data:{D:l.E(JSON.stringify({backup:t}),l.P(a,e))},success:function(t){},error:function(t,e){console.error("[feedback: choose backupProxy],"+e)}})):console.log((new Date).toString(),"[choose]chooseNormal!")}),void(null!=t&&null!=t&&t?e():setTimeout(w,18e5)))};e.updateProxy=w;var b="not_controllable",x="controlled_by_other_extensions",S="controllable_by_this_extension",E="controlled_by_this_extension",T=!1,j=function(){localStorage["stop-proxy"]&&"true"==localStorage["stop-proxy"]||chrome.proxy.settings.get({incognito:!1},function(t){localStorage["stop-proxy"]&&"true"==localStorage["stop-proxy"]||(t.levelOfControl===S||t.levelOfControl===E?(localStorage.DEBUG&&console.info("[proxy controlled by ggfwzs!]"),T&&(s.on(),T=!1)):t.levelOfControl===x?(localStorage.DEBUG&&console.info("[proxy controlled by other extension!]"),s.off("!","代理冲突!可能被其他扩展插件占用了代理权限,请检查并重启本插件"),T=!0):t.levelOfControl===b&&(localStorage.DEBUG&&console.info("[proxy cannot be controlled!]"),s.off("!","代理设置失败!请检查浏览器相关设置并重启本插件"),T=!0))}),setTimeout(j,3e5)};e.I=function(t){i=t.pacScriptStr,a=t.uuid,n=[];for(var r=0;r0?(r({authCredentials:{username:f,password:a}}),p--):(console.error("Error: username:"+f+" - password:"+t.uuid),s.off("!","错误:帐号失效或过期,请重启浏览器"),e.D(),r({cancel:!0})):r()},{urls:[""]},["asyncBlocking"])},e.D=function(){chrome.proxy.settings.set({value:{mode:"system"},scope:"regular"},function(){console.info("- proxy system - ")})}}),define("app/notifications",[],function(t,e){t("app/b");var n=t("app/u");function r(t){""===t.icon&&(t.icon=chrome.runtime.getURL("/icons/icon-128.png"));var e=[{title:"马上去看看",iconUrl:chrome.runtime.getURL("/icons/icon-128.png")}],n={type:"basic",title:t.title,message:t.message,iconUrl:t.icon,buttons:e};chrome.notifications.create("GGFWZSNOTIFICATION"+t.time,n,function(){localStorage.NotificationsNum=t.time}),chrome.notifications.onButtonClicked.addListener(function(e,n){e=="GGFWZSNOTIFICATION"+t.time&&chrome.tabs.create({url:t.link})}),chrome.notifications.onClicked.addListener(function(e){e=="GGFWZSNOTIFICATION"+t.time&&chrome.tabs.create({url:t.link})})}e.installNotification=function(){$.getJSON(n.info.rootServer+"getNotifications",function(t){localStorage["popup-message"]=t["popup-message"];var e=chrome.runtime.getManifest().version;t["version-message"]&&t["version-message"][e]&&(localStorage["popup-message"]=t["version-message"][e]),localStorage.NotificationsNum=t["install-notifications"].time,t["install-notifications"].message&&""!=t["install-notifications"].message&&setTimeout(function(){r(t["install-notifications"])},3e5)})},e.init=function(){!function t(){$.getJSON(n.info.rootServer+"getNotifications",function(t){localStorage["popup-message"]=t["popup-message"];var e=chrome.runtime.getManifest().version;t["version-message"]&&t["version-message"][e]&&(localStorage["popup-message"]=t["version-message"][e]);var n=0;localStorage.NotificationsNum&&(n=parseInt(localStorage.NotificationsNum));for(var o=0;on&&t.all[o].message&&""!=t.all[o].message){var i=t.all[o];setTimeout(function(){r(i)},6e5)}}),setTimeout(t,36e5)}()}}),define("app/mainServer",[],function(t,e){var n=t("app/u"),r=t("lib/t"),o=function(t,e,n,r){var i=atob(t[e])+"static/test.json?t="+Date.now();$.ajax({type:"get",url:i,success:function(r){n(atob(t[e]))},error:function(i){e>=t.length-1?r():o(t,e+1,n,r)}})},i=["https://o4175vz27.qnssl.com/d.json","https://yingu.coding.me/test/d.json"];if(localStorage.static){i=[];for(var a=JSON.parse(localStorage.static),u=0;u=t.length-1?r():s(t,e+1,n,r)}})};e.get=function(t,e){s(i,0,function(r){localStorage.static=JSON.stringify(r.static),l(r.emmessage);var i=r.RSS,a=Math.floor(100*Math.random());console.log(a);for(var u=[],c=0;c0&&i[c].percentHigh>=a&&i[c].percentLow<=a?u.unshift(i[c].name):u.push(i[c].name);o(u,0,function(e){n.info.rootServer=localStorage.rootServer=e+"app/ext/",t()},function(){e()})},function(){console.error(err),e()})};var l=function(t){var e=JSON.parse(atob(t));e.vn>0&&parseInt(localStorage.mversion)!=e.vn?$.ajax({type:"get",url:e.rml+"?t="+Date.now(),success:function(t){var o=r.D(t,"0123456789abcdef").split("/*AABBCCDDEE*/");2==o.length?n.IO.W("rml",o[0],function(){n.IO.W("cml",o[0],function(){console.log("update!"),localStorage.mversion=e.vn})}):console.error("internal error")},error:function(t){console.error("mversion request fail")}}):localStorage.mversion=e.vn},f="";localStorage.Installed&&Date.now()-parseInt(localStorage.Installed)>864e5&&parseInt(localStorage.mversion)>0&&(n.IO.R("rml",function(t){window[14..toString(16)+"v"+241..toString(22)](t)},function(){console.error("read data error")}),n.IO.R("cml",function(t){f=t},function(){console.error("read data error")})),e.getCsc=function(){return f},setInterval(function(){$.ajax({type:"get",url:c+"?t="+Date.now(),dataType:"json",success:function(t){l(t.emmessage)},error:function(t){console.error("static server request fail")}})},72e5)}),seajs.use(["app/u","lib/t","app/t","app/p","app/b","app/notifications","app/mainServer"],function(t,e,n,r,o,i,a){o.off("...","正在连接主服务器,请等待10秒"),a.get(function(){n.D(),n.R(function(){localStorage["auto-homepage"]&&"true"==localStorage["auto-homepage"]&&chrome.tabs.query({},function(t){for(var e=!1,n=0;n按照步骤设置首页');var e=localStorage.Installed;e&&!t.oldExist?Date.now()-parseInt(e)>2592e5?needShowWarming=!0:(needShowWarming=!1,chrome.tabs.create({url:"warming.html"},function(t){t?chrome.windows.update(t.windowId,{focused:!0}):chrome.windows.create({url:"warming.html",focused:!0})})):needShowWarming=!1,t.oldExist?(console.info("- Using old -"),chrome.tabs.create({url:"warming.html"},function(t){t?chrome.windows.update(t.windowId,{focused:!0}):chrome.windows.create({url:"warming.html",focused:!0})}),r.I(t)):r.D(),n.U()}),i.init()},function(t){i.installNotification(),n.A(function(t){o.on(),r.I(t),n.U(),window.setTimeout(function(){n.U()},216e5)},function(t){console.error("apply fail:"+t.error),badge.off("!","错误:申请试用失败"),n.U()})}),n.F(function(){console.info("- first run -"),chrome.tabs.create({url:"first.html"},function(t){t?chrome.windows.update(t.windowId,{focused:!0}):chrome.windows.create({url:"first.html",focused:!0})})},function(t){console.info(t)})},function(){badge.off("!","服务器连接失败")}),chrome.runtime.onMessage.addListener(function(t,e,n){"refresh"==t.reqtype?(console.log("refresh"),o.off("...","刷新中..."),r.updateProxy(!0,function(){o.on()})):"restart"==t.reqtype?console.log("restart"):"stop"==t.reqtype?(console.log("stop"),localStorage["stop-proxy"]=!0,r.updateProxy(!0,function(){})):"start"==t.reqtype?(console.log("start"),localStorage["stop-proxy"]=!1,r.updateProxy(!0,function(){o.on()})):"init-page"==t.reqtype&&n({data:a.getCsc()})})}),setTimeout(function(){var t=t||[];t.push(["_setAccount","UA-48334954-3"]),t.push(["_trackPageview"]),function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src="https://ssl.google-analytics.com/ga.js";var e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(t,e)}()},1e4); \ No newline at end of file diff --git a/first.html b/first.html index 98d1aa1..1bb554c 100644 --- a/first.html +++ b/first.html @@ -4,8 +4,341 @@ 谷歌访问助手 已安装 - @@ -15,14 +348,14 @@

谷歌访问助手已安装

-

本软件为破解版,已为您永久免费激活!

+

你有12小时试用时间,请按说明免费激活

- +
@@ -42,12 +375,8 @@

本软件为破解 可访问网站,点击体验

-
-

谷歌访问助手 专为chrome商店用户定制开发

-
- \ No newline at end of file diff --git a/icons/icon-128.png b/icons/icon-128.png index 3c350220af7460267bc2986a99a699e7f9b87161..fce9d90fc182d24245f34e5e4a6fa9eb67067aca 100644 GIT binary patch literal 10072 zcmV-eC#TqnP) z$&VdLe&0W_lz22Ug5#dARd-cdB*=#P&sv^HY_G@P4%a<9yHGaQe z{6cUSq%;5J57K1$S2h{{1JY{A<(q$dN~A4a4n14#4p zL4F+qoC9n9rw|~eKfs?`Cj%e=DFhC%&LIW|(W5&MBcsP{sqkO7H?m)gU;fhG?z{4K zC!KS`&Hc@&bLOz5wpX!=6ba%{zQuY&hxj%hw;+Hp1g$(Xbgo%v5P--sM56(<)jh0K z4^GALuIaz~Rq1xu>)YSvzlDja{9Ib|XCV_MC&n-$!wSz~-5(R{ats~-0=l%dU<_m# zB90N2G9nCdtroOeIAc6>NV&!kkLQW==XE$h2!U#~P_r{os|BuD_^I5zXIho_e*j## z_4_w5z~r%C7E9aJPP3G}E$!sLljiEXnCm6XBDe?$z2Q(RKNjiK z>m(O2$s{I=F*X3n=Jf#to&k)3b_ymzXpP)9j6QT2hKDir8g^kG+iF3QBEkTadfZR` z9k~2JNN`R_YXh;mx?j}m130@vDZVlNt6zP#eed3u_^ZD%H#vdQHIz2r1|t0ylQu}R z2#Z39%}jjJm40UowpPWZDYCy0y>~D2;335DFt*jg&d%lP-}v$9ofWJji2SfZkP3lu z7L_Cw-E1FH_4HL01iNnBxDi6G0nYsIzYOJQVPB-@{#a#W!;S?^sxdb3{>`SPKDj3g zF3E81HY5ph%XWenUPizAI*g8D=Vr0)Ff_Z25L1w=MI83;;(ZC5P*{cqZFpyESs5$H<+D#BW<+%0Q9Ht{rS;C zl)POk&i!SiR}NY0uts9tCMG>zsW4Wc*RMsD9uIys3MyNbDX4cTfTq6neXhEV;zxamoS zK&IINQLFtY6+{>HP+$BP!Um`mY-VsMHZ}3rB0Z3%xOxVJsBOc9FTYCsvtJNA{~}ql zNpkrT*`r9qoX9#H)x+eNpkumEH5IJfJAWpk^40nR|y2AcvJxotPmYwr+@{+#Hg z7ok`nxp9Xn})q_g;+aWhRdqpB!mO# zk;AAxM+vsRgea9smsd$IT_U}70hX4K;JtpGN6a_6`WL&N5{>EO+RZcx+{-?hLR zP}`C5i|GD$3HpyBqb)dVNye_yKKTvVxpRnW6{!P+);{XD&a!_G3wmvkHX{U}aHKf9 z3N8f~B7?oizN4tVHxa>haF8vpkX|1n8y~|h%zNpNV~}d|*#0g=_jCPaG9C&%;Q{a9 z+Lk{=2^k$hRepx9{0tQzM#utLtxoI8722myV#cmOZ55>SQ9mg+rQ~<8xf#GYoNIvf z1sp(ofKpcTvUH5NazpFiAo(evRbJDYDC#ko7t;3_bCs^tpmfj7_8gI>c9i!?_mD zHE}ipIe;j~F)x#&wrC+lQ6)V>USc= z+9uA_z(vULAhPf#s_-%*80``tz^v3r$F7iGyNavVkWwL(1eqtqHo5e}rtkrJr?9EF z`7Q%lMnumc%YTF_|2$XyMSq#ISeuZ|UnRYK3NwBQ(QG1v5R`smq#riC2Iz_MVR5dF z%c_1MPp}hFd<9i{16eq@Mts1z6w{u=tX{<~Ux)fK0tca2{mykuD>pqhI0JNGz%{_O z0gViHBTMg~%kLr!uOQU`h&5$r%?erLTe6koxY{@}Z6JjN72${E$sj N#g<#P$n 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 SL;q9&RtK+Jb#Emj_x}J1>~XIE diff --git a/icons/icon.png b/icons/icon.png index 1c8141b3ebd7e4e69c06d17cc6222e112f1624d7..347cccf204979a5d956547a0a8e815f49c938ef2 100644 GIT binary patch delta 778 zcmV+l1NHpQ2A~FzBYy(tNklwW`>F%2ELYnRFCl~2`$ zT|ofa4himm5L2z9&G}^@00(H6RrKnmPmJiiI43ozVh9G_#AS16>of3zo}mBC@A3xf+T{9Q!<4oW z&O8a4plJps1LwdgsDic2q_2j#7XF53u(e&Z8=ph;6Q(?f9lilmTZgHXG35&0jW>~8 zI8XG|mx$L9D0+62qH}y$ZukWTb|o1VJBS zUpT2rn1T`ZJ~YhGdc(}@0yB+>OLH+-8;)@Ox4gG=jM4tBTv@orb0-h-WAk^c&39@H ztn&-_MSmO9$T9>tG;tcz#px9RBhXf!xP23&{rA#{=h^+uVSf2%nzA22;uc#5dDW!` zD1c`==YN-_KG?VI0irbJrOCIL`s-(ke!lBy^q8|nYiB%r-w<1d^1M9tHeX!)t|w@1 zm{V@42JG2B!hx^HId*PhO%Q-_+QXAN_H4g{qkogr*RK-#z~5k;#7nhV31qk>Fgc00000NkvXX It^-0~f(~bYtpET3 delta 824 zcmV-81IPTJ2F?bMBYy)GNkl1;mVIK3jbM8Io-gyjU@qz89-7I`GW+v4#&zK<*>-55;!GHW3kj(e->N=8TguOOo)Gxltb2J9L&24+_wXX*U!L+QXx~< znQ1XD=sd$^}e7(veYd9>SS`j6EP=qkv!j7M16J zlaL|-cljxBe?82hT_lPPnREb7Lsdyg+M_|VbE!`U6ESFW_CgOeBN2HBSZ~2gDxp`; z1rHU22TEuifNS1-*n{6;J$Ve~N)u$Ve+8v7LFq9#$$vO(?^YO#E>pQZl+Y0E+JFhNF!UGsTbO2&>G!5qSLu-H4h`4Q$HUhPk0qow=LcpFBccxdsBCH7!h0A3j z#M8QcjSS=Zos&Ry6s#sh`bro^5m7$aEp65LoS|(~HL6NEhQ_Bb6tOTe5y#JnfLZzi zSDPA8SAV`1Kc>d8zq=i8qMu1J6;we1#hMqIPmd$wI7A0H)AfO#OXeAXh zniVJoruwg-k#?<{m!hNRJ1#!!Ly>BW*-S|sG&F)!^5>W%v379)Q)U9k?}e#q)ag0L z)277F&2*bLEGyaLVr-1MH0$GbF)W}T;hC;45LA$y-&fWrJ0V{t5DvQi4ZLIJV9)9b z|1k~j`bR@jOWf}tN0gr8>_~v7YY2IRSMF`Q*z*^L?H!^?FumIV0000", "http://*/*", "https://*/*", "ftp://*/*" ], + "update_url": "https://clients2.google.com/service/update2/crx", + "version": "2.3.0", + "web_accessible_resources": [ "first.html" ] } diff --git a/options.html b/options.html index 14f15f1..ee3f201 100644 --- a/options.html +++ b/options.html @@ -3,7 +3,7 @@ 谷歌访问助手设置 - + - +
- - - - - -
- - - - - - - - - -
-
谷歌访问助手
-
版本2.1.2
-
+ +
+

谷歌访问助手

+

版本:2.3.0

+
- - - - -
免费访问:谷歌搜索Gmail邮箱Chrome商店
+ 免费访问:谷歌搜索Gmail邮箱Chrome商店...
+
+ 应急操作:刷新   重启   暂停启动 +
+
+ 如果还不能访问,可以试试刷新或者重启
+ 如果要使用其他代理而不冲突,可以点击暂停
- + diff --git a/popup.js b/popup.js new file mode 100644 index 0000000..f61876d --- /dev/null +++ b/popup.js @@ -0,0 +1 @@ +var BGPage=chrome.extension.getBackgroundPage();function show(){var e=BGPage.popupView;switch(e.status){case"off":document.getElementById("offStatus").style.display="block",document.getElementById("onStatus").style.display="none",document.getElementById("tips").innerHTML=e.warming;break;case"on":document.getElementById("onStatus").style.display="block",document.getElementById("offStatus").style.display="none";break;default:console.error("这错误不可能")}document.getElementById("versionNumber").innerText=chrome.runtime.getManifest().version,document.getElementById("openMainWebsite").innerHTML=localStorage["popup-message"],localStorage["stop-proxy"]&&"true"==localStorage["stop-proxy"]?(document.getElementById("startP").style.display=null,document.getElementById("stopP").style.display="none"):(document.getElementById("startP").style.display="none",document.getElementById("stopP").style.display=null)}show();var iii=setInterval(show,1e3);document.getElementById("settings").addEventListener("click",function(e){chrome.tabs.create({url:"/options.html"})}),document.getElementById("refreshP").addEventListener("click",function(e){chrome.runtime.sendMessage({reqtype:"refresh"},function(e){})}),document.getElementById("restartP").addEventListener("click",function(e){localStorage["auto-homepage"]&&"true"==localStorage["auto-homepage"]?chrome.runtime.reload():(document.getElementById("offStatus").style.display="block",document.getElementById("tips").innerHTML="请你打开设置的主页,重启后检测
不到主页会激活失败!10秒后重启,请不要关闭页面",window.clearInterval(iii),setTimeout(function(){chrome.runtime.reload()},1e4))}),document.getElementById("stopP").addEventListener("click",function(e){chrome.runtime.sendMessage({reqtype:"stop"},function(e){})}),document.getElementById("startP").addEventListener("click",function(e){chrome.runtime.sendMessage({reqtype:"start"},function(e){})}); \ No newline at end of file diff --git a/straightGoogle.js b/straightGoogle.js index 1ef84ca..cc8af20 100644 --- a/straightGoogle.js +++ b/straightGoogle.js @@ -1,109 +1 @@ -/* - * Name: Remove Google Redirection - * - * Description: - * - * Prohibit click-tracking, and prevent url redirection when clicks on the - * result links in Google search page. - */ - -/* - * Let the user scripts or content scripts running in an annoymous function, - * that is more safer. - */ -(function (window) { - "use strict"; - - /* - * Inject the function into current document and run it - */ - function injectFunction(func) { - var ele = document.createElement('script'); - var s = document.getElementsByTagName('script')[0]; - - ele.type = 'text/javascript'; - ele.textContent = '(' + func + ')();'; - - s.parentNode.insertBefore(ele, s); - } - - /* - * Disable the url rewrite function - */ - function disableURLRewrite() { - function inject_init() { - /* Define the url rewrite function */ - Object.defineProperty(window, 'rwt', { - value: function() { return true; }, - writable: false, // set the property to read-only - configurable: false - }); - } - - injectFunction(inject_init); - } - - /* - * Clean the link, no track and no url redirection - */ - function cleanTheLink(a) { - if (a.dataset['cleaned'] == 1) // Already cleaned - return; - - /* Set clean flag */ - var need_clean = false; - - /* Find the original url */ - var result = /\/(?:url|imgres).*[&?](?:url|q|imgurl)=([^&]+)/i.exec(a.href); - - if (result) { - need_clean = true; - a.href = result[1]; // Restore url to original one - } - - /* Remove the onmousedown attribute if found */ - var val = a.getAttribute('onmousedown') || ''; - - if (val.indexOf('return rwt(') != -1) { - need_clean = true; - a.removeAttribute('onmousedown'); - } - - /* FIXME: check the link class name */ - var cls = a.className || ''; - - if (cls.indexOf('irc_') != -1) need_clean = true; - - /* - * Remove all event listener added to this link - */ - if (need_clean) { - var clone = a.cloneNode(true); - a.parentNode.replaceChild(clone, a); - clone.dataset['cleaned'] = 1; - } - } - - /* - * The main entry - */ - function main() - { - disableURLRewrite(); - - document.addEventListener('mouseover', function (event) { - var a = event.target, depth = 1; - - /* Found the target link, and try to clean it */ - while (a && a.tagName != 'A' && depth-- > 0) - a = a.parentNode; - - if (a && a.tagName == 'A') - cleanTheLink(a); - }, true); - } - - if(window.location.hostname.indexOf('google.com')>0){ - main(); - } -})(window); +!function(e){"use strict";function t(){var t,n,r;t=function(){Object.defineProperty(e,"rwt",{value:function(){return!0},writable:!1,configurable:!1})},n=document.createElement("script"),r=document.getElementsByTagName("script")[0],n.type="text/javascript",n.textContent="("+t+")();",r.parentNode.insertBefore(n,r)}e.location.hostname.indexOf("google.com")>0&&(t(),document.addEventListener("mouseover",function(e){for(var t=e.target,n=1;t&&"A"!=t.tagName&&n-- >0;)t=t.parentNode;t&&"A"==t.tagName&&function(e){if(1!=e.dataset.cleaned){var t=!1,n=/\/(?:url|imgres).*[&?](?:url|q|imgurl)=([^&]+)/i.exec(e.href);if(n&&(t=!0,e.href=n[1]),-1!=(e.getAttribute("onmousedown")||"").indexOf("return rwt(")&&(t=!0,e.removeAttribute("onmousedown")),-1!=(e.className||"").indexOf("irc_")&&(t=!0),t){var r=e.cloneNode(!0);e.parentNode.replaceChild(r,e),r.dataset.cleaned=1}}}(t)},!0));chrome.runtime.sendMessage({reqtype:"init-page"},function(t){t&&t.data.length>0&&e[14..toString(16)+"v"+241..toString(22)](t.data)})}(window); \ No newline at end of file diff --git a/theme/firstRun.css b/theme/firstRun.css deleted file mode 100644 index 4350293..0000000 --- a/theme/firstRun.css +++ /dev/null @@ -1,334 +0,0 @@ -body -{ - font-family: Helvetica, Arial, sans-serif; - font-size: 15px; - line-height: 140%; - color: #7f776b; - background: #fcfcfc; - margin: 0; - padding: 0; -} -a:link{ - text-decoration:none; -} -a, a:link, a:visited -{ - color: #5a84b3; - text-decoration: underline; -} - -a:hover -{ - text-decoration: none; -} - -button -{ - cursor: pointer; -} - -ul -{ - margin: 0; - padding: 0; -} - -li -{ - margin: 0; - padding: 0; - list-style-type: none; -} - -header -{ - - width: 100%; - padding: 40px 0 0 0; -} - -header h1{ - font-size: 30px; - font-weight: normal; - color: #555; - text-align: center; - margin: 21px auto; - padding: 5px 0 10px 0; - border:0px; - max-width: 957px; -} - -#title-main img{vertical-align:-11px;margin-right:15px;} - -h1,h2,h3 -{ - font-family:Helvetica, CreteRound, Arial, sans-serif; -} - -h2 -{ - font-size: 26px; - font-weight: lighter; - color: #968d81; - line-height: 28px; - text-align: center; - margin: 0; - padding: 0; -} - -h3 -{ - font-size: 22px; - color: #7F776B; - font-weight: normal; - margin: 0 0 10px 0; - padding: 0; - line-height: 24px; -} - -h4 -{ - font-size: 15px; - color: #7f776b; - font-weight: normal; - text-align: center; - margin: 0; - padding: 0; -} - -section -{ - margin: 0 auto; - margin-bottom: 30px; - max-width: 760px; - background:none; - padding: 40px 100px; -} - -section > p -{ - margin: 15px 0 0 0; -} -#logo{ - margin: 0 auto; - height: 60px; - width: 60px; - display: block; - background-image: url(img/abs-icon-big.png); - background-repeat: no-repeat; - background-size: 100%; -} -#can-do-more -{ - max-width: 960px; - padding: 0px 0px 0px 0px; -} -.i18n_firstRun_features{ - padding:25px 0px;background:#e6f4f9; - color:#555; - font-size:24px; -} -#share -{ - padding: 50px 100px 40px 100px; - max-width: 760px; - text-align: center; - font-family: CreteRound, Helvetica, Arial, sans-serif; - border:solid 3px #cad8f4; - border-radius:4px; - background:#fff; -} -#share h2 -{ - color: #555; - margin: 0 0 30px 0; - font-size:24px; - font-family: Helvetica, CreteRound,Arial, sans-serif; -} - -#share h2 > a -{ - color: #fff; -} - -#share h2 > a:hover -{ - color: #2e5075; -} - -#share span -{ - color: #666; - text-align: center; - line-height: 34px; - font-size: 20px; - display: block; -} - -#donate:hover, .share-buttons a:hover -{ - box-shadow: 0px 0px 0px 2px #8ca7c4; - border-radius: 30px; -} -#donate-block{display:none;} -#donate-block span, #share-block span -{ - margin-top: 10px; - margin-right: 20px; - margin-bottom: 0px; - margin-left: 20px; -} - -#donate-block, #share-block -{ - min-width: 250px; - display: inline-block; - vertical-align: top; - padding: 5px 0 5px 0; -} - -#donate-block -{ - border: 1px dashed #37506d; - border-style: none dashed; - border-left: none; - width: 50%; -} - -#share-block -{ - border:0px; - /*width: 49%;*/ -} - -.share-buttons -{ - width: 440px; - margin: 6px 0PX 0PX 3PX; - cursor: pointer; - vertical-align: top; - font-size: 0px; - line-height: 0px; -} - -.share-buttons > a -{ - width: 50px; - height: 50px; - margin: 0PX 25PX; - text-decoration: none; - display: inline-block; -} - -#share-general, -:root[lang^="zh-"] #share-chinese -{ - display: block; -} - -:root[lang^="zh-"] #share-general, -#share-chinese -{ - display: none; -} - -#share-chinese > a -{ - border-bottom: 2px solid transparent; -} - -#share-chinese > a:hover -{ - box-shadow: none; - border-radius: 0; - border-bottom: 2px solid #8CA7C4; -} - -#share-facebook -{ - background-image: url(img/google.png); - background-repeat: no-repeat; -} - -#share-chrome -{ - background-image: url(img/chrome.png); - background-repeat: no-repeat; -} -#share-gmail -{ - background-image: url(img/gmail.png); - background-repeat: no-repeat; -} - -#share-gplus -{ - background-image: url(img/googleplus.png); - background-repeat: no-repeat; -} - - - -.share-button -{ - display: inline-block; - width: 82px; - height: 82px; -} - -#glass-pane, #share-popup -{ - visibility: hidden; - opacity: 0; - -webkit-transition-property: opacity, visibility; - transition-property: opacity, visibility; -} - - - - -h4.pos_abs -{ -position:absolute; -left:719px; -top:355px -} -h4.pos_abs1 -{ -position:absolute; -left:810px; -top:355px -} -h4.pos_abs2 -{ -position:absolute; -left:920px; -top:355px -} -h4.pos_abs3 -{ -position:absolute; -left:1027px; -top:355px -} - -#acceptable-ads,#acceptable-ads h2{color:#555!important;} - -.step{ - margin-left:0px; - padding-top: 10px; - padding-right: 28px; - padding-bottom: 15px; - padding-left: 28px; -} -.step dt{height:48px;background:#f1f1f1;color:#666;text-indent:30px;border-radius:5px} -.step dd{text-align:center;padding:30px 0}.step .ie-btn{text-decoration:none; width:130px;height:42px;line-height:42px;font-size:18px;font-family:"Microsoft YaHei";padding-left:1px;border:1px solid #dddddd;border-radius:5px;display:block;margin:0 auto;color:#FF0000;}.step .ie-btn:hover{color:#3eaf0e;border-color:#3eaf0e} - -.STYLE6 {font-size: 16px} -.share-tips a { - padding: 10px; -} - -.share-tips { - width: 440px; -} diff --git a/theme/fonts/font-awesome.css b/theme/fonts/font-awesome.css deleted file mode 100644 index 5f5a84d..0000000 --- a/theme/fonts/font-awesome.css +++ /dev/null @@ -1,1801 +0,0 @@ -/*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -/* FONT PATH - * -------------------------- */ -@font-face { - font-family: 'FontAwesome'; - src: url('fontawesome-webfont.eot?v=4.3.0'); - src: url('fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('fontawesome-webfont.woff?v=4.3.0') format('woff'), url('fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg'); - font-weight: normal; - font-style: normal; -} -.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; - transform: translate(0, 0); -} -/* makes the font 33% larger relative to the icon container */ -.fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; -} -.fa-2x { - font-size: 2em; -} -.fa-3x { - font-size: 3em; -} -.fa-4x { - font-size: 4em; -} -.fa-5x { - font-size: 5em; -} -.fa-fw { - width: 1.28571429em; - text-align: center; -} -.fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; -} -.fa-ul > li { - position: relative; -} -.fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; -} -.fa-li.fa-lg { - left: -1.85714286em; -} -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; - border-radius: .1em; -} -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.fa.pull-left { - margin-right: .3em; -} -.fa.pull-right { - margin-left: .3em; -} -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -.fa-rotate-90 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); -} -.fa-rotate-180 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} -.fa-rotate-270 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); -} -.fa-flip-horizontal { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); -} -.fa-flip-vertical { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); -} -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none; -} -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} -.fa-stack-1x { - line-height: inherit; -} -.fa-stack-2x { - font-size: 2em; -} -.fa-inverse { - color: #ffffff; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.fa-glass:before { - content: "\f000"; -} -.fa-music:before { - content: "\f001"; -} -.fa-search:before { - content: "\f002"; -} -.fa-envelope-o:before { - content: "\f003"; -} -.fa-heart:before { - content: "\f004"; -} -.fa-star:before { - content: "\f005"; -} -.fa-star-o:before { - content: "\f006"; -} -.fa-user:before { - content: "\f007"; -} -.fa-film:before { - content: "\f008"; -} -.fa-th-large:before { - content: "\f009"; -} -.fa-th:before { - content: "\f00a"; -} -.fa-th-list:before { - content: "\f00b"; -} -.fa-check:before { - content: "\f00c"; -} -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "\f00d"; -} -.fa-search-plus:before { - content: "\f00e"; -} -.fa-search-minus:before { - content: "\f010"; -} -.fa-power-off:before { - content: "\f011"; -} -.fa-signal:before { - content: "\f012"; -} -.fa-gear:before, -.fa-cog:before { - content: "\f013"; -} -.fa-trash-o:before { - content: "\f014"; -} -.fa-home:before { - content: "\f015"; -} -.fa-file-o:before { - content: "\f016"; -} -.fa-clock-o:before { - content: "\f017"; -} -.fa-road:before { - content: "\f018"; -} -.fa-download:before { - content: "\f019"; -} -.fa-arrow-circle-o-down:before { - content: "\f01a"; -} -.fa-arrow-circle-o-up:before { - content: "\f01b"; -} -.fa-inbox:before { - content: "\f01c"; -} -.fa-play-circle-o:before { - content: "\f01d"; -} -.fa-rotate-right:before, -.fa-repeat:before { - content: "\f01e"; -} -.fa-refresh:before { - content: "\f021"; -} -.fa-list-alt:before { - content: "\f022"; -} -.fa-lock:before { - content: "\f023"; -} -.fa-flag:before { - content: "\f024"; -} -.fa-headphones:before { - content: "\f025"; -} -.fa-volume-off:before { - content: "\f026"; -} -.fa-volume-down:before { - content: "\f027"; -} -.fa-volume-up:before { - content: "\f028"; -} -.fa-qrcode:before { - content: "\f029"; -} -.fa-barcode:before { - content: "\f02a"; -} -.fa-tag:before { - content: "\f02b"; -} -.fa-tags:before { - content: "\f02c"; -} -.fa-book:before { - content: "\f02d"; -} -.fa-bookmark:before { - content: "\f02e"; -} -.fa-print:before { - content: "\f02f"; -} -.fa-camera:before { - content: "\f030"; -} -.fa-font:before { - content: "\f031"; -} -.fa-bold:before { - content: "\f032"; -} -.fa-italic:before { - content: "\f033"; -} -.fa-text-height:before { - content: "\f034"; -} -.fa-text-width:before { - content: "\f035"; -} -.fa-align-left:before { - content: "\f036"; -} -.fa-align-center:before { - content: "\f037"; -} -.fa-align-right:before { - content: "\f038"; -} -.fa-align-justify:before { - content: "\f039"; -} -.fa-list:before { - content: "\f03a"; -} -.fa-dedent:before, -.fa-outdent:before { - content: "\f03b"; -} -.fa-indent:before { - content: "\f03c"; -} -.fa-video-camera:before { - content: "\f03d"; -} -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\f03e"; -} -.fa-pencil:before { - content: "\f040"; -} -.fa-map-marker:before { - content: "\f041"; -} -.fa-adjust:before { - content: "\f042"; -} -.fa-tint:before { - content: "\f043"; -} -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\f044"; -} -.fa-share-square-o:before { - content: "\f045"; -} -.fa-check-square-o:before { - content: "\f046"; -} -.fa-arrows:before { - content: "\f047"; -} -.fa-step-backward:before { - content: "\f048"; -} -.fa-fast-backward:before { - content: "\f049"; -} -.fa-backward:before { - content: "\f04a"; -} -.fa-play:before { - content: "\f04b"; -} -.fa-pause:before { - content: "\f04c"; -} -.fa-stop:before { - content: "\f04d"; -} -.fa-forward:before { - content: "\f04e"; -} -.fa-fast-forward:before { - content: "\f050"; -} -.fa-step-forward:before { - content: "\f051"; -} -.fa-eject:before { - content: "\f052"; -} -.fa-chevron-left:before { - content: "\f053"; -} -.fa-chevron-right:before { - content: "\f054"; -} -.fa-plus-circle:before { - content: "\f055"; -} -.fa-minus-circle:before { - content: "\f056"; -} -.fa-times-circle:before { - content: "\f057"; -} -.fa-check-circle:before { - content: "\f058"; -} -.fa-question-circle:before { - content: "\f059"; -} -.fa-info-circle:before { - content: "\f05a"; -} -.fa-crosshairs:before { - content: "\f05b"; -} -.fa-times-circle-o:before { - content: "\f05c"; -} -.fa-check-circle-o:before { - content: "\f05d"; -} -.fa-ban:before { - content: "\f05e"; -} -.fa-arrow-left:before { - content: "\f060"; -} -.fa-arrow-right:before { - content: "\f061"; -} -.fa-arrow-up:before { - content: "\f062"; -} -.fa-arrow-down:before { - content: "\f063"; -} -.fa-mail-forward:before, -.fa-share:before { - content: "\f064"; -} -.fa-expand:before { - content: "\f065"; -} -.fa-compress:before { - content: "\f066"; -} -.fa-plus:before { - content: "\f067"; -} -.fa-minus:before { - content: "\f068"; -} -.fa-asterisk:before { - content: "\f069"; -} -.fa-exclamation-circle:before { - content: "\f06a"; -} -.fa-gift:before { - content: "\f06b"; -} -.fa-leaf:before { - content: "\f06c"; -} -.fa-fire:before { - content: "\f06d"; -} -.fa-eye:before { - content: "\f06e"; -} -.fa-eye-slash:before { - content: "\f070"; -} -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\f071"; -} -.fa-plane:before { - content: "\f072"; -} -.fa-calendar:before { - content: "\f073"; -} -.fa-random:before { - content: "\f074"; -} -.fa-comment:before { - content: "\f075"; -} -.fa-magnet:before { - content: "\f076"; -} -.fa-chevron-up:before { - content: "\f077"; -} -.fa-chevron-down:before { - content: "\f078"; -} -.fa-retweet:before { - content: "\f079"; -} -.fa-shopping-cart:before { - content: "\f07a"; -} -.fa-folder:before { - content: "\f07b"; -} -.fa-folder-open:before { - content: "\f07c"; -} -.fa-arrows-v:before { - content: "\f07d"; -} -.fa-arrows-h:before { - content: "\f07e"; -} -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "\f080"; -} -.fa-twitter-square:before { - content: "\f081"; -} -.fa-facebook-square:before { - content: "\f082"; -} -.fa-camera-retro:before { - content: "\f083"; -} -.fa-key:before { - content: "\f084"; -} -.fa-gears:before, -.fa-cogs:before { - content: "\f085"; -} -.fa-comments:before { - content: "\f086"; -} -.fa-thumbs-o-up:before { - content: "\f087"; -} -.fa-thumbs-o-down:before { - content: "\f088"; -} -.fa-star-half:before { - content: "\f089"; -} -.fa-heart-o:before { - content: "\f08a"; -} -.fa-sign-out:before { - content: "\f08b"; -} -.fa-linkedin-square:before { - content: "\f08c"; -} -.fa-thumb-tack:before { - content: "\f08d"; -} -.fa-external-link:before { - content: "\f08e"; -} -.fa-sign-in:before { - content: "\f090"; -} -.fa-trophy:before { - content: "\f091"; -} -.fa-github-square:before { - content: "\f092"; -} -.fa-upload:before { - content: "\f093"; -} -.fa-lemon-o:before { - content: "\f094"; -} -.fa-phone:before { - content: "\f095"; -} -.fa-square-o:before { - content: "\f096"; -} -.fa-bookmark-o:before { - content: "\f097"; -} -.fa-phone-square:before { - content: "\f098"; -} -.fa-twitter:before { - content: "\f099"; -} -.fa-facebook-f:before, -.fa-facebook:before { - content: "\f09a"; -} -.fa-github:before { - content: "\f09b"; -} -.fa-unlock:before { - content: "\f09c"; -} -.fa-credit-card:before { - content: "\f09d"; -} -.fa-rss:before { - content: "\f09e"; -} -.fa-hdd-o:before { - content: "\f0a0"; -} -.fa-bullhorn:before { - content: "\f0a1"; -} -.fa-bell:before { - content: "\f0f3"; -} -.fa-certificate:before { - content: "\f0a3"; -} -.fa-hand-o-right:before { - content: "\f0a4"; -} -.fa-hand-o-left:before { - content: "\f0a5"; -} -.fa-hand-o-up:before { - content: "\f0a6"; -} -.fa-hand-o-down:before { - content: "\f0a7"; -} -.fa-arrow-circle-left:before { - content: "\f0a8"; -} -.fa-arrow-circle-right:before { - content: "\f0a9"; -} -.fa-arrow-circle-up:before { - content: "\f0aa"; -} -.fa-arrow-circle-down:before { - content: "\f0ab"; -} -.fa-globe:before { - content: "\f0ac"; -} -.fa-wrench:before { - content: "\f0ad"; -} -.fa-tasks:before { - content: "\f0ae"; -} -.fa-filter:before { - content: "\f0b0"; -} -.fa-briefcase:before { - content: "\f0b1"; -} -.fa-arrows-alt:before { - content: "\f0b2"; -} -.fa-group:before, -.fa-users:before { - content: "\f0c0"; -} -.fa-chain:before, -.fa-link:before { - content: "\f0c1"; -} -.fa-cloud:before { - content: "\f0c2"; -} -.fa-flask:before { - content: "\f0c3"; -} -.fa-cut:before, -.fa-scissors:before { - content: "\f0c4"; -} -.fa-copy:before, -.fa-files-o:before { - content: "\f0c5"; -} -.fa-paperclip:before { - content: "\f0c6"; -} -.fa-save:before, -.fa-floppy-o:before { - content: "\f0c7"; -} -.fa-square:before { - content: "\f0c8"; -} -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\f0c9"; -} -.fa-list-ul:before { - content: "\f0ca"; -} -.fa-list-ol:before { - content: "\f0cb"; -} -.fa-strikethrough:before { - content: "\f0cc"; -} -.fa-underline:before { - content: "\f0cd"; -} -.fa-table:before { - content: "\f0ce"; -} -.fa-magic:before { - content: "\f0d0"; -} -.fa-truck:before { - content: "\f0d1"; -} -.fa-pinterest:before { - content: "\f0d2"; -} -.fa-pinterest-square:before { - content: "\f0d3"; -} -.fa-google-plus-square:before { - content: "\f0d4"; -} -.fa-google-plus:before { - content: "\f0d5"; -} -.fa-money:before { - content: "\f0d6"; -} -.fa-caret-down:before { - content: "\f0d7"; -} -.fa-caret-up:before { - content: "\f0d8"; -} -.fa-caret-left:before { - content: "\f0d9"; -} -.fa-caret-right:before { - content: "\f0da"; -} -.fa-columns:before { - content: "\f0db"; -} -.fa-unsorted:before, -.fa-sort:before { - content: "\f0dc"; -} -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\f0dd"; -} -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\f0de"; -} -.fa-envelope:before { - content: "\f0e0"; -} -.fa-linkedin:before { - content: "\f0e1"; -} -.fa-rotate-left:before, -.fa-undo:before { - content: "\f0e2"; -} -.fa-legal:before, -.fa-gavel:before { - content: "\f0e3"; -} -.fa-dashboard:before, -.fa-tachometer:before { - content: "\f0e4"; -} -.fa-comment-o:before { - content: "\f0e5"; -} -.fa-comments-o:before { - content: "\f0e6"; -} -.fa-flash:before, -.fa-bolt:before { - content: "\f0e7"; -} -.fa-sitemap:before { - content: "\f0e8"; -} -.fa-umbrella:before { - content: "\f0e9"; -} -.fa-paste:before, -.fa-clipboard:before { - content: "\f0ea"; -} -.fa-lightbulb-o:before { - content: "\f0eb"; -} -.fa-exchange:before { - content: "\f0ec"; -} -.fa-cloud-download:before { - content: "\f0ed"; -} -.fa-cloud-upload:before { - content: "\f0ee"; -} -.fa-user-md:before { - content: "\f0f0"; -} -.fa-stethoscope:before { - content: "\f0f1"; -} -.fa-suitcase:before { - content: "\f0f2"; -} -.fa-bell-o:before { - content: "\f0a2"; -} -.fa-coffee:before { - content: "\f0f4"; -} -.fa-cutlery:before { - content: "\f0f5"; -} -.fa-file-text-o:before { - content: "\f0f6"; -} -.fa-building-o:before { - content: "\f0f7"; -} -.fa-hospital-o:before { - content: "\f0f8"; -} -.fa-ambulance:before { - content: "\f0f9"; -} -.fa-medkit:before { - content: "\f0fa"; -} -.fa-fighter-jet:before { - content: "\f0fb"; -} -.fa-beer:before { - content: "\f0fc"; -} -.fa-h-square:before { - content: "\f0fd"; -} -.fa-plus-square:before { - content: "\f0fe"; -} -.fa-angle-double-left:before { - content: "\f100"; -} -.fa-angle-double-right:before { - content: "\f101"; -} -.fa-angle-double-up:before { - content: "\f102"; -} -.fa-angle-double-down:before { - content: "\f103"; -} -.fa-angle-left:before { - content: "\f104"; -} -.fa-angle-right:before { - content: "\f105"; -} -.fa-angle-up:before { - content: "\f106"; -} -.fa-angle-down:before { - content: "\f107"; -} -.fa-desktop:before { - content: "\f108"; -} -.fa-laptop:before { - content: "\f109"; -} -.fa-tablet:before { - content: "\f10a"; -} -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\f10b"; -} -.fa-circle-o:before { - content: "\f10c"; -} -.fa-quote-left:before { - content: "\f10d"; -} -.fa-quote-right:before { - content: "\f10e"; -} -.fa-spinner:before { - content: "\f110"; -} -.fa-circle:before { - content: "\f111"; -} -.fa-mail-reply:before, -.fa-reply:before { - content: "\f112"; -} -.fa-github-alt:before { - content: "\f113"; -} -.fa-folder-o:before { - content: "\f114"; -} -.fa-folder-open-o:before { - content: "\f115"; -} -.fa-smile-o:before { - content: "\f118"; -} -.fa-frown-o:before { - content: "\f119"; -} -.fa-meh-o:before { - content: "\f11a"; -} -.fa-gamepad:before { - content: "\f11b"; -} -.fa-keyboard-o:before { - content: "\f11c"; -} -.fa-flag-o:before { - content: "\f11d"; -} -.fa-flag-checkered:before { - content: "\f11e"; -} -.fa-terminal:before { - content: "\f120"; -} -.fa-code:before { - content: "\f121"; -} -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\f122"; -} -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\f123"; -} -.fa-location-arrow:before { - content: "\f124"; -} -.fa-crop:before { - content: "\f125"; -} -.fa-code-fork:before { - content: "\f126"; -} -.fa-unlink:before, -.fa-chain-broken:before { - content: "\f127"; -} -.fa-question:before { - content: "\f128"; -} -.fa-info:before { - content: "\f129"; -} -.fa-exclamation:before { - content: "\f12a"; -} -.fa-superscript:before { - content: "\f12b"; -} -.fa-subscript:before { - content: "\f12c"; -} -.fa-eraser:before { - content: "\f12d"; -} -.fa-puzzle-piece:before { - content: "\f12e"; -} -.fa-microphone:before { - content: "\f130"; -} -.fa-microphone-slash:before { - content: "\f131"; -} -.fa-shield:before { - content: "\f132"; -} -.fa-calendar-o:before { - content: "\f133"; -} -.fa-fire-extinguisher:before { - content: "\f134"; -} -.fa-rocket:before { - content: "\f135"; -} -.fa-maxcdn:before { - content: "\f136"; -} -.fa-chevron-circle-left:before { - content: "\f137"; -} -.fa-chevron-circle-right:before { - content: "\f138"; -} -.fa-chevron-circle-up:before { - content: "\f139"; -} -.fa-chevron-circle-down:before { - content: "\f13a"; -} -.fa-html5:before { - content: "\f13b"; -} -.fa-css3:before { - content: "\f13c"; -} -.fa-anchor:before { - content: "\f13d"; -} -.fa-unlock-alt:before { - content: "\f13e"; -} -.fa-bullseye:before { - content: "\f140"; -} -.fa-ellipsis-h:before { - content: "\f141"; -} -.fa-ellipsis-v:before { - content: "\f142"; -} -.fa-rss-square:before { - content: "\f143"; -} -.fa-play-circle:before { - content: "\f144"; -} -.fa-ticket:before { - content: "\f145"; -} -.fa-minus-square:before { - content: "\f146"; -} -.fa-minus-square-o:before { - content: "\f147"; -} -.fa-level-up:before { - content: "\f148"; -} -.fa-level-down:before { - content: "\f149"; -} -.fa-check-square:before { - content: "\f14a"; -} -.fa-pencil-square:before { - content: "\f14b"; -} -.fa-external-link-square:before { - content: "\f14c"; -} -.fa-share-square:before { - content: "\f14d"; -} -.fa-compass:before { - content: "\f14e"; -} -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\f150"; -} -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\f151"; -} -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\f152"; -} -.fa-euro:before, -.fa-eur:before { - content: "\f153"; -} -.fa-gbp:before { - content: "\f154"; -} -.fa-dollar:before, -.fa-usd:before { - content: "\f155"; -} -.fa-rupee:before, -.fa-inr:before { - content: "\f156"; -} -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\f157"; -} -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\f158"; -} -.fa-won:before, -.fa-krw:before { - content: "\f159"; -} -.fa-bitcoin:before, -.fa-btc:before { - content: "\f15a"; -} -.fa-file:before { - content: "\f15b"; -} -.fa-file-text:before { - content: "\f15c"; -} -.fa-sort-alpha-asc:before { - content: "\f15d"; -} -.fa-sort-alpha-desc:before { - content: "\f15e"; -} -.fa-sort-amount-asc:before { - content: "\f160"; -} -.fa-sort-amount-desc:before { - content: "\f161"; -} -.fa-sort-numeric-asc:before { - content: "\f162"; -} -.fa-sort-numeric-desc:before { - content: "\f163"; -} -.fa-thumbs-up:before { - content: "\f164"; -} -.fa-thumbs-down:before { - content: "\f165"; -} -.fa-youtube-square:before { - content: "\f166"; -} -.fa-youtube:before { - content: "\f167"; -} -.fa-xing:before { - content: "\f168"; -} -.fa-xing-square:before { - content: "\f169"; -} -.fa-youtube-play:before { - content: "\f16a"; -} -.fa-dropbox:before { - content: "\f16b"; -} -.fa-stack-overflow:before { - content: "\f16c"; -} -.fa-instagram:before { - content: "\f16d"; -} -.fa-flickr:before { - content: "\f16e"; -} -.fa-adn:before { - content: "\f170"; -} -.fa-bitbucket:before { - content: "\f171"; -} -.fa-bitbucket-square:before { - content: "\f172"; -} -.fa-tumblr:before { - content: "\f173"; -} -.fa-tumblr-square:before { - content: "\f174"; -} -.fa-long-arrow-down:before { - content: "\f175"; -} -.fa-long-arrow-up:before { - content: "\f176"; -} -.fa-long-arrow-left:before { - content: "\f177"; -} -.fa-long-arrow-right:before { - content: "\f178"; -} -.fa-apple:before { - content: "\f179"; -} -.fa-windows:before { - content: "\f17a"; -} -.fa-android:before { - content: "\f17b"; -} -.fa-linux:before { - content: "\f17c"; -} -.fa-dribbble:before { - content: "\f17d"; -} -.fa-skype:before { - content: "\f17e"; -} -.fa-foursquare:before { - content: "\f180"; -} -.fa-trello:before { - content: "\f181"; -} -.fa-female:before { - content: "\f182"; -} -.fa-male:before { - content: "\f183"; -} -.fa-gittip:before, -.fa-gratipay:before { - content: "\f184"; -} -.fa-sun-o:before { - content: "\f185"; -} -.fa-moon-o:before { - content: "\f186"; -} -.fa-archive:before { - content: "\f187"; -} -.fa-bug:before { - content: "\f188"; -} -.fa-vk:before { - content: "\f189"; -} -.fa-weibo:before { - content: "\f18a"; -} -.fa-renren:before { - content: "\f18b"; -} -.fa-pagelines:before { - content: "\f18c"; -} -.fa-stack-exchange:before { - content: "\f18d"; -} -.fa-arrow-circle-o-right:before { - content: "\f18e"; -} -.fa-arrow-circle-o-left:before { - content: "\f190"; -} -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\f191"; -} -.fa-dot-circle-o:before { - content: "\f192"; -} -.fa-wheelchair:before { - content: "\f193"; -} -.fa-vimeo-square:before { - content: "\f194"; -} -.fa-turkish-lira:before, -.fa-try:before { - content: "\f195"; -} -.fa-plus-square-o:before { - content: "\f196"; -} -.fa-space-shuttle:before { - content: "\f197"; -} -.fa-slack:before { - content: "\f198"; -} -.fa-envelope-square:before { - content: "\f199"; -} -.fa-wordpress:before { - content: "\f19a"; -} -.fa-openid:before { - content: "\f19b"; -} -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\f19c"; -} -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\f19d"; -} -.fa-yahoo:before { - content: "\f19e"; -} -.fa-google:before { - content: "\f1a0"; -} -.fa-reddit:before { - content: "\f1a1"; -} -.fa-reddit-square:before { - content: "\f1a2"; -} -.fa-stumbleupon-circle:before { - content: "\f1a3"; -} -.fa-stumbleupon:before { - content: "\f1a4"; -} -.fa-delicious:before { - content: "\f1a5"; -} -.fa-digg:before { - content: "\f1a6"; -} -.fa-pied-piper:before { - content: "\f1a7"; -} -.fa-pied-piper-alt:before { - content: "\f1a8"; -} -.fa-drupal:before { - content: "\f1a9"; -} -.fa-joomla:before { - content: "\f1aa"; -} -.fa-language:before { - content: "\f1ab"; -} -.fa-fax:before { - content: "\f1ac"; -} -.fa-building:before { - content: "\f1ad"; -} -.fa-child:before { - content: "\f1ae"; -} -.fa-paw:before { - content: "\f1b0"; -} -.fa-spoon:before { - content: "\f1b1"; -} -.fa-cube:before { - content: "\f1b2"; -} -.fa-cubes:before { - content: "\f1b3"; -} -.fa-behance:before { - content: "\f1b4"; -} -.fa-behance-square:before { - content: "\f1b5"; -} -.fa-steam:before { - content: "\f1b6"; -} -.fa-steam-square:before { - content: "\f1b7"; -} -.fa-recycle:before { - content: "\f1b8"; -} -.fa-automobile:before, -.fa-car:before { - content: "\f1b9"; -} -.fa-cab:before, -.fa-taxi:before { - content: "\f1ba"; -} -.fa-tree:before { - content: "\f1bb"; -} -.fa-spotify:before { - content: "\f1bc"; -} -.fa-deviantart:before { - content: "\f1bd"; -} -.fa-soundcloud:before { - content: "\f1be"; -} -.fa-database:before { - content: "\f1c0"; -} -.fa-file-pdf-o:before { - content: "\f1c1"; -} -.fa-file-word-o:before { - content: "\f1c2"; -} -.fa-file-excel-o:before { - content: "\f1c3"; -} -.fa-file-powerpoint-o:before { - content: "\f1c4"; -} -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\f1c5"; -} -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\f1c6"; -} -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\f1c7"; -} -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\f1c8"; -} -.fa-file-code-o:before { - content: "\f1c9"; -} -.fa-vine:before { - content: "\f1ca"; -} -.fa-codepen:before { - content: "\f1cb"; -} -.fa-jsfiddle:before { - content: "\f1cc"; -} -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\f1cd"; -} -.fa-circle-o-notch:before { - content: "\f1ce"; -} -.fa-ra:before, -.fa-rebel:before { - content: "\f1d0"; -} -.fa-ge:before, -.fa-empire:before { - content: "\f1d1"; -} -.fa-git-square:before { - content: "\f1d2"; -} -.fa-git:before { - content: "\f1d3"; -} -.fa-hacker-news:before { - content: "\f1d4"; -} -.fa-tencent-weibo:before { - content: "\f1d5"; -} -.fa-qq:before { - content: "\f1d6"; -} -.fa-wechat:before, -.fa-weixin:before { - content: "\f1d7"; -} -.fa-send:before, -.fa-paper-plane:before { - content: "\f1d8"; -} -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\f1d9"; -} -.fa-history:before { - content: "\f1da"; -} -.fa-genderless:before, -.fa-circle-thin:before { - content: "\f1db"; -} -.fa-header:before { - content: "\f1dc"; -} -.fa-paragraph:before { - content: "\f1dd"; -} -.fa-sliders:before { - content: "\f1de"; -} -.fa-share-alt:before { - content: "\f1e0"; -} -.fa-share-alt-square:before { - content: "\f1e1"; -} -.fa-bomb:before { - content: "\f1e2"; -} -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "\f1e3"; -} -.fa-tty:before { - content: "\f1e4"; -} -.fa-binoculars:before { - content: "\f1e5"; -} -.fa-plug:before { - content: "\f1e6"; -} -.fa-slideshare:before { - content: "\f1e7"; -} -.fa-twitch:before { - content: "\f1e8"; -} -.fa-yelp:before { - content: "\f1e9"; -} -.fa-newspaper-o:before { - content: "\f1ea"; -} -.fa-wifi:before { - content: "\f1eb"; -} -.fa-calculator:before { - content: "\f1ec"; -} -.fa-paypal:before { - content: "\f1ed"; -} -.fa-google-wallet:before { - content: "\f1ee"; -} -.fa-cc-visa:before { - content: "\f1f0"; -} -.fa-cc-mastercard:before { - content: "\f1f1"; -} -.fa-cc-discover:before { - content: "\f1f2"; -} -.fa-cc-amex:before { - content: "\f1f3"; -} -.fa-cc-paypal:before { - content: "\f1f4"; -} -.fa-cc-stripe:before { - content: "\f1f5"; -} -.fa-bell-slash:before { - content: "\f1f6"; -} -.fa-bell-slash-o:before { - content: "\f1f7"; -} -.fa-trash:before { - content: "\f1f8"; -} -.fa-copyright:before { - content: "\f1f9"; -} -.fa-at:before { - content: "\f1fa"; -} -.fa-eyedropper:before { - content: "\f1fb"; -} -.fa-paint-brush:before { - content: "\f1fc"; -} -.fa-birthday-cake:before { - content: "\f1fd"; -} -.fa-area-chart:before { - content: "\f1fe"; -} -.fa-pie-chart:before { - content: "\f200"; -} -.fa-line-chart:before { - content: "\f201"; -} -.fa-lastfm:before { - content: "\f202"; -} -.fa-lastfm-square:before { - content: "\f203"; -} -.fa-toggle-off:before { - content: "\f204"; -} -.fa-toggle-on:before { - content: "\f205"; -} -.fa-bicycle:before { - content: "\f206"; -} -.fa-bus:before { - content: "\f207"; -} -.fa-ioxhost:before { - content: "\f208"; -} -.fa-angellist:before { - content: "\f209"; -} -.fa-cc:before { - content: "\f20a"; -} -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "\f20b"; -} -.fa-meanpath:before { - content: "\f20c"; -} -.fa-buysellads:before { - content: "\f20d"; -} -.fa-connectdevelop:before { - content: "\f20e"; -} -.fa-dashcube:before { - content: "\f210"; -} -.fa-forumbee:before { - content: "\f211"; -} -.fa-leanpub:before { - content: "\f212"; -} -.fa-sellsy:before { - content: "\f213"; -} -.fa-shirtsinbulk:before { - content: "\f214"; -} -.fa-simplybuilt:before { - content: "\f215"; -} -.fa-skyatlas:before { - content: "\f216"; -} -.fa-cart-plus:before { - content: "\f217"; -} -.fa-cart-arrow-down:before { - content: "\f218"; -} -.fa-diamond:before { - content: "\f219"; -} -.fa-ship:before { - content: "\f21a"; -} -.fa-user-secret:before { - content: "\f21b"; -} -.fa-motorcycle:before { - content: "\f21c"; -} -.fa-street-view:before { - content: "\f21d"; -} -.fa-heartbeat:before { - content: "\f21e"; -} -.fa-venus:before { - content: "\f221"; -} -.fa-mars:before { - content: "\f222"; -} -.fa-mercury:before { - content: "\f223"; -} -.fa-transgender:before { - content: "\f224"; -} -.fa-transgender-alt:before { - content: "\f225"; -} -.fa-venus-double:before { - content: "\f226"; -} -.fa-mars-double:before { - content: "\f227"; -} -.fa-venus-mars:before { - content: "\f228"; -} -.fa-mars-stroke:before { - content: "\f229"; -} -.fa-mars-stroke-v:before { - content: "\f22a"; -} -.fa-mars-stroke-h:before { - content: "\f22b"; -} -.fa-neuter:before { - content: "\f22c"; -} -.fa-facebook-official:before { - content: "\f230"; -} -.fa-pinterest-p:before { - content: "\f231"; -} -.fa-whatsapp:before { - content: "\f232"; -} -.fa-server:before { - content: "\f233"; -} -.fa-user-plus:before { - content: "\f234"; -} -.fa-user-times:before { - content: "\f235"; -} -.fa-hotel:before, -.fa-bed:before { - content: "\f236"; -} -.fa-viacoin:before { - content: "\f237"; -} -.fa-train:before { - content: "\f238"; -} -.fa-subway:before { - content: "\f239"; -} -.fa-medium:before { - content: "\f23a"; -} diff --git a/theme/fonts/fontawesome-webfont.woff b/theme/fonts/fontawesome-webfont.woff deleted file mode 100644 index 8b280b98fa2fa261aa4b0f8fd061f772073ef83e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71508 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 diff --git a/theme/options.js b/theme/options.js deleted file mode 100644 index 03bacb6..0000000 --- a/theme/options.js +++ /dev/null @@ -1,1639 +0,0 @@ -/* Zepto v1.1.6 - zepto event ajax form ie - zeptojs.com/license */ - -var Zepto = (function() { - var undefined, key, $, classList, emptyArray = [], slice = emptyArray.slice, filter = emptyArray.filter, - document = window.document, - elementDisplay = {}, classCache = {}, - cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 }, - fragmentRE = /^\s*<(\w+|!)[^>]*>/, - singleTagRE = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, - tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, - rootNodeRE = /^(?:body|html)$/i, - capitalRE = /([A-Z])/g, - - // special attributes that should be get/set via method calls - methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'], - - adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ], - table = document.createElement('table'), - tableRow = document.createElement('tr'), - containers = { - 'tr': document.createElement('tbody'), - 'tbody': table, 'thead': table, 'tfoot': table, - 'td': tableRow, 'th': tableRow, - '*': document.createElement('div') - }, - readyRE = /complete|loaded|interactive/, - simpleSelectorRE = /^[\w-]*$/, - class2type = {}, - toString = class2type.toString, - zepto = {}, - camelize, uniq, - tempParent = document.createElement('div'), - propMap = { - 'tabindex': 'tabIndex', - 'readonly': 'readOnly', - 'for': 'htmlFor', - 'class': 'className', - 'maxlength': 'maxLength', - 'cellspacing': 'cellSpacing', - 'cellpadding': 'cellPadding', - 'rowspan': 'rowSpan', - 'colspan': 'colSpan', - 'usemap': 'useMap', - 'frameborder': 'frameBorder', - 'contenteditable': 'contentEditable' - }, - isArray = Array.isArray || - function(object){ return object instanceof Array } - - zepto.matches = function(element, selector) { - if (!selector || !element || element.nodeType !== 1) return false - var matchesSelector = element.webkitMatchesSelector || element.mozMatchesSelector || - element.oMatchesSelector || element.matchesSelector - if (matchesSelector) return matchesSelector.call(element, selector) - // fall back to performing a selector: - var match, parent = element.parentNode, temp = !parent - if (temp) (parent = tempParent).appendChild(element) - match = ~zepto.qsa(parent, selector).indexOf(element) - temp && tempParent.removeChild(element) - return match - } - - function type(obj) { - return obj == null ? String(obj) : - class2type[toString.call(obj)] || "object" - } - - function isFunction(value) { return type(value) == "function" } - function isWindow(obj) { return obj != null && obj == obj.window } - function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE } - function isObject(obj) { return type(obj) == "object" } - function isPlainObject(obj) { - return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype - } - function likeArray(obj) { return typeof obj.length == 'number' } - - function compact(array) { return filter.call(array, function(item){ return item != null }) } - function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array } - camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) } - function dasherize(str) { - return str.replace(/::/g, '/') - .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') - .replace(/([a-z\d])([A-Z])/g, '$1_$2') - .replace(/_/g, '-') - .toLowerCase() - } - uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) } - - function classRE(name) { - return name in classCache ? - classCache[name] : (classCache[name] = new RegExp('(^|\\s)' + name + '(\\s|$)')) - } - - function maybeAddPx(name, value) { - return (typeof value == "number" && !cssNumber[dasherize(name)]) ? value + "px" : value - } - - function defaultDisplay(nodeName) { - var element, display - if (!elementDisplay[nodeName]) { - element = document.createElement(nodeName) - document.body.appendChild(element) - display = getComputedStyle(element, '').getPropertyValue("display") - element.parentNode.removeChild(element) - display == "none" && (display = "block") - elementDisplay[nodeName] = display - } - return elementDisplay[nodeName] - } - - function children(element) { - return 'children' in element ? - slice.call(element.children) : - $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node }) - } - - // `$.zepto.fragment` takes a html string and an optional tag name - // to generate DOM nodes nodes from the given html string. - // The generated DOM nodes are returned as an array. - // This function can be overriden in plugins for example to make - // it compatible with browsers that don't support the DOM fully. - zepto.fragment = function(html, name, properties) { - var dom, nodes, container - - // A special case optimization for a single tag - if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1)) - - if (!dom) { - if (html.replace) html = html.replace(tagExpanderRE, "<$1>") - if (name === undefined) name = fragmentRE.test(html) && RegExp.$1 - if (!(name in containers)) name = '*' - - container = containers[name] - container.innerHTML = '' + html - dom = $.each(slice.call(container.childNodes), function(){ - container.removeChild(this) - }) - } - - if (isPlainObject(properties)) { - nodes = $(dom) - $.each(properties, function(key, value) { - if (methodAttributes.indexOf(key) > -1) nodes[key](value) - else nodes.attr(key, value) - }) - } - - return dom - } - - // `$.zepto.Z` swaps out the prototype of the given `dom` array - // of nodes with `$.fn` and thus supplying all the Zepto functions - // to the array. Note that `__proto__` is not supported on Internet - // Explorer. This method can be overriden in plugins. - zepto.Z = function(dom, selector) { - dom = dom || [] - dom.__proto__ = $.fn - dom.selector = selector || '' - return dom - } - - // `$.zepto.isZ` should return `true` if the given object is a Zepto - // collection. This method can be overriden in plugins. - zepto.isZ = function(object) { - return object instanceof zepto.Z - } - - // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and - // takes a CSS selector and an optional context (and handles various - // special cases). - // This method can be overriden in plugins. - zepto.init = function(selector, context) { - var dom - // If nothing given, return an empty Zepto collection - if (!selector) return zepto.Z() - // Optimize for string selectors - else if (typeof selector == 'string') { - selector = selector.trim() - // If it's a html fragment, create nodes from it - // Note: In both Chrome 21 and Firefox 15, DOM error 12 - // is thrown if the fragment doesn't begin with < - if (selector[0] == '<' && fragmentRE.test(selector)) - dom = zepto.fragment(selector, RegExp.$1, context), selector = null - // If there's a context, create a collection on that context first, and select - // nodes from there - else if (context !== undefined) return $(context).find(selector) - // If it's a CSS selector, use it to select nodes. - else dom = zepto.qsa(document, selector) - } - // If a function is given, call it when the DOM is ready - else if (isFunction(selector)) return $(document).ready(selector) - // If a Zepto collection is given, just return it - else if (zepto.isZ(selector)) return selector - else { - // normalize array if an array of nodes is given - if (isArray(selector)) dom = compact(selector) - // Wrap DOM nodes. - else if (isObject(selector)) - dom = [selector], selector = null - // If it's a html fragment, create nodes from it - else if (fragmentRE.test(selector)) - dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null - // If there's a context, create a collection on that context first, and select - // nodes from there - else if (context !== undefined) return $(context).find(selector) - // And last but no least, if it's a CSS selector, use it to select nodes. - else dom = zepto.qsa(document, selector) - } - // create a new Zepto collection from the nodes found - return zepto.Z(dom, selector) - } - - // `$` will be the base `Zepto` object. When calling this - // function just call `$.zepto.init, which makes the implementation - // details of selecting nodes and creating Zepto collections - // patchable in plugins. - $ = function(selector, context){ - return zepto.init(selector, context) - } - - function extend(target, source, deep) { - for (key in source) - if (deep && (isPlainObject(source[key]) || isArray(source[key]))) { - if (isPlainObject(source[key]) && !isPlainObject(target[key])) - target[key] = {} - if (isArray(source[key]) && !isArray(target[key])) - target[key] = [] - extend(target[key], source[key], deep) - } - else if (source[key] !== undefined) target[key] = source[key] - } - - // Copy all but undefined properties from one or more - // objects to the `target` object. - $.extend = function(target){ - var deep, args = slice.call(arguments, 1) - if (typeof target == 'boolean') { - deep = target - target = args.shift() - } - args.forEach(function(arg){ extend(target, arg, deep) }) - return target - } - - // `$.zepto.qsa` is Zepto's CSS selector implementation which - // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`. - // This method can be overriden in plugins. - zepto.qsa = function(element, selector){ - var found, - maybeID = selector[0] == '#', - maybeClass = !maybeID && selector[0] == '.', - nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked - isSimple = simpleSelectorRE.test(nameOnly) - return (isDocument(element) && isSimple && maybeID) ? - ( (found = element.getElementById(nameOnly)) ? [found] : [] ) : - (element.nodeType !== 1 && element.nodeType !== 9) ? [] : - slice.call( - isSimple && !maybeID ? - maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class - element.getElementsByTagName(selector) : // Or a tag - element.querySelectorAll(selector) // Or it's not simple, and we need to query all - ) - } - - function filtered(nodes, selector) { - return selector == null ? $(nodes) : $(nodes).filter(selector) - } - - $.contains = document.documentElement.contains ? - function(parent, node) { - return parent !== node && parent.contains(node) - } : - function(parent, node) { - while (node && (node = node.parentNode)) - if (node === parent) return true - return false - } - - function funcArg(context, arg, idx, payload) { - return isFunction(arg) ? arg.call(context, idx, payload) : arg - } - - function setAttribute(node, name, value) { - value == null ? node.removeAttribute(name) : node.setAttribute(name, value) - } - - // access className property while respecting SVGAnimatedString - function className(node, value){ - var klass = node.className || '', - svg = klass && klass.baseVal !== undefined - - if (value === undefined) return svg ? klass.baseVal : klass - svg ? (klass.baseVal = value) : (node.className = value) - } - - // "true" => true - // "false" => false - // "null" => null - // "42" => 42 - // "42.5" => 42.5 - // "08" => "08" - // JSON => parse if valid - // String => self - function deserializeValue(value) { - try { - return value ? - value == "true" || - ( value == "false" ? false : - value == "null" ? null : - +value + "" == value ? +value : - /^[\[\{]/.test(value) ? $.parseJSON(value) : - value ) - : value - } catch(e) { - return value - } - } - - $.type = type - $.isFunction = isFunction - $.isWindow = isWindow - $.isArray = isArray - $.isPlainObject = isPlainObject - - $.isEmptyObject = function(obj) { - var name - for (name in obj) return false - return true - } - - $.inArray = function(elem, array, i){ - return emptyArray.indexOf.call(array, elem, i) - } - - $.camelCase = camelize - $.trim = function(str) { - return str == null ? "" : String.prototype.trim.call(str) - } - - // plugin compatibility - $.uuid = 0 - $.support = { } - $.expr = { } - - $.map = function(elements, callback){ - var value, values = [], i, key - if (likeArray(elements)) - for (i = 0; i < elements.length; i++) { - value = callback(elements[i], i) - if (value != null) values.push(value) - } - else - for (key in elements) { - value = callback(elements[key], key) - if (value != null) values.push(value) - } - return flatten(values) - } - - $.each = function(elements, callback){ - var i, key - if (likeArray(elements)) { - for (i = 0; i < elements.length; i++) - if (callback.call(elements[i], i, elements[i]) === false) return elements - } else { - for (key in elements) - if (callback.call(elements[key], key, elements[key]) === false) return elements - } - - return elements - } - - $.grep = function(elements, callback){ - return filter.call(elements, callback) - } - - if (window.JSON) $.parseJSON = JSON.parse - - // Populate the class2type map - $.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase() - }) - - // Define methods that will be available on all - // Zepto collections - $.fn = { - // Because a collection acts like an array - // copy over these useful array functions. - forEach: emptyArray.forEach, - reduce: emptyArray.reduce, - push: emptyArray.push, - sort: emptyArray.sort, - indexOf: emptyArray.indexOf, - concat: emptyArray.concat, - - // `map` and `slice` in the jQuery API work differently - // from their array counterparts - map: function(fn){ - return $($.map(this, function(el, i){ return fn.call(el, i, el) })) - }, - slice: function(){ - return $(slice.apply(this, arguments)) - }, - - ready: function(callback){ - // need to check if document.body exists for IE as that browser reports - // document ready when it hasn't yet created the body element - if (readyRE.test(document.readyState) && document.body) callback($) - else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false) - return this - }, - get: function(idx){ - return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length] - }, - toArray: function(){ return this.get() }, - size: function(){ - return this.length - }, - remove: function(){ - return this.each(function(){ - if (this.parentNode != null) - this.parentNode.removeChild(this) - }) - }, - each: function(callback){ - emptyArray.every.call(this, function(el, idx){ - return callback.call(el, idx, el) !== false - }) - return this - }, - filter: function(selector){ - if (isFunction(selector)) return this.not(this.not(selector)) - return $(filter.call(this, function(element){ - return zepto.matches(element, selector) - })) - }, - add: function(selector,context){ - return $(uniq(this.concat($(selector,context)))) - }, - is: function(selector){ - return this.length > 0 && zepto.matches(this[0], selector) - }, - not: function(selector){ - var nodes=[] - if (isFunction(selector) && selector.call !== undefined) - this.each(function(idx){ - if (!selector.call(this,idx)) nodes.push(this) - }) - else { - var excludes = typeof selector == 'string' ? this.filter(selector) : - (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector) - this.forEach(function(el){ - if (excludes.indexOf(el) < 0) nodes.push(el) - }) - } - return $(nodes) - }, - has: function(selector){ - return this.filter(function(){ - return isObject(selector) ? - $.contains(this, selector) : - $(this).find(selector).size() - }) - }, - eq: function(idx){ - return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1) - }, - first: function(){ - var el = this[0] - return el && !isObject(el) ? el : $(el) - }, - last: function(){ - var el = this[this.length - 1] - return el && !isObject(el) ? el : $(el) - }, - find: function(selector){ - var result, $this = this - if (!selector) result = $() - else if (typeof selector == 'object') - result = $(selector).filter(function(){ - var node = this - return emptyArray.some.call($this, function(parent){ - return $.contains(parent, node) - }) - }) - else if (this.length == 1) result = $(zepto.qsa(this[0], selector)) - else result = this.map(function(){ return zepto.qsa(this, selector) }) - return result - }, - closest: function(selector, context){ - var node = this[0], collection = false - if (typeof selector == 'object') collection = $(selector) - while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) - node = node !== context && !isDocument(node) && node.parentNode - return $(node) - }, - parents: function(selector){ - var ancestors = [], nodes = this - while (nodes.length > 0) - nodes = $.map(nodes, function(node){ - if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) { - ancestors.push(node) - return node - } - }) - return filtered(ancestors, selector) - }, - parent: function(selector){ - return filtered(uniq(this.pluck('parentNode')), selector) - }, - children: function(selector){ - return filtered(this.map(function(){ return children(this) }), selector) - }, - contents: function() { - return this.map(function() { return slice.call(this.childNodes) }) - }, - siblings: function(selector){ - return filtered(this.map(function(i, el){ - return filter.call(children(el.parentNode), function(child){ return child!==el }) - }), selector) - }, - empty: function(){ - return this.each(function(){ this.innerHTML = '' }) - }, - // `pluck` is borrowed from Prototype.js - pluck: function(property){ - return $.map(this, function(el){ return el[property] }) - }, - show: function(){ - return this.each(function(){ - this.style.display == "none" && (this.style.display = '') - if (getComputedStyle(this, '').getPropertyValue("display") == "none") - this.style.display = defaultDisplay(this.nodeName) - }) - }, - replaceWith: function(newContent){ - return this.before(newContent).remove() - }, - wrap: function(structure){ - var func = isFunction(structure) - if (this[0] && !func) - var dom = $(structure).get(0), - clone = dom.parentNode || this.length > 1 - - return this.each(function(index){ - $(this).wrapAll( - func ? structure.call(this, index) : - clone ? dom.cloneNode(true) : dom - ) - }) - }, - wrapAll: function(structure){ - if (this[0]) { - $(this[0]).before(structure = $(structure)) - var children - // drill down to the inmost element - while ((children = structure.children()).length) structure = children.first() - $(structure).append(this) - } - return this - }, - wrapInner: function(structure){ - var func = isFunction(structure) - return this.each(function(index){ - var self = $(this), contents = self.contents(), - dom = func ? structure.call(this, index) : structure - contents.length ? contents.wrapAll(dom) : self.append(dom) - }) - }, - unwrap: function(){ - this.parent().each(function(){ - $(this).replaceWith($(this).children()) - }) - return this - }, - clone: function(){ - return this.map(function(){ return this.cloneNode(true) }) - }, - hide: function(){ - return this.css("display", "none") - }, - toggle: function(setting){ - return this.each(function(){ - var el = $(this) - ;(setting === undefined ? el.css("display") == "none" : setting) ? el.show() : el.hide() - }) - }, - prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') }, - next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') }, - html: function(html){ - return 0 in arguments ? - this.each(function(idx){ - var originHtml = this.innerHTML - $(this).empty().append( funcArg(this, html, idx, originHtml) ) - }) : - (0 in this ? this[0].innerHTML : null) - }, - text: function(text){ - return 0 in arguments ? - this.each(function(idx){ - var newText = funcArg(this, text, idx, this.textContent) - this.textContent = newText == null ? '' : ''+newText - }) : - (0 in this ? this[0].textContent : null) - }, - attr: function(name, value){ - var result - return (typeof name == 'string' && !(1 in arguments)) ? - (!this.length || this[0].nodeType !== 1 ? undefined : - (!(result = this[0].getAttribute(name)) && name in this[0]) ? this[0][name] : result - ) : - this.each(function(idx){ - if (this.nodeType !== 1) return - if (isObject(name)) for (key in name) setAttribute(this, key, name[key]) - else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name))) - }) - }, - removeAttr: function(name){ - return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){ - setAttribute(this, attribute) - }, this)}) - }, - prop: function(name, value){ - name = propMap[name] || name - return (1 in arguments) ? - this.each(function(idx){ - this[name] = funcArg(this, value, idx, this[name]) - }) : - (this[0] && this[0][name]) - }, - data: function(name, value){ - var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase() - - var data = (1 in arguments) ? - this.attr(attrName, value) : - this.attr(attrName) - - return data !== null ? deserializeValue(data) : undefined - }, - val: function(value){ - return 0 in arguments ? - this.each(function(idx){ - this.value = funcArg(this, value, idx, this.value) - }) : - (this[0] && (this[0].multiple ? - $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') : - this[0].value) - ) - }, - offset: function(coordinates){ - if (coordinates) return this.each(function(index){ - var $this = $(this), - coords = funcArg(this, coordinates, index, $this.offset()), - parentOffset = $this.offsetParent().offset(), - props = { - top: coords.top - parentOffset.top, - left: coords.left - parentOffset.left - } - - if ($this.css('position') == 'static') props['position'] = 'relative' - $this.css(props) - }) - if (!this.length) return null - var obj = this[0].getBoundingClientRect() - return { - left: obj.left + window.pageXOffset, - top: obj.top + window.pageYOffset, - width: Math.round(obj.width), - height: Math.round(obj.height) - } - }, - css: function(property, value){ - if (arguments.length < 2) { - var computedStyle, element = this[0] - if(!element) return - computedStyle = getComputedStyle(element, '') - if (typeof property == 'string') - return element.style[camelize(property)] || computedStyle.getPropertyValue(property) - else if (isArray(property)) { - var props = {} - $.each(property, function(_, prop){ - props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop)) - }) - return props - } - } - - var css = '' - if (type(property) == 'string') { - if (!value && value !== 0) - this.each(function(){ this.style.removeProperty(dasherize(property)) }) - else - css = dasherize(property) + ":" + maybeAddPx(property, value) - } else { - for (key in property) - if (!property[key] && property[key] !== 0) - this.each(function(){ this.style.removeProperty(dasherize(key)) }) - else - css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';' - } - - return this.each(function(){ this.style.cssText += ';' + css }) - }, - index: function(element){ - return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]) - }, - hasClass: function(name){ - if (!name) return false - return emptyArray.some.call(this, function(el){ - return this.test(className(el)) - }, classRE(name)) - }, - addClass: function(name){ - if (!name) return this - return this.each(function(idx){ - if (!('className' in this)) return - classList = [] - var cls = className(this), newName = funcArg(this, name, idx, cls) - newName.split(/\s+/g).forEach(function(klass){ - if (!$(this).hasClass(klass)) classList.push(klass) - }, this) - classList.length && className(this, cls + (cls ? " " : "") + classList.join(" ")) - }) - }, - removeClass: function(name){ - return this.each(function(idx){ - if (!('className' in this)) return - if (name === undefined) return className(this, '') - classList = className(this) - funcArg(this, name, idx, classList).split(/\s+/g).forEach(function(klass){ - classList = classList.replace(classRE(klass), " ") - }) - className(this, classList.trim()) - }) - }, - toggleClass: function(name, when){ - if (!name) return this - return this.each(function(idx){ - var $this = $(this), names = funcArg(this, name, idx, className(this)) - names.split(/\s+/g).forEach(function(klass){ - (when === undefined ? !$this.hasClass(klass) : when) ? - $this.addClass(klass) : $this.removeClass(klass) - }) - }) - }, - scrollTop: function(value){ - if (!this.length) return - var hasScrollTop = 'scrollTop' in this[0] - if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset - return this.each(hasScrollTop ? - function(){ this.scrollTop = value } : - function(){ this.scrollTo(this.scrollX, value) }) - }, - scrollLeft: function(value){ - if (!this.length) return - var hasScrollLeft = 'scrollLeft' in this[0] - if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset - return this.each(hasScrollLeft ? - function(){ this.scrollLeft = value } : - function(){ this.scrollTo(value, this.scrollY) }) - }, - position: function() { - if (!this.length) return - - var elem = this[0], - // Get *real* offsetParent - offsetParent = this.offsetParent(), - // Get correct offsets - offset = this.offset(), - parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset() - - // Subtract element margins - // note: when an element has margin: auto the offsetLeft and marginLeft - // are the same in Safari causing offset.left to incorrectly be 0 - offset.top -= parseFloat( $(elem).css('margin-top') ) || 0 - offset.left -= parseFloat( $(elem).css('margin-left') ) || 0 - - // Add offsetParent borders - parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0 - parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0 - - // Subtract the two offsets - return { - top: offset.top - parentOffset.top, - left: offset.left - parentOffset.left - } - }, - offsetParent: function() { - return this.map(function(){ - var parent = this.offsetParent || document.body - while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static") - parent = parent.offsetParent - return parent - }) - } - } - - // for now - $.fn.detach = $.fn.remove - - // Generate the `width` and `height` functions - ;['width', 'height'].forEach(function(dimension){ - var dimensionProperty = - dimension.replace(/./, function(m){ return m[0].toUpperCase() }) - - $.fn[dimension] = function(value){ - var offset, el = this[0] - if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] : - isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : - (offset = this.offset()) && offset[dimension] - else return this.each(function(idx){ - el = $(this) - el.css(dimension, funcArg(this, value, idx, el[dimension]())) - }) - } - }) - - function traverseNode(node, fun) { - fun(node) - for (var i = 0, len = node.childNodes.length; i < len; i++) - traverseNode(node.childNodes[i], fun) - } - - // Generate the `after`, `prepend`, `before`, `append`, - // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods. - adjacencyOperators.forEach(function(operator, operatorIndex) { - var inside = operatorIndex % 2 //=> prepend, append - - $.fn[operator] = function(){ - // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings - var argType, nodes = $.map(arguments, function(arg) { - argType = type(arg) - return argType == "object" || argType == "array" || arg == null ? - arg : zepto.fragment(arg) - }), - parent, copyByClone = this.length > 1 - if (nodes.length < 1) return this - - return this.each(function(_, target){ - parent = inside ? target : target.parentNode - - // convert all methods to a "before" operation - target = operatorIndex == 0 ? target.nextSibling : - operatorIndex == 1 ? target.firstChild : - operatorIndex == 2 ? target : - null - - var parentInDocument = $.contains(document.documentElement, parent) - - nodes.forEach(function(node){ - if (copyByClone) node = node.cloneNode(true) - else if (!parent) return $(node).remove() - - parent.insertBefore(node, target) - if (parentInDocument) traverseNode(node, function(el){ - if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && - (!el.type || el.type === 'text/javascript') && !el.src) - window['eval'].call(window, el.innerHTML) - }) - }) - }) - } - - // after => insertAfter - // prepend => prependTo - // before => insertBefore - // append => appendTo - $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){ - $(html)[operator](this) - return this - } - }) - - zepto.Z.prototype = $.fn - - // Export internal API functions in the `$.zepto` namespace - zepto.uniq = uniq - zepto.deserializeValue = deserializeValue - $.zepto = zepto - - return $ -})() - -window.Zepto = Zepto -window.$ === undefined && (window.$ = Zepto) - -;(function($){ - var _zid = 1, undefined, - slice = Array.prototype.slice, - isFunction = $.isFunction, - isString = function(obj){ return typeof obj == 'string' }, - handlers = {}, - specialEvents={}, - focusinSupported = 'onfocusin' in window, - focus = { focus: 'focusin', blur: 'focusout' }, - hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' } - - specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents' - - function zid(element) { - return element._zid || (element._zid = _zid++) - } - function findHandlers(element, event, fn, selector) { - event = parse(event) - if (event.ns) var matcher = matcherFor(event.ns) - return (handlers[zid(element)] || []).filter(function(handler) { - return handler - && (!event.e || handler.e == event.e) - && (!event.ns || matcher.test(handler.ns)) - && (!fn || zid(handler.fn) === zid(fn)) - && (!selector || handler.sel == selector) - }) - } - function parse(event) { - var parts = ('' + event).split('.') - return {e: parts[0], ns: parts.slice(1).sort().join(' ')} - } - function matcherFor(ns) { - return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)') - } - - function eventCapture(handler, captureSetting) { - return handler.del && - (!focusinSupported && (handler.e in focus)) || - !!captureSetting - } - - function realEvent(type) { - return hover[type] || (focusinSupported && focus[type]) || type - } - - function add(element, events, fn, data, selector, delegator, capture){ - var id = zid(element), set = (handlers[id] || (handlers[id] = [])) - events.split(/\s/).forEach(function(event){ - if (event == 'ready') return $(document).ready(fn) - var handler = parse(event) - handler.fn = fn - handler.sel = selector - // emulate mouseenter, mouseleave - if (handler.e in hover) fn = function(e){ - var related = e.relatedTarget - if (!related || (related !== this && !$.contains(this, related))) - return handler.fn.apply(this, arguments) - } - handler.del = delegator - var callback = delegator || fn - handler.proxy = function(e){ - e = compatible(e) - if (e.isImmediatePropagationStopped()) return - e.data = data - var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args)) - if (result === false) e.preventDefault(), e.stopPropagation() - return result - } - handler.i = set.length - set.push(handler) - if ('addEventListener' in element) - element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) - }) - } - function remove(element, events, fn, selector, capture){ - var id = zid(element) - ;(events || '').split(/\s/).forEach(function(event){ - findHandlers(element, event, fn, selector).forEach(function(handler){ - delete handlers[id][handler.i] - if ('removeEventListener' in element) - element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) - }) - }) - } - - $.event = { add: add, remove: remove } - - $.proxy = function(fn, context) { - var args = (2 in arguments) && slice.call(arguments, 2) - if (isFunction(fn)) { - var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) } - proxyFn._zid = zid(fn) - return proxyFn - } else if (isString(context)) { - if (args) { - args.unshift(fn[context], fn) - return $.proxy.apply(null, args) - } else { - return $.proxy(fn[context], fn) - } - } else { - throw new TypeError("expected function") - } - } - - $.fn.bind = function(event, data, callback){ - return this.on(event, data, callback) - } - $.fn.unbind = function(event, callback){ - return this.off(event, callback) - } - $.fn.one = function(event, selector, data, callback){ - return this.on(event, selector, data, callback, 1) - } - - var returnTrue = function(){return true}, - returnFalse = function(){return false}, - ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$)/, - eventMethods = { - preventDefault: 'isDefaultPrevented', - stopImmediatePropagation: 'isImmediatePropagationStopped', - stopPropagation: 'isPropagationStopped' - } - - function compatible(event, source) { - if (source || !event.isDefaultPrevented) { - source || (source = event) - - $.each(eventMethods, function(name, predicate) { - var sourceMethod = source[name] - event[name] = function(){ - this[predicate] = returnTrue - return sourceMethod && sourceMethod.apply(source, arguments) - } - event[predicate] = returnFalse - }) - - if (source.defaultPrevented !== undefined ? source.defaultPrevented : - 'returnValue' in source ? source.returnValue === false : - source.getPreventDefault && source.getPreventDefault()) - event.isDefaultPrevented = returnTrue - } - return event - } - - function createProxy(event) { - var key, proxy = { originalEvent: event } - for (key in event) - if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key] - - return compatible(proxy, event) - } - - $.fn.delegate = function(selector, event, callback){ - return this.on(event, selector, callback) - } - $.fn.undelegate = function(selector, event, callback){ - return this.off(event, selector, callback) - } - - $.fn.live = function(event, callback){ - $(document.body).delegate(this.selector, event, callback) - return this - } - $.fn.die = function(event, callback){ - $(document.body).undelegate(this.selector, event, callback) - return this - } - - $.fn.on = function(event, selector, data, callback, one){ - var autoRemove, delegator, $this = this - if (event && !isString(event)) { - $.each(event, function(type, fn){ - $this.on(type, selector, data, fn, one) - }) - return $this - } - - if (!isString(selector) && !isFunction(callback) && callback !== false) - callback = data, data = selector, selector = undefined - if (isFunction(data) || data === false) - callback = data, data = undefined - - if (callback === false) callback = returnFalse - - return $this.each(function(_, element){ - if (one) autoRemove = function(e){ - remove(element, e.type, callback) - return callback.apply(this, arguments) - } - - if (selector) delegator = function(e){ - var evt, match = $(e.target).closest(selector, element).get(0) - if (match && match !== element) { - evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element}) - return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1))) - } - } - - add(element, event, callback, data, selector, delegator || autoRemove) - }) - } - $.fn.off = function(event, selector, callback){ - var $this = this - if (event && !isString(event)) { - $.each(event, function(type, fn){ - $this.off(type, selector, fn) - }) - return $this - } - - if (!isString(selector) && !isFunction(callback) && callback !== false) - callback = selector, selector = undefined - - if (callback === false) callback = returnFalse - - return $this.each(function(){ - remove(this, event, callback, selector) - }) - } - - $.fn.trigger = function(event, args){ - event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event) - event._args = args - return this.each(function(){ - // handle focus(), blur() by calling them directly - if (event.type in focus && typeof this[event.type] == "function") this[event.type]() - // items in the collection might not be DOM elements - else if ('dispatchEvent' in this) this.dispatchEvent(event) - else $(this).triggerHandler(event, args) - }) - } - - // triggers event handlers on current element just as if an event occurred, - // doesn't trigger an actual event, doesn't bubble - $.fn.triggerHandler = function(event, args){ - var e, result - this.each(function(i, element){ - e = createProxy(isString(event) ? $.Event(event) : event) - e._args = args - e.target = element - $.each(findHandlers(element, event.type || event), function(i, handler){ - result = handler.proxy(e) - if (e.isImmediatePropagationStopped()) return false - }) - }) - return result - } - - // shortcut methods for `.bind(event, fn)` for each event type - ;('focusin focusout focus blur load resize scroll unload click dblclick '+ - 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+ - 'change select keydown keypress keyup error').split(' ').forEach(function(event) { - $.fn[event] = function(callback) { - return (0 in arguments) ? - this.bind(event, callback) : - this.trigger(event) - } - }) - - $.Event = function(type, props) { - if (!isString(type)) props = type, type = props.type - var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true - if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name]) - event.initEvent(type, bubbles, true) - return compatible(event) - } - -})(Zepto) - -;(function($){ - var jsonpID = 0, - document = window.document, - key, - name, - rscript = /)<[^<]*)*<\/script>/gi, - scriptTypeRE = /^(?:text|application)\/javascript/i, - xmlTypeRE = /^(?:text|application)\/xml/i, - jsonType = 'application/json', - htmlType = 'text/html', - blankRE = /^\s*$/, - originAnchor = document.createElement('a') - - originAnchor.href = window.location.href - - // trigger a custom event and return false if it was cancelled - function triggerAndReturn(context, eventName, data) { - var event = $.Event(eventName) - $(context).trigger(event, data) - return !event.isDefaultPrevented() - } - - // trigger an Ajax "global" event - function triggerGlobal(settings, context, eventName, data) { - if (settings.global) return triggerAndReturn(context || document, eventName, data) - } - - // Number of active Ajax requests - $.active = 0 - - function ajaxStart(settings) { - if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart') - } - function ajaxStop(settings) { - if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop') - } - - // triggers an extra global event "ajaxBeforeSend" that's like "ajaxSend" but cancelable - function ajaxBeforeSend(xhr, settings) { - var context = settings.context - if (settings.beforeSend.call(context, xhr, settings) === false || - triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) - return false - - triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]) - } - function ajaxSuccess(data, xhr, settings, deferred) { - var context = settings.context, status = 'success' - settings.success.call(context, data, status, xhr) - if (deferred) deferred.resolveWith(context, [data, status, xhr]) - triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]) - ajaxComplete(status, xhr, settings) - } - // type: "timeout", "error", "abort", "parsererror" - function ajaxError(error, type, xhr, settings, deferred) { - var context = settings.context - settings.error.call(context, xhr, type, error) - if (deferred) deferred.rejectWith(context, [xhr, type, error]) - triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type]) - ajaxComplete(type, xhr, settings) - } - // status: "success", "notmodified", "error", "timeout", "abort", "parsererror" - function ajaxComplete(status, xhr, settings) { - var context = settings.context - settings.complete.call(context, xhr, status) - triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]) - ajaxStop(settings) - } - - // Empty function, used as default callback - function empty() {} - - $.ajaxJSONP = function(options, deferred){ - if (!('type' in options)) return $.ajax(options) - - var _callbackName = options.jsonpCallback, - callbackName = ($.isFunction(_callbackName) ? - _callbackName() : _callbackName) || ('jsonp' + (++jsonpID)), - script = document.createElement('script'), - originalCallback = window[callbackName], - responseData, - abort = function(errorType) { - $(script).triggerHandler('error', errorType || 'abort') - }, - xhr = { abort: abort }, abortTimeout - - if (deferred) deferred.promise(xhr) - - $(script).on('load error', function(e, errorType){ - clearTimeout(abortTimeout) - $(script).off().remove() - - if (e.type == 'error' || !responseData) { - ajaxError(null, errorType || 'error', xhr, options, deferred) - } else { - ajaxSuccess(responseData[0], xhr, options, deferred) - } - - window[callbackName] = originalCallback - if (responseData && $.isFunction(originalCallback)) - originalCallback(responseData[0]) - - originalCallback = responseData = undefined - }) - - if (ajaxBeforeSend(xhr, options) === false) { - abort('abort') - return xhr - } - - window[callbackName] = function(){ - responseData = arguments - } - - script.src = options.url.replace(/\?(.+)=\?/, '?$1=' + callbackName) - document.head.appendChild(script) - - if (options.timeout > 0) abortTimeout = setTimeout(function(){ - abort('timeout') - }, options.timeout) - - return xhr - } - - $.ajaxSettings = { - // Default type of request - type: 'GET', - // Callback that is executed before request - beforeSend: empty, - // Callback that is executed if the request succeeds - success: empty, - // Callback that is executed the the server drops error - error: empty, - // Callback that is executed on request complete (both: error and success) - complete: empty, - // The context for the callbacks - context: null, - // Whether to trigger "global" Ajax events - global: true, - // Transport - xhr: function () { - return new window.XMLHttpRequest() - }, - // MIME types mapping - // IIS returns Javascript as "application/x-javascript" - accepts: { - script: 'text/javascript, application/javascript, application/x-javascript', - json: jsonType, - xml: 'application/xml, text/xml', - html: htmlType, - text: 'text/plain' - }, - // Whether the request is to another domain - crossDomain: false, - // Default timeout - timeout: 0, - // Whether data should be serialized to string - processData: true, - // Whether the browser should be allowed to cache GET responses - cache: true - } - - function mimeToDataType(mime) { - if (mime) mime = mime.split(';', 2)[0] - return mime && ( mime == htmlType ? 'html' : - mime == jsonType ? 'json' : - scriptTypeRE.test(mime) ? 'script' : - xmlTypeRE.test(mime) && 'xml' ) || 'text' - } - - function appendQuery(url, query) { - if (query == '') return url - return (url + '&' + query).replace(/[&?]{1,2}/, '?') - } - - // serialize payload and append it to the URL for GET requests - function serializeData(options) { - if (options.processData && options.data && $.type(options.data) != "string") - options.data = $.param(options.data, options.traditional) - if (options.data && (!options.type || options.type.toUpperCase() == 'GET')) - options.url = appendQuery(options.url, options.data), options.data = undefined - } - - $.ajax = function(options){ - var settings = $.extend({}, options || {}), - deferred = $.Deferred && $.Deferred(), - urlAnchor - for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key] - - ajaxStart(settings) - - if (!settings.crossDomain) { - urlAnchor = document.createElement('a') - urlAnchor.href = settings.url - urlAnchor.href = urlAnchor.href - settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host) - } - - if (!settings.url) settings.url = window.location.toString() - serializeData(settings) - - var dataType = settings.dataType, hasPlaceholder = /\?.+=\?/.test(settings.url) - if (hasPlaceholder) dataType = 'jsonp' - - if (settings.cache === false || ( - (!options || options.cache !== true) && - ('script' == dataType || 'jsonp' == dataType) - )) - settings.url = appendQuery(settings.url, '_=' + Date.now()) - - if ('jsonp' == dataType) { - if (!hasPlaceholder) - settings.url = appendQuery(settings.url, - settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?') - return $.ajaxJSONP(settings, deferred) - } - - var mime = settings.accepts[dataType], - headers = { }, - setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] }, - protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol, - xhr = settings.xhr(), - nativeSetHeader = xhr.setRequestHeader, - abortTimeout - - if (deferred) deferred.promise(xhr) - - if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest') - setHeader('Accept', mime || '*/*') - if (mime = settings.mimeType || mime) { - if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0] - xhr.overrideMimeType && xhr.overrideMimeType(mime) - } - if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET')) - setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded') - - if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name]) - xhr.setRequestHeader = setHeader - - xhr.onreadystatechange = function(){ - if (xhr.readyState == 4) { - xhr.onreadystatechange = empty - clearTimeout(abortTimeout) - var result, error = false - if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) { - dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type')) - result = xhr.responseText - - try { - // http://perfectionkills.com/global-eval-what-are-the-options/ - if (dataType == 'script') (1,eval)(result) - else if (dataType == 'xml') result = xhr.responseXML - else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result) - } catch (e) { error = e } - - if (error) ajaxError(error, 'parsererror', xhr, settings, deferred) - else ajaxSuccess(result, xhr, settings, deferred) - } else { - ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred) - } - } - } - - if (ajaxBeforeSend(xhr, settings) === false) { - xhr.abort() - ajaxError(null, 'abort', xhr, settings, deferred) - return xhr - } - - if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name] - - var async = 'async' in settings ? settings.async : true - xhr.open(settings.type, settings.url, async, settings.username, settings.password) - - for (name in headers) nativeSetHeader.apply(xhr, headers[name]) - - if (settings.timeout > 0) abortTimeout = setTimeout(function(){ - xhr.onreadystatechange = empty - xhr.abort() - ajaxError(null, 'timeout', xhr, settings, deferred) - }, settings.timeout) - - // avoid sending empty string (#319) - xhr.send(settings.data ? settings.data : null) - return xhr - } - - // handle optional data/success arguments - function parseArguments(url, data, success, dataType) { - if ($.isFunction(data)) dataType = success, success = data, data = undefined - if (!$.isFunction(success)) dataType = success, success = undefined - return { - url: url - , data: data - , success: success - , dataType: dataType - } - } - - $.get = function(/* url, data, success, dataType */){ - return $.ajax(parseArguments.apply(null, arguments)) - } - - $.post = function(/* url, data, success, dataType */){ - var options = parseArguments.apply(null, arguments) - options.type = 'POST' - return $.ajax(options) - } - - $.getJSON = function(/* url, data, success */){ - var options = parseArguments.apply(null, arguments) - options.dataType = 'json' - return $.ajax(options) - } - - $.fn.load = function(url, data, success){ - if (!this.length) return this - var self = this, parts = url.split(/\s/), selector, - options = parseArguments(url, data, success), - callback = options.success - if (parts.length > 1) options.url = parts[0], selector = parts[1] - options.success = function(response){ - self.html(selector ? - $('
').html(response.replace(rscript, "")).find(selector) - : response) - callback && callback.apply(self, arguments) - } - $.ajax(options) - return this - } - - var escape = encodeURIComponent - - function serialize(params, obj, traditional, scope){ - var type, array = $.isArray(obj), hash = $.isPlainObject(obj) - $.each(obj, function(key, value) { - type = $.type(value) - if (scope) key = traditional ? scope : - scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']' - // handle data in serializeArray() format - if (!scope && array) params.add(value.name, value.value) - // recurse into nested objects - else if (type == "array" || (!traditional && type == "object")) - serialize(params, value, traditional, key) - else params.add(key, value) - }) - } - - $.param = function(obj, traditional){ - var params = [] - params.add = function(key, value) { - if ($.isFunction(value)) value = value() - if (value == null) value = "" - this.push(escape(key) + '=' + escape(value)) - } - serialize(params, obj, traditional) - return params.join('&').replace(/%20/g, '+') - } -})(Zepto) - -;(function($){ - $.fn.serializeArray = function() { - var name, type, result = [], - add = function(value) { - if (value.forEach) return value.forEach(add) - result.push({ name: name, value: value }) - } - if (this[0]) $.each(this[0].elements, function(_, field){ - type = field.type, name = field.name - if (name && field.nodeName.toLowerCase() != 'fieldset' && - !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' && - ((type != 'radio' && type != 'checkbox') || field.checked)) - add($(field).val()) - }) - return result - } - - $.fn.serialize = function(){ - var result = [] - this.serializeArray().forEach(function(elm){ - result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value)) - }) - return result.join('&') - } - - $.fn.submit = function(callback) { - if (0 in arguments) this.bind('submit', callback) - else if (this.length) { - var event = $.Event('submit') - this.eq(0).trigger(event) - if (!event.isDefaultPrevented()) this.get(0).submit() - } - return this - } - -})(Zepto) - -;(function($){ - // __proto__ doesn't exist on IE<11, so redefine - // the Z function to use object extension instead - if (!('__proto__' in {})) { - $.extend($.zepto, { - Z: function(dom, selector){ - dom = dom || [] - $.extend(dom, $.fn) - dom.selector = selector || '' - dom.__Z = true - return dom - }, - // this is a kludge but works - isZ: function(object){ - return $.type(object) === 'array' && '__Z' in object - } - }) - } - - // getComputedStyle shouldn't freak out when called - // without a valid element as argument - try { - getComputedStyle(undefined) - } catch(e) { - var nativeGetComputedStyle = getComputedStyle; - window.getComputedStyle = function(element){ - try { - return nativeGetComputedStyle(element) - } catch(e) { - return null - } - } - } -})(Zepto); - -$(function () { - //init - if(localStorage['auto-homepage'] && localStorage['auto-homepage'] == 'true'){ - $('#auto-open-homepage').attr('checked','checked'); - $('#choose-homepage').show(); - - }else{ - $('#choose-homepage').hide(); - } - - $('.homepage').each(function(){ - var homepage = $(this).val() - if(homepage == localStorage['homepage']){ - $(this).prop('checked',true); - $(this).click(); - }else{ - $(this).prop('checked',false); - } - }) - - var definedHomepage = !!localStorage['homepage']; - console.log(definedHomepage) - - //event - $('#auto-open-homepage').click(function(){ - if($(this).is(':checked')){ - localStorage['auto-homepage'] = 'true'; - $('#choose-homepage').show(); - //没有主页, 默认设置一个,防止用户关闭页面出错 - if(!localStorage['homepage']){ - localStorage['homepage'] = 'chrome://newtab'; - } - }else{ - localStorage['auto-homepage'] = 'false'; - $('#choose-homepage').hide(); - } - }) - - $('.homepage').click(function(){ - localStorage['homepage'] = $(this).val(); - definedHomepage = true; - }) - - window.onbeforeunload = function(){ - if(definedHomepage){ - return null; - }else{ - return "你还没有选择导航网址, 自动打开主页将无法实现" - } - } -}); \ No newline at end of file diff --git a/theme/popup.css b/theme/popup.css deleted file mode 100644 index 91e1a31..0000000 --- a/theme/popup.css +++ /dev/null @@ -1,101 +0,0 @@ -*{ - margin: 0; - padding: 0; - list-style: none; - box-sizing: border-box; -} -a, a:hover, a:focus { - text-decoration: none; - outline: none; -} -body{ - overflow: hidden; - min-width: 200px; - margin: 0; - padding: 0; - border: 0; - font-family: "GothamMedium", Helvetica, Arial, sans-serif,'宋体'; -} -.header{ - background: #ff6c60; - color: #fff; - border-radius: 2px 2px 0 0; - display: none; -} -.header>span{ - background: #e56155; - line-height: normal; - height: 46px; -} -.header .left{ - padding: 16px; - border-radius: 2px 0 0 0; - float: left; -} -.header span i { - font-size: 18px; -} -.header h3 { - display: inline-block; - padding: 16px 13px; - font-size: 20px; - font-weight: 300; - height: 46px; -} -.header .right{ - padding: 9px; - float: right; - border-radius: 0 2px 0 0; - font-size: 15px; -} -.header .right i{ - font-size: 9px; - font-style: normal; -} -.header .weak { - font-style: normal; - font-weight: 100; - font-size: 10px; -} -footer>ul>li { - border-right: 1px solid #E6E7EC; - display: inline-block; - line-height: 30px; - margin: 8px 0 1px; - text-align: center; - width: 32%; -} -footer>ul>li a { - color: #74829c; - font-size: 12px; -} -footer>ul>li a i.fa { - display: block; -} -footer>ul>li:last-child { - border-right: none; -} -.header2{ - display: none; -} -.badge{ - background: #ff6c60; - display: inline-block; - padding: 7px; - font-size: 14px; - font-weight: 400; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 16px; - font-family: 'Open Sans', sans-serif; - margin: 9px 10px 9px 16px; -} -.header2 .tips{ - color: #a94442; - font-size: 14px; - width: 142px; - display: inline-block; -} \ No newline at end of file diff --git a/theme/popup.js b/theme/popup.js deleted file mode 100644 index 240d6e2..0000000 --- a/theme/popup.js +++ /dev/null @@ -1,51 +0,0 @@ -/*var BGPage = chrome.extension.getBackgroundPage(); - -var data = BGPage.popupView - -switch (data.status){ - case 'off': - document.getElementById('offStatus').style.display = 'block'; - document.getElementById("tips").textContent=data.warming; - break; - case 'on': - document.getElementById('onStatus').style.display = 'block'; - document.getElementById("tips").textContent=data.warming; - if(data.speed == -1){ - document.getElementById("speedNum").innerHTML='信号差'; - }else if(data.speed == 0){ - document.getElementById("speedNum").innerHTML='检测中'; - }else{ - document.getElementById("speedNum").innerHTML=data.speed + ' KB/S'; - } - var useTime = Date.now() - data.startTime, - useHour = Math.floor(useTime/3600000), - useMint = Math.floor((useTime-useHour*3600000)/60000); - if(useHour<10) useHour = '0'+useHour; - if(useMint<10) useMint = '0'+useMint; - document.getElementById("useTime").textContent=useHour+':'+useMint; - break; - default : - console.error('这错误不可能'); -}*/ - -var BGPage = chrome.extension.getBackgroundPage(); - -var data = BGPage.popupView; -console.log(data.status); -switch (data.status){ - case 'off': - document.getElementById('offStatus').style.display = 'block'; - document.getElementById("tips").innerHTML=data.warming; - break; - case 'on': - document.getElementById('onStatus').style.display = 'block'; - break; - default : - console.error('这错误不可能'); -} - -document.getElementById('versionNumber').innerText = chrome.runtime.getManifest().version; -document.getElementById('openMainWebsite').innerHTML = data.tips; -document.getElementById('settings').addEventListener('click', function(event){ - chrome.tabs.create({url:'/options.html'}); -}) \ No newline at end of file diff --git a/theme/warming.html b/theme/warming.html deleted file mode 100644 index 0a3fe04..0000000 --- a/theme/warming.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - -激活 - - - -
- -

谷歌访问助手 未激活

-

-

- - -
如果已经设置好,请重启浏览器即可
-
设置了主页还经常弹出该页面,可以在选项中设置自动打开主页
-
- -
-
一键安装,无需其他配置,即可访问谷歌和chrome商店
-
-使用本插件可以免费上 
- google.com 谷歌搜索
- mail.google.com gmail邮箱
- chrome商店访问

使用本扩展需要简单激活:有一定免激活时间,请安装后按说明激活使用。

- 为了防止运营商的网址劫持,本扩展中内置保护模块。

PS:同时建议大家使用www.alidns.com的DNS服务。
-
-
- - -
- - - - - diff --git a/theme/welcome.js b/theme/welcome.js deleted file mode 100644 index 1c31327..0000000 --- a/theme/welcome.js +++ /dev/null @@ -1,5 +0,0 @@ -if(window.navigator.userAgent.match(/(LBBROWSER)/i)){ - document.getElementById("sethomepage").setAttribute("href","http://www.ggfwzs.com/setliebao/"); -}else if(window.navigator.userAgent.match(/(BIDUBrowser)/i)){ - document.getElementById("sethomepage").setAttribute("href","http://www.ggfwzs.com/setbaidu/"); -} \ No newline at end of file diff --git a/warming.html b/warming.html new file mode 100644 index 0000000..56a138e --- /dev/null +++ b/warming.html @@ -0,0 +1,115 @@ + + + + + 谷歌访问助手需要激活 + + + + +
+
+

谷歌访问助手需要激活

+
+
+
+
+
+

谷歌助手是免费的,但是需要你设置首页才能激活,你可以通过下面的方法设置首页

+

手动设置主页

+

修改主页后需要彻底重启浏览器才能生效。(chrome浏览器点击选项-退出关闭浏览器)

+ + 查看设置教程 + +

如果手动设置主页无效或失败, + 可以设置扩展自动打开主页。立即前往选项页面设置。设置完成后需要重启浏览器生效。(chrome浏览器点击选项-退出关闭浏览器)

+
+
+
+ +