diff --git a/.gitignore b/.gitignore deleted file mode 100644 index decda05..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -./dist/ -node_modules -.DS_Store -.idea/ \ No newline at end of file diff --git a/README.md b/README.md index 9c0ff42..59ea82f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ## 字幕组机翻小助手 :fire:(使用谷歌翻译)(请自备翻墙工具) -how the app look like +how the app look like 视频演示(14秒):https://www.bilibili.com/video/av23158962 diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index 39c5464..0000000 --- a/app/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ - -# Build folder and files # -########################## -builds/ - -# Development folders and files # -################################# -dist/ -node_modules/ - -# Log files & folders # -####################### -logs/ -*.log -npm-debug.log* -.npm - -# Windows & Mac file caches # -############################# -.DS_Store -Thumbs.db -ehthumbs.db - -# Windows shortcuts # -##################### -*.lnk \ No newline at end of file diff --git a/app/.yarnrc b/app/.yarnrc deleted file mode 100644 index 125761c..0000000 --- a/app/.yarnrc +++ /dev/null @@ -1,8 +0,0 @@ -registry "https://registry.npm.taobao.org"; - -sass_binary_site "https://npm.taobao.org/mirrors/node-sass/"; -phantomjs_cdnurl "http://cnpmjs.org/downloads"; -electron_mirror "https://npm.taobao.org/mirrors/electron/"; -sqlite3_binary_host_mirror "https://foxgis.oss-cn-shanghai.aliyuncs.com/"; -profiler_binary_host_mirror "https://npm.taobao.org/mirrors/node-inspector/"; -chromedriver_cdnurl "https://cdn.npm.taobao.org/dist/chromedriver"; \ No newline at end of file diff --git a/app/README-version.md b/app/README-version.md deleted file mode 100644 index 54e20d4..0000000 --- a/app/README-version.md +++ /dev/null @@ -1,37 +0,0 @@ -## 版本变化 -此处详细记录了每一个版本的变化 - -## 版本 0.0.3 -状态:尚未开始 -* 增加配置功能 -* 配置功能可填入 Google, Baidu, Sogou 的 API key 和 secret -* 增加检查网络是否通畅功能(能不能用谷歌翻译),以及速度多快 x ms - -## 版本 0.0.2 -状态:制作中 -* 支持批量翻译 -* 支持 vtt 格式 -* 支持2个翻译提供商 (原来只有谷歌1个, 现在加上了百度), 搜狗因为 API KEY 的问题推迟到下一个版本 - -#### 特别感谢 -* [PR: 无需翻墙,支持多文件,支持多种语言切换 - by eyasliu](https://github.com/1c7/Translate-Subtitle-File/pull/5) -* [PR: 提供搜狗API,每句话翻译选项,修复 bug - by SFmonkey](https://github.com/1c7/Translate-Subtitle-File/pull/7) - -#### 其他改进 -* Electron 从 4 升级到 6 -* 对 Electron 的默认菜单进行了简单清理, 删除无用菜单项(macOS 里左上角) - -## 版本 0.0.1 -状态:已发布,发布时间 2018年5月8号 -第一版是最简单的版本,简单到没法再简单了 - -* 只能英文翻译成中文,不能选择源语言和目标语言 -* 只支持一个文件一个文件的翻译 (不支持一次拖入多个文件批量翻译) -* 只有谷歌翻译(无其他翻译提供商) - -#### Bug: -* [连续翻译多个文件时,后面翻译的字幕会叠加前面翻译的字幕](https://github.com/1c7/Translate-Subtitle-File/issues/10) - -#### 用户建议: -* [批量翻译功能](https://github.com/1c7/Translate-Subtitle-File/issues/6) -* [支持 vtt 格式](https://github.com/1c7/Translate-Subtitle-File/issues/11) \ No newline at end of file diff --git a/app/README.md b/app/README.md deleted file mode 100644 index 7c0e179..0000000 --- a/app/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# 开发者必读 -(备注:我知道下面中英文混搭比较奇怪,往读者多多包涵) - -## 贡献代码 -如果改动较小,就几行代码,请随意提 PR。 -如果是大功能,几个或十几个文件,代码几百行,还请先开 issue 讨论这个功能是否必要, -不要静悄悄的自己干活,然后突然提一个很大的 PR,我 merge 也不是,不 merge 也不是,非常为难。 - -## 代码解释 -`app/src/` 目录是核心代码,文件不多,解释如下: - - * `ass.js` 处理 ass 字幕 - * `srt.js` 处理 srt 字幕 - * `config.js` 配置文件 - * `common.js` 常用函数 - * `translate_api.js` 翻译 API - * `index.js` 页面会载入的 js,监听点击事件等 - -## 技术栈 -* Node 12.11.0 -* Electron 6.0.10 -* jQuery 3.4.1 -* Vue 2.6.10 - -## 本地开发 -``` -cd app/ -yarn install -yarn start -``` - -## 打包指南 (How to compile new release) -### macOS -```bash - npm run dist -``` -run this under macOS -output file in `dist/` - -### Windows -```bash - electron-packager . -``` -run this under Windows -because somehow `electron-builder` not working on Windows, so we use `electron-packager` - -Note: in `package.json`, some config are for `electron-builder` - - -## 翻译服务提供商:谷歌 (Translate Service Provider: Google) -Only 3 Translate API: Google/Microsort/Yandex - -## Google doesn't have free quote: -FAQ: https://cloud.google.com/translate/faq?hl=en#pricing -> Is there any free quota? -> No, the Google Cloud Translation API is only available as a paid service. Please see Pricing for more details. - -## 试过 (Tried) -tried `google-translate-api` on Github, it's a node.js module or something, not working. - -## 第三方库 (Third Party Lib) -* eush77/ass-parser https://github.com/eush77/ass-parser -* eush77/ass-stringify https://github.com/eush77/ass-stringify - -### 测试 (Testing) -`test file/` folder have file to test. -because translation is not the same every time, it can only test by hand - -### 做事哲学 -因为这个软件是一个免费小工具,所以一切从简。 -不用什么 Vue 全家桶或者 React+Redux/Angular/Ember 等工具。只有当这个软件进化到需要这些工具的时候才用 -目前仅浅浅的用了 jQuery 和 Vue。 - - - -## 代码里有太多的 type == srt, type == ass,太烦了,看看怎么去掉 -转成一个统一的界面,然后代码只需要管翻译,具体什么类型不用在乎 - - - - - diff --git a/app/app.js b/app/app.js deleted file mode 100644 index f9d388a..0000000 --- a/app/app.js +++ /dev/null @@ -1,168 +0,0 @@ -const { app, BrowserWindow, Menu } = require('electron') -const path = require('path') -const url = require('url') - -const isDev = 'ELECTRON_IS_DEV' in process.env ? parseInt(process.env.ELECTRON_IS_DEV, 10) === 1 : !app.isPackaged - -if (isDev) { - require('electron-reload')(__dirname, { - electron: require('${__dirname}/../../node_modules/electron') - }) -} - -let win - -function createWindow() { - win = new BrowserWindow({ - width: 900, - height: 500, - icon: path.join(__dirname, 'assets/icons/png/64x64.png'), - title: '字幕组机翻小助手', - resizable: true, - kiosk: false, - fullscreen: false, - fullscreenable: true, - webPreferences: { - nodeIntegration: true - } // https://stackoverflow.com/questions/44391448/electron-require-is-not-defined - }) - // https://github.com/electron/electron/blob/master/docs/api/browser-window.md - - // 移除菜单栏 - win.removeMenu() - - win.loadURL(url.format({ - pathname: path.join(__dirname, 'index.html'), - protocol: 'file:', - slashes: true - })) - - // 开发者工具 - win.webContents.openDevTools() - - win.on('closed', () => { - win = null - }) -} - -app.on('ready', createWindow) -app.on('window-all-closed', () => { - // 在 macOS 上,除非用户用 Cmd + Q 确定地退出, - // 否则绝大部分应用及其菜单栏会保持激活。 - if (process.platform !== 'darwin') { - app.quit() - } -}) - -app.on('activate', () => { - // 在macOS上,当单击dock图标并且没有其他窗口打开时, - // 通常在应用程序中重新创建一个窗口。 - if (win === null) { - createWindow() - } -}) - - -function isMac(){ - return process.platform === 'darwin' -} - -const template = [ - // { role: 'appMenu' } - ...(process.platform === 'darwin' ? [{ - label: app.getName(), - submenu: [ - { role: 'about' }, - // { type: 'separator' }, - // { role: 'services' }, - { type: 'separator' }, - { role: 'hide' }, - { role: 'hideothers' }, - { role: 'unhide' }, - { type: 'separator' }, - { role: 'quit' } - ] - }] : []), - // { role: 'fileMenu' } - // { - // label: 'File', - // submenu: [ - // isMac ? { role: 'close' } : { role: 'quit' } - // ] - // }, - // { role: 'editMenu' } - // { - // label: 'Edit', - // submenu: [ - // { role: 'undo' }, - // { role: 'redo' }, - // { type: 'separator' }, - // { role: 'cut' }, - // { role: 'copy' }, - // { role: 'paste' }, - // ...(isMac ? [ - // { role: 'pasteAndMatchStyle' }, - // { role: 'delete' }, - // { role: 'selectAll' }, - // { type: 'separator' }, - // { - // label: 'Speech', - // submenu: [ - // { role: 'startspeaking' }, - // { role: 'stopspeaking' } - // ] - // } - // ] : [ - // { role: 'delete' }, - // { type: 'separator' }, - // { role: 'selectAll' } - // ]) - // ] - // }, - // { role: 'viewMenu' } - // { - // label: 'View', - // submenu: [ - // { role: 'reload' }, - // { role: 'forcereload' }, - // { role: 'toggledevtools' }, - // { type: 'separator' }, - // { role: 'resetzoom' }, - // { role: 'zoomin' }, - // { role: 'zoomout' }, - // { type: 'separator' }, - // { role: 'togglefullscreen' } - // ] - // }, - // { role: 'windowMenu' } - // { - // label: 'Window', - // submenu: [ - // { role: 'minimize' }, - // { role: 'zoom' }, - // ...(isMac ? [ - // { type: 'separator' }, - // { role: 'front' }, - // { type: 'separator' }, - // { role: 'window' } - // ] : [ - // { role: 'close' } - // ]) - // ] - // }, - // { - // role: 'help', - // submenu: [ - // { - // label: 'Learn More', - // click: async () => { - // const { shell } = require('electron') - // await shell.openExternal('https://electronjs.org') - // } - // } - // ] - // } -] - -const menu = Menu.buildFromTemplate(template) -Menu.setApplicationMenu(menu) \ No newline at end of file diff --git a/app/assets/css/index.css b/app/assets/css/index.css deleted file mode 100644 index 8a779b0..0000000 --- a/app/assets/css/index.css +++ /dev/null @@ -1,323 +0,0 @@ -* { - box-sizing: border-box; -} - -body{ - font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; - overflow: hidden; /* 不然打开的窗口会有垂直和水平滚动条 */ -} - -li { - list-style: none; -} - -#button-area{ - width: 100%; - height: 44px; - background-color: #45b795; - display: flex; - justify-content: center; - align-items: center; - color: white; - font-size: 18px; - cursor: pointer; - font-weight: 200; -} -#button-area:hover{ - background-color: #64DFBA; -} -#hint{ - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - z-index: 10000; - - padding: 26px 32px;; - border-radius: 2px; - transition: all 0.3s cubic-bezier(.25,.8,.25,1); - cursor: pointer; -} -#hint:hover{ - background: #E9E9E9; - box-shadow: 0 1px 1px rgba(0,0,0,0.12), 0 1px 1px rgba(0,0,0,0.24); -} -#hint img{ - width: 78px; -} -#text{ - font-size: 14px; - text-align: center; - margin-top: 28px; -} -.main-title{ - font-size: 18px; - color: #373737; - display: flex; - justify-content: center; - align-items: center; -} -.secondary-title{ - font-size: 12px; - color: #676767; - margin-top: 8px; - margin-bottom: 0px; -} -.click-here-to-select-file{ - cursor: pointer; - text-decoration: underline; - margin-left: 10px; -} -#selected-file-area{ - height: 100vh; - padding: 26px 7%; - width: 100%; - margin: 0 auto; - overflow: auto; -} -.file-box{ - min-height: 78px; - width: 100%; - margin-bottom: 20px; - background: red; - border-radius: 2px; - background-color: #efefef; - border: solid 1px #d3d3d3; - display: flex; - align-items: center; - position: relative; -} - -.file-box.waiting { - background-color: #efefef; -} -.file-box.pending { - background-color: #fff4a2; -} -.file-box.success { - background-color: #cfffde; -} -.file-box.error { - background-color: #ffaebd; -} - -.file-action .file-btn{ - /* position: absolute; */ - right: 12px; - padding: 8px; - border-radius: 50%; - display: flex; - background: #e3e3e3; - justify-content: center; - align-items: center; - cursor: pointer; - transition: 0.2s all ease-out; -} -.file-btn:hover{ - background: #ADADAD; -} -.file-btn img{ - height: 14px; -} - -.file-info{ - margin-left: 18px; - display:flex; - min-height:48px; - - width: 90%; -} -.file-name{ - font-size:14px; - word-break: break-all; -} -.file-size{ - font-size:12px; -} -.file-info-right{ - padding-left:12px; - padding-right:12px; - display: flex; - flex-direction: column; - justify-content: space-between; - color: #708a9f; -} - -.dropzone-wrapper { - overflow: hidden; - width: 100%; - position: relative; -} - -#dropzone { - height: 100vh; - width: 100%; - display: flex; - justify-content: center; - align-items: center; - background-color: rgba(0, 0, 0, 0.05); - overflow: hidden; - font-family: Roboto, 'Helvetica Neue', Helvetica, Arial, sans-serif; - text-transform: uppercase; - color: transparent; -} - -.translate-setting { - font-size: 16px; - margin-bottom: 27px; -} -.translate-setting select { - font-size: 14px; - border: 1px solid #b3b3b3; - border-radius: 5px; - height: 30px; - line-height: 30px; - width: 150px; -} - -button { - height: 30px; - background-color: #45b795; - color: white; - font-size: 14px; - cursor: pointer; - font-weight: 200; - border: none; - border-radius: 5px; - padding: 5px 20px; - user-select: none; - outline: none; -} - -/* 编辑页面 */ -.editing-wrap { - padding: 25px; - height: 100vh; - overflow: auto; -} -.editing-wrap .header { - margin-bottom: 25px; -} - -.editing-main .edit-item { - border: 1px solid #eee; - margin-bottom: 15px; -} - -.editing-main .edit-item .top { - font-size: 13px; - height: 25px; - line-height: 25px; - border-bottom: 1px solid #eee; - padding-left: 25px; -} -.compare-item:first-of-type { - border-bottom: 1px solid #eee; -} -.compare-item { - padding: 0 15px; - display: flex; - align-items: center; -} -.compare-item .item-left { - width: 80px; -} - -.editing-main .compare-item .translateSingle { - width: 100px; - height: 30px; - background-color: #45b795; - color: white; - font-size: 14px; - cursor: pointer; - border: none; - border-radius: 5px; - text-align: center; - line-height: 30px; - position: relative; -} - -.translateSingle-index { - display: inline-block; - width: 70px; -} - -.dropdown { - display: inline-flex; - width: 20px; - height: 100%; - align-items: center; - justify-content: center; - border-left: 1px solid hsla(0,0%,100%,.3); - vertical-align: top; -} - -.editing-main .compare-item .translateSingle .dropdown i{ - width: 0; - height: 0; - border: 4px solid #ccc; - border-color: #fff #45b795; - border-width: 4px 4px 0 4px; -} - -.translateSingle-api { - width: 100%; - background-color: #fff; - border: 1px solid #ebebeb; - position: absolute; - padding:0; - margin: 0; - top: 100%; -} - -.translateSingle-api-list { - color: #45b795; -} - -.translateSingle-api-list:hover { - background-color: #45b795; - color: #fff; -} - -.editing-main .edit-item span { - display: inline-block; - width: 30px; - text-align: right; - font-size: 12px; -} -.editing-main .edit-item .item-left-lang { - width: 60px; - background: #0079b8; - color: #fff; - border-radius: 5px; - display: inline-block; - text-align: center; - height: 20px; - line-height: 20px; -} - -.editing-main .compare-item:last-of-type span, .editing-main .compare-item:last-of-type label { - position: relative; - top: -16px; -} -.editing-main .edit-item .text { - display: inline-block; - line-height: 25px; - padding: 10px 0; - flex: 1; - white-space: pre-line; -} -.editing-main .edit-item input, .editing-main .edit-item textarea { - border: 1px solid #bbb; - border-radius: 5px; - padding: 0 5px; - width: 100%; -} -.editing-main .edit-item textarea { - padding-top: 10px; - padding-bottom: 10px; -} - -.network_condition{ - padding: 10px 16px; -} \ No newline at end of file diff --git a/app/assets/css/index.scss b/app/assets/css/index.scss deleted file mode 100644 index e69de29..0000000 diff --git a/app/assets/css/normalize.css b/app/assets/css/normalize.css deleted file mode 100644 index fa4e73d..0000000 --- a/app/assets/css/normalize.css +++ /dev/null @@ -1,447 +0,0 @@ -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in - * IE on Windows Phone and in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -ms-text-size-adjust: 100%; /* 2 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers (opinionated). - */ - -body { - margin: 0; -} - -/** - * Add the correct display in IE 9-. - */ - -article, -aside, -footer, -header, -nav, -section { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - * 1. Add the correct display in IE. - */ - -figcaption, -figure, -main { /* 1 */ - display: block; -} - -/** - * Add the correct margin in IE 8. - */ - -figure { - margin: 1em 40px; -} - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * 1. Remove the gray background on active links in IE 10. - * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. - */ - -a { - background-color: transparent; /* 1 */ - -webkit-text-decoration-skip: objects; /* 2 */ -} - -/** - * 1. Remove the bottom border in Chrome 57- and Firefox 39-. - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Prevent the duplicate application of `bolder` by the next rule in Safari 6. - */ - -b, -strong { - font-weight: inherit; -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font style in Android 4.3-. - */ - -dfn { - font-style: italic; -} - -/** - * Add the correct background and color in IE 9-. - */ - -mark { - background-color: #ff0; - color: #000; -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - */ - -audio, -video { - display: inline-block; -} - -/** - * Add the correct display in iOS 4-7. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Remove the border on images inside links in IE 10-. - */ - -img { - border-style: none; -} - -/** - * Hide the overflow in IE. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers (opinionated). - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: sans-serif; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` - * controls in Android 4. - * 2. Correct the inability to style clickable types in iOS and Safari. - */ - -button, -html [type="button"], /* 1 */ -[type="reset"], -[type="submit"] { - -webkit-appearance: button; /* 2 */ -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * 1. Add the correct display in IE 9-. - * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - display: inline-block; /* 1 */ - vertical-align: baseline; /* 2 */ -} - -/** - * Remove the default vertical scrollbar in IE. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10-. - * 2. Remove the padding in IE 10-. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-cancel-button, -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in IE 9-. - * 1. Add the correct display in Edge, IE, and Firefox. - */ - -details, /* 1 */ -menu { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Scripting - ========================================================================== */ - -/** - * Add the correct display in IE 9-. - */ - -canvas { - display: inline-block; -} - -/** - * Add the correct display in IE. - */ - -template { - display: none; -} - -/* Hidden - ========================================================================== */ - -/** - * Add the correct display in IE 10-. - */ - -[hidden] { - display: none; -} diff --git a/app/assets/css/normalize.min.css b/app/assets/css/normalize.min.css deleted file mode 100644 index 31a4a66..0000000 --- a/app/assets/css/normalize.min.css +++ /dev/null @@ -1 +0,0 @@ -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}/*# sourceMappingURL=normalize.min.css.map */ \ No newline at end of file diff --git a/app/assets/css/normalize.min.css.map b/app/assets/css/normalize.min.css.map deleted file mode 100644 index 74f5d1f..0000000 --- a/app/assets/css/normalize.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["normalize.css"],"names":[],"mappings":"AAAA,4EAWA,KACE,YAAa,KACb,qBAAsB,KACtB,yBAA0B,KAU5B,KACE,OAAQ,EAOV,QACA,MACA,OACA,OACA,IACA,QACE,QAAS,MAQX,GACE,UAAW,IACX,OAAQ,MAAO,EAWjB,WACA,OACA,KACE,QAAS,MAOX,OACE,OAAQ,IAAI,KAQd,GACE,WAAY,YACZ,OAAQ,EACR,SAAU,QAQZ,IACE,YAAa,SAAS,CAAE,UACxB,UAAW,IAWb,EACE,iBAAkB,YAClB,6BAA8B,QAQhC,YACE,cAAe,KACf,gBAAiB,UACjB,gBAAiB,UAAU,OAO7B,EACA,OACE,YAAa,QAOf,EACA,OACE,YAAa,OAQf,KACA,IACA,KACE,YAAa,SAAS,CAAE,UACxB,UAAW,IAOb,IACE,WAAY,OAOd,KACE,iBAAkB,KAClB,MAAO,KAOT,MACE,UAAW,IAQb,IACA,IACE,UAAW,IACX,YAAa,EACb,SAAU,SACV,eAAgB,SAGlB,IACE,OAAQ,OAGV,IACE,IAAK,MAUP,MACA,MACE,QAAS,aAOX,sBACE,QAAS,KACT,OAAQ,EAOV,IACE,aAAc,KAOhB,eACE,SAAU,OAWZ,OACA,MACA,SACA,OACA,SACE,YAAa,WACb,UAAW,KACX,YAAa,KACb,OAAQ,EAQV,OACA,MACE,SAAU,QAQZ,OACA,OACE,eAAgB,KAWlB,aACA,cAHA,OACA,mBAGE,mBAAoB,OAQtB,gCACA,+BACA,gCAHA,yBAIE,aAAc,KACd,QAAS,EAQX,6BACA,4BACA,6BAHA,sBAIE,QAAS,IAAI,OAAO,WAOtB,SACE,QAAS,MAAO,MAAO,OAUzB,OACE,WAAY,WACZ,MAAO,QACP,QAAS,MACT,UAAW,KACX,QAAS,EACT,YAAa,OAQf,SACE,QAAS,aACT,eAAgB,SAOlB,SACE,SAAU,KAQZ,gBACA,aACE,WAAY,WACZ,QAAS,EAOX,yCACA,yCACE,OAAQ,KAQV,cACE,mBAAoB,UACpB,eAAgB,KAOlB,4CACA,yCACE,mBAAoB,KAQtB,6BACE,mBAAoB,OACpB,KAAM,QAWR,QACA,KACE,QAAS,MAOX,QACE,QAAS,UAUX,OACE,QAAS,aAOX,SACE,QAAS,KAUX,SACE,QAAS"} \ No newline at end of file diff --git a/app/assets/css/vue2-autocomplete.css b/app/assets/css/vue2-autocomplete.css deleted file mode 100644 index 601752f..0000000 --- a/app/assets/css/vue2-autocomplete.css +++ /dev/null @@ -1,75 +0,0 @@ - -.transition, .autocomplete, .showAll-transition, .autocomplete ul, .autocomplete ul li a{ - transition:all 0.3s ease-out; - -moz-transition:all 0.3s ease-out; - -webkit-transition:all 0.3s ease-out; - -o-transition:all 0.3s ease-out; -} - -.autocomplete ul{ - font-family: sans-serif; - position: absolute; - list-style: none; - background: #f8f8f8; - padding: 10px 0; - margin: 0; - display: inline-block; - min-width: 15%; - margin-top: 10px; -} - -.autocomplete ul:before{ - content: ""; - display: block; - position: absolute; - height: 0; - width: 0; - border: 10px solid transparent; - border-bottom: 10px solid #f8f8f8; - left: 46%; - top: -20px -} - -.autocomplete ul li a{ - text-decoration: none; - display: block; - background: #f8f8f8; - color: #2b2b2b; - padding: 5px; - padding-left: 10px; -} - -.autocomplete ul li a:hover, .autocomplete ul li.focus-list a{ - color: white; - background: #2F9AF7; -} - -.autocomplete ul li a span, /*backwards compat*/ -.autocomplete ul li a .autocomplete-anchor-label{ - display: block; - margin-top: 3px; - color: grey; - font-size: 13px; -} - -.autocomplete ul li a:hover .autocomplete-anchor-label, -.autocomplete ul li.focus-list a span, /*backwards compat*/ -.autocomplete ul li a:hover .autocomplete-anchor-label, -.autocomplete ul li.focus-list a span{ /*backwards compat*/ - color: white; -} - -/*.showAll-transition{ - opacity: 1; - height: 50px; - overflow: hidden; -} - -.showAll-enter{ - opacity: 0.3; - height: 0; -} - -.showAll-leave{ - display: none; -}*/ diff --git a/app/assets/icons/png/1024x1024.png b/app/assets/icons/png/1024x1024.png deleted file mode 100644 index e137443..0000000 Binary files a/app/assets/icons/png/1024x1024.png and /dev/null differ diff --git a/app/assets/icons/png/64x64.png b/app/assets/icons/png/64x64.png deleted file mode 100644 index e137443..0000000 Binary files a/app/assets/icons/png/64x64.png and /dev/null differ diff --git a/app/assets/img/ass logo.png b/app/assets/img/ass logo.png deleted file mode 100644 index f7194ee..0000000 Binary files a/app/assets/img/ass logo.png and /dev/null differ diff --git a/app/assets/img/ass.svg b/app/assets/img/ass.svg deleted file mode 100644 index 430ef01..0000000 --- a/app/assets/img/ass.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - ass - - - diff --git a/app/assets/img/close.svg b/app/assets/img/close.svg deleted file mode 100644 index 2b1132b..0000000 --- a/app/assets/img/close.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/app/assets/img/download.svg b/app/assets/img/download.svg deleted file mode 100644 index a418656..0000000 --- a/app/assets/img/download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/img/edit.svg b/app/assets/img/edit.svg deleted file mode 100644 index af202bb..0000000 --- a/app/assets/img/edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/img/srt logo.png b/app/assets/img/srt logo.png deleted file mode 100644 index 69adc93..0000000 Binary files a/app/assets/img/srt logo.png and /dev/null differ diff --git a/app/assets/img/srt.svg b/app/assets/img/srt.svg deleted file mode 100644 index 965402d..0000000 --- a/app/assets/img/srt.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - srt - - - diff --git a/app/assets/js/autocomplate.js b/app/assets/js/autocomplate.js deleted file mode 100644 index 3d4b3c6..0000000 --- a/app/assets/js/autocomplate.js +++ /dev/null @@ -1,427 +0,0 @@ -window.VueAutoComplete = ({ - props: { - id: String, - name: String, - className: String, - classes: { - type: Object, - default: function _default() { - return { - wrapper: false, - input: false, - list: false, - item: false - }; - } - }, - placeholder: String, - required: Boolean, - - // Intial Value - initValue: { - type: String, - default: "" - }, - - // Manual List - options: Array, - - // Filter After Get the data - filterByAnchor: { - type: Boolean, - default: true - }, - - // Anchor of list - anchor: { - type: String, - required: true - }, - - // Label of list - label: String, - - // Debounce time - debounce: Number, - - // ajax URL will be fetched - url: { - type: String, - required: true - }, - - // query param - param: { - type: String, - default: 'q' - }, - - encodeParams: { - type: Boolean, - default: true - }, - - // Custom Params - customParams: Object, - - // Custom Headers - customHeaders: Object, - - // minimum length - min: { - type: Number, - default: 0 - }, - - // Create a custom template from data. - onShouldRenderChild: Function, - - // Process the result before retrieveng the result array. - process: Function, - - // Callback - onInput: Function, - onShow: Function, - onBlur: Function, - onHide: Function, - onFocus: Function, - onSelect: Function, - onBeforeAjax: Function, - onAjaxProgress: Function, - onAjaxLoaded: Function, - onShouldGetData: Function - }, - - data: function data() { - return { - showList: false, - type: "", - json: [], - focusList: "", - debounceTask: undefined - }; - }, - - - watch: { - options: function options(newVal, oldVal) { - if (this.filterByAnchor) { - var type = this.type, - anchor = this.anchor; - - var regex = new RegExp("" + type, 'i'); - var filtered = newVal.filter(function (item) { - var found = item[anchor].search(regex) !== -1; - return found; - }); - this.json = filtered; - } else { - this.json = newVal; - } - } - }, - - methods: { - getClassName: function getClassName(part) { - var classes = this.classes, - className = this.className; - - if (classes[part]) return "" + classes[part]; - return className ? className + "-" + part : ''; - }, - - - // Netralize Autocomplete - clearInput: function clearInput() { - this.showList = false; - this.type = ""; - this.json = []; - this.focusList = ""; - }, - - - // Get the original data - cleanUp: function cleanUp(data) { - return JSON.parse(JSON.stringify(data)); - }, - - - /*============================== - INPUT EVENTS - =============================*/ - handleInput: function handleInput(e) { - var _this = this; - - var value = e.target.value; - - this.showList = true; - // Callback Event - this.$emit('input', value) - if (this.onInput) this.onInput(value); - // If Debounce - if (this.debounce) { - if (this.debounceTask !== undefined) clearTimeout(this.debounceTask); - this.debounceTask = setTimeout(function () { - return _this.getData(value); - }, this.debounce); - } else { - return this.getData(value); - } - }, - handleKeyDown: function handleKeyDown(e) { - var key = e.keyCode; - - // Disable when list isn't showing up - if (!this.showList) return; - - // Key List - var DOWN = 40; - var UP = 38; - var ENTER = 13; - var ESC = 27; - - // Prevent Default for Prevent Cursor Move & Form Submit - switch (key) { - case DOWN: - e.preventDefault(); - this.focusList++; - break; - case UP: - e.preventDefault(); - this.focusList--; - break; - case ENTER: - e.preventDefault(); - this.selectList(this.json[this.focusList]); - this.showList = false; - break; - case ESC: - this.showList = false; - break; - } - - var listLength = this.json.length - 1; - var outOfRangeBottom = this.focusList > listLength; - var outOfRangeTop = this.focusList < 0; - var topItemIndex = 0; - var bottomItemIndex = listLength; - - var nextFocusList = this.focusList; - if (outOfRangeBottom) nextFocusList = topItemIndex; - if (outOfRangeTop) nextFocusList = bottomItemIndex; - this.focusList = nextFocusList; - }, - setValue: function setValue(val) { - this.type = val; - }, - - - /*============================== - LIST EVENTS - =============================*/ - - handleDoubleClick: function handleDoubleClick() { - this.json = []; - this.getData(""); - // Callback Event - this.$emit('show') - this.onShow ? this.onShow() : null; - this.showList = true; - }, - handleBlur: function handleBlur(e) { - var _this2 = this; - - // Callback Event - this.onBlur ? this.onBlur(e) : null; - this.$emit('blur', e) - setTimeout(function () { - // Callback Event - _this2.$emit('hide') - _this2.onHide ? _this2.onHide() : null; - _this2.showList = false; - }, 250); - }, - handleFocus: function handleFocus(e) { - this.focusList = 0; - this.$emit('focus', e) - // Callback Event - this.onFocus ? this.onFocus(e) : null; - }, - mousemove: function mousemove(i) { - this.focusList = i; - }, - activeClass: function activeClass(i) { - var focusClass = i === this.focusList ? 'focus-list' : ''; - return "" + focusClass; - }, - selectList: function selectList(data) { - // Deep clone of the original object - var clean = this.cleanUp(data); - // Put the selected data to type (model) - this.type = clean[this.anchor]; - // Hide List - this.showList = false; - // Callback Event - this.$emit('select', clean) - this.onSelect ? this.onSelect(clean) : null; - }, - deepValue: function deepValue(obj, path) { - var arrayPath = path.split('.'); - for (var i = 0; i < arrayPath.length; i++) { - obj = obj[arrayPath[i]]; - } - return obj; - }, - - - /*============================== - AJAX EVENTS - =============================*/ - - composeParams: function composeParams(val) { - var _this3 = this; - - var encode = function encode(val) { - return _this3.encodeParams ? encodeURIComponent(val) : val; - }; - var params = this.param + "=" + encode(val); - if (this.customParams) { - Object.keys(this.customParams).forEach(function (key) { - params += "&" + key + "=" + encode(_this3.customParams[key]); - }); - } - return params; - }, - composeHeader: function composeHeader(ajax) { - var _this4 = this; - - if (this.customHeaders) { - Object.keys(this.customHeaders).forEach(function (key) { - ajax.setRequestHeader(key, _this4.customHeaders[key]); - }); - } - }, - doAjax: function doAjax(val) { - var _this5 = this; - - // Callback Event - this.$emit('beforeAjax', val) - this.onBeforeAjax ? this.onBeforeAjax(val) : null; - // Compose Params - var params = this.composeParams(val); - // Init Ajax - var ajax = new XMLHttpRequest(); - ajax.open('GET', this.url + "?" + params, true); - this.composeHeader(ajax); - // Callback Event - ajax.addEventListener('progress', function (data) { - this.$emit('ajaxProgress', data) - if (data.lengthComputable && _this5.onAjaxProgress) _this5.onAjaxProgress(data); - }); - // On Done - ajax.addEventListener('loadend', function (e) { - var responseText = e.target.responseText; - - var json = JSON.parse(responseText); - // Callback Event - this.$emit('ajaxLoaded', json) - _this5.onAjaxLoaded ? _this5.onAjaxLoaded(json) : null; - _this5.json = _this5.process ? _this5.process(json) : json; - }); - // Send Ajax - ajax.send(); - }, - getData: function getData(value) { - if (value.length < this.min || !this.url) return; - if (this.onShouldGetData) this.manualGetData(value);else this.doAjax(value); - }, - - - // Do Ajax Manually, so user can do whatever he want - manualGetData: function manualGetData(val) { - var _this6 = this; - - var task = this.onShouldGetData(val); - if (task && task.then) { - return task.then(function (options) { - _this6.json = options; - }); - } - } - }, - - created: function created() { - // Sync parent model with initValue Props - this.type = this.initValue ? this.initValue : null; - }, - mounted: function mounted() { - if (this.required) this.$refs.input.setAttribute("required", this.required); - }, - render:function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _c('div', { - class: ((_vm.getClassName('wrapper')) + " autocomplete-wrapper") - }, [_c('input', { - directives: [{ - name: "model", - rawName: "v-model", - value: (_vm.type), - expression: "type" - }], - ref: "input", - class: ((_vm.getClassName('input')) + " autocomplete-input"), - attrs: { - "type": "text", - "id": _vm.id, - "placeholder": _vm.placeholder, - "name": _vm.name, - "autocomplete": "off" - }, - domProps: { - "value": (_vm.type) - }, - on: { - "input": [function($event) { - if ($event.target.composing) { return; } - _vm.type = $event.target.value - }, _vm.handleInput], - "dblclick": _vm.handleDoubleClick, - "blur": _vm.handleBlur, - "keydown": _vm.handleKeyDown, - "focus": _vm.handleFocus - } - }), _vm._v(" "), _c('div', { - directives: [{ - name: "show", - rawName: "v-show", - value: (_vm.showList && _vm.json.length), - expression: "showList && json.length" - }], - class: ((_vm.getClassName('list')) + " autocomplete autocomplete-list") - }, [_c('ul', _vm._l((_vm.json), function(data, i) { - return _c('li', { - class: _vm.activeClass(i) - }, [_c('a', { - attrs: { - "href": "#" - }, - on: { - "click": function($event) { - $event.preventDefault(); - _vm.selectList(data) - }, - "mousemove": function($event) { - _vm.mousemove(i) - } - } - }, [(_vm.onShouldRenderChild) ? _c('div', { - domProps: { - "innerHTML": _vm._s(_vm.onShouldRenderChild(data)) - } - }) : _vm._e(), _vm._v(" "), (!_vm.onShouldRenderChild) ? _c('div', [_c('b', { - staticClass: "autocomplete-anchor-text" - }, [_vm._v(_vm._s(_vm.deepValue(data, _vm.anchor)))]), _vm._v(" "), _c('span', { - staticClass: "autocomplete-anchor-label" - }, [_vm._v(_vm._s(_vm.deepValue(data, _vm.label)))])]) : _vm._e()])]) - }))])]) -} -}) \ No newline at end of file diff --git a/app/assets/js/jquery-3.2.1.min.js b/app/assets/js/jquery-3.2.1.min.js deleted file mode 100644 index 644d35e..0000000 --- a/app/assets/js/jquery-3.2.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), -a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), -null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - - - \ No newline at end of file diff --git a/app/package.json b/app/package.json deleted file mode 100644 index dd77d73..0000000 --- a/app/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "name": "Translation-Helper", - "productName": "字幕组机翻小助手", - "version": "0.0.2", - "license": "MIT", - "description": "减少字幕翻译打中文的疲劳", - "author": "糖醋陈皮 ", - "main": "app.js", - "scripts": { - "webpack": "webpack-dev-server --hot --host 0.0.0.0 --config=./webpack.config.js --mode development", - "start": "electron .", - "pack": "build --dir", - "dist": "build", - "build": "webpack" - }, - "build": { - "appId": "translation-helper", - "mac": { - "icon": "build/icon.icns", - "category": "public.app-category.utilities" - }, - "dmg": { - "window": { - "x": 240, - "y": 150 - }, - "contents": [ - { - "x": 110, - "y": 150 - } - ] - }, - "linux": { - "target": [ - "AppImage", - "deb" - ] - }, - "win": { - "target": [ - { - "target": "portable", - "arch": [ - "x64", - "ia32" - ] - } - ] - } - }, - "dependencies": { - "@babel/cli": "^7.7.4", - "@babel/preset-env": "^7.7.4", - "ass-parser": "^0.2.0", - "ass-stringify": "^0.1.3", - "babel-plugin-transform-object-rest-spread": "^6.26.0", - "electron-reload": "^1.5.0", - "google-baidu-translate-api": "^1.0.3", - "jquery": "^3.4.1", - "normalize.css": "^8.0.1", - "sogou-translate": "^0.0.1", - "subtitle": "^2.0.3", - "subtitles-parser": "0.0.2", - "update-electron-app": "^1.5.0" - }, - "devDependencies": { - "bable-loader": "^0.0.1-security", - "css-loader": "^3.2.0", - "electron": "^7.1.2", - "electron-builder": "^21.2.0", - "node-sass": "^4.13.0", - "sass-loader": "^8.0.0", - "style-loader": "^1.0.1", - "webpack": "^4.41.2", - "webpack-cli": "^3.3.10", - "webpack-dev-server": "^3.9.0" - } -} diff --git a/app/src/about.html b/app/src/about.html deleted file mode 100644 index aec24bd..0000000 --- a/app/src/about.html +++ /dev/null @@ -1,2 +0,0 @@ -关于页面(左上角选择"关于"菜单项后显示) -TODO: HTML 待写 \ No newline at end of file diff --git a/app/src/ass.js b/app/src/ass.js deleted file mode 100644 index 2abe127..0000000 --- a/app/src/ass.js +++ /dev/null @@ -1,78 +0,0 @@ -// -const assParser = require('ass-parser'); // for ASS -const assStringify = require('ass-stringify'); // for ASS -const common = require('./common.js'); -const config = require('./config.js'); - -exports.translate = function (raw_content, to, from, selApi) { - const parse = assParser(raw_content); - const data = parse[3]['body']; - - // 翻译分组批量翻译,快凑齐了 config.LENGTH_LIMIT_PER_REQUEST: 5000 字符数时一起翻译 - const batchs = data.reduce((batch, block, idx) => { - if (block.key !== 'Dialogue') { - return batch - } - let bat - if (batch.length) { - bat = batch.pop() - } else { - bat = { - content: '', - includes: [] - } - } - const text = common.remove_tag_keep_text(block.value.Text) - const nextContent = bat.content + text + config.LINE_BREAK - const nextLength = encodeURIComponent(nextContent).length - if (nextLength < config.LENGTH_LIMIT_PER_REQUEST && bat.includes.length < 100) { - bat.content = nextContent - bat.includes.push(block) - } else { - batch.push(bat) - bat = { - content: text + config.LINE_BREAK, - includes: [block] - } - } - batch.push(bat) - return batch - }, []) - - const translateProcess = batchs.map(bat => { - return common.translateApi(selApi, bat, to, from); - }) - - return Promise.all(translateProcess).then(bats => { - const res = bats.reduce((list, bat) => { - let strs; - if (selApi === 'google' || selApi === 'baidu') { - strs = bat.result.split(/[%|\%]?0A/) - } else { - strs = bat.result.replace(/%0A|%\s0A/g, '').split(/\n/) - } - - const items = bat.includes.map((block, index) => { - const item = { - key: block.key, - value: JSON.parse(JSON.stringify(block.value)), - } - item.value.Text = (strs[index] || block.value.Text).trim() - return item - }) - return list.concat(items) - }, []) - return { - parse: parse, - translate: res - } - }) -} -// 导出翻译结果 -exports.exportContent = function(data) { - const origin = common.deepClone(data.parse) - origin[3].body = origin[3].body.concat(data.translateData) - const content = assStringify(origin) - - return content -} diff --git a/app/src/common.js b/app/src/common.js deleted file mode 100644 index d3aebc6..0000000 --- a/app/src/common.js +++ /dev/null @@ -1,81 +0,0 @@ -const fs = require('fs') -const { promisify } = require('util') -const { google, baidu, sogou } = require('./translate_api.js'); -// 公用函数,如清理换行,返回文件后缀等 - -// 删除 tag, 保留内容 -// Remove all tag, but keep text inside tag. -// Code from: https://stackoverflow.com/questions/5002111/javascript-how-to-strip-html-tags-from-string -// Input: Subtitles by MemoryOnSmells -// Output: Subtitles by MemoryOnSmells -function remove_tag_keep_text(str) { - var div = document.createElement("div"); - div.innerHTML = str; - var text = div.textContent || div.innerText || ""; - return text; -} - -// 获得文件名后缀 -function get_suffix(filename) { - return filename.split('.').pop() -} - -// 给人类看的文件名大小 -function properFileSize(fileSizeInBytes) { - var i = -1; - var byteUnits = [' kB', ' MB', ' GB', ' TB', 'PB', 'EB', 'ZB', 'YB']; - do { - fileSizeInBytes = fileSizeInBytes / 1024; - i++; - } while (fileSizeInBytes > 1024); - return Math.max(fileSizeInBytes, 0.1).toFixed(1) + byteUnits[i]; -} - -// 下载文件 -function downloadFile(content, filePath) { - return promisify(fs.writeFile)(filePath, content) -} - -function deepClone(obj) { - return JSON.parse(JSON.stringify(obj)) -} - -function translateApi (selectedAPI, bat, to, from) { - if (selectedAPI === 'google') { - return google(bat.content, to, from).then(res => { - bat.result = res.dist - return bat - }).catch(err => { - console.log('有一批翻译失败', err, bat.content) - bat.result = '' - return bat - }) - } else if (selectedAPI === 'baidu'){ - return baidu(bat.content, to, from).then(res => { - console.log(res); - bat.result = res.dist - return bat - }).catch(err => { - console.log('有一批翻译失败', err, bat.content) - bat.result = '' - return bat - }) - } else { - bat.content = bat.content.trim(); - return sogou.translate(bat.content, from, to).then(res => { - bat.result = res - return bat - }).catch(err => { - console.log('有一批翻译失败', err, bat.content) - bat.result = '' - return bat - }) - } -} - -exports.remove_tag_keep_text = remove_tag_keep_text -exports.get_suffix = get_suffix -exports.properFileSize = properFileSize -exports.downloadFile = downloadFile -exports.deepClone = deepClone -exports.translateApi = translateApi \ No newline at end of file diff --git a/app/src/config.js b/app/src/config.js deleted file mode 100644 index 9bf117b..0000000 --- a/app/src/config.js +++ /dev/null @@ -1,7 +0,0 @@ -// 配置 - -exports.LENGTH_LIMIT_PER_REQUEST = 5000; -// 5000 来自 https://translate.google.com/ 右下角的限制 - -exports.LINE_BREAK = '%0A \n'; -// When input multiple line into Google Translator(https://translate.google.com/), they use %0A to seperate each line. \ No newline at end of file diff --git a/app/src/index.js b/app/src/index.js deleted file mode 100644 index 3240579..0000000 --- a/app/src/index.js +++ /dev/null @@ -1,455 +0,0 @@ -const { translate, download } = require('./src/translate'); -const common = require('./src/common') -const {google, baidu, sogou} = require('./src/translate_api.js'); - -// 文件状态 -var FILE_STATE = { - waiting: 0, // 等待翻译 - pending: 1, // 正在翻译 - success: 2, // 翻译完成 - error: 3, // 翻译失败 -} - -new Vue({ - el: '#vue-app', - data: { - editing: '', // 要么为空 "",要么是正在编辑的文件 id - // 支持什么语言 - supportLang: { - // 谷歌 - google: { - 'auto': '自动识别', - 'zh-cn': '简体中文', - 'zh-tw': '繁体中文', - 'en': '英语', - 'af': 'Afrikaans', - 'sq': 'Albanian', - 'am': 'Amharic', - 'ar': 'Arabic', - 'hy': 'Armenian', - 'az': 'Azerbaijani', - 'eu': 'Basque', - 'be': 'Belarusian', - 'bn': 'Bengali', - 'bs': 'Bosnian', - 'bg': 'Bulgarian', - 'ca': 'Catalan', - 'ceb': 'Cebuano', - 'ny': 'Chichewa', - 'co': 'Corsican', - 'hr': 'Croatian', - 'cs': 'Czech', - 'da': 'Danish', - 'nl': 'Dutch', - 'eo': 'Esperanto', - 'et': 'Estonian', - 'tl': 'Filipino', - 'fi': 'Finnish', - 'fr': 'French', - 'fy': 'Frisian', - 'gl': 'Galician', - 'ka': 'Georgian', - 'de': 'German', - 'el': 'Greek', - 'gu': 'Gujarati', - 'ht': 'Haitian Creole', - 'ha': 'Hausa', - 'haw': 'Hawaiian', - 'iw': 'Hebrew', - 'hi': 'Hindi', - 'hmn': 'Hmong', - 'hu': 'Hungarian', - 'is': 'Icelandic', - 'ig': 'Igbo', - 'id': 'Indonesian', - 'ga': 'Irish', - 'it': 'Italian', - 'ja': 'Japanese', - 'jw': 'Javanese', - 'kn': 'Kannada', - 'kk': 'Kazakh', - 'km': 'Khmer', - 'ko': 'Korean', - 'ku': 'Kurdish (Kurmanji)', - 'ky': 'Kyrgyz', - 'lo': 'Lao', - 'la': 'Latin', - 'lv': 'Latvian', - 'lt': 'Lithuanian', - 'lb': 'Luxembourgish', - 'mk': 'Macedonian', - 'mg': 'Malagasy', - 'ms': 'Malay', - 'ml': 'Malayalam', - 'mt': 'Maltese', - 'mi': 'Maori', - 'mr': 'Marathi', - 'mn': 'Mongolian', - 'my': 'Myanmar (Burmese)', - 'ne': 'Nepali', - 'no': 'Norwegian', - 'ps': 'Pashto', - 'fa': 'Persian', - 'pl': 'Polish', - 'pt': 'Portuguese', - 'ma': 'Punjabi', - 'ro': 'Romanian', - 'ru': 'Russian', - 'sm': 'Samoan', - 'gd': 'Scots Gaelic', - 'sr': 'Serbian', - 'st': 'Sesotho', - 'sn': 'Shona', - 'sd': 'Sindhi', - 'si': 'Sinhala', - 'sk': 'Slovak', - 'sl': 'Slovenian', - 'so': 'Somali', - 'es': 'Spanish', - 'su': 'Sundanese', - 'sw': 'Swahili', - 'sv': 'Swedish', - 'tg': 'Tajik', - 'ta': 'Tamil', - 'te': 'Telugu', - 'th': 'Thai', - 'tr': 'Turkish', - 'uk': 'Ukrainian', - 'ur': 'Urdu', - 'uz': 'Uzbek', - 'vi': 'Vietnamese', - 'cy': 'Welsh', - 'xh': 'Xhosa', - 'yi': 'Yiddish', - 'yo': 'Yoruba', - 'zu': 'Zulu' - }, - // 百度 - baidu: { - zh: '中文', - en: '英语', - yue: '粤语', - wyw: '文言文', - jp: '日语', - kor: '韩语', - fra: '法语', - spa: '西班牙语', - th: '泰语', - ara: '阿拉伯语', - ru: '俄语', - pt: '葡萄牙语', - de: '德语', - it: '意大利语', - el: '希腊语', - nl: '荷兰语', - pl: '波兰语', - bul:'保加利亚语', - est:'爱沙尼亚语', - dan:'丹麦语', - fin:'芬兰语', - cs: '捷克语', - rom: '罗马尼亚语', - slo: '斯洛文尼亚语', - swe: '瑞典语', - hu: '匈牙利语', - cht: '繁体中文', - vie: '越南语', - }, - // 搜狗 - sogou: { - 'auto': '自动识别', - 'ar':'阿拉伯语', - 'et': '爱沙尼亚语', - 'bg': '保加利亚语', - 'pl': '波兰语', - 'ko': '韩语', - 'bs-Latn': '波斯尼亚语', - 'fa': '波斯语', - 'mww': '白苗文', - 'da': '丹麦语', - 'de': '德语', - 'ru': '俄语', - 'fr': '法语', - 'fi': '芬兰语', - 'tlh-Qaak': '克林贡语(piqaD)', - 'tlh': '克林贡语', - 'hr': '克罗地亚语', - 'otq': '克雷塔罗奥托米语', - 'ca': '加泰隆语', - 'cs': '捷克语', - 'ro': '罗马尼亚语', - 'lv': '拉脱维亚语', - 'ht': '海地克里奥尔语', - 'lt': '立陶宛语', - 'nl': '荷兰语', - 'ms': '马来语', - 'mt': '马耳他语', - 'pt': '葡萄牙语', - 'ja': '日语', - 'sl': '斯洛文尼亚语', - 'th': '泰语', - 'tr': '土耳其语', - 'sr-Latn': '塞尔维亚语(拉丁文)', - 'sr-Cyrl': '塞尔维亚语(西里尔文)', - 'sk': '斯洛伐克语', - 'sw': '斯瓦希里语', - 'af': '南非荷兰语', - 'no': '挪威语', - 'en': '英语', - 'es': '西班牙语', - 'uk': '乌克兰语', - 'ur': '乌尔都语', - 'el': '希腊语', - 'hu': '匈牙利语', - 'cy': '威尔士语', - 'yua': '尤卡坦玛雅语', - 'he': '希伯来语', - 'zh-CHS': '中文', - 'it': '意大利语', - 'hi': '印地语', - 'id': '印度尼西亚语', - 'zh-CHT': '中文繁体', - 'vi': '越南语', - 'sv': '瑞典语', - 'yue': '粤语(繁体)', - 'fj': '斐济', - 'fil': '菲律宾语', - 'sm': '萨摩亚语', - 'to': '汤加语', - 'ty': '塔希提语', - 'mg': '马尔加什语', - 'bn': '孟加拉语' - } - }, - // 支持哪些翻译 API - supportApi: { - google: '谷歌', - baidu: '百度', - // sogou: '搜狗', // 临时去掉搜狗,等下一版可以设置 API Key 和 Secret 了再开启(让用户用自己的 API key 和 Secret) - }, - // 状态 - statusText: { - 0: ['waiting', '等待翻译'], - 1: ['pending', '正在翻译'], - 2: ['success', '翻译完成'], - 3: ['error', '翻译失败'] - }, - // 用户拖入或选择的字幕文件 - files: [], - // 源语言 - srcLang: { - google: 'en', - baidu: 'en', - sogou: 'auto', - }, - // 目标语言 - distLang: { - google: 'zh-cn', - baidu: 'zh', - sogou: 'zh-CHS', - }, - // 选中的是哪家 API, selectedAPI - selApi: 'google', - editDataRes: '' - }, - computed: { - // 是否有文件 - hasFile() { - return !!this.files.length - }, - // 正在编辑的文件 - editingFile() { - if (!this.editing) { - return null - } - const file = this.files.find(f => f.id == this.editing) - if (!file) { - return null - } - return file - }, - // TODO: 这是在干嘛? - editData() { - if (!this.editing) { - return null - } - const file = this.files.find(f => f.id == this.editing) - if (!file) { - return null - } - const data = Object.assign({}, file); - data.list = []; - if (data.type === 'srt') { - data.list = data.parse.map((block, index) => { - let tBlock = data.translateData[index] - if (tBlock.startTime !== block.startTime || tBlock.endTime != block.endTime) { - tBlock = data.translateData.find(b => b.startTime == block.startTime && b.endTime == block.endTime) - } - - return { - time: `${block.startTime} - ${block.endTime}`, - id: `${block.id}-${tBlock.id}`, - items: [{ - id: block.id, - text: block.text, - lang: this.srcLang[this.selApi], - apiShow: false, - api: ['谷歌','百度','搜狗'], - }, { - id: tBlock.id, - text: tBlock.text, - lang: this.distLang[this.selApi], - }], - } - }) - } else if (data.type == 'ass') { - data.list = data.parse[3].body.map(block => { - const time = `${block.value.Start} - ${block.value.End}` - const tBlock = data.translateData.find(b => b.key == 'Dialogue' && b.value.Start == block.value.Start && b.value.End == block.value.End) - if (tBlock) { - return { - time: time, - id: `${block.value.Start}-${block.value.End}`, - items: [{ - id: '', - text: block.value.Text, - lang: this.srcLang[this.selApi], - apiShow: false, - api: ['谷歌','百度','搜狗'], - }, { - id: '', - text: tBlock.value.Text, - lang: this.distLang[this.selApi], - }] - } - } - }).filter(i => i) - } - this.editDataRes = data; - return data - } - }, - mounted() { - document.getElementById('vue-app').style.display = 'block'; - // 之所以设置为 display:none; 然后现在 display:block 显示; - // 是因为 vue 的执行需要时间,用户打开 App 时会看到一瞬间的闪烁, 这个体验不好, 所以先隐藏。执行到这里再显示 - }, - methods: { - // 处理文件,保存到 this.files - process_file(e) { - const $input = this.$refs.input - const files = [ - ...Array.from($input.files), - ...Array.from(e.dataTransfer && e.dataTransfer.files || []), - ] - this.files = files.map(file => { - const suffix = common.get_suffix(file.name) - if (~['srt', 'ass'].indexOf(suffix)) { - // 给文件做了一层包装 - return { - id: Math.random(), // 如 0.8617322104565146 - name: file.name, // 文件名 - path: file.path, // 文件路径 - size: common.properFileSize(file.size), // 文件大小 - type: common.get_suffix(file.name), // 文件后缀 - origin: file, // 原始 File 对象 - status: FILE_STATE.waiting, // 0 未翻译, 1 正在翻译, 2 翻译完成, 3 翻译失败 - parse: [], // 字幕文件解析后数据 - translateData: [], // parser 翻译后数据 - } - } - }).filter(i => i) - $input.value = '' - }, - // 取消文件选择 - removeFile(file) { - this.files = this.files.filter(f => f.id != file.id) - }, - // 点击区域选择文件 - toSelect() { - this.$refs.input.click() - }, - // 开始翻译 - startTranslate() { - var that = this; - // 处理每个文件 - this.files.forEach(file => { - file.status = FILE_STATE.pending // 文件状态: 翻译中 - try { - translate(file.origin, this.distLang[this.selApi], this.srcLang[this.selApi], this.selApi).then(res => { - file.parse = res.parse - file.translateData = res.translate - file.status = FILE_STATE.success // 文件状态: 翻译成功 - that.downloadFile(file); // 翻译成功后直接保存 - }).catch(err => { - console.log(err); - file.status = FILE_STATE.error - }) - } catch(e) { - console.log(e); - file.status = FILE_STATE.error - } - }) - }, - // 下载文件 - downloadFile(file) { - // [已翻译, 源语言en - 目标语言zh-cn]01 Auto-tracing in Illustrator - var from = this.srcLang[this.selApi] // en - var to = this.distLang[this.selApi] // zh - var from_name = this.supportLang[this.selApi][from] // 英语 - var to_name = this.supportLang[this.selApi][to] // 简体中文 - var file_name_prefix = `[${this.supportApi[this.selApi]}翻译, ${from_name}->${to_name}] ` // [百度翻译, 英语->中文] - download(file, file_name_prefix).then(res => { - console.log('下载完成') - }) - }, - // 正在编辑的文件 id - editFile(file) { - this.editing = file.id - }, - quitEdit() { - this.editing = '' - }, - // - onEditBlock(block, e) { - const file = this.editingFile - if (file.type == 'srt') { - const [, distID] = block.id.split('-') - const distBlock = file.translateData.find(b => b.id == distID) - distBlock.text = e.target.value - } else if (file.type == 'ass') { - const distBlock = file.translateData.find(b => `${b.value.Start}-${b.value.End}` == block.id) - distBlock.value.Text = e.target.value - } - }, - // - selectApi(item) { - item.apiShow = !item.apiShow; - }, - // - changeApi(item, num) { - let temp = item.api[0]; - Vue.set(item.api, 0, item.api[num]); - Vue.set(item.api, num, temp); - item.apiShow = !item.apiShow; - }, - // - translateSingle(item, result) { - let api = item.api[0]; - - if (api === '谷歌') { - google(item.text, this.distLang.google, this.srcLang[this.selApi]).then(res => { - result.text = res.dist; - }) - } else if (api === '百度') { - baidu(item.text, this.distLang.baidu, this.srcLang[this.selApi]).then(res => { - result.text = res.dist; - }) - } else { - sogou.translate(item.text, this.srcLang[this.selApi], this.distLang.sogou).then(res => { - result.text = res; - }) - } - } - } -}) \ No newline at end of file diff --git a/app/src/settings.html b/app/src/settings.html deleted file mode 100644 index 742f3a8..0000000 --- a/app/src/settings.html +++ /dev/null @@ -1,3 +0,0 @@ -设置页面 -设置翻译服务所需的 API Key -TODO: HTML 待写 \ No newline at end of file diff --git a/app/src/srt.js b/app/src/srt.js deleted file mode 100644 index be3bee5..0000000 --- a/app/src/srt.js +++ /dev/null @@ -1,73 +0,0 @@ -const parser = require('subtitles-parser'); // for SRT, support 'fromSrt' and 'toSrt' -const common = require('./common.js'); -const config = require('./config.js'); - -function translate(content, to, from, selApi) { - const data = parser.fromSrt(content); - const lastID = data[data.length - 1].id // 最后一个 id - - // 翻译分组批量翻译,快凑齐了 config.LENGTH_LIMIT_PER_REQUEST: 5000 字符数时一起翻译 - const batchs = data.reduce((batch, block) => { - let bat - if (batch.length) { - bat = batch.pop() - } else { - bat = { - content: '', - includes: [] - } - } - const text = common.remove_tag_keep_text(block.text) - const nextContent = bat.content + text + config.LINE_BREAK - const nextLength = encodeURIComponent(nextContent).length - if (nextLength < config.LENGTH_LIMIT_PER_REQUEST && bat.includes.length < 100) { - bat.content = nextContent - bat.includes.push(block) - } else { - batch.push(bat) - bat = { - content: text + config.LINE_BREAK, - includes: [block] - } - } - batch.push(bat) - return batch - }, []) - - const translateProcess = batchs.map(bat => { - return common.translateApi(selApi, bat, to, from); - }) - return Promise.all(translateProcess).then(bats => { - const res = bats.reduce((list, bat) => { - let strs; - if (selApi === 'google' || selApi === 'baidu') { - strs = bat.result.split(/[%|\%]?0A/) - } else { - strs = bat.result.replace(/%0A|%\s0A/g, '').split(/\n/) - } - const items = bat.includes.map((block, index) => ({ - endTime: block.endTime, - startTime: block.startTime, - id: String(Number(lastID) + Number(block.id)), - text: (strs[index] || block.text).trim(), - })) - - return list.concat(items) - }, []) - return { - parse: data, - translate: res - } - }) -} - -// 导出翻译结果 -function exportContent(data) { - const origin = common.deepClone(data.parse) - const srtData = origin.concat(data.translateData) - const content = parser.toSrt(srtData) - return content -} - -exports.translate = translate; -exports.exportContent = exportContent; \ No newline at end of file diff --git a/app/src/translate.js b/app/src/translate.js deleted file mode 100644 index 8d11120..0000000 --- a/app/src/translate.js +++ /dev/null @@ -1,52 +0,0 @@ -// 核心翻译组件 -const fs = require("fs"); -const path = require('path') -const { shell } = require('electron') -const ass = require('./ass.js'); -const srt = require('./srt.js'); -const common = require('./common.js'); - -// 翻译 -// file 待翻译的文件 (类型是 __) -// to 目标语言 -// from 源语言 -// selApi 用哪家翻译 API -function translate(file, to, from = 'auto', selApi) { - if (file == undefined){ - throw 'file empty'; - } - var content = fs.readFileSync(file.path, 'utf8'); - var suffix = common.get_suffix(file.name); - if (suffix == 'srt') { - console.log(srt.translate(content, to, from)); - return srt.translate(content, to, from, selApi); - } else if (suffix == 'ass') { - return ass.translate(content, to, from, selApi); - } -} - -// 下载文件 -// prefix 是文件名前缀 -function download(file, prefix = '') { - var suffix = common.get_suffix(file.name); - let content = '' - // 判断后缀来导出内容 - if (suffix == 'srt') { - content = srt.exportContent(file) - } else if (suffix == 'ass') { - content = ass.exportContent(file) - } - // 拼接文件路径 - const folder = path.dirname(file.path) - const filePath = path.join(folder, prefix + file.name) - // 保存文件然后显示 - // 这里 return 的是 promise - const p = common.downloadFile(content, filePath).then(() => { - shell.showItemInFolder(filePath) - }) - return p -} - -exports.translate = translate; -exports.download = download; - diff --git a/app/src/translate_api.js b/app/src/translate_api.js deleted file mode 100644 index 8fe4308..0000000 --- a/app/src/translate_api.js +++ /dev/null @@ -1,16 +0,0 @@ -const translate = require('google-baidu-translate-api') -const SogouTranslate = require('sogou-translate'); -const sogou = new SogouTranslate('', ''); -// TODO: 这里的 key 和 secret 在正式发布之前需要去掉,这是别人的 - -exports.translate = translate -// 先尝试使用 google 翻译,如果失败再使用 baidu 翻译, 根据文档: https://github.com/eyasliu/google-baidu-translate-api - -// Google Translate API -exports.google = translate.google - -// Baidu Translate API -exports.baidu = translate.baidu - -// Sogou Translate API -exports.sogou = sogou diff --git a/app/test file/README.MD b/app/test file/README.MD deleted file mode 100644 index 9747248..0000000 --- a/app/test file/README.MD +++ /dev/null @@ -1,2 +0,0 @@ -### 说明 -此处的字幕文件供手工测试用 \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/18th Century Warfare - Crash Course European History #20-xbbYCe2o1SI.en.vtt" "b/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/18th Century Warfare - Crash Course European History #20-xbbYCe2o1SI.en.vtt" deleted file mode 100644 index 015c9b0..0000000 --- "a/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/18th Century Warfare - Crash Course European History #20-xbbYCe2o1SI.en.vtt" +++ /dev/null @@ -1,868 +0,0 @@ -WEBVTT -Kind: captions -Language: en - -00:00:00.160 --> 00:00:03.540 -Hi I’m John Green and this is Crash Course -European History. - -00:00:03.540 --> 00:00:09.540 -Last time, we looked at how the monarchs did--and -didn’t--incorporate the ideas of the Enlightenment - -00:00:09.540 --> 00:00:11.269 -into their domestic policies. - -00:00:11.269 --> 00:00:16.520 -Today, we’ll look outward to how the 18th -century European powers engaged with each - -00:00:16.520 --> 00:00:22.039 -other and beyond Europe--which is to say that -warfare is coming. - -00:00:22.039 --> 00:00:28.880 -Or, continuing, I suppose, because it never -really left town. - -00:00:28.880 --> 00:00:37.719 -[Intro] -So, population was rising in 18th century - -00:00:37.719 --> 00:00:44.210 -Europe and despite an extremely uneven distribution -of wealth and lots of wartime casualties, - -00:00:44.210 --> 00:00:46.600 -many people were leading better lives. - -00:00:46.600 --> 00:00:51.680 -For example, inventories of French people’s -possessions show that in 1700 women owned - -00:00:51.680 --> 00:00:56.039 -an average of two garments generally in solid -black or brown; - -00:00:56.039 --> 00:01:00.960 -in 1800 that number was five garments of more -varied, even bright colors. - -00:01:00.960 --> 00:01:05.140 -Now, this may seem like minor progress, but -here’s another way of thinking about it: - -00:01:05.140 --> 00:01:10.220 -The average number of garments owned by people -living in France rose by more in a hundred - -00:01:10.220 --> 00:01:13.360 -years than it had in the previous hundred -thousand. - -00:01:13.360 --> 00:01:17.010 -By the way, did that dress look gold to you, -or blue? - -00:01:17.010 --> 00:01:18.510 -And do you even remember that meme? - -00:01:18.510 --> 00:01:19.510 -Probably not. - -00:01:19.510 --> 00:01:20.510 -Oh god, I’m so old. - -00:01:20.510 --> 00:01:24.630 -I grow old, I grow old, I shall wear the bottoms -of my trousers rolled. - -00:01:24.630 --> 00:01:26.560 -That’s an even older meme. - -00:01:26.560 --> 00:01:30.870 -At any rate, we associate these and many other -improving conditions in Europe with what is - -00:01:30.870 --> 00:01:36.630 -called “modernity”—an idea combining -improvement and novelty that we will examine - -00:01:36.630 --> 00:01:37.700 -later in the series. - -00:01:37.700 --> 00:01:43.160 -But when it came to warfare, Europeans were -still battling it out among themselves on - -00:01:43.160 --> 00:01:47.580 -the continent and on the seas--and always -at great cost. - -00:01:47.580 --> 00:01:53.240 -The 18th century opened with wars of the Spanish, -Polish, and Austrian successions, all of which - -00:01:53.240 --> 00:01:58.140 -were just what their names suggest: fights -over who was going to become king or queen - -00:01:58.140 --> 00:02:03.310 -amidst a dispute over rulership—disputes -not unlike the one at the heart of the Hundred - -00:02:03.310 --> 00:02:04.570 -Years War. - -00:02:04.570 --> 00:02:08.610 -And so in that sense, progress had been . . . minimal. - -00:02:08.610 --> 00:02:13.130 -As far as wars between states, the dominant -idea in foreign relations was still to grab - -00:02:13.130 --> 00:02:16.220 -as much territory as possible from foreign -kingdoms. - -00:02:16.220 --> 00:02:19.980 -Because only by making your kingdom bigger -could you also make it richer. - -00:02:19.980 --> 00:02:24.630 -So for instance as Austria fought with itself -during its war of succession over whether - -00:02:24.630 --> 00:02:28.590 -a woman, Maria Theresa, should be allowed -to ascend to the Habsburg throne, Frederick - -00:02:28.590 --> 00:02:34.060 -the Great of neighboring Prussia quickly mobilized -his army and seized Silesia from the Habsburgs. - -00:02:34.060 --> 00:02:39.260 -When I read the phrase, “seized Silesia” -it rolled right off the tongue of my mind, - -00:02:39.260 --> 00:02:40.260 -but man. - -00:02:40.260 --> 00:02:42.390 -Saying it is a completely different matter. - -00:02:42.390 --> 00:02:48.510 -At any rate, Maria Theresa’s rulership survived, -but Habsburg control of Silesia did not. - -00:02:48.510 --> 00:02:53.290 -Because of economic globalization, still other -wars aimed at controlling trade routes and - -00:02:53.290 --> 00:02:55.290 -productive territory around the world. - -00:02:55.290 --> 00:02:59.569 -For that reason sometimes a cluster of wars -in the middle of the eighteenth century has - -00:02:59.569 --> 00:03:04.280 -been called a “world war” or the Great -War for Empire. - -00:03:04.280 --> 00:03:09.670 -Like, it was a world war, but unfortunately -we already have a World War I, so we’re - -00:03:09.670 --> 00:03:12.150 -in a bit of a tight spot, name-wise. - -00:03:12.150 --> 00:03:16.440 -But these wars did occur across truly global -battlefields and oceans. - -00:03:16.440 --> 00:03:20.990 -They included wars between the British and -local Native American peoples (sometimes called - -00:03:20.990 --> 00:03:26.850 -the first and second Anglo-Indian Wars), and -also the French and Indian War in North America. - -00:03:26.850 --> 00:03:30.600 -and there was also the Seven Years War, which -was fought partly within Europe, but there - -00:03:30.600 --> 00:03:35.010 -were also battles between Britain and its -rivals—most notably France and Spain—in - -00:03:35.010 --> 00:03:38.190 -the Caribbean, the Philippines, and India. - -00:03:38.190 --> 00:03:42.990 -In this complicated and many-tentacled set -of wars—or arguably a single war in many - -00:03:42.990 --> 00:03:47.220 -different theaters—the French and British -were ultimately fighting over who would be - -00:03:47.220 --> 00:03:50.600 -the dominant European force in the wider world. - -00:03:50.600 --> 00:03:56.180 -Spain was a somewhat smaller player, fighting -to protect its holdings in the Caribbean and - -00:03:56.180 --> 00:03:57.320 -the Philippines. - -00:03:57.320 --> 00:04:02.310 -Native people around the world were enlisted -in these struggles, and local peoples changed - -00:04:02.310 --> 00:04:07.790 -sides often as their interests shifted, and -in the end trusted none of the Europeans, - -00:04:07.790 --> 00:04:12.550 -who pitted native peoples against each other -and also were not known for keeping their - -00:04:12.550 --> 00:04:13.550 -promises. - -00:04:13.550 --> 00:04:18.299 -Simultaneously the Russians were waging war -against the Ottomans in eastern Europe, the - -00:04:18.299 --> 00:04:20.570 -Mediterranean, the Middle East, and the Caucasus. - -00:04:20.570 --> 00:04:25.600 -In Russia, like in the other European kingdoms, -the wars’ costs were passed on mostly to - -00:04:25.600 --> 00:04:30.260 -ordinary people, who faced more efficient -and demanding tax collection. - -00:04:30.260 --> 00:04:35.200 -Additionally, central governments were disrupting -local traditions and practices--for instance, - -00:04:35.200 --> 00:04:40.450 -local traditions related to the consumption -of alcohol were disrupted in Russia by HUGE - -00:04:40.450 --> 00:04:43.440 -increases in taxes on alcohol. - -00:04:43.440 --> 00:04:45.090 -Did the center of the world just open? - -00:04:45.090 --> 00:04:48.080 -Is my favorite book, The Bear and the Dragon -in there? - -00:04:48.080 --> 00:04:50.730 -Ah, The Bear and the Dragon by Tom Clancy. - -00:04:50.730 --> 00:04:57.330 -I’ve never actually read it, but inside -my copy of the bear and the dragon is this. - -00:04:57.330 --> 00:05:04.630 -So in 18th century Russia, this huge tax on -alcohol eventually funded 22% of the empire’s - -00:05:04.630 --> 00:05:06.030 -total budget. - -00:05:06.030 --> 00:05:11.210 -And there were other disruptions as well, -arguably more important ones, including the - -00:05:11.210 --> 00:05:14.699 -conversion of some free peasants into serfs. - -00:05:14.699 --> 00:05:17.310 -Local people fought back in a variety of ways. - -00:05:17.310 --> 00:05:22.169 -The first of the extensive uprisings against -the efficient and “enlightened” taxation - -00:05:22.169 --> 00:05:25.260 -to pay for warfare was the Pugachev Rebellion. - -00:05:25.260 --> 00:05:29.390 -It was led by former Cossack and Russian army -deserter Emile Pugachev. - -00:05:29.390 --> 00:05:35.780 -He managed to persuade rural Russians that -he was in fact Peter III, husband of Catherine - -00:05:35.780 --> 00:05:36.780 -II. - -00:05:36.780 --> 00:05:43.030 -Now, Peter had been assassinated in 1762 within -months of his accession to power, most likely - -00:05:43.030 --> 00:05:46.630 -at Catherine’s command (and possibly by -her lover). - -00:05:46.630 --> 00:05:52.410 -So given that Russian history really was playing -out like a soap opera, it didn’t seem impossible - -00:05:52.410 --> 00:05:57.490 -that the murdered Czar had been hiding out -all along as a Russian army deserter named - -00:05:57.490 --> 00:05:58.490 -Emile. - -00:05:58.490 --> 00:06:03.190 -Pugachev claimed to have wandered poor and -alone like Jesus until he could become the - -00:06:03.190 --> 00:06:04.320 -“Tsar Redeemer.” - -00:06:04.320 --> 00:06:08.630 -And as Peter III, Pugachev created quite the -following. - -00:06:08.630 --> 00:06:13.160 -He had Russian clergy and officials—both -high and low—issue a series of measures - -00:06:13.160 --> 00:06:15.350 -relieving serfs of their burdens. - -00:06:15.350 --> 00:06:19.680 -Pugachev also roused the Cossacks, who were -fearful of being forced into the army and - -00:06:19.680 --> 00:06:21.130 -losing their freedom. - -00:06:21.130 --> 00:06:25.510 -He confirmed their rights and liberties and -he granted everyone permission to sport beards, - -00:06:25.510 --> 00:06:28.639 -which, as you may recall, Peter I had outlawed. - -00:06:28.639 --> 00:06:35.760 -And some three million Russians followed Pugachev -until he was captured in 1774, then gruesomely - -00:06:35.760 --> 00:06:39.450 -tortured and executed in January 1775. - -00:06:39.450 --> 00:06:43.220 -After that, Catherine again tightened the -nobility’s grip on serfs. - -00:06:43.220 --> 00:06:48.170 -Hard on the heels of Pugachev’s uprising, -the American Revolution erupted over a series - -00:06:48.170 --> 00:06:54.050 -of taxes Britain imposed on its thirteen colonies -in North America—again to pay the costs - -00:06:54.050 --> 00:06:55.550 -of imperial warfare. - -00:06:55.550 --> 00:07:00.720 -Now, the British government felt that the -expense it had incurred in defeating the French - -00:07:00.720 --> 00:07:06.100 -and Native Americans in the French and Indian -War should be paid by the colonists who’d - -00:07:06.100 --> 00:07:07.610 -profited from the protection. - -00:07:07.610 --> 00:07:11.060 -But in America, we don’t stand for that -kind of reasoning! - -00:07:11.060 --> 00:07:12.330 -There were some other things going on. - -00:07:12.330 --> 00:07:17.320 -The royal government had also closed off westward -expansion at the Allegheny Mountains, which - -00:07:17.320 --> 00:07:22.650 -in effect eradicated the property rights of -people like Thomas Jefferson and George Washington - -00:07:22.650 --> 00:07:24.430 -who claimed land there. - -00:07:24.430 --> 00:07:29.360 -And King George agreed with his advisors that -the Americans were rough, stupid, and ineffective, - -00:07:29.360 --> 00:07:31.690 -especially as miltary people. - -00:07:31.690 --> 00:07:35.889 -So to keep the Native Americans under control, -a standing army of British soldiers should - -00:07:35.889 --> 00:07:40.990 -be stationed on the North American continent -and financed by the colonists. - -00:07:40.990 --> 00:07:46.600 -So if history is all about shifting perspectives, -we’re gonna shift perspectives quickly here. - -00:07:46.600 --> 00:07:54.259 -From the british perspective, American colonists -were taxed 1 shilling for every 26 paid by - -00:07:54.259 --> 00:07:58.139 -a homeland Briton, and that seemed like a -pretty good deal. - -00:07:58.139 --> 00:08:02.860 -But from the perspective of the North American -colonists, they did not have the rights of - -00:08:02.860 --> 00:08:07.880 -other Englishmen, including the right not -to be taxed without representation. - -00:08:07.880 --> 00:08:12.210 -Colonists created a Declaration of Independence, -which was issued in 1776. - -00:08:12.210 --> 00:08:18.009 -The British the sent additional troops, and -soon war erupted. - -00:08:18.009 --> 00:08:22.850 -Those who wanted independence harassed, beat -up, murdered and destroyed the property of - -00:08:22.850 --> 00:08:25.800 -the loyalists, who responded in kind. - -00:08:25.800 --> 00:08:30.850 -The rebels were greatly aided by the Spanish -and French who sent decisive aid in the form - -00:08:30.850 --> 00:08:32.630 -of ships and military personnel. - -00:08:32.630 --> 00:08:38.159 -And besides, the British had other concerns, -including preserving their far more lucrative - -00:08:38.159 --> 00:08:43.550 -sugar islands in the Caribbean, as well as -their holdings in India, and in Canada. - -00:08:43.550 --> 00:08:47.610 -Although comparatively insignificant at the -time, the newly independent colonies that - -00:08:47.610 --> 00:08:52.709 -became the United States established a representative -form of government with a written constitution - -00:08:52.709 --> 00:08:55.069 -that featured many Enlightenment principles. - -00:08:55.069 --> 00:09:01.410 -Now, it was hardly a true democracy, as only -a minority had any legal say or rights and - -00:09:01.410 --> 00:09:04.389 -the Constitution itself enshrined slavery. - -00:09:04.389 --> 00:09:07.620 -But it also definitely wasn’t a monarchy. - -00:09:07.620 --> 00:09:11.339 -Anyway, this little country would eventually -grow big enough for us to make an entire Crash - -00:09:11.339 --> 00:09:12.459 -Course about it. - -00:09:12.459 --> 00:09:16.589 -Meanwhile, the defeated loyalists, including -slaves who had been promised their freedom - -00:09:16.589 --> 00:09:21.380 -in return for fighting for the crown, fled -to Canada and other parts of the world. - -00:09:21.380 --> 00:09:26.140 -And for the record, they rarely received the -financial support that the British had promised - -00:09:26.140 --> 00:09:28.129 -them for their faithful assistance. - -00:09:28.129 --> 00:09:32.540 -Spain also saw uprisings against the reforms -of the enlightened monarchs, though grievances - -00:09:32.540 --> 00:09:37.559 -had been piling up even before efficient and -tax-heavy policies were put in place. - -00:09:37.559 --> 00:09:42.970 -Also, Spain lost Manila in the Philippines -to the British, and they lost Florida, which, - -00:09:42.970 --> 00:09:45.000 -you know, not exactly a tragedy. - -00:09:45.000 --> 00:09:47.980 -I am a Floridan so I am allowed to make that -joke. - -00:09:47.980 --> 00:09:49.360 -And, that’s not fair. - -00:09:49.360 --> 00:09:50.509 -Florida is lovely. - -00:09:50.509 --> 00:09:55.851 -It really is the best place in the United -States to run from your past mistakes, straight - -00:09:55.851 --> 00:09:57.100 -into new ones. - -00:09:57.100 --> 00:09:58.160 -But back to Spain. - -00:09:58.160 --> 00:10:03.170 -So, across the occupied Spanish lands in the -Western Hemisphere, local people found ways - -00:10:03.170 --> 00:10:08.100 -to express their discontent with colonial -oppression, at times violently protesting - -00:10:08.100 --> 00:10:12.670 -injustices by imperial officials or overbearing -behavior by priests. - -00:10:12.670 --> 00:10:18.339 -Religious activists claimed that the Spanish -were false gods; in the former Incan lands, - -00:10:18.339 --> 00:10:22.839 -several Incans actively opposed the Spanish -government in a concerted uprising that began - -00:10:22.839 --> 00:10:25.850 -in 1742, but was soon defeated. - -00:10:25.850 --> 00:10:27.360 -Let’s go to the Thought Bubble. - -00:10:27.360 --> 00:10:28.360 -1. - -00:10:28.360 --> 00:10:31.670 -In 1780, another uprising battling Spanish -rule broke out in the Andes. - -00:10:31.670 --> 00:10:32.670 -2. - -00:10:32.670 --> 00:10:36.980 -Inca Tupac Ameru led a powerful rebellion -against Spanish authorities in an attempt - -00:10:36.980 --> 00:10:39.129 -to restore the former Incan empire - -00:10:39.129 --> 00:10:44.629 -3. and to liberate local people from the increased -Spanish demands for labor and taxes. - -00:10:44.629 --> 00:10:45.629 -4. - -00:10:45.629 --> 00:10:47.670 -His wife Michaela Bastidas, who was part Incan, - -00:10:47.670 --> 00:10:52.929 -5. was operational manager and chief enforcer -of loyalty to her husband’s uprising. - -00:10:52.929 --> 00:10:53.929 -6. - -00:10:53.929 --> 00:10:55.399 -In that role she was especially brutal. - -00:10:55.399 --> 00:10:56.399 -7. - -00:10:56.399 --> 00:11:00.629 -She threatened slackers, even her husband, -whom she chastised for following losing strategies. - -00:11:00.629 --> 00:11:01.629 -8. - -00:11:01.629 --> 00:11:05.279 -And she ensured that the revolt’s soldiers -were supplied with arms and food and that - -00:11:05.279 --> 00:11:06.459 -they were paid - -00:11:06.459 --> 00:11:09.740 -9. —concerns that Tupac Ameru seemed to -forget sometimes. - -00:11:09.740 --> 00:11:10.740 -10. - -00:11:10.740 --> 00:11:13.319 -Alongside Bastidas, who mostly directed military -activity, - -00:11:13.319 --> 00:11:14.319 -11. - -00:11:14.319 --> 00:11:18.509 -entire units of women soldiers took to the -battlefields in several parts of the empire, - -00:11:18.509 --> 00:11:20.480 -building on traditions of active resistance. - -00:11:20.480 --> 00:11:21.480 -12. - -00:11:21.480 --> 00:11:25.290 -Spanish soldiers noticed them for their intense -commitment to victory in battle, - -00:11:25.290 --> 00:11:26.290 -13. - -00:11:26.290 --> 00:11:30.529 -calling them “supermasculine” and one -fighter in particular “as bloody a butcher - -00:11:30.529 --> 00:11:31.589 -as her brother.” - -00:11:31.589 --> 00:11:32.589 -14. - -00:11:32.589 --> 00:11:37.380 -The rebellion was put down with focused determination -and its leaders were eventually captured. - -00:11:37.380 --> 00:11:38.380 -15. - -00:11:38.380 --> 00:11:43.379 -In 1781, the Spanish colonial government (in -present day Peru) had Michaela Bastidas dragged - -00:11:43.379 --> 00:11:47.639 -bound hand and foot to her execution, garroted, -then hanged; - -00:11:47.639 --> 00:11:48.639 -16. - -00:11:48.639 --> 00:11:52.739 -finally they cut her body to pieces with her -head posted on a pike for all to see. - -00:11:52.739 --> 00:11:53.739 -17. - -00:11:53.739 --> 00:11:56.829 -Which, unfortunately is not the last time -we’re going to be talking about heads on - -00:11:56.829 --> 00:11:58.959 -pikes in Crash Course European History. - -00:11:58.959 --> 00:11:59.959 -18. - -00:11:59.959 --> 00:12:02.970 -Her husband’s execution and mutilation followed -shortly thereafter. - -00:12:02.970 --> 00:12:04.079 -Thanks Thought Bubble. - -00:12:04.079 --> 00:12:09.629 -Some 100,000 people died in the uprisings -in the Spanish empire—that is, around ten - -00:12:09.629 --> 00:12:14.529 -percent of the native population in all of -Spain’s South American holdings. - -00:12:14.529 --> 00:12:19.360 -The Spanish imperial government prevailed -whereas the British did not for a number of - -00:12:19.360 --> 00:12:20.360 -reasons. - -00:12:20.360 --> 00:12:24.320 -For one, the Spanish administration was less -dispersed in its efforts and had seen how - -00:12:24.320 --> 00:12:27.980 -Britain suffered because it was fighting all -around the world. - -00:12:27.980 --> 00:12:33.249 -Also, Spain had also begun the process of -integrating creoles—people of Spanish descent - -00:12:33.249 --> 00:12:38.509 -born in the colonies—into the officer corps -of the Spanish imperial armies. - -00:12:38.509 --> 00:12:43.519 -Professional training, access to military -schools and military privileges all served - -00:12:43.519 --> 00:12:45.809 -to build loyalty to Spain. - -00:12:45.809 --> 00:12:49.110 -And that was essentially the opposite of British -treatment and attitudes towards North American - -00:12:49.110 --> 00:12:50.110 -colonials. - -00:12:50.110 --> 00:12:55.699 -Britain saw its North American colonials as, -like, useless at fighting and hopeless as - -00:12:55.699 --> 00:12:56.699 -officers. - -00:12:56.699 --> 00:13:00.899 -and so the Spanish Empire in the Americas -survived for now. - -00:13:00.899 --> 00:13:03.689 -Still, some saw a different outcome. - -00:13:03.689 --> 00:13:08.329 -Francisco de Miranda, a creole official in -the Spanish army, helped achieved the victory - -00:13:08.329 --> 00:13:11.230 -for the American Revolutionaries at Yorktown. - -00:13:11.230 --> 00:13:16.639 -He watched the Spanish dealings with the rebels -in Peru, observing “how astute and perfidious - -00:13:16.639 --> 00:13:18.930 -the Spanish agents had proved. - -00:13:18.930 --> 00:13:21.670 -. . .” -But Miranda predicted, “the Anglo-American - -00:13:21.670 --> 00:13:22.670 -colonies. - -00:13:22.670 --> 00:13:23.670 -. . independence. - -00:13:23.670 --> 00:13:27.529 -. .was bound to be . . . the infallible preliminary -to our own.” - -00:13:27.529 --> 00:13:32.139 -And indeed, people of South America had greater -battles to come as they continued to fight - -00:13:32.139 --> 00:13:33.730 -for their freedom from Spain. - -00:13:33.730 --> 00:13:37.429 -So, these eighteenth century wars had many -long-term outcomes. - -00:13:37.429 --> 00:13:42.299 -First, as the Seven Years War unwound and -the Prussian army built itself up, Frederick - -00:13:42.299 --> 00:13:47.839 -the Great saw a chance to cut up Poland-Lithuania, -proposing to divide a good chunk of it among - -00:13:47.839 --> 00:13:50.759 -Austria, Russia, and Prussia itself. - -00:13:50.759 --> 00:13:56.430 -This was the First Partition of Poland; so-called -because further partitions would follow. - -00:13:56.430 --> 00:14:01.199 -Meanwhile, while Britain lost what it thought -of as a less lucrative part of its empire, - -00:14:01.199 --> 00:14:06.249 -it kept its domination of the Caribbean sugar -islands and turned its attention to extracting - -00:14:06.249 --> 00:14:07.869 -the wealth of India. - -00:14:07.869 --> 00:14:12.059 -Finally, after providing the crucial aide -that allowed the birth of the United States - -00:14:12.059 --> 00:14:18.189 -of America, France was in dire financial straits -and badly in need of reform. - -00:14:18.189 --> 00:14:22.399 -As the French watched, and supported, the -emergence of a nation without a monarch across - -00:14:22.399 --> 00:14:28.630 -the Atlantic, few of them could have imagined -that a great revolution was just one episode - -00:14:28.630 --> 00:14:34.360 -away that would see the French monarchy beheaded--both -literally and figuratively. - -00:14:34.360 --> 00:14:35.360 -Thanks for watching. - -00:14:35.360 --> 00:14:54.540 -I’ll see you then. - diff --git "a/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/Keeping It Legal and Registering Your Business - Crash Course Business Entrepreneurship #5-1-xiSOvgNvw.en.vtt" "b/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/Keeping It Legal and Registering Your Business - Crash Course Business Entrepreneurship #5-1-xiSOvgNvw.en.vtt" deleted file mode 100644 index f3db734..0000000 --- "a/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/Keeping It Legal and Registering Your Business - Crash Course Business Entrepreneurship #5-1-xiSOvgNvw.en.vtt" +++ /dev/null @@ -1,944 +0,0 @@ -WEBVTT -Kind: captions -Language: en - -00:00:05.259 --> 00:00:10.840 -When will your idea transform from a casual -side-hustle into a full-blown business? - -00:00:10.840 --> 00:00:15.359 -Is it when your podcast gets sponsorships, -when your catering company is booked for 5 - -00:00:15.359 --> 00:00:19.260 -weekends straight, or when you’ve sold your -100th bottle of Slug-be-Gone? - -00:00:19.260 --> 00:00:22.270 -Basically, when do things get REAL? - -00:00:22.270 --> 00:00:26.369 -I can’t tell you when you’ll start to -feel like a businessperson, but the world - -00:00:26.369 --> 00:00:30.590 -recognizes it when you legally register your -formal business structure. - -00:00:30.590 --> 00:00:31.590 -You could be an LLC. - -00:00:31.590 --> 00:00:32.590 -Or a C-Corp. - -00:00:32.590 --> 00:00:33.820 -Or a B-Corp. - -00:00:33.820 --> 00:00:34.820 -Or a Co-op. - -00:00:34.820 --> 00:00:36.600 -So many different letters! - -00:00:36.600 --> 00:00:42.059 -It can be daunting to move from the abstract -idea stage to the realm of bank accounts, - -00:00:42.059 --> 00:00:43.639 -taxes, and liability. - -00:00:43.639 --> 00:00:48.219 -Sometimes, it can feel like you’re making -arbitrary decisions, but we’re going to - -00:00:48.219 --> 00:00:50.870 -wade through the legalese together. - -00:00:50.870 --> 00:00:52.170 -Things are about to get legit. - -00:00:52.170 --> 00:00:56.420 -I’m Anna Akana and this is Crash Course -Business: Entrepreneurship. - -00:00:56.420 --> 00:01:04.980 -[Theme Music Plays] - -00:01:04.989 --> 00:01:10.010 -The legal basics of entrepreneurship aren’t -as flashy as generating ideas or staking out - -00:01:10.010 --> 00:01:11.360 -the competition. - -00:01:11.360 --> 00:01:15.760 -But think about them like a Choose Your Own -Adventure novel. - -00:01:15.760 --> 00:01:20.930 -Choosing a business structure opens up a different -future with unique twists and turns. - -00:01:20.930 --> 00:01:22.080 -So buckle up. - -00:01:22.080 --> 00:01:24.820 -Legally, you have to register your business. - -00:01:24.820 --> 00:01:29.690 -And depending on where you live, your government -might have certain requirements to do that. - -00:01:29.690 --> 00:01:34.700 -In the U.S., you register to say a cordial -“what’s up?” to the state and federal - -00:01:34.700 --> 00:01:35.700 -government. - -00:01:35.700 --> 00:01:41.060 -They need to know you exist so you can get -the licenses and permits you need to do business - -00:01:41.060 --> 00:01:43.900 -and -- everyone’s favorite topic -- pay -your taxes. - -00:01:43.900 --> 00:01:47.890 -For you as the owner, and anyone you’re -doing business with, registering can create - -00:01:47.890 --> 00:01:49.990 -some legal and financial protection. - -00:01:49.990 --> 00:01:54.320 -Specifically, we’re talking about liability --- or the state of being legally responsible - -00:01:54.320 --> 00:01:57.500 -for something -- and potentially using helpful -tax structures. - -00:01:57.500 --> 00:02:01.360 -We’ll talk about a bit of money stuff here, -but check with your government’s commerce, - -00:02:01.360 --> 00:02:04.000 -tax, or treasury departments for more details. - -00:02:04.000 --> 00:02:07.920 -There are lots of different options to pick -from when you register your business, so it’s - -00:02:07.920 --> 00:02:09.580 -time to choose a path. - -00:02:09.580 --> 00:02:13.200 -These are most of the U.S. options, but a -lot of countries have similar structures. - -00:02:13.200 --> 00:02:14.200 -Let’s jump in. - -00:02:14.200 --> 00:02:20.530 -A sole proprietorship is a type of business -that’s owned and run by one person. - -00:02:20.530 --> 00:02:24.109 -Think freelance writers, independent landscapers, -or even YouTubers. - -00:02:24.109 --> 00:02:29.569 -This is the easiest Choose Your Own Adventure -decision: choosing nothing. - -00:02:29.569 --> 00:02:34.260 -If you provide a service or product to someone -by yourself and get paid without registering - -00:02:34.260 --> 00:02:37.920 -for any kind of business, you’re considered -a sole proprietorship. - -00:02:37.920 --> 00:02:39.879 -But it has some drawbacks. - -00:02:39.879 --> 00:02:44.590 -You aren’t considered separate from your -business -- you’re personally liable. - -00:02:44.590 --> 00:02:49.060 -That means your business money isn’t separate -from your personal assets like your money, - -00:02:49.060 --> 00:02:53.939 -car, or house -- and your personal assets -could be taken in a lawsuit. - -00:02:53.939 --> 00:02:54.939 -Yikes. - -00:02:54.939 --> 00:02:59.099 -Raising investment money can be tough because -you can’t sell stock -- or shares of ownership - -00:02:59.099 --> 00:03:00.099 -in the company. - -00:03:00.099 --> 00:03:04.249 -And banks might hesitate to lend money because -they perceive a bigger risk in lending to - -00:03:04.249 --> 00:03:05.650 -just one person. - -00:03:05.650 --> 00:03:08.499 -Filing taxes as a sole proprietor is pretty -easy. - -00:03:08.499 --> 00:03:12.299 -You have what’s called pass-through status, -where profits are passed straight to business - -00:03:12.299 --> 00:03:17.010 -owners and are just part of personal taxes, -instead of also being included in the business - -00:03:17.010 --> 00:03:18.010 -taxes. - -00:03:18.010 --> 00:03:21.161 -Basically, since the business money isn’t -separate from your personal money, you just - -00:03:21.161 --> 00:03:23.069 -submit once with a few extra forms. - -00:03:23.069 --> 00:03:27.999 -Also, you have to factor in self-employment -taxes, which are explained on IRS.gov. - -00:03:27.999 --> 00:03:32.150 -The cool thing about a sole-proprietorship -is that your business expenses can be tax - -00:03:32.150 --> 00:03:33.150 -write-offs! - -00:03:33.150 --> 00:03:34.150 -New computer for work? - -00:03:34.150 --> 00:03:35.150 -Write it off! - -00:03:35.150 --> 00:03:36.150 -New desk? - -00:03:36.150 --> 00:03:37.150 -Write it off! - -00:03:37.150 --> 00:03:41.060 -You want to check with an accountant, of course, -but that is a real advantage of owning your - -00:03:41.060 --> 00:03:42.060 -own business. - -00:03:42.060 --> 00:03:46.750 -A partnership is a way for two or more people -to share ownership of a business, which is - -00:03:46.750 --> 00:03:51.180 -great if you don’t want to go it alone, -or for professional groups like attorneys - -00:03:51.180 --> 00:03:52.489 -or dentists. - -00:03:52.489 --> 00:03:53.832 -All the fun groups. - -00:03:53.832 --> 00:03:58.569 -If you choose a partnership, you have to pick -one of three flavors that mostly affect power - -00:03:58.569 --> 00:04:02.909 -and liability: General, Limited, and Limited -Liability. - -00:04:02.909 --> 00:04:08.439 -In a General Partnership, you and one or more -partners share personal liability and all - -00:04:08.439 --> 00:04:11.379 -have an equal say when making decisions. - -00:04:11.379 --> 00:04:15.680 -Just like a sole proprietorship, it’s the -easiest choice for partners, but personal - -00:04:15.680 --> 00:04:17.190 -liability can be risky. - -00:04:17.190 --> 00:04:23.160 -In a Limited Partnership, someone takes on -unlimited liability, so their personal assets - -00:04:23.160 --> 00:04:27.670 -can be seized in a legal battle, and they -have to pay self-employment taxes. - -00:04:27.670 --> 00:04:32.060 -But they’re the head honcho and own and -run most of the business. - -00:04:32.060 --> 00:04:35.470 -The other partners have limited input, but -also limited liability. - -00:04:35.470 --> 00:04:39.590 -They’re only responsible for a slice of -the business assets so they’re personally - -00:04:39.590 --> 00:04:41.490 -protected from lawsuits. - -00:04:41.490 --> 00:04:45.620 -These are often silent business partners... -who are basically just the money. - -00:04:45.620 --> 00:04:46.620 -Shhh! - -00:04:46.620 --> 00:04:51.270 -In a Limited Liability Partnership, or LLP, -everyone gets limited liability. - -00:04:51.270 --> 00:04:56.700 -It’s more work to form than a general partnership, -and gives less protection than fancier business - -00:04:56.700 --> 00:04:57.910 -structures. - -00:04:57.910 --> 00:05:01.550 -But it does give owners at least SOME liability -protection. - -00:05:01.550 --> 00:05:05.930 -No matter the flavor, you’ll have an easier -time raising money in a partnership than alone, - -00:05:05.930 --> 00:05:08.810 -since banks might be more willing to lend -to multiple people. - -00:05:08.810 --> 00:05:12.730 -And you could get investments if you’re -willing to take on silent partners. - -00:05:12.730 --> 00:05:15.530 -Partnerships are also helpful for tax reasons. - -00:05:15.530 --> 00:05:20.190 -General partners have pass-through status -for taxes, like a sole proprietorship. - -00:05:20.190 --> 00:05:24.090 -Everyone splits the profits through the business, -and deals with their own taxes, including - -00:05:24.090 --> 00:05:25.820 -self-employment taxes. - -00:05:25.820 --> 00:05:31.450 -Overall, partnerships -- especially LPs and -LLPs -- are more expensive than sole proprietorships - -00:05:31.450 --> 00:05:33.730 -because they need more legal and accounting -help. - -00:05:33.730 --> 00:05:39.230 -Now a corporation, sometimes called a C-corp, -is an entity that’s completely separate - -00:05:39.230 --> 00:05:40.460 -from its owners. - -00:05:40.460 --> 00:05:45.260 -Like a person, a corporation can have profits, -taxes, and liability. - -00:05:45.260 --> 00:05:49.650 -The BBC, eBay, and AirBnB are all corporations. - -00:05:49.650 --> 00:05:52.121 -Where you incorporate matters for many legal -reasons. - -00:05:52.121 --> 00:05:57.250 -In the U.S., for example, lots of people form -their legal entity in Delaware. - -00:05:57.250 --> 00:06:01.750 -If you choose the C-corp path, you’re protected -from lawsuits -- you aren’t personally liable - -00:06:01.750 --> 00:06:03.950 -and have limited liability. - -00:06:03.950 --> 00:06:08.420 -Funding is also easier, because corporations -can sell stock to the public. - -00:06:08.420 --> 00:06:12.190 -While corporations can borrow from banks, -they typically find it too restrictive and - -00:06:12.190 --> 00:06:13.640 -find money other ways. - -00:06:13.640 --> 00:06:18.940 -Plus, if stockholders -- the people who own -shares of your business -- leave or sell their - -00:06:18.940 --> 00:06:22.810 -stocks, you can keep chugging along instead -of stopping to restructure. - -00:06:22.810 --> 00:06:26.509 -But for all these benefits, you have to be -ready to hustle. - -00:06:26.509 --> 00:06:31.670 -Any type of corporation needs a giant pile -of state and federal paperwork to form. - -00:06:31.670 --> 00:06:38.350 -They require extensive record-keeping, operational -processes, and annual reports on their activities - -00:06:38.350 --> 00:06:39.400 -to the government. - -00:06:39.400 --> 00:06:42.160 -C-corps are also expensive to form. - -00:06:42.160 --> 00:06:47.440 -And unlike sole proprietors and partnerships, -C-corps pay tax on profits before handing - -00:06:47.440 --> 00:06:52.050 -money out to stockholders, who also have to -pay their own taxes, which means a little - -00:06:52.050 --> 00:06:54.000 -less profit for each owner. - -00:06:54.000 --> 00:06:56.710 -C-corps are also beholden to profit. - -00:06:56.710 --> 00:07:01.240 -Their decisions have to be based on what makes -the most profit for stockholders. - -00:07:01.240 --> 00:07:06.550 -A benefit corporation, sometimes known as -a B-corp, focuses on social good. - -00:07:06.550 --> 00:07:11.300 -Patagonia, Ben & Jerry’s, TOMS, and The -Honest Company follow this path! - -00:07:11.300 --> 00:07:15.990 -Like any corporation, B-corps give you lots -of protection with limited liability. - -00:07:15.990 --> 00:07:20.680 -And maybe more importantly, this structure -empowers and protects you to make a difference - -00:07:20.680 --> 00:07:22.280 -and a profit. - -00:07:22.280 --> 00:07:26.360 -B-corps are designed to let the CEO -- the -person in charge of the business who may or - -00:07:26.360 --> 00:07:30.340 -may not be an owner -- make decisions for -social good. - -00:07:30.340 --> 00:07:35.330 -Even if those decisions are a little less -profitable, the CEO won’t get in trouble - -00:07:35.330 --> 00:07:36.400 -with stockholders. - -00:07:36.400 --> 00:07:39.840 -The funding and structure is similar to a -C-corp. - -00:07:39.840 --> 00:07:44.920 -But you can also look for impact investing --- people investing money to create a specific - -00:07:44.920 --> 00:07:47.240 -social or environmental benefit. - -00:07:47.240 --> 00:07:52.180 -It’s still really expensive to incorporate, -and B-corps are taxed the same as C-corps. - -00:07:52.180 --> 00:07:58.630 -Plus, to make sure you’re doing social good, -you have to create even more reports for transparency. - -00:07:58.630 --> 00:08:01.560 -Get ready for mountains of paperwork! - -00:08:01.560 --> 00:08:06.790 -A limited liability company, or LLC, is sort -of a corporation-partnership hybrid. - -00:08:06.790 --> 00:08:08.889 -LLCs can have one or more owners. - -00:08:08.889 --> 00:08:11.660 -Complexly is an LLC! - -00:08:11.660 --> 00:08:15.010 -It’s literally in the name: you have limited -liability. - -00:08:15.010 --> 00:08:20.580 -Plus, you can still choose to become a corporation -later if you want -- that path is still open. - -00:08:20.580 --> 00:08:24.650 -Many startups begin with an LLC because of -the protection and flexibility it has. - -00:08:24.650 --> 00:08:27.640 -In fact, this might help you attract investors. - -00:08:27.640 --> 00:08:32.440 -LLC stock is privately owned, so being able -to transform into a corporation and eventually - -00:08:32.440 --> 00:08:35.530 -sell stock to the public might draw in the -financiers. - -00:08:35.530 --> 00:08:40.479 -And like a partnership, you have pass-through -status for taxes, which can be nice, but you - -00:08:40.479 --> 00:08:44.920 -still pay self-employment taxes. - -00:08:44.920 --> 00:08:49.890 -One risk of choosing this path is when an -owner joins or leaves an LLC, you might be - -00:08:49.890 --> 00:08:51.610 -forced to reform. - -00:08:51.610 --> 00:08:55.860 -But you can also create a legal agreement -within an LLC to cover ownership transfers. - -00:08:55.860 --> 00:09:00.940 -A cooperative, or co-op, is a business owned -by the people using it -- like REI or a farming - -00:09:00.940 --> 00:09:01.940 -co-op. - -00:09:01.940 --> 00:09:07.210 -An elected board of directors runs the co-op, -while every stockholder-slash-owner can vote - -00:09:07.210 --> 00:09:09.110 -on the overall direction. - -00:09:09.110 --> 00:09:11.200 -So stockholders have a real voice! - -00:09:11.200 --> 00:09:15.710 -The main problem is that the wheels of democracy -turn slowly. - -00:09:15.710 --> 00:09:20.570 -Stockholders vote on all decisions, which -means that responses to market changes are - -00:09:20.570 --> 00:09:21.570 -slower. - -00:09:21.570 --> 00:09:25.900 -But in the spirit of equality, each owner -gets precisely one vote and enjoys limited - -00:09:25.900 --> 00:09:26.900 -liability. - -00:09:26.900 --> 00:09:32.700 -You can generate money for a co-op by selling -stocks, and any profits are distributed among - -00:09:32.700 --> 00:09:33.700 -the stockholders. - -00:09:33.700 --> 00:09:35.980 -But you might have a hard time getting outside -investment. - -00:09:35.980 --> 00:09:40.330 -Traditional banks aren’t super excited about -lending to businesses where their money won’t - -00:09:40.330 --> 00:09:43.700 -be guaranteed by one or a few specific owners. - -00:09:43.700 --> 00:09:48.730 -And, like a corporation, co-ops have the “double -taxation” treatment for stockholders. - -00:09:48.730 --> 00:09:56.580 -And finally [at long last], a nonprofit corporation -is created to do charity, education, religious, - -00:09:56.580 --> 00:10:00.970 -literary, or scientific work that isn’t -taxed. - -00:10:00.970 --> 00:10:04.620 -Nonprofits include Amnesty International, -Better Business Bureau, or the Foundation - -00:10:04.620 --> 00:10:06.180 -to Decrease World Suck. - -00:10:06.180 --> 00:10:08.810 -If you choose this path, your work benefits -the public. - -00:10:08.810 --> 00:10:14.470 -So nonprofits have tons of paperwork and record-keeping, -operational processes, and must submit an - -00:10:14.470 --> 00:10:17.990 -annual report on their activities to the government, -similar to a C-corp. - -00:10:17.990 --> 00:10:21.970 -Also, owners are well-protected and have limited -liability. - -00:10:21.970 --> 00:10:26.520 -After jumping through some hoops with the -IRS, the government will grant you tax-exempt - -00:10:26.520 --> 00:10:31.310 -status, meaning you don’t pay state or federal -taxes on any profits. - -00:10:31.310 --> 00:10:35.661 -And there are strict rules on what to do with -any profits you earn -- like, you can't distribute - -00:10:35.661 --> 00:10:38.070 -them to stockholders or political campaigns. - -00:10:38.070 --> 00:10:42.529 -As for funding, nonprofits are often eligible -for grants -- or money given by a government - -00:10:42.529 --> 00:10:45.340 -or organization for a specific project. - -00:10:45.340 --> 00:10:49.380 -Other people and corporations can also just -give you money so that they can write it off - -00:10:49.380 --> 00:10:50.700 -on their taxes. - -00:10:50.700 --> 00:10:54.000 -And out of the goodness of their hearts, of -course. - -00:10:54.000 --> 00:10:55.000 -Phew. - -00:10:55.000 --> 00:10:56.000 -Got all that? - -00:10:56.000 --> 00:10:58.780 -We made a handy chart for you too, just in -case! - -00:10:58.780 --> 00:11:02.730 -By choosing our business structure, we’re -also thinking about who we want to work with, - -00:11:02.730 --> 00:11:04.490 -and what future we see for our business. - -00:11:04.490 --> 00:11:06.520 -Let’s go to the Thought Bubble. - -00:11:06.520 --> 00:11:10.400 -You do a lot of tutoring online using free -video chat software. - -00:11:10.400 --> 00:11:14.779 -But you notice a gap in the market and want -to develop a long-distance tutoring business - -00:11:14.779 --> 00:11:16.560 -and potentially a new app. - -00:11:16.560 --> 00:11:20.460 -You decide against a business partner, because -you don’t want to share decision-making - -00:11:20.460 --> 00:11:25.080 -or profits with anyone, and you couldn’t -find a co-founder with skills that complement - -00:11:25.080 --> 00:11:26.080 -yours. - -00:11:26.080 --> 00:11:30.320 -But you can’t handle all this tutoring yourself, -so you plan to hire employees! - -00:11:30.320 --> 00:11:34.340 -You dig into the legal requirements for how -to pay them, and find some software to help - -00:11:34.340 --> 00:11:37.029 -you manage payroll, taxes, and more. - -00:11:37.029 --> 00:11:41.790 -It’s starting to look like a REAL business, -so it’s time to choose your own adventure. - -00:11:41.790 --> 00:11:44.220 -You might start out as a sole proprietorship. - -00:11:44.220 --> 00:11:48.650 -It’s just you and one employee, and you’re -not sure this is a super long-term endeavor. - -00:11:48.650 --> 00:11:52.280 -After a couple years, though, you decide to -become an LLC. - -00:11:52.280 --> 00:11:57.339 -You’re great at what you do, but some clients -get mean when their grades don’t skyrocket - -00:11:57.339 --> 00:12:00.960 --- so you need protection from personal liability. - -00:12:00.960 --> 00:12:03.690 -And then… you’re at a crossroads. - -00:12:03.690 --> 00:12:07.880 -The future looks promising for generating -a tutoring app, but you’re having trouble - -00:12:07.880 --> 00:12:09.240 -getting investors. - -00:12:09.240 --> 00:12:13.720 -So you can stick with an LLC or try to transform -into a C-corp. - -00:12:13.720 --> 00:12:18.440 -Maybe you decide to stay an LLC, but you get -an unlucky dice roll while generating your - -00:12:18.440 --> 00:12:19.440 -app. - -00:12:19.440 --> 00:12:23.380 -You spread yourself too thin, and eventually -you can’t support all your tutors and developers. - -00:12:23.380 --> 00:12:26.910 -You eventually decide to cut your losses and -call it quits. - -00:12:26.910 --> 00:12:27.940 -You had a good run! - -00:12:27.940 --> 00:12:33.210 -Or maybe you decide to put in a lot of work -and incorporate, and luckily hit the jackpot: - -00:12:33.210 --> 00:12:36.870 -as your app grows, venture capitalists are -clamoring to invest. - -00:12:36.870 --> 00:12:42.529 -You’re quickly becoming the premier tutoring -organization in the U.S. and this business - -00:12:42.529 --> 00:12:43.899 -might outlive you. - -00:12:43.899 --> 00:12:45.210 -Thanks Thought Bubble! - -00:12:45.210 --> 00:12:50.790 -There really is no “best” structure because -every business is different, your path might - -00:12:50.790 --> 00:12:56.410 -change over time, and success involves grit, -determination, AND luck. - -00:12:56.410 --> 00:13:01.990 -We recommend talking to a trustworthy attorney -or tax accountant for specific and nuanced - -00:13:01.990 --> 00:13:06.210 -advice, since they’ll know your business -idea inside and out. - -00:13:06.210 --> 00:13:09.880 -Once we’ve chosen a legal structure, we -still have to say “what’s up?” to the - -00:13:09.880 --> 00:13:12.240 -government so they know we exist. - -00:13:12.240 --> 00:13:13.870 -And this means… paperwork. - -00:13:13.870 --> 00:13:15.760 -Let’s start with the feds. - -00:13:15.760 --> 00:13:20.300 -In the U.S., you need an Employer Identification -Number from the federal government, which - -00:13:20.300 --> 00:13:22.980 -will help you with taxes and getting a bank -account. - -00:13:22.980 --> 00:13:27.170 -If you open a branch of your business in the -Scottish Highlands or the Bolivian Salt Flats, - -00:13:27.170 --> 00:13:29.940 -you’ll need to look at what those countries -require. - -00:13:29.940 --> 00:13:33.800 -Next, register your business through your -Secretary of State’s website. - -00:13:33.800 --> 00:13:37.980 -There are often small filing fees, and if -that’s a barrier, try to find an advocate - -00:13:37.980 --> 00:13:44.010 -at a local Small Business Development Center, -bank, or your state’s Department of Commerce. - -00:13:44.010 --> 00:13:47.340 -Someone may know someone who knows a program -to get your fee waived. - -00:13:47.340 --> 00:13:49.110 -It never hurts to ask! - -00:13:49.110 --> 00:13:50.800 -The worst they can say is no, go away! - -00:13:50.800 --> 00:13:53.480 -Then, check in with your local government. - -00:13:53.480 --> 00:13:58.200 -Are there requirements to doing business in -your city, like a business license you need - -00:13:58.200 --> 00:13:59.200 -to get? - -00:13:59.200 --> 00:14:02.580 -And finally, it’s never too early to start -thinking about taxes! - -00:14:02.580 --> 00:14:05.760 -Review the requirements for your state and -federal tax reporting. - -00:14:05.760 --> 00:14:11.140 -You could use an accountant or DIY software -like TurboTax -- depending on your needs. - -00:14:11.140 --> 00:14:12.140 -Make a plan. - -00:14:12.140 --> 00:14:13.470 -Stick to the plan. - -00:14:13.470 --> 00:14:15.390 -File your taxes. - -00:14:15.390 --> 00:14:20.700 -So the bottom line is: registering your business -is a big decision, but an exciting one, because - -00:14:20.700 --> 00:14:22.570 -you get to define your own path. - -00:14:22.570 --> 00:14:25.630 -Where do you see your business going in 5 -years? - -00:14:25.630 --> 00:14:27.530 -What does success look like? - -00:14:27.530 --> 00:14:29.700 -What infrastructure will you need? - -00:14:29.700 --> 00:14:31.010 -It’s up to you. - -00:14:31.010 --> 00:14:35.000 -Next time, we’ll talk about how to get feedback -before launching our business, and what to - -00:14:35.000 --> 00:14:36.930 -do if our idea is falling flat. - -00:14:36.930 --> 00:14:40.740 -Thanks for watching Crash Course Business -which is sponsored by Google. - -00:14:40.740 --> 00:14:42.660 -And thank you to Thought Cafe for the graphics. - -00:14:42.660 --> 00:14:46.760 -If you want to help keep Crash Course free -for everybody, forever, you can join our community - -00:14:46.770 --> 00:14:47.770 -on Patreon. - -00:14:47.770 --> 00:14:51.459 -And if you want to learn more about how the -U.S. government regulates the economy, check - -00:14:51.460 --> 00:14:52.400 -out this video - diff --git "a/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/Natural Language Processing - Crash Course AI #7-oi0JXuL19TA.en.vtt" "b/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/Natural Language Processing - Crash Course AI #7-oi0JXuL19TA.en.vtt" deleted file mode 100644 index a49afa9..0000000 --- "a/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/Natural Language Processing - Crash Course AI #7-oi0JXuL19TA.en.vtt" +++ /dev/null @@ -1,755 +0,0 @@ -WEBVTT -Kind: captions -Language: en - -00:00:00.180 --> 00:00:03.760 -Thanks to Curiosity Stream for supporting -PBS Digital Studios. - -00:00:03.760 --> 00:00:08.020 -Hey, I’m Jabril and welcome to Crash Course AI! - -00:00:08.020 --> 00:00:10.820 -Language is one of the most impressive things -humans do. - -00:00:10.820 --> 00:00:15.200 -It’s how I’m transferring knowledge from -my brain to yours right this second! - -00:00:15.200 --> 00:00:19.670 -Languages come in many shapes and sizes, they -can be spoken or written, and are made up - -00:00:19.670 --> 00:00:26.490 -of different components like sentences, words, -and characters that vary across cultures. - -00:00:26.490 --> 00:00:33.230 -For instance, English has 26 letters and Chinese -has tens-of-thousands of characters. - -00:00:33.230 --> 00:00:37.060 -So far, a lot of the problems we’ve been -solving with AI and machine learning technologies - -00:00:37.060 --> 00:00:43.030 -have involved processing images, but the most -common way that most of us interact with computers - -00:00:43.030 --> 00:00:44.260 -is through language. - -00:00:44.260 --> 00:00:49.110 -We type questions into search engines, we -talk to our smartphones to set alarms, and - -00:00:49.110 --> 00:00:53.559 -sometimes we even get a little help with our -Spanish homework from Google Translate. - -00:00:53.560 --> 00:00:58.480 -So today, we’re going to explore the field -of Natural Language Processing. - -00:00:58.480 --> 00:01:07.380 -INTRO - -00:01:07.380 --> 00:01:13.120 -Natural Language Processing, or NLP, mainly -explores two big ideas. - -00:01:13.120 --> 00:01:18.040 -First, there’s Natural Language Understanding, -or how we get meaning out of combinations - -00:01:18.040 --> 00:01:19.270 -of letters. - -00:01:19.270 --> 00:01:23.520 -These are AI that filter your spam emails, -figure out if that Amazon search for “apple” - -00:01:23.520 --> 00:01:28.400 -was grocery or computer shopping, or instruct -your self-driving car how to get to a friend’s - -00:01:28.400 --> 00:01:29.400 -house. - -00:01:29.400 --> 00:01:34.810 -And second, there’s Natural Language Generation, -or how to generate language from knowledge. - -00:01:34.810 --> 00:01:39.439 -These are AI that perform translations, summarize -documents, or chat with you. - -00:01:39.439 --> 00:01:44.729 -The key to both problems is understanding -the meaning of a word, which is tricky because - -00:01:44.729 --> 00:01:46.950 -words have no meaning on their own. - -00:01:46.950 --> 00:01:49.299 -We assign meaning to symbols. - -00:01:49.299 --> 00:01:54.720 -To make things even harder, in many cases, -language can be ambiguous and the meaning - -00:01:54.720 --> 00:01:57.799 -of a word depends on the context it’s used -in - -00:01:57.799 --> 00:02:02.939 -If I tell you to meet me at the bank, without -any context, I could mean the river bank or - -00:02:02.939 --> 00:02:04.930 -the place where I’m grabbing some cash. - -00:02:04.930 --> 00:02:10.220 -If I say “This fridge is great!”, that’s -a totally different meaning from “This fridge - -00:02:10.220 --> 00:02:14.079 -was *great*, it lasted a whole week before -breaking.” - -00:02:14.079 --> 00:02:17.430 -So, how did we learn to attach meaning to -sounds? - -00:02:17.430 --> 00:02:22.099 -How do we know great [enthusiastic] means -something different from great [sarcastic]? - -00:02:22.099 --> 00:02:25.999 -Well, even though there’s nothing inherent -in the word “cat” that tells us it’s - -00:02:25.999 --> 00:02:31.150 -soft, purrs, and chases mice… when we were -kids, someone probably told us “this is - -00:02:31.150 --> 00:02:32.319 -a cat.” - -00:02:32.320 --> 00:02:35.780 -Or a gato, māo, billee, qut. - -00:02:35.780 --> 00:02:40.239 -When we’re solving a natural language processing -problem, whether it’s natural language understanding - -00:02:40.239 --> 00:02:44.969 -or natural language generation, we have to -think about how our AI is going to learn the - -00:02:44.969 --> 00:02:48.660 -meaning of words and understand our potential -mistakes. - -00:02:48.660 --> 00:02:52.799 -Sometimes we can compare words by looking -at the letters they share. - -00:02:52.799 --> 00:02:55.719 -This works well if a word has morphology. - -00:02:55.719 --> 00:03:00.959 -Take the root word “swim” for example.We -can modify it with rules so if someone’s - -00:03:00.959 --> 00:03:07.120 -doing it right now, they’re swimming, or -the person doing the action is the swimmer. - -00:03:07.120 --> 00:03:11.120 -Drinking, drinker, thinking, thinker, … you -get the idea. - -00:03:11.120 --> 00:03:17.069 -But we can’t use morphology for all words, -like how knowing that a van is a vehicle doesn’t - -00:03:17.069 --> 00:03:19.900 -let us know that a vandal smashed in a car -window. - -00:03:19.900 --> 00:03:24.799 -Many words that are really similar, like cat -and car, are completely unrelated. - -00:03:24.800 --> 00:03:30.209 -And on the other hand, cat and Felidae (the word for the scientific family of cats) mean very - -00:03:30.209 --> 00:03:33.019 -similar things and only share one letter! - -00:03:33.019 --> 00:03:38.239 -One common way to guess that words have similar -meaning is using distributional semantics, - -00:03:38.239 --> 00:03:41.430 -or seeing which words appear in the same sentences -a lot. - -00:03:41.430 --> 00:03:47.299 -This is one of many cases where NLP relies -on insights from the field of linguistics. - -00:03:47.299 --> 00:03:52.469 -As the linguist John Firth once said, “You -shall know a word by the company it keeps.” - -00:03:52.469 --> 00:03:57.269 -But to make computers understand distributional -semantics, we have to express the concept - -00:03:57.269 --> 00:03:58.269 -in math. - -00:03:58.269 --> 00:04:01.290 -One simple technique is to use count vectors. - -00:04:01.290 --> 00:04:06.389 -A count vector is the number of times a word -appears in the same article or sentence as - -00:04:06.389 --> 00:04:08.110 -other common words. - -00:04:08.110 --> 00:04:12.809 -If two words show up in the same sentence, -they probably have pretty similar meanings. - -00:04:12.809 --> 00:04:18.989 -So let’s say we asked an algorithm to compare -three words, car, cat, and Felidae, using - -00:04:18.989 --> 00:04:21.859 -count vectors to guess which ones have similar -meaning. - -00:04:21.859 --> 00:04:26.240 -We could download the beginning of the Wikipedia -pages for each word to see which /other/ words - -00:04:26.240 --> 00:04:27.240 -show up. - -00:04:27.240 --> 00:04:28.300 -Here’s what we got: - -00:04:28.300 --> 00:04:34.919 -And a lot of the top words are all the same: -the, and, of, in. - -00:04:34.919 --> 00:04:40.419 -These are all function words or stop words, -which help define the structure of language, - -00:04:40.419 --> 00:04:42.889 -and help convey precise meaning. - -00:04:42.889 --> 00:04:48.340 -Like how “an apple” means any apple, but -“the apple” specifies one in particular. - -00:04:48.340 --> 00:04:53.639 -But, because they change the meaning of another -word, they don’t have much meaning by themselves, - -00:04:53.639 --> 00:04:58.419 -so we’ll remove them for now, and simplify -plurals and conjugations. - -00:04:58.419 --> 00:05:00.169 -Let’s try it again: - -00:05:00.169 --> 00:05:04.990 -Based on this, it looks like cat and Felidae -mean almost the same thing, because they both - -00:05:04.990 --> 00:05:08.650 -show up with lots of the same words in their -Wikipedia articles! - -00:05:08.650 --> 00:05:11.759 -And neither of them mean the same thing as -car. - -00:05:11.759 --> 00:05:15.210 -But this is also a really simplified example. - -00:05:15.210 --> 00:05:19.349 -One of the problems with count vectors is -that we have to store a LOT of data. - -00:05:19.349 --> 00:05:23.879 -To compare a bunch of words using counts like -this, we’d need a massive list of every - -00:05:23.880 --> 00:05:28.580 -word we’ve ever seen in the same sentence, -and that’s unmanageable. - -00:05:28.580 --> 00:05:33.219 -So, we’d like to learn a representation -for words that captures all the same relationships - -00:05:33.219 --> 00:05:37.789 -and similarities as count vectors but is much -more compact. - -00:05:37.789 --> 00:05:42.610 -In the unsupervised learning episode, we talked -about how to compare images by building representations - -00:05:42.610 --> 00:05:44.290 -of those images. - -00:05:44.290 --> 00:05:49.419 -We needed a model that could build internal -representations and that could generate predictions. - -00:05:49.419 --> 00:05:52.110 -And we can do the same thing for words. - -00:05:52.110 --> 00:05:57.440 -This is called an encoder-decoder model: the -encoder tells us what we should think and - -00:05:57.440 --> 00:05:59.440 -remember about what we just read... - -00:05:59.440 --> 00:06:04.349 -and the decoder uses that thought to decide -what we want to say or do. - -00:06:04.349 --> 00:06:07.370 -We’re going to start with a simple version -of this framework. - -00:06:07.370 --> 00:06:11.449 -Let’s create a little game of fill in the -blank to see what basic pieces we need to - -00:06:11.449 --> 00:06:14.110 -train an unsupervised learning model. - -00:06:14.110 --> 00:06:17.169 -This is a simple task called language modeling. - -00:06:17.169 --> 00:06:18.289 -If I have the sentence: - -00:06:18.289 --> 00:06:22.409 -I’m kinda hungry, I think I’d like some -chocolate _____ . - -00:06:22.409 --> 00:06:25.729 -What are the most likely words that can go -in that spot? - -00:06:25.729 --> 00:06:30.310 -And how might we train a model to encode the -sentence and decode a guess for the blank? - -00:06:30.310 --> 00:06:35.409 -In this example, I can guess the answer might -be “cake” or “milk” but probably not - -00:06:35.409 --> 00:06:40.259 -something like “potatoes,” because I’ve -never heard of “chocolate potatoes” so - -00:06:40.259 --> 00:06:42.840 -they probably don’t exist. - -00:06:42.840 --> 00:06:45.449 -Definitely don’t exist. - -00:06:45.449 --> 00:06:46.620 -That should not be a thing. - -00:06:46.620 --> 00:06:51.980 -The group of words that can fill in that blank is an unsupervised cluster that an AI could use. - -00:06:51.980 --> 00:06:56.940 -So for this sentence, our encoder might only -need to focus on the word chocolate so the - -00:06:56.940 --> 00:07:02.530 -decoder has a cluster of “chocolate food -words” to pull from to fill in the blank. - -00:07:02.530 --> 00:07:04.900 -Now let’s try a harder example: - -00:07:04.900 --> 00:07:09.419 -Dianna, a friend of mine from San Diego who -really loves physics, is having a birthday - -00:07:09.419 --> 00:07:13.800 -party next week, so I want to find a present -for ____. - -00:07:13.800 --> 00:07:18.860 -When I read this sentence, my brain identifies -and remembers two things: First, that we’re - -00:07:18.860 --> 00:07:21.569 -talking about Dianna from 27 words ago! - -00:07:21.569 --> 00:07:25.330 -And second, that my friend Dianna uses the -pronoun “her.” - -00:07:25.330 --> 00:07:29.610 -That means we want our encoder to build a -representation that captures all these pieces - -00:07:29.610 --> 00:07:35.160 -of information from the sentence, so the decoder -can choose the right word for the blank. - -00:07:35.160 --> 00:07:37.140 -And if we keep the sentence going: - -00:07:37.150 --> 00:07:41.560 -Dianna, a friend of mine from San Diego who -really loves physics, is having a birthday - -00:07:41.560 --> 00:07:46.689 -party next week, so I want to find a present -for her that has to do with _____ . - -00:07:46.689 --> 00:07:50.819 -Now, I can remember that Dianna likes physics -from earlier in the sentence. - -00:07:50.819 --> 00:07:55.610 -So we’d like our encoder to remember that -too, so that the decoder can use that information - -00:07:55.610 --> 00:07:56.969 -to guess the answer. - -00:07:56.969 --> 00:08:01.319 -So we can see how the representation the model -builds really has to remember key details - -00:08:01.320 --> 00:08:03.560 -of what we’ve said or heard. - -00:08:03.560 --> 00:08:06.360 -And there’s a limit to how much a model -can remember. - -00:08:06.360 --> 00:08:10.240 -Professor Ray Mooney has famously said that -we’ll “never fit the whole meaning of - -00:08:10.240 --> 00:08:15.169 -a sentence into a single vector” and we -still don’t know if we can. - -00:08:15.169 --> 00:08:19.840 -Professor Mooney may be right, but that doesn’t -mean we can’t make something useful. - -00:08:19.840 --> 00:08:22.930 -So so far we’ve been using words. - -00:08:22.930 --> 00:08:26.219 -But computers don’t work words quite -like this. - -00:08:26.219 --> 00:08:30.029 -So let’s step away from our high level view -of language modeling and try to predict the - -00:08:30.029 --> 00:08:33.520 -next word in a sentence anyway with a neural -network. - -00:08:33.520 --> 00:08:38.780 -To do this, our data will be lots of sentences -we collect from things like someone speaking - -00:08:38.789 --> 00:08:40.560 -or text from books. - -00:08:40.560 --> 00:08:44.740 -Then, for each word in every sentence, we’ll -play a game of fill-in-the-blank. - -00:08:44.740 --> 00:08:49.260 -We’ll train a model to encode up to that -blank and then predict the word that should - -00:08:49.260 --> 00:08:50.360 -go there. - -00:08:50.360 --> 00:08:53.970 -And since we have the whole sentence, we know -the correct answer. - -00:08:53.970 --> 00:08:56.709 -First, we need to define the encoder. - -00:08:56.709 --> 00:09:01.420 -We need a model that can read in the input, -which in this case is a sentence. - -00:09:01.420 --> 00:09:07.620 -To do this, we’ll use a type of neural network -called a Recurrent Neural Network or RNN. - -00:09:07.620 --> 00:09:12.510 -RNNs have a loop in them that lets them reuse -a single hidden layer, which gets updated - -00:09:12.510 --> 00:09:15.089 -as the model reads one word at a time. - -00:09:15.089 --> 00:09:19.470 -Slowly, the model builds up an understanding -of the whole sentence, including which words - -00:09:19.470 --> 00:09:24.230 -came first or last, which words are modifying -other words, and a whole bunch of other grammatical - -00:09:24.230 --> 00:09:26.320 -properties that are linked to meaning. - -00:09:26.320 --> 00:09:29.940 -Now, we can’t just directly put words inside -a network. - -00:09:29.940 --> 00:09:33.930 -But we also don’t have features we can easily -measure and give the model either. - -00:09:33.930 --> 00:09:37.899 -Unlike images, we can’t even measure pixel -values. - -00:09:37.899 --> 00:09:41.910 -So we’re going to ask the model to learn -the right representation for a word on its - -00:09:41.910 --> 00:09:45.200 -own (this is where the unsupervised learning -comes in). - -00:09:45.200 --> 00:09:49.840 -To do this, we’ll start off by assigning -each word a random representation -- in this - -00:09:49.840 --> 00:09:53.449 -case a random list of numbers called a vector. - -00:09:53.449 --> 00:09:58.100 -Next, our encoder will take in each of those -representations and combine them into a single - -00:09:58.100 --> 00:10:01.329 -/shared/ representation for the whole sentence. - -00:10:01.329 --> 00:10:06.160 -At this point, our representation might be -gibberish, but in order to train the RNN, - -00:10:06.160 --> 00:10:08.060 -we need it to make predictions. - -00:10:08.060 --> 00:10:13.509 -For this particular problem, we’ll consider -a very simple decoder, a single layer network - -00:10:13.509 --> 00:10:18.029 -that takes in the sentence representation -vector, and then outputs a score for every - -00:10:18.029 --> 00:10:20.570 -possible word in our vocabulary. - -00:10:20.570 --> 00:10:24.460 -We can then interpret the highest scored word -as our model’s prediction. - -00:10:24.460 --> 00:10:29.190 -Then, we can use backpropagation to train -the RNN, like we’ve done before with neural - -00:10:29.190 --> 00:10:30.910 -networks in Crash Course AI. - -00:10:30.910 --> 00:10:35.459 -So by training the model on which word to -predict next, the model learn weights for - -00:10:35.459 --> 00:10:38.610 -the encoder RNN and the decoder prediction -layer. - -00:10:38.610 --> 00:10:43.510 -Plus, the model changes those random representations -we gave every word at the beginning. - -00:10:43.510 --> 00:10:48.210 -Specifically, if two words mean something -similar, the model makes their vectors more - -00:10:48.210 --> 00:10:49.210 -similar. - -00:10:49.210 --> 00:10:53.870 -Using the vectors to help make a plot, we -can actually visualize word representations. - -00:10:53.870 --> 00:10:59.060 -For example, earlier we talked about chocolate -and physics, so let’s look at some word - -00:10:59.060 --> 00:11:02.000 -representations that researchers at Google -trained. - -00:11:02.000 --> 00:11:06.160 -Near “chocolate,” we have lots of foods -like cocoa and candy: - -00:11:06.160 --> 00:11:11.580 -By comparison, words with similar representations -to “physics” are newton and universe. - -00:11:11.580 --> 00:11:16.510 -This whole process has used unsupervised learning, -and it’s given us a basic way to learn some - -00:11:16.510 --> 00:11:20.990 -pretty interesting linguistic representations -and word clusters. - -00:11:20.990 --> 00:11:25.699 -But taking in part of a sentence and predicting -the next word is just the tip of the iceberg - -00:11:25.699 --> 00:11:26.790 -for NLP. - -00:11:26.790 --> 00:11:31.540 -If our model took in English and produced -Spanish, we’d have a translation system. - -00:11:31.540 --> 00:11:37.310 -Or our model could read questions and produce answers, like Siri or Alexa try to do. - -00:11:37.310 --> 00:11:42.800 -Or our model could convert instructions into -actions to control a household robot … Hey - -00:11:42.800 --> 00:11:48.570 -John Green Bot? - -00:11:48.570 --> 00:11:50.680 -Just kidding you’re your own robot. - -00:11:50.680 --> 00:11:52.029 -Nobody controls you. - -00:11:52.029 --> 00:11:56.600 -But the representations of words that our -model learns for one kind of task might not - -00:11:56.600 --> 00:11:57.870 -work for others. - -00:11:57.870 --> 00:12:03.270 -Like, for example, if we trained John-Green-bot -based on reading a bunch of cooking recipes, - -00:12:03.270 --> 00:12:07.270 -he might learn that roses are made of icing -and placed on cakes. - -00:12:07.270 --> 00:12:11.390 -But he won’t learn that cake roses are different -from real roses that have thorns and make - -00:12:11.390 --> 00:12:12.649 -a pretty bouquet. - -00:12:12.649 --> 00:12:17.440 -Acquiring, encoding, and using written or -spoken knowledge to help people is a huge - -00:12:17.440 --> 00:12:21.810 -and exciting task, because we use language -for so many things! - -00:12:21.810 --> 00:12:26.870 -Every time you type or talk to a computer, -phone or other gadget, NLP is there. - -00:12:26.870 --> 00:12:31.160 -Now that we understand the basics, next week -we’ll dive in and build a language model - -00:12:31.160 --> 00:12:35.560 -together in our second lab! See you then. - -00:12:35.560 --> 00:12:39.500 -Thank you to CuriosityStream for supporting PBS Digital Studios. - -00:12:39.500 --> 00:12:44.380 -CuriosityStream is a subscription streaming -service that offers documentaries and non¬fiction - -00:12:44.380 --> 00:12:49.560 -titles from a variety of filmmakers, including -CuriosityStream originals. - -00:12:49.560 --> 00:12:54.709 -For example, you can stream Dream the Future -in which host Sigourney Weaver asks the question, - -00:12:54.709 --> 00:12:59.370 -“What will the future look like?” as she -examines how new discoveries and research - -00:12:59.370 --> 00:13:02.769 -will impact our everyday lives in the year -2050. - -00:13:02.769 --> 00:13:06.630 -You can learn more at curiositystream.com/crashcourse - -00:13:06.630 --> 00:13:08.690 -Or click the link in the description. - -00:13:08.690 --> 00:13:12.390 -Crash Course Ai is produced in association -with PBS Digital Studios! - -00:13:12.390 --> 00:13:17.029 -If you want to help keep Crash Course free -for everyone, forever, you can join our community - -00:13:17.029 --> 00:13:18.740 -on Patreon. - -00:13:18.740 --> 00:13:23.000 -And if you want to learn more about how human -brains process language, check out this episode - -00:13:23.000 --> 00:13:25.540 -of Crash Course Psychology. - diff --git "a/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/README.MD" "b/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/README.MD" deleted file mode 100644 index 1fe2fd4..0000000 --- "a/app/test file/\346\265\213\350\257\225 VTT \346\240\274\345\274\217/README.MD" +++ /dev/null @@ -1,5 +0,0 @@ -## 关于 VTT -这里的 vtt 格式字幕都是通过 youtube-dl 下载下来的 -``` -youtube-dl https://www.youtube.com/watch?v=1-xiSOvgNvw&t=6s --skip-download --sub-format vtt --write-sub -``` \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/01 Auto-tracing in Illustrator.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/01 Auto-tracing in Illustrator.srt" deleted file mode 100755 index 6aa7c41..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/01 Auto-tracing in Illustrator.srt" +++ /dev/null @@ -1,127 +0,0 @@ -1 -00:00:00,080 --> 00:00:02,040 -- We're going to start things off with one of my - -2 -00:00:02,040 --> 00:00:04,070 -favorite features in Illustrator which goes - -3 -00:00:04,070 --> 00:00:07,040 -by the unassuming name Image Trace. - -4 -00:00:07,040 --> 00:00:10,010 -Among other things, it can trace scanned line art. - -5 -00:00:10,010 --> 00:00:11,060 -Meaning that you can take something - -6 -00:00:11,060 --> 00:00:13,040 -made with traditional tools, - -7 -00:00:13,040 --> 00:00:15,050 -things like pens and pieces of paper, - -8 -00:00:15,050 --> 00:00:17,050 -and then scan or photograph it, - -9 -00:00:17,050 --> 00:00:20,080 -and convert it to vectors inside illustrator. - -10 -00:00:20,080 --> 00:00:23,060 -In this chapter, I'll walk you through three scenarios. - -11 -00:00:23,060 --> 00:00:25,050 -We'll start with this pen and ink portrait - -12 -00:00:25,050 --> 00:00:29,030 -that I drew for a local newspaper article back in 1986, - -13 -00:00:29,030 --> 00:00:32,000 -a year before Illustrator started shipping. - -14 -00:00:32,000 --> 00:00:34,000 -Not only does this prove that something very - -15 -00:00:34,000 --> 00:00:37,020 -old can be come very new in a matter of minutes, - -16 -00:00:37,020 --> 00:00:39,070 -but it also means that you can start with conventional - -17 -00:00:39,070 --> 00:00:42,010 -tools, and end with technically impeccable - -18 -00:00:42,010 --> 00:00:45,030 -vector-based path outlines that you can refine, - -19 -00:00:45,030 --> 00:00:47,040 -and later scale to any size. - -20 -00:00:47,040 --> 00:00:49,090 -Near the end I'll show you how to trace a casual, - -21 -00:00:49,090 --> 00:00:53,010 -if preposterous, pencil sketch with open pass - -22 -00:00:53,010 --> 00:00:55,020 -and uniformly weighted strokes. - -23 -00:00:55,020 --> 00:00:57,070 -Then we'll wrap things up by tracing one of the most - -24 -00:00:57,070 --> 00:00:59,080 -famous line drawings of all time, - -25 -00:00:59,080 --> 00:01:03,020 -Albrecht Durer's 16th century Rhinoceros. - -26 -00:01:03,020 --> 00:01:05,070 -The finished result is a combination of fills - -27 -00:01:05,070 --> 00:01:09,000 -and strokes that demonstrates in high resolution - -28 -00:01:09,000 --> 00:01:12,020 -detail why Durer's is in fact the original - -29 -00:01:12,020 --> 00:01:14,020 -preposterous rhinoceros. - -30 -00:01:14,020 --> 00:01:17,080 -Crazy classical artwork meets Space Age drawing program, - -31 -00:01:17,080 --> 00:01:20,070 -that's how we get the party started in the far-flung, - -32 -00:01:20,070 --> 00:01:24,080 -futuristic world of Illustrator One-on-One: Advanced. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/02 Opening an image to embed it.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/02 Opening an image to embed it.srt" deleted file mode 100755 index 9e8affa..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/02 Opening an image to embed it.srt" +++ /dev/null @@ -1,471 +0,0 @@ -1 -00:00:00,000 --> 00:00:01,070 -- [Voiceover] Alright there's two ways to bring - -2 -00:00:01,070 --> 00:00:03,040 -pixel based images into Illustrator. - -3 -00:00:03,040 --> 00:00:04,070 -One is the open command, - -4 -00:00:04,070 --> 00:00:06,040 -which we'll be looking at in this movie, - -5 -00:00:06,040 --> 00:00:08,000 -and the other is the place command, - -6 -00:00:08,000 --> 00:00:10,040 -which I'll show you in the next movie. - -7 -00:00:10,040 --> 00:00:12,060 -So, here I am looking at a scanned image - -8 -00:00:12,060 --> 00:00:15,010 -inside Photoshop, by the way. - -9 -00:00:15,010 --> 00:00:16,040 -Just so we can inspect it. - -10 -00:00:16,040 --> 00:00:19,080 -And I drew this cartoon just years and years and years ago - -11 -00:00:19,080 --> 00:00:23,030 -using a rapidograph filled with black ink - -12 -00:00:23,030 --> 00:00:25,090 -on a piece of white bond paper. - -13 -00:00:25,090 --> 00:00:28,030 -So the original piece of artwork looks absolutely black - -14 -00:00:28,030 --> 00:00:30,000 -against a white background. - -15 -00:00:30,000 --> 00:00:32,090 -But I scanned it using a consumer grade office scanner, - -16 -00:00:32,090 --> 00:00:35,040 -so it's looking gray on gray. - -17 -00:00:35,040 --> 00:00:37,050 -And if we were to expect the image a little bit, - -18 -00:00:37,050 --> 00:00:39,050 -you will see a few things wrong with it. - -19 -00:00:39,050 --> 00:00:42,020 -Notice that we've got some gunk right here - -20 -00:00:42,020 --> 00:00:44,000 -that must have been on the scanner glass. - -21 -00:00:44,000 --> 00:00:46,020 -We've got color artifacting - -22 -00:00:46,020 --> 00:00:49,020 -these purple edges and green edges around the lines. - -23 -00:00:49,020 --> 00:00:52,020 -And then if you scroll down here to the bottom, - -24 -00:00:52,020 --> 00:00:54,070 -you'll see that we have a water stain. - -25 -00:00:54,070 --> 00:00:57,070 -You can see the edge of the paper, and so forth. - -26 -00:00:57,070 --> 00:01:00,000 -But the good news is that Illustrator is capable - -27 -00:01:00,000 --> 00:01:02,090 -of filtering out all of this extra information - -28 -00:01:02,090 --> 00:01:05,090 -so that we can hone in just on the line art. - -29 -00:01:05,090 --> 00:01:08,030 -Alright so I'll go ahead and switch over to Illustrator - -30 -00:01:08,030 --> 00:01:11,060 -and because nothing's open, I'm seeing the start screen. - -31 -00:01:11,060 --> 00:01:13,030 -I'm not a big fan of this screen - -32 -00:01:13,030 --> 00:01:16,030 -and if you aren't either, and you wanna turn it off, - -33 -00:01:16,030 --> 00:01:18,070 -then you can press control k here on a PC, - -34 -00:01:18,070 --> 00:01:20,020 -or command k on a Mac - -35 -00:01:20,020 --> 00:01:23,010 -to bring up the general pane of the preferences dialogue box - -36 -00:01:23,010 --> 00:01:25,000 -and then just go ahead and turn off - -37 -00:01:25,000 --> 00:01:27,040 -this check box right there show start workspace - -38 -00:01:27,040 --> 00:01:30,010 -when no documents are open, and click okay. - -39 -00:01:30,010 --> 00:01:32,000 -And all that stuff will go away. - -40 -00:01:32,000 --> 00:01:34,000 -Alright so method number one - -41 -00:01:34,000 --> 00:01:36,010 -for getting the image into Illustrator - -42 -00:01:36,010 --> 00:01:39,010 -is to go up to the file menu and choose the open command. - -43 -00:01:39,010 --> 00:01:41,000 -Or of course you have that keyboard shortcut - -44 -00:01:41,000 --> 00:01:43,020 -of control o, or command o on the Mac. - -45 -00:01:43,020 --> 00:01:45,080 -And then I'll just go ahead and locate that scanned image, - -46 -00:01:45,080 --> 00:01:49,000 -and click the open button in order to open it - -47 -00:01:49,000 --> 00:01:51,090 -inside of a new illustration. - -48 -00:01:51,090 --> 00:01:53,070 -And I notice the art board is a little bit larger - -49 -00:01:53,070 --> 00:01:55,020 -than the image itself. - -50 -00:01:55,020 --> 00:01:56,090 -It could end up being smaller. - -51 -00:01:56,090 --> 00:02:00,080 -It's just a function of the fact that this is an RGB image, - -52 -00:02:00,080 --> 00:02:03,090 -and so Illustrator went ahead and put it inside - -53 -00:02:03,090 --> 00:02:06,090 -of a default basic RGB document. - -54 -00:02:06,090 --> 00:02:09,070 -If you want the art board to be the same size as the image, - -55 -00:02:09,070 --> 00:02:11,070 -then go ahead and click on it to select it. - -56 -00:02:11,070 --> 00:02:13,060 -Make sure under the view menu - -57 -00:02:13,060 --> 00:02:15,040 -that your smart guides are turned on. - -58 -00:02:15,040 --> 00:02:17,060 -And then, switch to the art board tool, - -59 -00:02:17,060 --> 00:02:19,060 -which you can get by pressing shift o, - -60 -00:02:19,060 --> 00:02:21,080 -and I'll go ahead and press control zero, - -61 -00:02:21,080 --> 00:02:24,030 -or command zero on the Mac, to zoom out just a little bit - -62 -00:02:24,030 --> 00:02:26,040 -and I'll drag the upper left corner of the art board - -63 -00:02:26,040 --> 00:02:28,060 -until it snaps into alignment with the image, - -64 -00:02:28,060 --> 00:02:30,030 -and then I'll do the same thing - -65 -00:02:30,030 --> 00:02:32,020 -with the bottom left corner of the art board, - -66 -00:02:32,020 --> 00:02:34,000 -and then I'll press the escape key - -67 -00:02:34,000 --> 00:02:36,080 -in order to return control to the black arrow tool. - -68 -00:02:36,080 --> 00:02:39,010 -Alright I'll also go ahead and press control zero, - -69 -00:02:39,010 --> 00:02:40,080 -or command zero on a Mac, to zoom in. - -70 -00:02:40,080 --> 00:02:43,030 -Now notice the image is still selected, - -71 -00:02:43,030 --> 00:02:45,070 -and Illustrator is identifying it over here - -72 -00:02:45,070 --> 00:02:48,090 -on the far left side of the control panel as an image. - -73 -00:02:48,090 --> 00:02:51,030 -And if you like you can click on the word image - -74 -00:02:51,030 --> 00:02:52,090 -to see the file name. - -75 -00:02:52,090 --> 00:02:54,090 -You'll also have the file name listed right here, - -76 -00:02:54,090 --> 00:02:56,060 -and notice it's telling me the entire path - -77 -00:02:56,060 --> 00:02:59,010 -so it's aware that at one time, - -78 -00:02:59,010 --> 00:03:02,040 -this is the file that I placed inside the document. - -79 -00:03:02,040 --> 00:03:05,070 -The thing is, there's no link between that file - -80 -00:03:05,070 --> 00:03:08,040 -and this document as things stand now, - -81 -00:03:08,040 --> 00:03:11,020 -and that's because Illustrator has gone ahead - -82 -00:03:11,020 --> 00:03:12,070 -and embedded the image. - -83 -00:03:12,070 --> 00:03:15,060 -The image is actually part of the document. - -84 -00:03:15,060 --> 00:03:18,050 -And so for example, if I was to switch back to Photoshop, - -85 -00:03:18,050 --> 00:03:21,050 -go up to the image menu, choose image rotation, - -86 -00:03:21,050 --> 00:03:24,050 -and choose flip canvas horizontal, - -87 -00:03:24,050 --> 00:03:27,000 -in order to flip the image horizontally like so. - -88 -00:03:27,000 --> 00:03:29,090 -And I'll even go up to the file menu and overwrite - -89 -00:03:29,090 --> 00:03:32,040 -the original file by choosing the save command. - -90 -00:03:32,040 --> 00:03:35,000 -Then, when I switch back over to Illustrator, - -91 -00:03:35,000 --> 00:03:36,040 -nothing happens. - -92 -00:03:36,040 --> 00:03:40,010 -And that's because there is no link to that file on disk. - -93 -00:03:40,010 --> 00:03:44,000 -Again what we have instead is an embedded image. - -94 -00:03:44,000 --> 00:03:45,090 -If you wanted to unembed it, - -95 -00:03:45,090 --> 00:03:48,020 -you can click on this unembed button right there. - -96 -00:03:48,020 --> 00:03:51,080 -In order to save this image either as a layered PSD, - -97 -00:03:51,080 --> 00:03:53,070 -which is a native Photoshop document, - -98 -00:03:53,070 --> 00:03:56,060 -or as a TIFF image, either one. - -99 -00:03:56,060 --> 00:03:58,000 -But that's gonna go ahead and create - -100 -00:03:58,000 --> 00:03:59,070 -a new version of this image, - -101 -00:03:59,070 --> 00:04:03,020 -and establish a link to that image file instead. - -102 -00:04:03,020 --> 00:04:05,020 -That's not what I wanna do, however, - -103 -00:04:05,020 --> 00:04:07,010 -so I'll just go ahead and cancel out. - -104 -00:04:07,010 --> 00:04:09,090 -Alright now while this is an easy way to work, - -105 -00:04:09,090 --> 00:04:11,090 -because it just requires the open command, - -106 -00:04:11,090 --> 00:04:14,000 -and it's a totally acceptable way to work. - -107 -00:04:14,000 --> 00:04:15,040 -We could now trace this image - -108 -00:04:15,040 --> 00:04:17,010 -by clicking on the image face button - -109 -00:04:17,010 --> 00:04:18,060 -up here in the control panel. - -110 -00:04:18,060 --> 00:04:21,050 -The problem is Illustrator isn't terribly efficient - -111 -00:04:21,050 --> 00:04:23,050 -at dealing with embedded images. - -112 -00:04:23,050 --> 00:04:26,050 -And as a result, you get large files. - -113 -00:04:26,050 --> 00:04:28,080 -So for example, this file is gonna weigh in - -114 -00:04:28,080 --> 00:04:30,050 -at about seven megabytes. - -115 -00:04:30,050 --> 00:04:33,050 -Which isn't horrible, but we can get a much smaller file - -116 -00:04:33,050 --> 00:04:37,010 -and we can create a link to the image file on disk - -117 -00:04:37,010 --> 00:04:39,000 -using the place command. - -118 -00:04:39,000 --> 00:04:43,000 -And I'll show you how that works in the very next movie. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/03 Placing an image to create a dynamic link.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/03 Placing an image to create a dynamic link.srt" deleted file mode 100755 index 168d127..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/03 Placing an image to create a dynamic link.srt" +++ /dev/null @@ -1,547 +0,0 @@ -1 -00:00:00,000 --> 00:00:02,010 -- [Voiceover] In this movie, I'll show you the other way - -2 -00:00:02,010 --> 00:00:04,030 -to get a pixel-based image into Illustrator. - -3 -00:00:04,030 --> 00:00:06,090 -And that's to use the 'place' command to create - -4 -00:00:06,090 --> 00:00:10,000 -a dynamic link to the image file on disk. - -5 -00:00:10,000 --> 00:00:11,080 -So, the first step is to go up to the 'File' menu - -6 -00:00:11,080 --> 00:00:14,000 -and choose the 'New' command, or you can press - -7 -00:00:14,000 --> 00:00:18,000 -control N here on the PC, or command N on the Mac. - -8 -00:00:18,000 --> 00:00:20,030 -And I'm going to go ahead and change the profile - -9 -00:00:20,030 --> 00:00:23,040 -to basic RGB, which these days appears to set - -10 -00:00:23,040 --> 00:00:25,030 -the orientation to landscape. - -11 -00:00:25,030 --> 00:00:27,070 -I'm going to go ahead and switch it to portrait - -12 -00:00:27,070 --> 00:00:29,090 -by clicking on this little icon here. - -13 -00:00:29,090 --> 00:00:32,020 -And then I'll click OK. - -14 -00:00:32,020 --> 00:00:34,070 -Next, what you want to do is go up to the 'File' menu - -15 -00:00:34,070 --> 00:00:36,050 -and choose the 'Place' command, - -16 -00:00:36,050 --> 00:00:39,020 -which has a keyboard shortcut of control shift P here on - -17 -00:00:39,020 --> 00:00:42,040 -the PC, or command shift P on the Mac. - -18 -00:00:42,040 --> 00:00:44,080 -Then, locate the image file that you want to import, - -19 -00:00:44,080 --> 00:00:46,050 -and click on the 'place' button. - -20 -00:00:46,050 --> 00:00:49,030 -Now, that goes ahead and loads your cursor with the image. - -21 -00:00:49,030 --> 00:00:51,020 -At this point, you want to be very careful that - -22 -00:00:51,020 --> 00:00:53,050 -you click instead of drag. - -23 -00:00:53,050 --> 00:00:55,050 -If you drag with the cursor, you will scale - -24 -00:00:55,050 --> 00:00:57,030 -the image as you import it. - -25 -00:00:57,030 --> 00:00:59,080 -And that is generally not something you want to do, - -26 -00:00:59,080 --> 00:01:03,030 -especially when tracing images inside Illustrator. - -27 -00:01:03,030 --> 00:01:05,090 -So just go ahead and click, and you'll import the - -28 -00:01:05,090 --> 00:01:07,070 -full-sized image. - -29 -00:01:07,070 --> 00:01:09,070 -All right, now assuming that you want to scale the - -30 -00:01:09,070 --> 00:01:12,020 -artboard to match the image, go ahead and switch - -31 -00:01:12,020 --> 00:01:14,020 -to the artboard tool, which once again you can get - -32 -00:01:14,020 --> 00:01:16,020 -by pressing shift O. - -33 -00:01:16,020 --> 00:01:18,060 -And then, assuming that you have your smart guides - -34 -00:01:18,060 --> 00:01:21,030 -turned on, just go ahead and drag the top left - -35 -00:01:21,030 --> 00:01:24,030 -and bottom right corners so they snap into alignment - -36 -00:01:24,030 --> 00:01:26,090 -with the image and then you can press the escape key - -37 -00:01:26,090 --> 00:01:28,090 -to exit the artboard mode. - -38 -00:01:28,090 --> 00:01:30,090 -All right, now go ahead and press control zero or - -39 -00:01:30,090 --> 00:01:33,000 -command zero on a Mac to zoom in. - -40 -00:01:33,000 --> 00:01:35,000 -Now, let's take a look at a few key differences when - -41 -00:01:35,000 --> 00:01:38,060 -working with linked images as opposed to embedded ones. - -42 -00:01:38,060 --> 00:01:41,010 -Notice I once again have this link up here that - -43 -00:01:41,010 --> 00:01:43,050 -tells me the name of the original file on disk, - -44 -00:01:43,050 --> 00:01:46,040 -but if I click on it, I bring up a whole slew of - -45 -00:01:46,040 --> 00:01:49,010 -options including edit original. - -46 -00:01:49,010 --> 00:01:50,080 -And this one is very important. - -47 -00:01:50,080 --> 00:01:53,020 -If I choose this command, then Illustrator will - -48 -00:01:53,020 --> 00:01:55,050 -go ahead and switch me back to Photoshop, - -49 -00:01:55,050 --> 00:01:58,010 -at which point if I make a modification as I did - -50 -00:01:58,010 --> 00:02:00,090 -in the previous movie, or I go to the 'Image' menu - -51 -00:02:00,090 --> 00:02:03,010 -choose 'Image Rotation' and choose 'Flip Canvas - -52 -00:02:03,010 --> 00:02:06,020 -Horizontal,' and then go to the 'File' menu and - -53 -00:02:06,020 --> 00:02:09,020 -choose the 'Save' command to update the file on disk. - -54 -00:02:09,020 --> 00:02:11,090 -Now if I go ahead and switch back to Illustrator, - -55 -00:02:11,090 --> 00:02:15,000 -notice that Illustrator is aware of the modifications, - -56 -00:02:15,000 --> 00:02:18,020 -and asks me if I would like to update the image. - -57 -00:02:18,020 --> 00:02:20,070 -At which point if I click yes, then I'm going to see - -58 -00:02:20,070 --> 00:02:24,050 -that update occur inside Illustrator. - -59 -00:02:24,050 --> 00:02:26,060 -This isn't really what I want, however, so I'll - -60 -00:02:26,060 --> 00:02:29,030 -go ahead and choose that command again, or I could - -61 -00:02:29,030 --> 00:02:31,080 -just click on the 'Edit Original' button up here - -62 -00:02:31,080 --> 00:02:33,020 -in the control panel. - -63 -00:02:33,020 --> 00:02:35,010 -And I'll go up to the 'Edit' menu and choose - -64 -00:02:35,010 --> 00:02:37,060 -'Step Backward' in order to turn the image to its - -65 -00:02:37,060 --> 00:02:40,050 -original appearance and then I will once again choose - -66 -00:02:40,050 --> 00:02:42,080 -the 'Save' command from the 'File' menu, after which - -67 -00:02:42,080 --> 00:02:46,000 -point I'll go ahead and switch to Illustrator. - -68 -00:02:46,000 --> 00:02:48,030 -Now, let's say I say no, that I don't want - -69 -00:02:48,030 --> 00:02:50,020 -to update my changes. - -70 -00:02:50,020 --> 00:02:53,050 -I can always update the changes later on by clicking - -71 -00:02:53,050 --> 00:02:56,000 -on this link up here in the control panel once again - -72 -00:02:56,000 --> 00:02:59,040 -and choosing 'Update Link' in order to reflect the - -73 -00:02:59,040 --> 00:03:02,070 -modifications that I made in Photoshop. - -74 -00:03:02,070 --> 00:03:05,060 -Another subtle advantage to working this way is that - -75 -00:03:05,060 --> 00:03:08,080 -Illustrator has gone ahead and populated my swatches - -76 -00:03:08,080 --> 00:03:11,040 -panel, as we are seeing up here in the upper right - -77 -00:03:11,040 --> 00:03:12,050 -corner of the screen. - -78 -00:03:12,050 --> 00:03:14,020 -And of course if you're not seeing your swatches - -79 -00:03:14,020 --> 00:03:16,040 -panel, you can just go to the 'Window' menu, - -80 -00:03:16,040 --> 00:03:20,030 -choose the 'Swatches' command, which for me is located - -81 -00:03:20,030 --> 00:03:21,090 -way down here. - -82 -00:03:21,090 --> 00:03:24,060 -And of course if you can't see your swatches panel, - -83 -00:03:24,060 --> 00:03:26,050 -you can go up to the 'Window' menu and choose the - -84 -00:03:26,050 --> 00:03:28,020 -'Swatches' command. - -85 -00:03:28,020 --> 00:03:30,010 -Compare that to what happens when you open - -86 -00:03:30,010 --> 00:03:31,040 -an image directly. - -87 -00:03:31,040 --> 00:03:33,060 -Notice over here in the swatches panel, - -88 -00:03:33,060 --> 00:03:37,000 -we have just none and the registration swatch. - -89 -00:03:37,000 --> 00:03:38,090 -If you want more, you'd have to click on the - -90 -00:03:38,090 --> 00:03:41,000 -little library icon in the bottom left corner - -91 -00:03:41,000 --> 00:03:43,080 -of the swatches panel, choose 'Default Swatches,' - -92 -00:03:43,080 --> 00:03:46,090 -and then choose 'Basic RGB,' and then you'd have - -93 -00:03:46,090 --> 00:03:49,070 -to go ahead and select all these guys by clicking - -94 -00:03:49,070 --> 00:03:51,090 -on the last swatch, shift clicking on the first one - -95 -00:03:51,090 --> 00:03:55,000 -and then dragging them and dropping them - -96 -00:03:55,000 --> 00:03:56,090 -into the swatches panel. - -97 -00:03:56,090 --> 00:03:58,070 -So, you can still get to those swatches, - -98 -00:03:58,070 --> 00:04:00,030 -but it takes an extra step. - -99 -00:04:00,030 --> 00:04:02,070 -And then finally I want you to see when you select - -100 -00:04:02,070 --> 00:04:05,000 -an embedded image by clicking on it, you see a - -101 -00:04:05,000 --> 00:04:07,050 -selection outline around the outer edge. - -102 -00:04:07,050 --> 00:04:09,090 -Whereas, when you click on a linked image, - -103 -00:04:09,090 --> 00:04:12,070 -it's an X through the center of it as well. - -104 -00:04:12,070 --> 00:04:14,070 -Now, if you ever change your mind, you do have - -105 -00:04:14,070 --> 00:04:15,080 -an embed button. - -106 -00:04:15,080 --> 00:04:17,070 -So you can just go ahead and click on it to - -107 -00:04:17,070 --> 00:04:20,050 -embed that image, and you will lose the X. - -108 -00:04:20,050 --> 00:04:22,030 -That's not what I want, however, because that would - -109 -00:04:22,030 --> 00:04:25,020 -break the dynamic link to the image file on disk. - -110 -00:04:25,020 --> 00:04:27,010 -So I'll just go ahead and press control Z, - -111 -00:04:27,010 --> 00:04:30,010 -or command Z on the Mac to undo that change. - -112 -00:04:30,010 --> 00:04:31,090 -And then, finally, a little bit of housekeeping here - -113 -00:04:31,090 --> 00:04:33,060 -inside the layers panel. - -114 -00:04:33,060 --> 00:04:35,040 -I'm going to click on the flyout menu icon in the - -115 -00:04:35,040 --> 00:04:38,090 -upper left corner, and choose 'Panel Options'. - -116 -00:04:38,090 --> 00:04:41,040 -And then I'll go ahead and increase this row size - -117 -00:04:41,040 --> 00:04:44,040 -value to other and I want it to be 70 pixels - -118 -00:04:44,040 --> 00:04:47,010 -so I can actually see what's going on inside - -119 -00:04:47,010 --> 00:04:50,010 -the panel there so that I have larger previews. - -120 -00:04:50,010 --> 00:04:52,070 -And then, I'll just go ahead and rename this layer - -121 -00:04:52,070 --> 00:04:55,020 -tracing, let's say, and press the enter key, - -122 -00:04:55,020 --> 00:04:58,060 -or the return key on the Mac, to apply that change. - -123 -00:04:58,060 --> 00:05:01,050 -Finally, I'm going to twirl this guy open, - -124 -00:05:01,050 --> 00:05:04,040 -and I'm going to rename this image 300 ppi. - -125 -00:05:04,040 --> 00:05:06,080 -And by the way, ppi stands for the resolution of - -126 -00:05:06,080 --> 00:05:10,050 -this image, which is 300 pixels per inch. - -127 -00:05:10,050 --> 00:05:12,070 -And you can see that reflected up here in the - -128 -00:05:12,070 --> 00:05:14,040 -control panel as well. - -129 -00:05:14,040 --> 00:05:17,000 -And that will become very important in the next movie - -130 -00:05:17,000 --> 00:05:20,050 -when we discuss how to autotrace the image. - -131 -00:05:20,050 --> 00:05:23,010 -And that is the difference between linking to an - -132 -00:05:23,010 --> 00:05:25,050 -image file on disk using the place command - -133 -00:05:25,050 --> 00:05:28,080 -versus embedding the image using the open command. - -134 -00:05:28,080 --> 00:05:31,050 -And the last piece of good news is that this file - -135 -00:05:31,050 --> 00:05:34,030 -with the linked image is about half as big - -136 -00:05:34,030 --> 00:05:36,080 -as the one with the embedded image. - -137 -00:05:36,080 --> 00:05:40,040 -And so you have a more efficient workflow as well. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/04 Auto-tracing and resolution.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/04 Auto-tracing and resolution.srt" deleted file mode 100755 index bfa53a9..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/04 Auto-tracing and resolution.srt" +++ /dev/null @@ -1,383 +0,0 @@ -1 -00:00:00,040 --> 00:00:02,020 -- [Voiceover] In this movie, I'll show you how to auto-trace - -2 -00:00:02,020 --> 00:00:04,000 -an image inside Illustrator. - -3 -00:00:04,000 --> 00:00:06,070 -And I'll also show you the effects of resolution - -4 -00:00:06,070 --> 00:00:08,060 -on the quality of the results. - -5 -00:00:08,060 --> 00:00:12,060 -And the very short story there is more resolution is better. - -6 -00:00:12,060 --> 00:00:15,010 -So the first thing I'm gonna do is click on my image - -7 -00:00:15,010 --> 00:00:17,060 -with the black arrow tool in order to select it. - -8 -00:00:17,060 --> 00:00:19,050 -Notice we can see the resolution up here - -9 -00:00:19,050 --> 00:00:20,090 -in the control panel. - -10 -00:00:20,090 --> 00:00:23,030 -Ppi stands for pixels per inch. - -11 -00:00:23,030 --> 00:00:27,000 -300 tells us that we have 300 pixels per inch, - -12 -00:00:27,000 --> 00:00:30,020 -both horizontally, as well as vertically. - -13 -00:00:30,020 --> 00:00:33,080 -Which means 90,000 pixels per square inch. - -14 -00:00:33,080 --> 00:00:37,040 -Which is your typical professional quality print resolution. - -15 -00:00:37,040 --> 00:00:39,020 -Alright, I'm gonna need a copy of this guy - -16 -00:00:39,020 --> 00:00:40,080 -for demonstration purposes, - -17 -00:00:40,080 --> 00:00:43,060 -so I'll go up to the edit menu and choose the copy command, - -18 -00:00:43,060 --> 00:00:45,020 -or of course, you can press control + c - -19 -00:00:45,020 --> 00:00:47,020 -or command + c on a Mac. - -20 -00:00:47,020 --> 00:00:50,000 -Next, notice this image trace button right there. - -21 -00:00:50,000 --> 00:00:52,070 -If you click on the down-pointing arrow head next to it, - -22 -00:00:52,070 --> 00:00:54,070 -you'll see a menu of presets. - -23 -00:00:54,070 --> 00:00:56,090 -If you're tracing a photograph and you want color, - -24 -00:00:56,090 --> 00:00:59,050 -then you can try out one of these first two guys. - -25 -00:00:59,050 --> 00:01:02,050 -The next ones trace low-color images including - -26 -00:01:02,050 --> 00:01:04,020 -just shades of gray. - -27 -00:01:04,020 --> 00:01:06,090 -If you drop down to line art and technical drawing, - -28 -00:01:06,090 --> 00:01:09,040 -which would seem like the best settings, just know that - -29 -00:01:09,040 --> 00:01:11,040 -they trace stroked outlines. - -30 -00:01:11,040 --> 00:01:13,090 -Which may turn out to be what you want, and I am going to - -31 -00:01:13,090 --> 00:01:16,040 -include a movie about that inside this chapter, - -32 -00:01:16,040 --> 00:01:18,070 -but they're very slow. - -33 -00:01:18,070 --> 00:01:21,000 -For this kind of artwork, you want one of the - -34 -00:01:21,000 --> 00:01:23,010 -black and white options, which will trace - -35 -00:01:23,010 --> 00:01:25,050 -filled path outlines, and so you could try - -36 -00:01:25,050 --> 00:01:28,050 -black and white logo, sketched art, or silhouettes. - -37 -00:01:28,050 --> 00:01:31,040 -Or better still, just go ahead and click on the - -38 -00:01:31,040 --> 00:01:35,010 -image trace button and let Illustrator do it's thing. - -39 -00:01:35,010 --> 00:01:36,080 -Now, at this point it's going to warn you that - -40 -00:01:36,080 --> 00:01:40,010 -it's going to take a moment or two to trace the artwork. - -41 -00:01:40,010 --> 00:01:42,090 -And that's because we have a large image, meaning that - -42 -00:01:42,090 --> 00:01:44,060 -it contains a lot of pixels. - -43 -00:01:44,060 --> 00:01:47,020 -If you want to reduce the image size, you can rasterize it - -44 -00:01:47,020 --> 00:01:50,080 -to a lower resolution using the rasterize command - -45 -00:01:50,080 --> 00:01:52,030 -under the object menu. - -46 -00:01:52,030 --> 00:01:54,060 -I'll show you what that looks like in just a moment, - -47 -00:01:54,060 --> 00:01:58,000 -but this is terrible advice as you're about to see. - -48 -00:01:58,000 --> 00:02:00,080 -So I'm just going to go ahead and click okay in order - -49 -00:02:00,080 --> 00:02:02,000 -to trace the artwork. - -50 -00:02:02,000 --> 00:02:04,030 -It is going to take a moment, and you may see - -51 -00:02:04,030 --> 00:02:07,000 -a few progress bars, after which point you'll see - -52 -00:02:07,000 --> 00:02:09,010 -the traced version of the artwork. - -53 -00:02:09,010 --> 00:02:12,020 -Which isn't gonna look nun too good at this point. - -54 -00:02:12,020 --> 00:02:14,090 -We're gonna make it look much better in future movies. - -55 -00:02:14,090 --> 00:02:17,090 -But let's see how that compares to tracing a low resolution - -56 -00:02:17,090 --> 00:02:21,040 -version of the image as Illustrator just recommended. - -57 -00:02:21,040 --> 00:02:24,060 -I'll go ahead and press control + f, or command + f on a Mac - -58 -00:02:24,060 --> 00:02:27,090 -in order to paste a copy of the original pixel-based image. - -59 -00:02:27,090 --> 00:02:30,070 -And then I'm gonna twirl open this tracing layer here - -60 -00:02:30,070 --> 00:02:34,010 -inside the layers panel, and I'm gonna rename this guy, - -61 -00:02:34,010 --> 00:02:36,080 -the new one, 72 ppi. - -62 -00:02:36,080 --> 00:02:39,080 -And then, to lower the resolution of the artwork, - -63 -00:02:39,080 --> 00:02:41,070 -I'll go up to the object menu - -64 -00:02:41,070 --> 00:02:43,080 -and choose the rasterize command. - -65 -00:02:43,080 --> 00:02:46,030 -And I'll leave the color model set to RGB. - -66 -00:02:46,030 --> 00:02:50,080 -And I'll set the resolution to screen, 72 ppi. - -67 -00:02:50,080 --> 00:02:53,050 -The other settings really don't matter for our purpose. - -68 -00:02:53,050 --> 00:02:56,050 -So I'll go ahead and click okay in order to reduce - -69 -00:02:56,050 --> 00:02:58,070 -the resolution of that image. - -70 -00:02:58,070 --> 00:03:00,030 -And you can see the difference. - -71 -00:03:00,030 --> 00:03:02,070 -This is the before version, which is pretty sharp, - -72 -00:03:02,070 --> 00:03:07,030 -and this is the after version, which is pretty darn choppy. - -73 -00:03:07,030 --> 00:03:09,000 -Alright, let's see what kind of difference that - -74 -00:03:09,000 --> 00:03:10,060 -makes for image tracing. - -75 -00:03:10,060 --> 00:03:13,000 -I'll once again go up to the image trace button - -76 -00:03:13,000 --> 00:03:14,040 -and just click on it. - -77 -00:03:14,040 --> 00:03:16,060 -Notice this time Illustrator doesn't complain - -78 -00:03:16,060 --> 00:03:18,080 -and it's lickety-split fast, - -79 -00:03:18,080 --> 00:03:21,040 -but it looks absolutely terrible. - -80 -00:03:21,040 --> 00:03:24,030 -So this is the 300 ppi resolution version of the image. - -81 -00:03:24,030 --> 00:03:27,080 -And this is the 72 ppi. - -82 -00:03:27,080 --> 00:03:29,030 -And so the moral of the story is - -83 -00:03:29,030 --> 00:03:32,010 -you always want more pixels, not fewer. - -84 -00:03:32,010 --> 00:03:34,060 -It is going to take Illustrator a little additional time - -85 -00:03:34,060 --> 00:03:37,070 -in order to perform the trace, but it's gonna give you - -86 -00:03:37,070 --> 00:03:39,040 -better results as well. - -87 -00:03:39,040 --> 00:03:42,070 -And notice now by the way, that Illustrator has gone ahead - -88 -00:03:42,070 --> 00:03:45,020 -and renamed these objects image tracing. - -89 -00:03:45,020 --> 00:03:47,030 -I want to remember their original resolution, - -90 -00:03:47,030 --> 00:03:50,080 -so I'm gonna change the bottom one to 300 ppi, - -91 -00:03:50,080 --> 00:03:55,000 -and I'm gonna rename the top guy 72 ppi. - -92 -00:03:55,000 --> 00:03:57,030 -And then I'm gonna change their order as well - -93 -00:03:57,030 --> 00:03:59,070 -so the better tracing is on top. - -94 -00:03:59,070 --> 00:04:02,080 -And that's how you perform a first-pass auto tracing, - -95 -00:04:02,080 --> 00:04:05,060 -preferably on a high resolution image - -96 -00:04:05,060 --> 00:04:07,060 -here inside Illustrator. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/05 Upsampling in Photoshop for better results.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/05 Upsampling in Photoshop for better results.srt" deleted file mode 100755 index b1ef166..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/05 Upsampling in Photoshop for better results.srt" +++ /dev/null @@ -1,403 +0,0 @@ -1 -00:00:00,060 --> 00:00:02,010 -- [Voiceover] In this movie, I'll show you - -2 -00:00:02,010 --> 00:00:04,000 -how you can get still better results - -3 -00:00:04,000 --> 00:00:06,010 -out of Illustrator's auto-tracing feature, - -4 -00:00:06,010 --> 00:00:09,050 -by first upsampling the image to a higher resolution - -5 -00:00:09,050 --> 00:00:11,050 -inside Photoshop. - -6 -00:00:11,050 --> 00:00:13,070 -So I'm going to start by switching from Illustrator - -7 -00:00:13,070 --> 00:00:16,070 -to Photoshop, and then I'll go up to the image menu - -8 -00:00:16,070 --> 00:00:19,040 -and choose the Image Size command. - -9 -00:00:19,040 --> 00:00:22,010 -Now one of the great things about this dialog box these days - -10 -00:00:22,010 --> 00:00:25,010 -is that it's scalable, so I'm going to make it take up - -11 -00:00:25,010 --> 00:00:29,040 -the entire screen and that way I can see a big preview - -12 -00:00:29,040 --> 00:00:31,000 -of my image as I work on it. - -13 -00:00:31,000 --> 00:00:33,030 -Now, notice over here we're seeing a resolution value - -14 -00:00:33,030 --> 00:00:35,020 -of 300 pixels per inch. - -15 -00:00:35,020 --> 00:00:37,090 -Ideally, if I wanted a higher resolution, - -16 -00:00:37,090 --> 00:00:40,070 -I would have scanned the image at a higher resolution - -17 -00:00:40,070 --> 00:00:42,010 -in the first place. - -18 -00:00:42,010 --> 00:00:44,090 -Unfortunately, the scanner I used, as I was saying, - -19 -00:00:44,090 --> 00:00:47,070 -it's just a consumer-grade office scanner, tops out - -20 -00:00:47,070 --> 00:00:49,080 -at 300 pixels per inch. - -21 -00:00:49,080 --> 00:00:52,030 -You just can't get any more fidelity out of it. - -22 -00:00:52,030 --> 00:00:56,090 -Fortunately, Photoshop CC is very good at upsampling - -23 -00:00:56,090 --> 00:01:00,020 -these days, and so to add pixels to an image, - -24 -00:01:00,020 --> 00:01:02,010 -you turn on the resample checkbox, - -25 -00:01:02,010 --> 00:01:05,020 -go ahead and make sure the setting is automatic, - -26 -00:01:05,020 --> 00:01:07,090 -and then crank the resolution value up - -27 -00:01:07,090 --> 00:01:09,030 -to whatever it is you want, - -28 -00:01:09,030 --> 00:01:13,000 -in my case, I'm going to go up to 600 pixels per inch, - -29 -00:01:13,000 --> 00:01:15,090 -which is going to double the number of pixels horizontally, - -30 -00:01:15,090 --> 00:01:18,070 -as well as double the number of pixels vertically, - -31 -00:01:18,070 --> 00:01:23,060 -so that we have four times as many pixels as we had before. - -32 -00:01:23,060 --> 00:01:26,020 -At which point, I'll go ahead and click the okay button - -33 -00:01:26,020 --> 00:01:28,090 -in order to upsample that image. - -34 -00:01:28,090 --> 00:01:31,060 -Now, it may take a moment in order to apply the change, - -35 -00:01:31,060 --> 00:01:34,020 -after which point, I'll go up to the File menu - -36 -00:01:34,020 --> 00:01:36,020 -and choose the Save As command, - -37 -00:01:36,020 --> 00:01:41,040 -and I ended up saving this file as Upsampled to 600 ppi.jpg - -38 -00:01:41,040 --> 00:01:43,040 -because I'm working with the JPEG format, - -39 -00:01:43,040 --> 00:01:46,060 -and I'll even just go ahead and save over my original image - -40 -00:01:46,060 --> 00:01:49,040 -by clicking on the Save button, followed by Yes. - -41 -00:01:49,040 --> 00:01:52,060 -You always want to make sure your JPEG options - -42 -00:01:52,060 --> 00:01:55,010 -are cranked up to the highest quality, which is 12, - -43 -00:01:55,010 --> 00:01:58,010 -and if you set your format options to Baseline Optimized - -44 -00:01:58,010 --> 00:02:01,030 -you'll generally get a slightly smaller file, - -45 -00:02:01,030 --> 00:02:03,010 -at which point, go ahead and click okay - -46 -00:02:03,010 --> 00:02:05,060 -in order to save that image. - -47 -00:02:05,060 --> 00:02:07,030 -Now I'll return to Illustrator. - -48 -00:02:07,030 --> 00:02:10,070 -To be safe, make sure that nothing is selected on screen, - -49 -00:02:10,070 --> 00:02:13,000 -and then once again go to the File menu - -50 -00:02:13,000 --> 00:02:14,080 -and choose the Place command, - -51 -00:02:14,080 --> 00:02:17,050 -or you've got that keyboard shortcut of control shift P, - -52 -00:02:17,050 --> 00:02:19,080 -or command shift P on the Mac. - -53 -00:02:19,080 --> 00:02:22,050 -Then, I'll go ahead and locate that file I just created - -54 -00:02:22,050 --> 00:02:25,000 -and I'll click on the Place button in order to - -55 -00:02:25,000 --> 00:02:26,050 -load my cursor with the image, - -56 -00:02:26,050 --> 00:02:28,030 -and I'll just go ahead and click, - -57 -00:02:28,030 --> 00:02:31,060 -not drag, with the cursor in order to place the image - -58 -00:02:31,060 --> 00:02:33,010 -at its full size. - -59 -00:02:33,010 --> 00:02:35,060 -And now, I'll just go ahead and drag it into place, - -60 -00:02:35,060 --> 00:02:37,080 -and assuming that your smart guides are turned on, - -61 -00:02:37,080 --> 00:02:40,020 -it should snap into perfect alignment. - -62 -00:02:40,020 --> 00:02:42,070 -Alright now, go ahead and zoom in just a little bit - -63 -00:02:42,070 --> 00:02:45,010 -and I'll return to the Image Trace button - -64 -00:02:45,010 --> 00:02:47,000 -and just go ahead and click on it. - -65 -00:02:47,000 --> 00:02:50,010 -At which point, of course, Illustrator will warn me - -66 -00:02:50,010 --> 00:02:51,080 -that this is gonna take a while to trace, - -67 -00:02:51,080 --> 00:02:54,060 -because after all, I'm working in a higher resolution. - -68 -00:02:54,060 --> 00:02:56,000 -But that's what we want. - -69 -00:02:56,000 --> 00:02:58,010 -You may at this point want to turn on the Don't show again - -70 -00:02:58,010 --> 00:03:00,060 -checkbox so you're not reminded of this bad advice - -71 -00:03:00,060 --> 00:03:04,010 -in the future, after which point, go ahead and click okay - -72 -00:03:04,010 --> 00:03:06,040 -in order to begin the trace. - -73 -00:03:06,040 --> 00:03:08,050 -And it is gonna take a few moments here, - -74 -00:03:08,050 --> 00:03:11,030 -you are gonna see one or two progress bars go by, - -75 -00:03:11,030 --> 00:03:14,020 -after which point, I'll just go ahead and zoom in, - -76 -00:03:14,020 --> 00:03:16,060 -and I'll click off the image to deselect it, - -77 -00:03:16,060 --> 00:03:18,060 -and now let's take a look at the difference - -78 -00:03:18,060 --> 00:03:20,060 -between the higher resolution scan - -79 -00:03:20,060 --> 00:03:22,060 -and the lower res scan. - -80 -00:03:22,060 --> 00:03:24,030 -And it's probably gonna make a little more sense - -81 -00:03:24,030 --> 00:03:25,080 -if I zoom in a little farther. - -82 -00:03:25,080 --> 00:03:28,060 -This is the tracing of the 300 pixel per inch image, - -83 -00:03:28,060 --> 00:03:32,060 -and this is the tracing of the 600 pixel per inch image. - -84 -00:03:32,060 --> 00:03:36,010 -And as you can see, we get more fidelity in this tracing, - -85 -00:03:36,010 --> 00:03:38,060 -we have a lot more lines to work with. - -86 -00:03:38,060 --> 00:03:41,000 -And it's especially noticeable down here - -87 -00:03:41,000 --> 00:03:42,080 -where we've got some words. - -88 -00:03:42,080 --> 00:03:45,000 -This is the 300 pixel per inch version, - -89 -00:03:45,000 --> 00:03:48,040 -versus the 600 pixel per inch version. - -90 -00:03:48,040 --> 00:03:50,060 -And so you can make that kind of difference - -91 -00:03:50,060 --> 00:03:54,020 -just by upsampling the image inside Photoshop - -92 -00:03:54,020 --> 00:03:57,060 -before you trace it in Illustrator, after which point, - -93 -00:03:57,060 --> 00:04:00,010 -I'll go ahead and rename this newest tracing - -94 -00:04:00,010 --> 00:04:02,050 -600 ppi and press the enter key, - -95 -00:04:02,050 --> 00:04:05,090 -or the return key on the Mac, to accept that change. - -96 -00:04:05,090 --> 00:04:08,020 -Alright, and just to be safe, I'll go ahead and turn off - -97 -00:04:08,020 --> 00:04:11,000 -the 300 ppi version of the image. - -98 -00:04:11,000 --> 00:04:14,000 -Alright so we are making some very positive modifications - -99 -00:04:14,000 --> 00:04:16,070 -to this tracing, but we can do better still - -100 -00:04:16,070 --> 00:04:19,010 -with the fragile details by adjusting - -101 -00:04:19,010 --> 00:04:23,020 -the threshold setting, as I'll show you in the next movie. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/06 Adjusting the Threshold value.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/06 Adjusting the Threshold value.srt" deleted file mode 100755 index d9ae89b..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/06 Adjusting the Threshold value.srt" +++ /dev/null @@ -1,451 +0,0 @@ -1 -00:00:00,060 --> 00:00:01,080 -- [Voiceover] In this movie, I'll show you - -2 -00:00:01,080 --> 00:00:04,020 -how to customize the autotracing effect, - -3 -00:00:04,020 --> 00:00:07,050 -specifically using an option known as threshold, - -4 -00:00:07,050 --> 00:00:09,030 -which is gonna allow us to preserve - -5 -00:00:09,030 --> 00:00:12,050 -some of the more fragile details in the original lineart. - -6 -00:00:12,050 --> 00:00:15,010 -So I'm gonna go ahead and zoom in here, - -7 -00:00:15,010 --> 00:00:17,030 -and I'll click on the image to select it. - -8 -00:00:17,030 --> 00:00:19,040 -And then I'll go up here to the Options bar, - -9 -00:00:19,040 --> 00:00:22,070 -and there's this little icon that says Image Trace panel. - -10 -00:00:22,070 --> 00:00:25,070 -If you click on it, you'll bring up the panel like so. - -11 -00:00:25,070 --> 00:00:28,010 -You can also go to the Window menu, by the way, - -12 -00:00:28,010 --> 00:00:30,030 -and choose Image Trace if you like. - -13 -00:00:30,030 --> 00:00:33,010 -After all, you can get to all of the panels - -14 -00:00:33,010 --> 00:00:35,030 -in Illustrator from the Window menu. - -15 -00:00:35,030 --> 00:00:37,020 -I'm gonna go ahead and move this guy - -16 -00:00:37,020 --> 00:00:39,050 -off over to the side by dragging it - -17 -00:00:39,050 --> 00:00:41,010 -from the upper left corner, - -18 -00:00:41,010 --> 00:00:43,090 -so I don't accidentally drop it into the other panels. - -19 -00:00:43,090 --> 00:00:46,030 -Alright, now I want you to notice this View option. - -20 -00:00:46,030 --> 00:00:48,070 -Right now we're seeing the tracing results, - -21 -00:00:48,070 --> 00:00:51,010 -and that is, we're seeing the traced path outlines. - -22 -00:00:51,010 --> 00:00:53,080 -If you wanna see the outlines instead, - -23 -00:00:53,080 --> 00:00:55,030 -you can choose outlines - -24 -00:00:55,030 --> 00:00:57,050 -and that'll give you the cyan outlines, - -25 -00:00:57,050 --> 00:00:59,080 -which are of some benefit, I suppose. - -26 -00:00:59,080 --> 00:01:02,020 -Or you can switch to the source image - -27 -00:01:02,020 --> 00:01:05,000 -so that you're seeing the original pixel-based image - -28 -00:01:05,000 --> 00:01:07,090 -as it appears before Illustrator traces it. - -29 -00:01:07,090 --> 00:01:10,000 -Ideally, what you wanna be able to do - -30 -00:01:10,000 --> 00:01:13,040 -is compare the original image to the tracing result, - -31 -00:01:13,040 --> 00:01:15,020 -and the easiest way to do that - -32 -00:01:15,020 --> 00:01:18,050 -is to click and hold on this eye icon right there. - -33 -00:01:18,050 --> 00:01:20,000 -So if you click and hold, you'll see - -34 -00:01:20,000 --> 00:01:21,060 -the original pixel based image. - -35 -00:01:21,060 --> 00:01:23,080 -If you release, you'll see the tracing. - -36 -00:01:23,080 --> 00:01:25,080 -And what that's gonna help you decide is - -37 -00:01:25,080 --> 00:01:28,040 -how much of the image is missing - -38 -00:01:28,040 --> 00:01:30,080 -in the final traced result. - -39 -00:01:30,080 --> 00:01:34,010 -So for example, look at the lines inside my eye. - -40 -00:01:34,010 --> 00:01:36,010 -If I click and hold, they're a lot more clear. - -41 -00:01:36,010 --> 00:01:38,030 -We have some thin lines that are there - -42 -00:01:38,030 --> 00:01:40,050 -to indicate wrinkling, I suppose, - -43 -00:01:40,050 --> 00:01:43,000 -even though I was only in my twenties. - -44 -00:01:43,000 --> 00:01:45,090 -And then if I release, a lot of those lines disappear, - -45 -00:01:45,090 --> 00:01:48,010 -especially the ones inside Saturn. - -46 -00:01:48,010 --> 00:01:50,050 -And we can control exactly how that works - -47 -00:01:50,050 --> 00:01:52,030 -using this threshold option. - -48 -00:01:52,030 --> 00:01:54,040 -So here's the deal: if I was to - -49 -00:01:54,040 --> 00:01:57,070 -crank the threshold value all the way down to one, - -50 -00:01:57,070 --> 00:02:00,030 -I'm saying the line has to be darker - -51 -00:02:00,030 --> 00:02:04,020 -than a luminance level of one in order to be traced, - -52 -00:02:04,020 --> 00:02:06,050 -which means that we're not tracing anything - -53 -00:02:06,050 --> 00:02:08,050 -inside this image whatsoever. - -54 -00:02:08,050 --> 00:02:13,020 -Because zero is black, one is extremely dark. - -55 -00:02:13,020 --> 00:02:15,050 -If I were to crank this value all the way up - -56 -00:02:15,050 --> 00:02:18,030 -to its maximum of 255, which is white, - -57 -00:02:18,030 --> 00:02:21,060 -then I'm saying trace everything because after all, - -58 -00:02:21,060 --> 00:02:24,070 -everything is at least white inside of this image. - -59 -00:02:24,070 --> 00:02:26,050 -So those are your two extremes, - -60 -00:02:26,050 --> 00:02:29,000 -what you wanna do is experiment with this value. - -61 -00:02:29,000 --> 00:02:32,070 -By default, it's set to 128, if I can get it there, - -62 -00:02:32,070 --> 00:02:35,060 -which is medium grays, so we're just basically - -63 -00:02:35,060 --> 00:02:38,020 -tracing the darkest half of the image - -64 -00:02:38,020 --> 00:02:40,090 -and leaving the whitest half untraced. - -65 -00:02:40,090 --> 00:02:43,040 -If you find that you're tracing too much of the image, - -66 -00:02:43,040 --> 00:02:45,040 -so you're tracing too many lines - -67 -00:02:45,040 --> 00:02:48,010 -and you're tracing a bunch of noise, for example, - -68 -00:02:48,010 --> 00:02:50,050 -in the image, then you wanna reduce this value. - -69 -00:02:50,050 --> 00:02:53,040 -In my case, we've gotta take it up to about 80, - -70 -00:02:53,040 --> 00:02:56,090 -now it's 81, in order to trace much of anything, - -71 -00:02:56,090 --> 00:02:59,000 -as we're seeing right here. - -72 -00:02:59,000 --> 00:03:00,070 -But I obviously wanna trace - -73 -00:03:00,070 --> 00:03:02,060 -much more of the image than this, - -74 -00:03:02,060 --> 00:03:04,080 -so I'm gonna crank this value up. - -75 -00:03:04,080 --> 00:03:07,010 -And I ultimately came up with a value, - -76 -00:03:07,010 --> 00:03:09,030 -if I can hit it here, of 180. - -77 -00:03:09,030 --> 00:03:12,070 -And notice, every single time I modify this value, - -78 -00:03:12,070 --> 00:03:15,090 -I'm previewing the effect inside the document window - -79 -00:03:15,090 --> 00:03:18,070 -because I have the preview checkbox turned on. - -80 -00:03:18,070 --> 00:03:20,050 -If you don't want that to happen, - -81 -00:03:20,050 --> 00:03:22,080 -if you wanna be able to modify a value - -82 -00:03:22,080 --> 00:03:24,070 -without these constant previews, - -83 -00:03:24,070 --> 00:03:26,030 -which do slow things down, - -84 -00:03:26,030 --> 00:03:28,080 -then just go ahead and turn the preview checkbox off - -85 -00:03:28,080 --> 00:03:31,000 -and then modify the value as desired - -86 -00:03:31,000 --> 00:03:32,090 -and turn on the preview checkbox - -87 -00:03:32,090 --> 00:03:36,030 -in order to see the results update on-screen. - -88 -00:03:36,030 --> 00:03:38,050 -Now in my mind that's a little too much, - -89 -00:03:38,050 --> 00:03:40,050 -so as I was saying I'm gonna go ahead - -90 -00:03:40,050 --> 00:03:42,080 -and take my value down to 180, - -91 -00:03:42,080 --> 00:03:45,020 -at which point I get a pretty good mix - -92 -00:03:45,020 --> 00:03:46,090 -because what ends up happening - -93 -00:03:46,090 --> 00:03:48,090 -if I go too high with this value - -94 -00:03:48,090 --> 00:03:51,020 -is the text starts filling in, - -95 -00:03:51,020 --> 00:03:53,040 -and so does my signature down here - -96 -00:03:53,040 --> 00:03:55,030 -in the bottom right hand corner. - -97 -00:03:55,030 --> 00:03:57,000 -And so, as I say, you can experiment - -98 -00:03:57,000 --> 00:03:58,090 -with this value as much as you'd like, - -99 -00:03:58,090 --> 00:04:01,080 -and you can get a lot of good results out of it. - -100 -00:04:01,080 --> 00:04:04,030 -So just so we can see how far we've come here, - -101 -00:04:04,030 --> 00:04:06,010 -I'll go ahead and reduce that value - -102 -00:04:06,010 --> 00:04:08,050 -back to 128, at which point I will of course - -103 -00:04:08,050 --> 00:04:11,060 -have to wait for the modifications to occur on-screen. - -104 -00:04:11,060 --> 00:04:14,060 -You can see that we were missing a lot of lines - -105 -00:04:14,060 --> 00:04:16,030 -at the beginning of this movie, - -106 -00:04:16,030 --> 00:04:19,050 -but if I now press Control-Z, or Command-Z on the Mac, - -107 -00:04:19,050 --> 00:04:21,070 -to undo that change, which by the way - -108 -00:04:21,070 --> 00:04:24,090 -forces Illustrator to perform a recalculation, - -109 -00:04:24,090 --> 00:04:26,070 -you can now see that we've got some - -110 -00:04:26,070 --> 00:04:30,090 -really good detail out of this autotraced effect. - -111 -00:04:30,090 --> 00:04:33,050 -And that's how you control the amount of detail - -112 -00:04:33,050 --> 00:04:36,050 -that Illustrator traces using the threshold value - -113 -00:04:36,050 --> 00:04:38,060 -in the Image Trace panel. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/07 The advanced tracing options.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/07 The advanced tracing options.srt" deleted file mode 100755 index 4c61d7d..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/07 The advanced tracing options.srt" +++ /dev/null @@ -1,531 +0,0 @@ -1 -00:00:00,010 --> 00:00:01,040 -- [Voiceover] In this movie, - -2 -00:00:01,040 --> 00:00:03,040 -we'll take a look at the Advanced Tracing options. - -3 -00:00:03,040 --> 00:00:05,080 -Which again, are made available to us - -4 -00:00:05,080 --> 00:00:07,090 -inside the Image Trace panel. - -5 -00:00:07,090 --> 00:00:09,080 -So, I'll start things off by clicking - -6 -00:00:09,080 --> 00:00:12,020 -on the line art in order to select it. - -7 -00:00:12,020 --> 00:00:13,040 -And then I'll click on the triangle - -8 -00:00:13,040 --> 00:00:14,080 -in front of the word, advanced - -9 -00:00:14,080 --> 00:00:16,060 -or the bottom of the image trace panel, - -10 -00:00:16,060 --> 00:00:20,010 -in order to expand these many additional options. - -11 -00:00:20,010 --> 00:00:23,040 -I'm gonna go ahead and zoom in on these details - -12 -00:00:23,040 --> 00:00:24,070 -in front of the pencil. - -13 -00:00:24,070 --> 00:00:27,050 -Which are intended to indicate flecks of graphite. - -14 -00:00:27,050 --> 00:00:28,040 -And we're gonna start things off - -15 -00:00:28,040 --> 00:00:30,070 -with this Noise option right here. - -16 -00:00:30,070 --> 00:00:32,090 -If your image is noisy, that is it contains - -17 -00:00:32,090 --> 00:00:34,070 -a bunch of random flecks, - -18 -00:00:34,070 --> 00:00:39,000 -then you can crank this value up to ignore smaller details. - -19 -00:00:39,000 --> 00:00:41,030 -And at 71 pixels, we're saying that anything - -20 -00:00:41,030 --> 00:00:45,020 -that is smaller than 71 pixels will not get traced - -21 -00:00:45,020 --> 00:00:46,010 -And as a result, - -22 -00:00:46,010 --> 00:00:48,070 -I lost a lot of those little bits of graphite. - -23 -00:00:48,070 --> 00:00:50,030 -And I also lost the interior - -24 -00:00:50,030 --> 00:00:53,010 -of the A, the O and the R. - -25 -00:00:53,010 --> 00:00:54,060 -Which, of course, is not what I want. - -26 -00:00:54,060 --> 00:00:57,090 -And that's because this image is a very clean image. - -27 -00:00:57,090 --> 00:00:59,060 -It's low noise, and that's largely a function - -28 -00:00:59,060 --> 00:01:04,010 -of cleaning your scanner glass before you scan your artwork. - -29 -00:01:04,010 --> 00:01:05,010 -And that way you don't have a bunch - -30 -00:01:05,010 --> 00:01:07,010 -of dust and junk all over the place. - -31 -00:01:07,010 --> 00:01:10,060 -And so I'm gonna take this noise value down to five pixels. - -32 -00:01:10,060 --> 00:01:13,030 -And press the Enter key, or Return key on the Mac, - -33 -00:01:13,030 --> 00:01:15,060 -in order to apply that change. - -34 -00:01:15,060 --> 00:01:17,080 -After which point we'll see more flecks of graphite, - -35 -00:01:17,080 --> 00:01:20,060 -and we'll see the interiors of those letters. - -36 -00:01:20,060 --> 00:01:22,060 -Next we have this corners value here, - -37 -00:01:22,060 --> 00:01:25,050 -and it decides the weighting between smooth points - -38 -00:01:25,050 --> 00:01:28,050 -and corner points inside the traced artwork. - -39 -00:01:28,050 --> 00:01:31,020 -And so let's say, I'm not really liking - -40 -00:01:31,020 --> 00:01:34,040 -all the little corners on the graphite once again - -41 -00:01:34,040 --> 00:01:35,080 -and throughout the rest of the art. - -42 -00:01:35,080 --> 00:01:38,010 -Then I can go ahead and crank that value - -43 -00:01:38,010 --> 00:01:40,040 -down to something like 10 percent, - -44 -00:01:40,040 --> 00:01:42,060 -and that's gonna give me a lot fewer corners - -45 -00:01:42,060 --> 00:01:44,010 -than I had before. - -46 -00:01:44,010 --> 00:01:47,020 -And so of course, if you take it down to zero percent, - -47 -00:01:47,020 --> 00:01:49,040 -you're pretty much not going to have any corners at all. - -48 -00:01:49,040 --> 00:01:52,050 -But at 10, we have much smoother results. - -49 -00:01:52,050 --> 00:01:56,090 -Paths, is gonna determine the fidelity of the line art. - -50 -00:01:56,090 --> 00:01:57,090 -How many paths are used. - -51 -00:01:57,090 --> 00:01:59,080 -Notice down here at the bottom of the panel, - -52 -00:01:59,080 --> 00:02:02,080 -we can see that we have 3,473 paths - -53 -00:02:02,080 --> 00:02:06,090 -and a little more than 39,000 anchor points. - -54 -00:02:06,090 --> 00:02:09,050 -If I want better fidelity, I would just go ahead - -55 -00:02:09,050 --> 00:02:12,050 -and crank that Paths value up to 100 percent, - -56 -00:02:12,050 --> 00:02:15,060 -which is gonna give me a lot more complexity. - -57 -00:02:15,060 --> 00:02:18,050 -You can see we have almost 2,000 more paths, - -58 -00:02:18,050 --> 00:02:21,090 -but our anchor paths have shot up to 103,000. - -59 -00:02:21,090 --> 00:02:25,060 -And we've got some very wiggly looking line art right here, - -60 -00:02:25,060 --> 00:02:28,010 -which has a high fidelity factor. - -61 -00:02:28,010 --> 00:02:31,030 -But is possibly a little less smooth than I'd like, - -62 -00:02:31,030 --> 00:02:34,050 -which is why I ultimately came up with a value here. - -63 -00:02:34,050 --> 00:02:37,020 -A Paths value of 94 percent, which is gonna help - -64 -00:02:37,020 --> 00:02:39,070 -to smooth out the artwork dramatically, - -65 -00:02:39,070 --> 00:02:42,080 -and it basically cut the number of anchor points in half. - -66 -00:02:42,080 --> 00:02:45,020 -Alright, now notice Snap Curves To Lines, - -67 -00:02:45,020 --> 00:02:46,060 -that check box right there. - -68 -00:02:46,060 --> 00:02:48,040 -What that's gonna do is it's gonna take - -69 -00:02:48,040 --> 00:02:52,040 -slightly curving lines and it's gonna make them straight. - -70 -00:02:52,040 --> 00:02:53,070 -Now it doesn't make too much difference - -71 -00:02:53,070 --> 00:02:55,040 -where this artwork is concerned. - -72 -00:02:55,040 --> 00:02:58,010 -Notice I went ahead and turned the checkbox off. - -73 -00:02:58,010 --> 00:03:01,030 -But it may make a difference with schematic artwork. - -74 -00:03:01,030 --> 00:03:03,020 -So if you have a lot of rulered lines, - -75 -00:03:03,020 --> 00:03:05,020 -that is lines that you do with a straightedge. - -76 -00:03:05,020 --> 00:03:06,080 -Then you would probably want to leave - -77 -00:03:06,080 --> 00:03:08,050 -that checkbox turned on. - -78 -00:03:08,050 --> 00:03:12,030 -Also notice right here the number of colors is set to two. - -79 -00:03:12,030 --> 00:03:14,030 -And that's because Illustrator is tracing - -80 -00:03:14,030 --> 00:03:15,090 -both the black line art - -81 -00:03:15,090 --> 00:03:18,010 -and the white stuff in the background. - -82 -00:03:18,010 --> 00:03:19,040 -I don't want that, so I'm gonna turn on - -83 -00:03:19,040 --> 00:03:21,070 -the Ignore White checkbox. - -84 -00:03:21,070 --> 00:03:23,080 -And that's gonna reduce the number of colors, - -85 -00:03:23,080 --> 00:03:27,040 -as you'll see in just a moment here, to one. - -86 -00:03:27,040 --> 00:03:29,030 -Alright, we also have this Create option, - -87 -00:03:29,030 --> 00:03:32,030 -which will either create filled-path outlines - -88 -00:03:32,030 --> 00:03:33,090 -as we're doing right now. - -89 -00:03:33,090 --> 00:03:37,010 -Or you can create stroked paths in addition or instead. - -90 -00:03:37,010 --> 00:03:38,040 -And for now, I'm gonna leave that off - -91 -00:03:38,040 --> 00:03:41,060 -because that really slows things down, but I will show you - -92 -00:03:41,060 --> 00:03:43,090 -what that looks like in a future movie. - -93 -00:03:43,090 --> 00:03:46,020 -And then finally, we've got this Method option. - -94 -00:03:46,020 --> 00:03:47,080 -Which allows Illustrator to create - -95 -00:03:47,080 --> 00:03:50,010 -overlapping path outlines. - -96 -00:03:50,010 --> 00:03:52,080 -And while you may get slightly better results out of that, - -97 -00:03:52,080 --> 00:03:56,030 -that's gonna kick the number of colors back up to two - -98 -00:03:56,030 --> 00:03:57,090 -because Illustrator is going to trace - -99 -00:03:57,090 --> 00:04:00,090 -both black and white path outlines. - -100 -00:04:00,090 --> 00:04:04,050 -And notice now that the Ignore White checkbox is now dimmed. - -101 -00:04:04,050 --> 00:04:05,050 -Which is why I'm gonna go ahead - -102 -00:04:05,050 --> 00:04:08,080 -and press Crtl + z, or Command + z on the Mac, - -103 -00:04:08,080 --> 00:04:09,080 -to undo that change. - -104 -00:04:09,080 --> 00:04:11,030 -Because I really, for this art, - -105 -00:04:11,030 --> 00:04:14,040 -only wanna trace the black paths. - -106 -00:04:14,040 --> 00:04:15,090 -Alright so that pretty much takes care - -107 -00:04:15,090 --> 00:04:19,080 -of everything we have control of during a tracing process - -108 -00:04:19,080 --> 00:04:21,090 -Which is why if you're satisfied with your results, - -109 -00:04:21,090 --> 00:04:24,070 -you probably wanna go ahead and save a custom preset. - -110 -00:04:24,070 --> 00:04:26,070 -By clicking on this little fly up menu - -111 -00:04:26,070 --> 00:04:28,030 -toward the top of the panel - -112 -00:04:28,030 --> 00:04:30,030 -and then choosing, Save as New Preset. - -113 -00:04:30,030 --> 00:04:32,070 -And now I'm just gonna go ahead and call - -114 -00:04:32,070 --> 00:04:35,050 -this guy Freeform ink art and click OK. - -115 -00:04:35,050 --> 00:04:36,080 -After which point, you will now see it - -116 -00:04:36,080 --> 00:04:39,060 -not only available in this pop-up menu, - -117 -00:04:39,060 --> 00:04:42,030 -but it will be available the next time you create a tracing - -118 -00:04:42,030 --> 00:04:44,090 -up here in the control panel. - -119 -00:04:44,090 --> 00:04:47,070 -Alright, I'm gonna go ahead and press Crtl + 0. - -120 -00:04:47,070 --> 00:04:50,010 -Or Command + 0 on the Mac, to zoom out. - -121 -00:04:50,010 --> 00:04:51,050 -And I'll click off the artwork as well - -122 -00:04:51,050 --> 00:04:53,040 -and hide the Image Trace panel. - -123 -00:04:53,040 --> 00:04:55,060 -And now I'm gonna twirl open this tracing layer - -124 -00:04:55,060 --> 00:04:57,050 -so we can see the difference here. - -125 -00:04:57,050 --> 00:05:00,090 -I'll go ahead and turn on the 300 ppi tracing, - -126 -00:05:00,090 --> 00:05:04,010 -and I'll turn off the 600 ppi for a moment. - -127 -00:05:04,010 --> 00:05:06,030 -That was Illustrator's default attempt - -128 -00:05:06,030 --> 00:05:09,060 -at tracing the medium-resolution artwork. - -129 -00:05:09,060 --> 00:05:11,030 -And this is the much better, custom, - -130 -00:05:11,030 --> 00:05:13,040 -higher-resolution resolution tracing. - -131 -00:05:13,040 --> 00:05:16,020 -Thanks to our ability to finesse the tracing process - -132 -00:05:16,020 --> 00:05:19,040 -using the advanced Image Trace panel controls - -133 -00:05:19,040 --> 00:05:21,040 -here inside Illustrator. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/08 Expanding and simplifying traced paths.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/08 Expanding and simplifying traced paths.srt" deleted file mode 100755 index d173060..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/08 Expanding and simplifying traced paths.srt" +++ /dev/null @@ -1,503 +0,0 @@ -1 -00:00:00,050 --> 00:00:01,090 -- [Voiceover] In this movie I'll show you how - -2 -00:00:01,090 --> 00:00:05,010 -to expand and simplify your auto traced artwork, - -3 -00:00:05,010 --> 00:00:08,030 -so that you can access the path outlines directly using - -4 -00:00:08,030 --> 00:00:10,050 -Black and White Arrow tools. - -5 -00:00:10,050 --> 00:00:13,040 -And so, for example, where this artwork is concerned - -6 -00:00:13,040 --> 00:00:15,020 -Illustrator has gone ahead and traced - -7 -00:00:15,020 --> 00:00:17,050 -the top edge of the paper. - -8 -00:00:17,050 --> 00:00:21,080 -And we also have a single little piece of dust - -9 -00:00:21,080 --> 00:00:24,020 -right over here that I'd like to get rid of. - -10 -00:00:24,020 --> 00:00:26,010 -And that's the point at which you just go ahead - -11 -00:00:26,010 --> 00:00:28,020 -and expand your artwork so you can modify - -12 -00:00:28,020 --> 00:00:30,030 -the path outlines directly. - -13 -00:00:30,030 --> 00:00:32,060 -And so I'm going to go ahead and zoom back out here. - -14 -00:00:32,060 --> 00:00:34,030 -And I'm going to create a new layer - -15 -00:00:34,030 --> 00:00:36,070 -by dropping down to the little page icon - -16 -00:00:36,070 --> 00:00:38,030 -at the bottom of the layers panel, - -17 -00:00:38,030 --> 00:00:40,040 -and Alt or Option clicking on it. - -18 -00:00:40,040 --> 00:00:43,040 -That forces the display of the layer options dialog box. - -19 -00:00:43,040 --> 00:00:45,070 -At which point I'll go ahead and call this guy - -20 -00:00:45,070 --> 00:00:48,020 -"Expanded Paths" let's say. - -21 -00:00:48,020 --> 00:00:50,030 -And then I'll click OK. - -22 -00:00:50,030 --> 00:00:52,080 -Alright, now I wanna copy the 600 ppi - -23 -00:00:52,080 --> 00:00:54,010 -version of the artwork. - -24 -00:00:54,010 --> 00:00:56,060 -So I'll click on this little circle to select - -25 -00:00:56,060 --> 00:00:58,070 -it right there, and then I'll press the Alt - -26 -00:00:58,070 --> 00:01:00,090 -key or the Option key on the Mac; - -27 -00:01:00,090 --> 00:01:03,020 -and drag either of these blue squares - -28 -00:01:03,020 --> 00:01:05,090 -and drop it onto the new layer. - -29 -00:01:05,090 --> 00:01:07,080 -And because the Alt or Option key is down, - -30 -00:01:07,080 --> 00:01:10,040 -that goes ahead and duplicates the artwork - -31 -00:01:10,040 --> 00:01:11,090 -as opposed to moving it. - -32 -00:01:11,090 --> 00:01:13,070 -Alright, now I'll go ahead and collapse - -33 -00:01:13,070 --> 00:01:15,090 -the tracing layer and turn off it's eye - -34 -00:01:15,090 --> 00:01:18,010 -so that it's no longer visible. - -35 -00:01:18,010 --> 00:01:20,030 -And then I'll go up to this Expand button, - -36 -00:01:20,030 --> 00:01:21,060 -up here in the control panel, - -37 -00:01:21,060 --> 00:01:23,000 -and click on it. - -38 -00:01:23,000 --> 00:01:25,050 -Essentially anytime you see the word "Expand" - -39 -00:01:25,050 --> 00:01:28,010 -inside Illustrator that's going to convert - -40 -00:01:28,010 --> 00:01:31,050 -this special object to static path outlines. - -41 -00:01:31,050 --> 00:01:33,050 -And sure enough, in our case, we end up - -42 -00:01:33,050 --> 00:01:36,040 -with this group; and we can tell it's a group - -43 -00:01:36,040 --> 00:01:38,040 -because we're seeing the word "Group" - -44 -00:01:38,040 --> 00:01:40,090 -over here on the far left side of the control panel. - -45 -00:01:40,090 --> 00:01:43,010 -But I want to gain direct access to all the paths, - -46 -00:01:43,010 --> 00:01:45,090 -so I'll go up to the object menu and choose the "Ungroup" - -47 -00:01:45,090 --> 00:01:48,050 -command, or you can press Control + Shift + G, - -48 -00:01:48,050 --> 00:01:50,030 -or Command + Shift + G on the Mac. - -49 -00:01:50,030 --> 00:01:51,080 -And now I'm going to go ahead - -50 -00:01:51,080 --> 00:01:54,070 -and zoom in here on this top junk. - -51 -00:01:54,070 --> 00:01:56,080 -And I know I want to get rid of this little guy, - -52 -00:01:56,080 --> 00:01:59,020 -so I'll go marquee it with the Black Arrow tool. - -53 -00:01:59,020 --> 00:02:00,070 -And then press the Backspace key, - -54 -00:02:00,070 --> 00:02:03,000 -or the Delete key on the Mac to get rid of it. - -55 -00:02:03,000 --> 00:02:05,080 -And then I'll just marquee this garbage up here at the top, - -56 -00:02:05,080 --> 00:02:09,000 -and I'll again press the Backspace or Delete key. - -57 -00:02:09,000 --> 00:02:10,080 -Alright now let's say you want to simplify - -58 -00:02:10,080 --> 00:02:12,050 -the path outlines a little bit, - -59 -00:02:12,050 --> 00:02:15,070 -Illustrator offers a feature that does exactly that. - -60 -00:02:15,070 --> 00:02:18,000 -And so the first thing I'll do is press Control + A - -61 -00:02:18,000 --> 00:02:20,030 -or Command + A on the Mac in order to select - -62 -00:02:20,030 --> 00:02:22,010 -all the path outlines. - -63 -00:02:22,010 --> 00:02:24,050 -And then I'll press Control + H or Command + H - -64 -00:02:24,050 --> 00:02:26,050 -on the Mac to hide those anchor points - -65 -00:02:26,050 --> 00:02:28,050 -so we can better see what we're doing. - -66 -00:02:28,050 --> 00:02:31,000 -And now you want to go up to the Object menu, - -67 -00:02:31,000 --> 00:02:34,000 -choose Path, and choose Simplify. - -68 -00:02:34,000 --> 00:02:36,050 -Now by default, Illustrator goes a little bit - -69 -00:02:36,050 --> 00:02:39,000 -too far, and we can see that by turning on the - -70 -00:02:39,000 --> 00:02:40,030 -preview checkbox... - -71 -00:02:40,030 --> 00:02:43,010 -(speaker chuckles) - -72 -00:02:43,010 --> 00:02:45,040 -And that just looks absolutely ridiculous. - -73 -00:02:45,040 --> 00:02:47,010 -The good news is we've dropped - -74 -00:02:47,010 --> 00:02:51,000 -from 29,000 anchor points to just 4600. - -75 -00:02:51,000 --> 00:02:52,070 -But of course the bad news is, - -76 -00:02:52,070 --> 00:02:56,050 -that our artwork is absolutely unidentifiable. - -77 -00:02:56,050 --> 00:02:58,030 -So, we have a couple of options here. - -78 -00:02:58,030 --> 00:03:00,060 -We've got the angle threshold that determines - -79 -00:03:00,060 --> 00:03:02,060 -the maximum angle of our corners. - -80 -00:03:02,060 --> 00:03:04,090 -And so notice that as you crack that value up, - -81 -00:03:04,090 --> 00:03:08,020 -you typically get better and better results. - -82 -00:03:08,020 --> 00:03:10,060 -And so, I could take it all the way up to 180. - -83 -00:03:10,060 --> 00:03:12,030 -But then we're not really dropping - -84 -00:03:12,030 --> 00:03:14,040 -too many anchor points here. - -85 -00:03:14,040 --> 00:03:16,040 -Which is why I ultimately took it down to - -86 -00:03:16,040 --> 00:03:19,040 -150 degrees like so. - -87 -00:03:19,040 --> 00:03:21,040 -And then what you typically want to do - -88 -00:03:21,040 --> 00:03:23,050 -is crank the curve precision value - -89 -00:03:23,050 --> 00:03:28,040 -all the way up to 100%. And that still is going to give us - -90 -00:03:28,040 --> 00:03:30,020 -fewer anchor points than we had before. - -91 -00:03:30,020 --> 00:03:33,000 -Notice that we've dropped about 9000 anchor points. - -92 -00:03:33,000 --> 00:03:35,050 -And then I just go ahead and press the Down - -93 -00:03:35,050 --> 00:03:38,020 -Arrow key while this value is active - -94 -00:03:38,020 --> 00:03:40,090 -'til I'm no longer comfortable with the results - -95 -00:03:40,090 --> 00:03:42,050 -that I'm seeing onscreen. - -96 -00:03:42,050 --> 00:03:45,000 -Which happens at about 97%; - -97 -00:03:45,000 --> 00:03:47,010 -things start to shift a little bit too much. - -98 -00:03:47,010 --> 00:03:48,070 -Which is why I went ahead took this - -99 -00:03:48,070 --> 00:03:51,020 -value back up to 98%. - -100 -00:03:51,020 --> 00:03:53,050 -And notice we've still got way fewer points, - -101 -00:03:53,050 --> 00:03:56,050 -about half as many anchor points as we had before. - -102 -00:03:56,050 --> 00:03:58,010 -Which means that this document - -103 -00:03:58,010 --> 00:04:01,060 -is going to be a lot easier to export and to print. - -104 -00:04:01,060 --> 00:04:04,000 -And now I'll just go ahead and click OK - -105 -00:04:04,000 --> 00:04:05,080 -in order to except those results. - -106 -00:04:05,080 --> 00:04:08,070 -And just so we can see the difference nice and close here, - -107 -00:04:08,070 --> 00:04:10,050 -I'll go ahead and press Control + Z - -108 -00:04:10,050 --> 00:04:12,000 -or Command + Z on the Mac. - -109 -00:04:12,000 --> 00:04:14,060 -These are the unsimplified paths. - -110 -00:04:14,060 --> 00:04:16,050 -And then if I press Control + Shift + Z, - -111 -00:04:16,050 --> 00:04:18,020 -or Command + Shift + Z on the Mac - -112 -00:04:18,020 --> 00:04:20,000 -to redo that simplification, - -113 -00:04:20,000 --> 00:04:22,070 -we see those simplified path outlines - -114 -00:04:22,070 --> 00:04:25,050 -with only about half as many anchor points - -115 -00:04:25,050 --> 00:04:29,030 -doing some really great work inside this illustration. - -116 -00:04:29,030 --> 00:04:31,080 -Alright and just because Control + H or Command + H, - -117 -00:04:31,080 --> 00:04:34,010 -that keyboard shortcut that hides the anchor points, - -118 -00:04:34,010 --> 00:04:36,020 -because it's sticky, it's actually saved - -119 -00:04:36,020 --> 00:04:37,090 -as a state in your document. - -120 -00:04:37,090 --> 00:04:39,070 -I'll go ahead and press Control + H - -121 -00:04:39,070 --> 00:04:41,010 -or Command + H on the Mac - -122 -00:04:41,010 --> 00:04:43,000 -in order to bring back those anchor points - -123 -00:04:43,000 --> 00:04:46,020 -and I'll click off the illustration to deselect it. - -124 -00:04:46,020 --> 00:04:48,050 -And that friends, is how you expand - -125 -00:04:48,050 --> 00:04:51,010 -and simplify your auto traced artwork - -126 -00:04:51,010 --> 00:04:53,010 -here inside Illustrator. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/09 Scaling your vector-based tracing.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/09 Scaling your vector-based tracing.srt" deleted file mode 100755 index e3baefb..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/09 Scaling your vector-based tracing.srt" +++ /dev/null @@ -1,275 +0,0 @@ -1 -00:00:00,000 --> 00:00:01,090 -- [Voiceover] We've spent so much trying - -2 -00:00:01,090 --> 00:00:04,000 -to basically make sure we have an exact - -3 -00:00:04,000 --> 00:00:06,080 -vector replica of the original drawing. - -4 -00:00:06,080 --> 00:00:08,050 -Why even bother? - -5 -00:00:08,050 --> 00:00:10,040 -If we already have the original drawing, - -6 -00:00:10,040 --> 00:00:13,010 -why are we working so hard to turn it into vectors? - -7 -00:00:13,010 --> 00:00:15,000 -And the most straightforward answer is, - -8 -00:00:15,000 --> 00:00:17,000 -not only have we managed to correct the art, - -9 -00:00:17,000 --> 00:00:20,010 -because recall that it used to be a pretty dismal scan - -10 -00:00:20,010 --> 00:00:22,030 -in the first place, but the ultimate reason - -11 -00:00:22,030 --> 00:00:25,000 -for converting it to vectors is so we can - -12 -00:00:25,000 --> 00:00:28,000 -scale the artwork to any size we like. - -13 -00:00:28,000 --> 00:00:29,080 -And so let me show you how that works. - -14 -00:00:29,080 --> 00:00:31,050 -I'll go ahead and press Control + 0 - -15 -00:00:31,050 --> 00:00:33,070 -or Command + 0 on a Mac to zoom out, - -16 -00:00:33,070 --> 00:00:35,090 -and I'm gonna switch to the Artwork tool. - -17 -00:00:35,090 --> 00:00:38,050 -Once again, you can get that by pressing Shift + O, - -18 -00:00:38,050 --> 00:00:41,050 -and up here in the control panel I'm gonna click - -19 -00:00:41,050 --> 00:00:44,070 -inside the W value there and I'm just gonna enter - -20 -00:00:44,070 --> 00:00:48,010 -*10 in order to multiply it times 10, - -21 -00:00:48,010 --> 00:00:51,060 -so we go up to 4320 points, and then - -22 -00:00:51,060 --> 00:00:53,090 -I'm gonna do the same with the height value, - -23 -00:00:53,090 --> 00:00:57,030 -I'll multiply it times 10 by entering *10 there, - -24 -00:00:57,030 --> 00:01:00,050 -and then pressing the Tab key, and we get 5400 points. - -25 -00:01:00,050 --> 00:01:02,060 -And that is, by the way, if you do the math, - -26 -00:01:02,060 --> 00:01:05,080 -five feet wide by six and a quarter feet tall. - -27 -00:01:05,080 --> 00:01:07,090 -All right, now I'm gonna press Control + 0 - -28 -00:01:07,090 --> 00:01:09,090 -or Command + 0 on a Mac to zoom out - -29 -00:01:09,090 --> 00:01:13,030 -so you can get a sense of how much bigger this artwork is, - -30 -00:01:13,030 --> 00:01:15,050 -and then I'll press the Escape key in order - -31 -00:01:15,050 --> 00:01:17,080 -to return control to the black arrow tool. - -32 -00:01:17,080 --> 00:01:20,020 -Now press Control + A or Command + A on a Mac - -33 -00:01:20,020 --> 00:01:22,090 -to select all of the artwork, and I'll click - -34 -00:01:22,090 --> 00:01:25,050 -on the word Transform up here in the control panel, - -35 -00:01:25,050 --> 00:01:28,010 -or you may see a W and H value instead, - -36 -00:01:28,010 --> 00:01:30,000 -depending on the width of your screen. - -37 -00:01:30,000 --> 00:01:31,090 -And I'm gonna make sure both the width - -38 -00:01:31,090 --> 00:01:34,040 -and height values are locked into alignment with each other, - -39 -00:01:34,040 --> 00:01:36,080 -and I'll click on the W to select that value - -40 -00:01:36,080 --> 00:01:39,030 -and I'll change it to 3800 points, - -41 -00:01:39,030 --> 00:01:41,050 -and then I'll press the Enter key - -42 -00:01:41,050 --> 00:01:44,020 -or the Return key on the Mac to apply that change. - -43 -00:01:44,020 --> 00:01:47,000 -And we now have what is by any standard - -44 -00:01:47,000 --> 00:01:50,030 -this massive piece of artwork that would have been - -45 -00:01:50,030 --> 00:01:52,090 -very difficult to draw in the first place. - -46 -00:01:52,090 --> 00:01:55,000 -I don't see how it would have come up with - -47 -00:01:55,000 --> 00:01:57,060 -these gestures at all if I were trying to draw - -48 -00:01:57,060 --> 00:02:00,030 -something that's actually taller than I am. - -49 -00:02:00,030 --> 00:02:03,080 -And yet, if I press Control + 1 or Command + 1 on a Mac, - -50 -00:02:03,080 --> 00:02:07,000 -in order to zoom in to 100%, you can see - -51 -00:02:07,000 --> 00:02:09,080 -that we have this wonderful detail - -52 -00:02:09,080 --> 00:02:13,000 -that we could not achieve in any other way. - -53 -00:02:13,000 --> 00:02:15,070 -All right, and just as a finishing touch here, - -54 -00:02:15,070 --> 00:02:18,060 -I decided I wanted to thicken up the lines a little bit - -55 -00:02:18,060 --> 00:02:21,040 -for the sake of, let's just say my signature, - -56 -00:02:21,040 --> 00:02:23,060 -and so I press Control + A once again, - -57 -00:02:23,060 --> 00:02:25,080 -Command + A on the Mac to select all the artwork, - -58 -00:02:25,080 --> 00:02:28,020 -I press Control + H or Command + H on a Mac - -59 -00:02:28,020 --> 00:02:30,020 -just to hide those anchor points, - -60 -00:02:30,020 --> 00:02:32,060 -and then I went ahead and changed the line weight - -61 -00:02:32,060 --> 00:02:34,090 -up here in the control panel to two points - -62 -00:02:34,090 --> 00:02:38,050 -in order to thicken things ever so slightly. - -63 -00:02:38,050 --> 00:02:41,000 -And because by default the stroke is centered, - -64 -00:02:41,000 --> 00:02:44,000 -we're actually only adding one point of weight - -65 -00:02:44,000 --> 00:02:46,090 -to either side of any given line. - -66 -00:02:46,090 --> 00:02:49,080 -And that's how you turn a simple piece of line art - -67 -00:02:49,080 --> 00:02:53,000 -from the year 1986, a year before Illustrator - -68 -00:02:53,000 --> 00:02:55,090 -had even hit the market, into a massive piece - -69 -00:02:55,090 --> 00:02:59,090 -of vector-based artwork here inside Illustrator. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/10 Tracing lines with uniform strokes.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/10 Tracing lines with uniform strokes.srt" deleted file mode 100755 index 7ef9947..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/10 Tracing lines with uniform strokes.srt" +++ /dev/null @@ -1,679 +0,0 @@ -1 -00:00:00,000 --> 00:00:01,080 -- [Voiceover] In this movie, I'll show you how to trace - -2 -00:00:01,080 --> 00:00:04,060 -a piece of artwork using nothing but uniform strokes. - -3 -00:00:04,060 --> 00:00:07,060 -And you can see here that the effect are pretty great. - -4 -00:00:07,060 --> 00:00:10,020 -The thing is, it's a more intensive process - -5 -00:00:10,020 --> 00:00:12,040 -for Illustrator so it takes more time. - -6 -00:00:12,040 --> 00:00:15,040 -So this piece of artwork happen to start as a pencil sketch - -7 -00:00:15,040 --> 00:00:18,000 -that I did with my youngest son, Sam. - -8 -00:00:18,000 --> 00:00:21,010 -And then I took it into Photoshop and firmed up the lines. - -9 -00:00:21,010 --> 00:00:22,060 -Alright, so here's how it works: - -10 -00:00:22,060 --> 00:00:24,060 -Step one is to go to the file menu - -11 -00:00:24,060 --> 00:00:26,040 -and choose the new command, or of course, - -12 -00:00:26,040 --> 00:00:29,030 -you can press Ctrl+N, or command+N on the Mac. - -13 -00:00:29,030 --> 00:00:32,060 -And I once again started with a basic RGB document - -14 -00:00:32,060 --> 00:00:35,000 -and I went in, switched the orientation to portrait, - -15 -00:00:35,000 --> 00:00:36,060 -and clicked OK. - -16 -00:00:36,060 --> 00:00:38,070 -Alright, next step is to go to the file menu, - -17 -00:00:38,070 --> 00:00:39,090 -and choose the place command - -18 -00:00:39,090 --> 00:00:42,060 -or press Crt+Shift+P or Command+Shift+P on a Mac. - -19 -00:00:42,060 --> 00:00:44,050 -And then, if you're working along with me, - -20 -00:00:44,050 --> 00:00:46,080 -go ahead and locate that scanned pencil sketch, - -21 -00:00:46,080 --> 00:00:48,080 -and click the Place button. - -22 -00:00:48,080 --> 00:00:50,090 -And then, click inside the document window, - -23 -00:00:50,090 --> 00:00:52,020 -don't drag, just click, - -24 -00:00:52,020 --> 00:00:54,090 -in order to place that image on the art board. - -25 -00:00:54,090 --> 00:00:56,000 -Alright, next I'm going to go ahead - -26 -00:00:56,000 --> 00:00:57,020 -and switch to the art board tool, - -27 -00:00:57,020 --> 00:00:58,050 -and as you can see here, - -28 -00:00:58,050 --> 00:01:00,090 -I've switched back to the single column tool box - -29 -00:01:00,090 --> 00:01:03,000 -just to take up less room on screen. - -30 -00:01:03,000 --> 00:01:05,060 -And now, assuming that your smart guides are turned on, - -31 -00:01:05,060 --> 00:01:09,000 -go ahead and drag the corners until they snap into alignment - -32 -00:01:09,000 --> 00:01:10,060 -with the corner of the artwork - -33 -00:01:10,060 --> 00:01:14,010 -and then press the Escape key to exit the art work mode. - -34 -00:01:14,010 --> 00:01:16,010 -Alright, now I'm going to go ahead and zoom in - -35 -00:01:16,010 --> 00:01:18,080 -on my artwork quite a bit so I can keep track - -36 -00:01:18,080 --> 00:01:21,040 -of the top portion of this document. - -37 -00:01:21,040 --> 00:01:23,050 -And I'll go up to the image trace button, - -38 -00:01:23,050 --> 00:01:26,060 -and simply click on it to start things off. - -39 -00:01:26,060 --> 00:01:28,010 -And if you get that warning saying - -40 -00:01:28,010 --> 00:01:30,090 -there's too much resolution, just go ahead and click, OK - -41 -00:01:30,090 --> 00:01:34,000 -in order to ignore that dreadful advice. - -42 -00:01:34,000 --> 00:01:35,010 -In a few moments later, - -43 -00:01:35,010 --> 00:01:38,050 -Illustrator will work its default magic on the image. - -44 -00:01:38,050 --> 00:01:40,000 -Alright, now what we want to do is - -45 -00:01:40,000 --> 00:01:41,080 -bring up the Image Trace panel, - -46 -00:01:41,080 --> 00:01:43,000 -which you can do by clicking on this - -47 -00:01:43,000 --> 00:01:45,070 -Image Trace icon up here in the Control panel. - -48 -00:01:45,070 --> 00:01:48,090 -If necessary, go ahead and twirl open the Advance Settings, - -49 -00:01:48,090 --> 00:01:52,050 -like so, and for now, turn off the preview check box. - -50 -00:01:52,050 --> 00:01:53,040 -And the reason is, - -51 -00:01:53,040 --> 00:01:55,070 -I've already explained how these options work - -52 -00:01:55,070 --> 00:01:57,050 -and I just want to dial in a bunch of them - -53 -00:01:57,050 --> 00:02:00,010 -that happen to work well for this particular image. - -54 -00:02:00,010 --> 00:02:02,000 -So, I'll start by taking the threshold value - -55 -00:02:02,000 --> 00:02:04,060 -all the way up to 230 and that way, - -56 -00:02:04,060 --> 00:02:07,070 -we're tracing more of the artwork instead of less. - -57 -00:02:07,070 --> 00:02:10,000 -And I'll Tab my way down to the Noise value, - -58 -00:02:10,000 --> 00:02:12,050 -and take it down to just five pixels. - -59 -00:02:12,050 --> 00:02:15,070 -Next, you want to turn off Snap Curves to Lines, - -60 -00:02:15,070 --> 00:02:18,040 -and turn on Ignore White so that we're going to end up - -61 -00:02:18,040 --> 00:02:20,060 -tracing just black and not white. - -62 -00:02:20,060 --> 00:02:24,000 -And then finally, turn off the Fills check box, - -63 -00:02:24,000 --> 00:02:26,090 -and what that's going to do is force Strokes to turn on. - -64 -00:02:26,090 --> 00:02:29,070 -You can trace both filled and stroked paths if you like, - -65 -00:02:29,070 --> 00:02:32,040 -but that's not really the effect we're looking for. - -66 -00:02:32,040 --> 00:02:34,090 -So just go ahead and turn off the Fills check box. - -67 -00:02:34,090 --> 00:02:37,030 -And then, click on the Trace button. - -68 -00:02:37,030 --> 00:02:39,090 -That's an alternative to the Preview check box by the way. - -69 -00:02:39,090 --> 00:02:42,070 -An alternative way to at least invoke a trace. - -70 -00:02:42,070 --> 00:02:45,040 -And a few moments later, you should see - -71 -00:02:45,040 --> 00:02:47,050 -a bunch of trace strokes on screen. - -72 -00:02:47,050 --> 00:02:49,090 -If Illustrator freaks out a little bit in the mean time, - -73 -00:02:49,090 --> 00:02:51,000 -don't worry about it. - -74 -00:02:51,000 --> 00:02:53,030 -It shouldn't crash, it should hang in there, - -75 -00:02:53,030 --> 00:02:54,030 -but you never know. - -76 -00:02:54,030 --> 00:02:57,010 -Again, this is a complex process for the program. - -77 -00:02:57,010 --> 00:02:59,010 -Alight, now given the default settings, - -78 -00:02:59,010 --> 00:03:02,000 -we have a ton of gaps in the illustration - -79 -00:03:02,000 --> 00:03:04,080 -and that's because of this Stroke option right here. - -80 -00:03:04,080 --> 00:03:07,070 -And notice it's telling us the maximum width and pixels - -81 -00:03:07,070 --> 00:03:10,020 -that will be recognized and converted to strokes paths. - -82 -00:03:10,020 --> 00:03:12,050 -So in other words, the bigger the value, - -83 -00:03:12,050 --> 00:03:14,050 -the fewer gaps you'll get. - -84 -00:03:14,050 --> 00:03:16,040 -But you don't want to take the value too high, - -85 -00:03:16,040 --> 00:03:19,020 -because that will result in longer delays. - -86 -00:03:19,020 --> 00:03:21,070 -So what I recommend is you move in kinda baby steps - -87 -00:03:21,070 --> 00:03:23,020 -and so what I'm going to do is - -88 -00:03:23,020 --> 00:03:25,030 -take the Stroke Value up to 20 pixels - -89 -00:03:25,030 --> 00:03:28,040 -and then press the Enter key or the Return key on the Mac - -90 -00:03:28,040 --> 00:03:29,090 -to invoke that change. - -91 -00:03:29,090 --> 00:03:32,010 -And notice the Preview check box is back on - -92 -00:03:32,010 --> 00:03:35,070 -so in a few moments, we should see a progress bar or two. - -93 -00:03:35,070 --> 00:03:38,060 -If it just seems like Illustrator's ignoring you, - -94 -00:03:38,060 --> 00:03:40,080 -just hang in there and wait a moment - -95 -00:03:40,080 --> 00:03:43,020 -and notice I never did see a progress bar - -96 -00:03:43,020 --> 00:03:46,050 -but Illustrator did go ahead and complete the trace. - -97 -00:03:46,050 --> 00:03:49,010 -Now what we want to do is check things - -98 -00:03:49,010 --> 00:03:51,050 -to make sure everything looks the way it should - -99 -00:03:51,050 --> 00:03:56,030 -and you should see very few, if any gaps inside the artwork. - -100 -00:03:56,030 --> 00:03:58,020 -In particular, this little pocket pen - -101 -00:03:58,020 --> 00:04:00,060 -should be traced in its entirety. - -102 -00:04:00,060 --> 00:04:03,040 -And in my case everything looks pretty darn good. - -103 -00:04:03,040 --> 00:04:06,080 -Now one of the things about auto-tracing stroked artwork - -104 -00:04:06,080 --> 00:04:09,040 -is you cannot control the line weight - -105 -00:04:09,040 --> 00:04:12,000 -until you expand the path outlines. - -106 -00:04:12,000 --> 00:04:14,040 -So I'm going to go ahead and close the image Trace panel - -107 -00:04:14,040 --> 00:04:16,090 -and I'm going to make some modifications here - -108 -00:04:16,090 --> 00:04:19,040 -inside the Layers panel by clicking on a fly-out menu icon, - -109 -00:04:19,040 --> 00:04:22,050 -choosing Panel Options, then selecting Other, - -110 -00:04:22,050 --> 00:04:25,020 -and changing that value to 70 pixels. - -111 -00:04:25,020 --> 00:04:28,040 -And then I'll just go ahead and rename the layer Tracing - -112 -00:04:28,040 --> 00:04:30,090 -and twirl it open as well. - -113 -00:04:30,090 --> 00:04:33,020 -Now, we want to keep the original traced artwork - -114 -00:04:33,020 --> 00:04:34,030 -we don't want to lose it. - -115 -00:04:34,030 --> 00:04:37,090 -So what you can do is copy and paste in front, if you like. - -116 -00:04:37,090 --> 00:04:39,090 -But my experience is that Illustrator, - -117 -00:04:39,090 --> 00:04:43,010 -as often as not when you copy this piece of artwork - -118 -00:04:43,010 --> 00:04:45,040 -will crash, at least on this machine. - -119 -00:04:45,040 --> 00:04:48,020 -So, an alternate to using the Clipboard at all - -120 -00:04:48,020 --> 00:04:51,010 -is to press the Alt key or the Option key on the Mac - -121 -00:04:51,010 --> 00:04:54,020 -and drag this item, like so, just drag it up a little bit. - -122 -00:04:54,020 --> 00:04:57,010 -And so that's an Alt+drag or an Option+drag - -123 -00:04:57,010 --> 00:04:58,070 -and that'll create a copy of it - -124 -00:04:58,070 --> 00:05:00,050 -without going to the Clipboard, - -125 -00:05:00,050 --> 00:05:02,050 -which is a lot easier on Illustrator, - -126 -00:05:02,050 --> 00:05:05,030 -and possibly easier on your nerves as well. - -127 -00:05:05,030 --> 00:05:07,060 -Alright, now I'm going to turn off the original. - -128 -00:05:07,060 --> 00:05:09,030 -And then I'll go up the the Control Panel - -129 -00:05:09,030 --> 00:05:11,000 -and click on the Expand button - -130 -00:05:11,000 --> 00:05:14,050 -in order to scan this special object to Static Path Outlines - -131 -00:05:14,050 --> 00:05:17,080 -and then I'll change the line wight to 1.2 points - -132 -00:05:17,080 --> 00:05:20,020 -in order to produce this effect here. - -133 -00:05:20,020 --> 00:05:22,030 -And if you get a little warning saying that - -134 -00:05:22,030 --> 00:05:23,070 -Illustrator can't do it, - -135 -00:05:23,070 --> 00:05:27,000 -just click OK and it should do it anyway. - -136 -00:05:27,000 --> 00:05:28,060 -Alright, now we want to simplify the art. - -137 -00:05:28,060 --> 00:05:31,030 -So go ahead and press Ctrl+H or Command+H on the Mac - -138 -00:05:31,030 --> 00:05:32,090 -to hide the anchor points. - -139 -00:05:32,090 --> 00:05:34,060 -And then go the the Object menu, - -140 -00:05:34,060 --> 00:05:37,000 -choose Path, and choose Simplify. - -141 -00:05:37,000 --> 00:05:40,090 -And this one really responds poorly to the default settings - -142 -00:05:40,090 --> 00:05:45,030 -This sun is a complete mess and this moon is a disaster. - -143 -00:05:45,030 --> 00:05:46,090 -So what I suggest you do - -144 -00:05:46,090 --> 00:05:50,010 -is once again take this Curve Position value up to 100%, - -145 -00:05:50,010 --> 00:05:52,030 -then press the Tab key and notice, - -146 -00:05:52,030 --> 00:05:54,010 -assuming the preview check box is turned on, - -147 -00:05:54,010 --> 00:05:57,010 -that the number of anchor points goes up, - -148 -00:05:57,010 --> 00:05:58,000 -which is not what we want, - -149 -00:05:58,000 --> 00:05:59,080 -so go ahead and click in that Curved Position value - -150 -00:05:59,080 --> 00:06:03,060 -and press the Down arrow key in order to reduce the value - -151 -00:06:03,060 --> 00:06:06,010 -until the artwork starts to change - -152 -00:06:06,010 --> 00:06:07,050 -more than you're comfortable with, - -153 -00:06:07,050 --> 00:06:09,090 -which once again happens for me at 97% - -154 -00:06:09,090 --> 00:06:13,020 -so I'll press the Up arrow key to take that value up to 98% - -155 -00:06:13,020 --> 00:06:15,080 -but we're still losing more than 1000 anchor points - -156 -00:06:15,080 --> 00:06:16,080 -which is great. - -157 -00:06:16,080 --> 00:06:19,090 -And then I just experimented with this Angle Threshold value - -158 -00:06:19,090 --> 00:06:23,010 -but notice how the moon's hand changes; his elbow as well. - -159 -00:06:23,010 --> 00:06:25,070 -When I take that value up to 100 degrees, - -160 -00:06:25,070 --> 00:06:28,000 -we get a little more bending action. - -161 -00:06:28,000 --> 00:06:30,050 -And incidental, you can take this value all the way up - -162 -00:06:30,050 --> 00:06:33,040 -to 180 degrees if you like, but to my mind, - -163 -00:06:33,040 --> 00:06:35,060 -that doesn't create exactly the right effect. - -164 -00:06:35,060 --> 00:06:37,070 -So, once again, I'll take it to 100 degrees - -165 -00:06:37,070 --> 00:06:39,000 -You can see we're still dropping - -166 -00:06:39,000 --> 00:06:40,050 -more than 1000 anchor points, - -167 -00:06:40,050 --> 00:06:42,070 -at which point I'll go ahead and click OK - -168 -00:06:42,070 --> 00:06:44,090 -to apply that change. - -169 -00:06:44,090 --> 00:06:47,020 -And that's how you trace a piece of scanned artwork - -170 -00:06:47,020 --> 00:06:51,040 -using nothing but Uniform Strokes, here inside Illustrator. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/11 Tracing both strokes and color fills.srt" "b/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/11 Tracing both strokes and color fills.srt" deleted file mode 100755 index f80c27c..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\211\271\351\207\217\347\277\273\350\257\221-\345\217\252\346\234\211SRT\346\226\207\344\273\266/11 Tracing both strokes and color fills.srt" +++ /dev/null @@ -1,699 +0,0 @@ -1 -00:00:00,050 --> 00:00:01,060 -- [Voiceover] In this movie we'll take a look - -2 -00:00:01,060 --> 00:00:05,010 -at how you can combine strokes along with colored fills - -3 -00:00:05,010 --> 00:00:07,060 -when tracing our work inside Illustrator. - -4 -00:00:07,060 --> 00:00:10,020 -So here we are looking at a Vector take - -5 -00:00:10,020 --> 00:00:14,050 -on Albrecht Durer's classic 16th century rhinoceros, - -6 -00:00:14,050 --> 00:00:15,070 -which might be better than - -7 -00:00:15,070 --> 00:00:17,090 -the last illustration we looked at. - -8 -00:00:17,090 --> 00:00:18,080 -And so let's see how we can - -9 -00:00:18,080 --> 00:00:20,090 -put something like this together. - -10 -00:00:20,090 --> 00:00:22,010 -I'm gonna create a new document - -11 -00:00:22,010 --> 00:00:25,020 -just by pressing "control n" or "command n" on the Mac. - -12 -00:00:25,020 --> 00:00:27,080 -And I'll once again set the profile to basic RGB, - -13 -00:00:27,080 --> 00:00:30,050 -this time our horizontal orientation is gonna work great. - -14 -00:00:30,050 --> 00:00:32,010 -At which point I'll click okay - -15 -00:00:32,010 --> 00:00:33,090 -in order to create that document. - -16 -00:00:33,090 --> 00:00:35,070 -Then, I'll go on up to the file menu - -17 -00:00:35,070 --> 00:00:37,040 -and choose the place command, - -18 -00:00:37,040 --> 00:00:38,070 -again we have a keyboard shortcut - -19 -00:00:38,070 --> 00:00:41,080 -of "control shift p" or "command shift p" on the Mac. - -20 -00:00:41,080 --> 00:00:44,050 -And I've got this image here called "Grayscale rhino tif" - -21 -00:00:44,050 --> 00:00:46,000 -that I'll just go ahead and double-click - -22 -00:00:46,000 --> 00:00:48,060 -in order to load my cursor and then I'll click - -23 -00:00:48,060 --> 00:00:51,090 -being careful not to drag inside the document window. - -24 -00:00:51,090 --> 00:00:54,020 -Alright, now I want to scale the art board to fit the image. - -25 -00:00:54,020 --> 00:00:56,020 -So I'll select the art board tool, - -26 -00:00:56,020 --> 00:00:57,070 -which I can get by pressing "shift o," - -27 -00:00:57,070 --> 00:01:00,000 -and I'll go ahead and drag the corners - -28 -00:01:00,000 --> 00:01:01,080 -until they snap into position - -29 -00:01:01,080 --> 00:01:03,050 -with the help of smart guides. - -30 -00:01:03,050 --> 00:01:05,080 -After which point I'll press the escape key - -31 -00:01:05,080 --> 00:01:08,000 -in order to exit the art board mode. - -32 -00:01:08,000 --> 00:01:09,050 -And I'll go to the layers panel, - -33 -00:01:09,050 --> 00:01:11,000 -look in the fly-out menu icon, - -34 -00:01:11,000 --> 00:01:12,040 -choose panel options. - -35 -00:01:12,040 --> 00:01:14,030 -I just can't stand small thumbnails - -36 -00:01:14,030 --> 00:01:17,040 -so I'll select other and change the size to 70 pixels. - -37 -00:01:17,040 --> 00:01:20,080 -And then I'll just go ahead and rename this layer "tracings" - -38 -00:01:20,080 --> 00:01:23,030 -and press the enter key or the return key on the Mac. - -39 -00:01:23,030 --> 00:01:25,060 -Now at this point the image is looking pretty terrible - -40 -00:01:25,060 --> 00:01:28,010 -and that's because we're so far zoomed out from it, - -41 -00:01:28,010 --> 00:01:30,010 -but if you zoom in to 300% or more - -42 -00:01:30,010 --> 00:01:32,000 -it'll start looking a lot better. - -43 -00:01:32,000 --> 00:01:33,090 -Alright, now I'll click the image trace button - -44 -00:01:33,090 --> 00:01:36,010 -and ignore the warning by clicking okay. - -45 -00:01:36,010 --> 00:01:37,050 -In order to give Illustrator a chance - -46 -00:01:37,050 --> 00:01:39,040 -to take a first swing at things. - -47 -00:01:39,040 --> 00:01:42,000 -And then I'll click on the image trace panel icon - -48 -00:01:42,000 --> 00:01:44,000 -to bring up said panel. - -49 -00:01:44,000 --> 00:01:45,030 -Alright, now I happen to know - -50 -00:01:45,030 --> 00:01:46,050 -some settings I want to apply here. - -51 -00:01:46,050 --> 00:01:49,020 -So I'm gonna twirl open the advanced area - -52 -00:01:49,020 --> 00:01:51,060 -and I'm going to turn off the preview for a moment - -53 -00:01:51,060 --> 00:01:53,020 -while I adjust some settings. - -54 -00:01:53,020 --> 00:01:54,060 -I know I want to switch the mode - -55 -00:01:54,060 --> 00:01:56,060 -from black and white to grayscale, - -56 -00:01:56,060 --> 00:01:59,010 -so that we can trace various shades of gray. - -57 -00:01:59,010 --> 00:02:00,050 -At which point Illustrator asks you - -58 -00:02:00,050 --> 00:02:02,010 -how many grays you'd like, - -59 -00:02:02,010 --> 00:02:03,080 -I'm just gonna leave it set to 50, - -60 -00:02:03,080 --> 00:02:05,090 -but you can adjust that value to taste. - -61 -00:02:05,090 --> 00:02:09,030 -I'm gonna take the number of paths up to 100%, - -62 -00:02:09,030 --> 00:02:12,010 -I'm gonna take the corners' value down to 50%, - -63 -00:02:12,010 --> 00:02:15,060 -and I'll take the noise value down to just one. - -64 -00:02:15,060 --> 00:02:17,040 -Then I'll turn on the "ignore white" checkbox - -65 -00:02:17,040 --> 00:02:20,080 -and I'll turn off "snap curves to lines," - -66 -00:02:20,080 --> 00:02:22,070 -and finally I'll click on the trace button - -67 -00:02:22,070 --> 00:02:24,070 -to see what Illustrator comes up with. - -68 -00:02:24,070 --> 00:02:25,050 -And bear in mind, - -69 -00:02:25,050 --> 00:02:28,010 -this time it's gonna create more path outlines, - -70 -00:02:28,010 --> 00:02:30,040 -but they're gonna be various shades of gray - -71 -00:02:30,040 --> 00:02:31,070 -this time around. - -72 -00:02:31,070 --> 00:02:35,020 -So obviously we have a more complex tracing - -73 -00:02:35,020 --> 00:02:36,090 -then we've seen in the past. - -74 -00:02:36,090 --> 00:02:39,040 -And in my case my screen is turning black, - -75 -00:02:39,040 --> 00:02:41,020 -but once it finishes we can see - -76 -00:02:41,020 --> 00:02:43,020 -these wonderful shades of gray - -77 -00:02:43,020 --> 00:02:45,000 -that Illustrator's come up with. - -78 -00:02:45,000 --> 00:02:47,070 -Alright, now let's add some strokes on top of them. - -79 -00:02:47,070 --> 00:02:49,040 -By first getting the image trace panel - -80 -00:02:49,040 --> 00:02:51,000 -out of the way of the layers panel. - -81 -00:02:51,000 --> 00:02:52,090 -And then I'll twirl open that panel - -82 -00:02:52,090 --> 00:02:54,050 -and grab this guy right there - -83 -00:02:54,050 --> 00:02:57,050 -and alt or option drag him up ever so slightly - -84 -00:02:57,050 --> 00:02:59,040 -to create a duplicate. - -85 -00:02:59,040 --> 00:03:00,070 -Then you wanna make sure that - -86 -00:03:00,070 --> 00:03:03,000 -that top tracing is selected. - -87 -00:03:03,000 --> 00:03:05,060 -Turn off the preview checkbox once again, - -88 -00:03:05,060 --> 00:03:08,010 -switch the mode back to black and white, - -89 -00:03:08,010 --> 00:03:09,040 -because notice that the fills - -90 -00:03:09,040 --> 00:03:11,070 -and strokes check boxes are dimmed - -91 -00:03:11,070 --> 00:03:14,060 -when we're working in either color or grayscale. - -92 -00:03:14,060 --> 00:03:16,070 -So go ahead and switch back to black and white. - -93 -00:03:16,070 --> 00:03:19,070 -I'm gonna set the threshold this time to 150, - -94 -00:03:19,070 --> 00:03:22,020 -the other values are fine as is - -95 -00:03:22,020 --> 00:03:24,040 -except for the fact that I'm gonna turn off fills, - -96 -00:03:24,040 --> 00:03:26,040 -which automatically turns on strokes, - -97 -00:03:26,040 --> 00:03:28,040 -and I'm gonna change the stroke value - -98 -00:03:28,040 --> 00:03:30,040 -right there to 20 pixels. - -99 -00:03:30,040 --> 00:03:31,070 -After which point I'll go ahead - -100 -00:03:31,070 --> 00:03:33,030 -and click the trace button once again - -101 -00:03:33,030 --> 00:03:36,030 -in order to apply my settings. - -102 -00:03:36,030 --> 00:03:38,050 -Now, it's gonna look terrible at first - -103 -00:03:38,050 --> 00:03:40,060 -and that's because you can't adjust the line weight - -104 -00:03:40,060 --> 00:03:42,050 -until you expand the strokes. - -105 -00:03:42,050 --> 00:03:45,060 -So what we're gonna do is select this entire layer - -106 -00:03:45,060 --> 00:03:48,030 -and then bring up the layer's panel's fly-out menu - -107 -00:03:48,030 --> 00:03:50,010 -and choose duplicate tracings - -108 -00:03:50,010 --> 00:03:52,020 -in order to duplicate that layer. - -109 -00:03:52,020 --> 00:03:54,010 -Now what you wanna do is scroll down here - -110 -00:03:54,010 --> 00:03:58,030 -and turn off the top tracing in this blue tracing layer. - -111 -00:03:58,030 --> 00:04:00,080 -And then just go ahead and twirl this layer closed. - -112 -00:04:00,080 --> 00:04:04,030 -And double-click on an empty portion of the top layer, - -113 -00:04:04,030 --> 00:04:06,000 -the one we just duplicated, - -114 -00:04:06,000 --> 00:04:08,030 -and let's change it to "expanded" - -115 -00:04:08,030 --> 00:04:10,080 -and change the color to light red - -116 -00:04:10,080 --> 00:04:12,020 -just so we can tell it apart. - -117 -00:04:12,020 --> 00:04:15,070 -Alright, now with this big stroked object selected, - -118 -00:04:15,070 --> 00:04:18,040 -click on the expand button up here in the control panel. - -119 -00:04:18,040 --> 00:04:20,060 -And then let's take the line weight value - -120 -00:04:20,060 --> 00:04:23,030 -down to just 0.3 points - -121 -00:04:23,030 --> 00:04:26,030 -in order to produce these much more delicate lines here. - -122 -00:04:26,030 --> 00:04:29,020 -Alright, now I wanna colorize the grays a little bit - -123 -00:04:29,020 --> 00:04:31,010 -so I'm gonna hide the image trace panel - -124 -00:04:31,010 --> 00:04:34,070 -and I'm gonna select this lower object right here. - -125 -00:04:34,070 --> 00:04:36,040 -And notice it's appearing blue, - -126 -00:04:36,040 --> 00:04:37,060 -that's just because you have to collapse - -127 -00:04:37,060 --> 00:04:41,020 -and expand this layer once again for it to turn red. - -128 -00:04:41,020 --> 00:04:42,090 -And so with it selected, - -129 -00:04:42,090 --> 00:04:45,050 -go ahead and click on the expand button once again, - -130 -00:04:45,050 --> 00:04:49,060 -in order to expand the trace object to static path outlines. - -131 -00:04:49,060 --> 00:04:50,090 -Alright, now I wanna go ahead - -132 -00:04:50,090 --> 00:04:53,080 -and fuse all these objects together. - -133 -00:04:53,080 --> 00:04:56,000 -And this is a kind of preview of coming attractions - -134 -00:04:56,000 --> 00:04:57,040 -in the very next chapter. - -135 -00:04:57,040 --> 00:05:00,000 -What I want you to do is go up to the window menu - -136 -00:05:00,000 --> 00:05:03,030 -and choose pathfinder to bring up the pathfinder panel. - -137 -00:05:03,030 --> 00:05:04,050 -And then just go ahead and click - -138 -00:05:04,050 --> 00:05:07,060 -on this very first icon in the first row. - -139 -00:05:07,060 --> 00:05:09,090 -What it does is it goes ahead and unites - -140 -00:05:09,090 --> 00:05:11,080 -all of these various path outlines - -141 -00:05:11,080 --> 00:05:14,040 -into one overarching outline, - -142 -00:05:14,040 --> 00:05:15,060 -which is just gonna make things - -143 -00:05:15,060 --> 00:05:17,060 -a little simpler in the long run. - -144 -00:05:17,060 --> 00:05:19,010 -And as you can see, - -145 -00:05:19,010 --> 00:05:20,030 -you're gonna get a progress bar - -146 -00:05:20,030 --> 00:05:21,040 -because we are creating - -147 -00:05:21,040 --> 00:05:24,040 -a fairly extraordinarily complicated document here. - -148 -00:05:24,040 --> 00:05:26,000 -So try to be patient with Illustrator - -149 -00:05:26,000 --> 00:05:27,060 -as it does its best. - -150 -00:05:27,060 --> 00:05:30,030 -Then I'll go ahead and hide the pathfinder panel, - -151 -00:05:30,030 --> 00:05:33,080 -and I'll click on the fill icon up here in the control panel - -152 -00:05:33,080 --> 00:05:36,040 -and I'll change it to this medium shade of blue, - -153 -00:05:36,040 --> 00:05:40,030 -which is "R0G113B188." - -154 -00:05:40,030 --> 00:05:43,020 -And then finally I'll click on the word "Opacity," - -155 -00:05:43,020 --> 00:05:45,010 -once again up here in the control panel. - -156 -00:05:45,010 --> 00:05:46,090 -And I'm gonna change the blend mode, - -157 -00:05:46,090 --> 00:05:48,030 -which is a topic that we'll be looking at - -158 -00:05:48,030 --> 00:05:50,090 -in a future chapter of this very course, - -159 -00:05:50,090 --> 00:05:53,030 -and I'm gonna change the mode to color - -160 -00:05:53,030 --> 00:05:56,070 -so that we're colorizing the rhinoceros in the background. - -161 -00:05:56,070 --> 00:06:00,000 -And then I'm gonna take the opacity value down to 50% - -162 -00:06:00,000 --> 00:06:02,030 -and press the enter key or the return key on the Mac - -163 -00:06:02,030 --> 00:06:03,080 -to hide that panel. - -164 -00:06:03,080 --> 00:06:05,030 -And finally, I'll go ahead and press - -165 -00:06:05,030 --> 00:06:08,020 -"control shift a" or "command shift a" on the Mac - -166 -00:06:08,020 --> 00:06:10,050 -in order to deselect that artwork. - -167 -00:06:10,050 --> 00:06:12,050 -And I will press the "f" key - -168 -00:06:12,050 --> 00:06:15,020 -a couple of times to switch to the fullscreen mode. - -169 -00:06:15,020 --> 00:06:16,020 -And I'll go ahead and press - -170 -00:06:16,020 --> 00:06:18,080 -"control 0" or "command 0" on the Mac - -171 -00:06:18,080 --> 00:06:21,050 -in order to fit the artwork on screen. - -172 -00:06:21,050 --> 00:06:23,050 -And that folks is at least one way - -173 -00:06:23,050 --> 00:06:26,010 -to combine strokes along with colored fills - -174 -00:06:26,010 --> 00:06:28,060 -when auto-tracing a piece of classic artwork - -175 -00:06:28,060 --> 00:06:30,060 -here inside Illustrator. \ No newline at end of file diff --git "a/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2661 - ASS - The Singularity, Skynet, and the Future of Computing_ Crash Course Computer Science #40.ass" "b/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2661 - ASS - The Singularity, Skynet, and the Future of Computing_ Crash Course Computer Science #40.ass" deleted file mode 100644 index f91c72b..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2661 - ASS - The Singularity, Skynet, and the Future of Computing_ Crash Course Computer Science #40.ass" +++ /dev/null @@ -1,217 +0,0 @@ -[Script Info] -; Script generated by Aegisub 3.2.2 -; http://www.aegisub.org/ -Title: Default Aegisub file -ScriptType: v4.00+ -WrapStyle: 0 -ScaledBorderAndShadow: yes -YCbCr Matrix: None - -[Aegisub Project Garbage] -Last Style Storage: Default - -[V4+ Styles] -Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding -Style: Default,方正准圆简体,57,&H0080FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,3,2,2,3,3,13,1 -Style: 底部白,方正准圆简体,48,&H00FFFFFF,&H000000FF,&H77000000,&H9A000000,-1,0,0,0,100,100,0,0,1,3,2,2,3,3,13,1 -Style: 中文黄,方正准圆简体,68,&H0080FFFF,&H000000FF,&H9A000000,&H9A000000,-1,0,0,0,100,100,2.1,0,1,3,1.9,2,3,3,13,1 -Style: 吐槽!,方正准圆简体,45,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,3,2,8,3,3,13,1 -Style: 批注,方正准圆简体,45,&H0080FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,3,2,7,3,3,13,1 -Style: Emoji,EmojiOne Color,50,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1 -Style: 批注黑,方正准圆简体,46,&H44000000,&HFF0000FF,&HFF000000,&HFFFFFFFF,-1,0,0,0,100,100,0,0,1,3,2,8,3,3,13,1 -Style: 中文白,方正准圆简体,57,&H00FFFFFF,&H000000FF,&H55000000,&H63000000,-1,0,0,0,100,100,0,0,1,3,2,2,3,3,13,1 -Style: 批注白,方正准圆简体,40,&H00FFFFFF,&HFF0000FF,&HFF000000,&HFFFFFFFF,-1,0,0,0,100,100,0,0,1,3,2,8,3,3,13,1 -Style: 有问题!!!!,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1 -Style: 中文黄 - 复制,方正准圆简体,68,&H0080FFFF,&H000000FF,&H9A000000,&H8E000000,-1,0,0,0,100,100,2.1,0,3,3,1.9,8,3,3,13,1 -Style: 底部白 - 复制,方正准圆简体,48,&H00FFFFFF,&H000000FF,&H9A000000,&H78000000,-1,0,0,0,100,100,0,0,3,3,2,8,3,3,13,1 - -[Events] -Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text -Dialogue: 0,0:00:03.12,0:00:06.04,中文黄,,0,0,0,,Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science! -Dialogue: 0,0:00:06.04,0:00:08.21,Default,,0,0,0,,We’re here: the final episode! -Dialogue: 0,0:00:08.21,0:00:12.08,Default,,0,0,0,,If you’ve watched the whole series, hopefully you’ve developed a newfound appreciation -Dialogue: 0,0:00:12.08,0:00:14.70,Default,,0,0,0,,for the incredible breadth of computing applications and topics. -Dialogue: 0,0:00:14.70,0:00:18.41,Default,,0,0,0,,It’s hard to believe we’ve worked up from mere transistors and logic gates, all the -Dialogue: 0,0:00:18.41,0:00:21.46,Default,,0,0,0,,way to computer vision, machine learning, robotics and beyond. -Dialogue: 0,0:00:21.46,0:00:25.75,Default,,0,0,0,,We’ve stood on the shoulders of giants like Babbage and Lovelace, Hollerith and Turing, -Dialogue: 0,0:00:25.75,0:00:30.77,Default,,0,0,0,,Eckert and Hopper, Sutherland and Engelbart, Bush and Berners Lee, Gates and the Woz, and -Dialogue: 0,0:00:30.77,0:00:32.73,Default,,0,0,0,,many other computing pioneers. -Dialogue: 0,0:00:32.73,0:00:36.08,Default,,0,0,0,,My biggest hope is that these episodes have inspired you to learn more about how these -Dialogue: 0,0:00:36.08,0:00:37.54,Default,,0,0,0,,subjects affect your life. -Dialogue: 0,0:00:37.54,0:00:41.10,Default,,0,0,0,,Maybe you’ll even pick up programming or choose a career in computing. -Dialogue: 0,0:00:41.10,0:00:42.10,Default,,0,0,0,,It’s awesome! -Dialogue: 0,0:00:42.10,0:00:43.84,Default,,0,0,0,,It’s also a skill of the future. -Dialogue: 0,0:00:43.84,0:00:48.14,Default,,0,0,0,,I said in the very first episode that computer science isn’t magic, but it sort of is! -Dialogue: 0,0:00:48.14,0:00:52.12,Default,,0,0,0,,Knowing how to use and program computers is sorcery of the 21st century. -Dialogue: 0,0:00:52.12,0:00:55.40,Default,,0,0,0,,Instead of incantations and spells, it’s scripts and code. -Dialogue: 0,0:00:55.40,0:00:59.38,Default,,0,0,0,,Those who know how to wield that tremendous power will be able to craft great things, -Dialogue: 0,0:00:59.38,0:01:03.62,Default,,0,0,0,,not just to improve their own lives, but also their communities and humanity at large. -Dialogue: 0,0:01:03.62,0:01:08.48,Default,,0,0,0,,Computing is also going to be literally everywhere – not just the computers we see today, sitting -Dialogue: 0,0:01:08.48,0:01:13.78,Default,,0,0,0,,on desks and countertops, and carried in pockets and bags – but inside every object imaginable. -Dialogue: 0,0:01:13.78,0:01:18.99,Default,,0,0,0,,Inside all your kitchen appliances, embedded in your walls, nanotagged in your food, woven -Dialogue: 0,0:01:18.99,0:01:21.94,Default,,0,0,0,,into your clothes, and floating around inside your body. -Dialogue: 0,0:01:21.94,0:01:24.44,Default,,0,0,0,,This is the vision of the field of Ubiquitous Computing. -Dialogue: 0,0:01:24.44,0:01:28.50,Default,,0,0,0,,In some ways, it’s already here, and in other ways, we’ve got many decades to go. -Dialogue: 0,0:01:28.50,0:01:33.17,Default,,0,0,0,,Some might view this eventuality as dystopian, with computers everywhere surveilling us and -Dialogue: 0,0:01:33.17,0:01:34.96,Default,,0,0,0,,competing for our attention. -Dialogue: 0,0:01:34.96,0:01:39.36,Default,,0,0,0,,But the late Mark Weiser, who articulated this idea in the 1990s, saw the potential -Dialogue: 0,0:01:39.36,0:01:40.36,Default,,0,0,0,,very differently: -Dialogue: 0,0:01:40.36,0:01:44.34,Default,,0,0,0,,“For [fifty] years, most interface design, and most computer design, has been headed -Dialogue: 0,0:01:44.34,0:01:46.58,Default,,0,0,0,,down the path of the "dramatic" machine. -Dialogue: 0,0:01:46.58,0:01:51.71,Default,,0,0,0,,Its highest idea is to make a computer so exciting, so wonderful, so interesting, that -Dialogue: 0,0:01:51.71,0:01:53.31,Default,,0,0,0,,we never want to be without it. -Dialogue: 0,0:01:53.31,0:01:58.42,Default,,0,0,0,,A less-traveled path I call the "invisible"; its highest idea is to make a computer so -Dialogue: 0,0:01:58.42,0:02:03.53,Default,,0,0,0,,imbedded, so fitting, so natural, that we use it without even thinking about it … -Dialogue: 0,0:02:03.53,0:02:06.70,Default,,0,0,0,,The most profound technologies are those that disappear. -Dialogue: 0,0:02:06.70,0:02:11.70,Default,,0,0,0,,They weave themselves into the fabric of everyday life until they are indistinguishable from it." -Dialogue: 0,0:02:11.70,0:02:15.36,Default,,0,0,0,,That doesn’t describe computing of today – where people sit for hours upon end in -Dialogue: 0,0:02:15.36,0:02:19.54,Default,,0,0,0,,front of computer monitors, and social media notifications interrupt us at dinner. -Dialogue: 0,0:02:19.54,0:02:23.46,Default,,0,0,0,,But, it could describe computing of the future, our final topic. -Dialogue: 0,0:02:23.46,0:02:32.42,Default,,0,0,0,,INTRO -Dialogue: 0,0:02:32.42,0:02:37.06,Default,,0,0,0,,When people think of computing in the future, they often jump right to Artificial Intelligence. -Dialogue: 0,0:02:37.06,0:02:41.29,Default,,0,0,0,,No doubt there will be tremendous strides made in AI in the coming years, but not everything -Dialogue: 0,0:02:41.29,0:02:43.93,Default,,0,0,0,,will be, or need to be, AI-powered. -Dialogue: 0,0:02:43.93,0:02:48.03,Default,,0,0,0,,Your car might have an AI to self-drive, but the door locks might continue to be powered -Dialogue: 0,0:02:48.03,0:02:50.20,Default,,0,0,0,,by what are essentially if-statements. -Dialogue: 0,0:02:50.20,0:02:54.88,Default,,0,0,0,,AI technology is just as likely to enhance existing devices, like cars, as it is to open -Dialogue: 0,0:02:54.88,0:02:56.88,Default,,0,0,0,,up entirely new product categories. -Dialogue: 0,0:02:56.88,0:03:01.44,Default,,0,0,0,,The exact same thing happened with the advent of electrical power – lightbulbs replaced candles. -Dialogue: 0,0:03:01.44,0:03:06.30,Default,,0,0,0,,But electrification also led to the creation of hundreds of new electrically-powered gadgets. -Dialogue: 0,0:03:06.30,0:03:08.43,Default,,0,0,0,,And of course, we still have candles today. -Dialogue: 0,0:03:08.43,0:03:13.35,Default,,0,0,0,,It’s most likely that AI will be yet another tool that computer scientists can draw upon -Dialogue: 0,0:03:13.35,0:03:14.35,Default,,0,0,0,,to tackle problems. -Dialogue: 0,0:03:14.35,0:03:18.65,Default,,0,0,0,,What really gets people thinking, and sometimes sweating, is whether Artificial Intelligence -Dialogue: 0,0:03:18.65,0:03:20.70,Default,,0,0,0,,will surpass human intelligence. -Dialogue: 0,0:03:20.70,0:03:24.96,Default,,0,0,0,,This is a really tricky question for a multitude of reasons, including most immediately: -Dialogue: 0,0:03:24.96,0:03:26.24,Default,,0,0,0,,“what is intelligence?” -Dialogue: 0,0:03:26.24,0:03:31.40,Default,,0,0,0,,On one hand, we have computers that can drive cars, recognize songs with only a few seconds of audio, -Dialogue: 0,0:03:31.40,0:03:36.40,Default,,0,0,0,,translate dozens of languages, and totally dominate at games like chess, Jeopardy, and Go. -Dialogue: 0,0:03:36.40,0:03:37.82,Default,,0,0,0,,That sounds pretty smart! -Dialogue: 0,0:03:37.82,0:03:42.28,Default,,0,0,0,,But on the other hand, computers fail at some basic tasks, like walking up steps, folding -Dialogue: 0,0:03:42.28,0:03:46.42,Default,,0,0,0,,laundry, understanding speech at a cocktail party, and feeding themselves. -Dialogue: 0,0:03:46.42,0:03:51.68,Default,,0,0,0,,We’re a long way from Artificial Intelligence that’s as general purpose and capable as a human. -Dialogue: 0,0:03:51.68,0:03:56.10,Default,,0,0,0,,With intelligence being somewhat hard to quantify, people prefer to characterize computers and -Dialogue: 0,0:03:56.10,0:04:01.28,Default,,0,0,0,,creatures by their processing power instead, but that’s a pretty computing-centric view of intelligence. -Dialogue: 0,0:04:01.28,0:04:05.76,Default,,0,0,0,,Nonetheless, if we do this exercise, plotting computers and processors we’ve talked about -Dialogue: 0,0:04:05.76,0:04:10.34,Default,,0,0,0,,in this series, we find that computing today has very roughly equivalence in calculating -Dialogue: 0,0:04:10.34,0:04:11.93,Default,,0,0,0,,power to that of a mouse... -Dialogue: 0,0:04:11.93,0:04:16.59,Default,,0,0,0,,which, to be fair, also can’t fold laundry, although that would be super cute! -Dialogue: 0,0:04:16.59,0:04:21.91,Default,,0,0,0,,Human calculating power is up here, another 10 to the 5, or 100,000 times more powerful -Dialogue: 0,0:04:21.91,0:04:23.21,Default,,0,0,0,,than computers today. -Dialogue: 0,0:04:23.21,0:04:27.19,Default,,0,0,0,,That sounds like a big gap, but with the rate of change in computing technologies, we might -Dialogue: 0,0:04:27.19,0:04:31.68,Default,,0,0,0,,meet that point in as early as a decade, even though processor speeds are no longer following -Dialogue: 0,0:04:31.68,0:04:34.54,Default,,0,0,0,,Moore’s Law, like we discussed in Episode 17. -Dialogue: 0,0:04:34.54,0:04:39.19,Default,,0,0,0,,If this trend continues, computers would have more processing power, slash intelligence, -Dialogue: 0,0:04:39.19,0:04:43.78,Default,,0,0,0,,than the sum total of all human brains combined before the end of this century. -Dialogue: 0,0:04:43.78,0:04:48.80,Default,,0,0,0,,And this could snowball as such systems need less human input, with an artificial superintelligence -Dialogue: 0,0:04:48.80,0:04:51.22,Default,,0,0,0,,designing and training new versions of itself. -Dialogue: 0,0:04:51.22,0:04:55.28,Default,,0,0,0,,This runaway technological growth, especially with respect to an intelligence explosion, -Dialogue: 0,0:04:55.28,0:04:57.25,Default,,0,0,0,,is called the singularity. -Dialogue: 0,0:04:57.25,0:05:01.86,Default,,0,0,0,,The term was first used by our old friend from Episode 10, John von Neumann, who said: -Dialogue: 0,0:05:01.86,0:05:06.46,Default,,0,0,0,,"The accelerating progress of technology and changes in the mode of human life, give the -Dialogue: 0,0:05:06.46,0:05:11.38,Default,,0,0,0,,appearance of approaching some essential singularity in the history of the race beyond which human -Dialogue: 0,0:05:11.38,0:05:13.74,Default,,0,0,0,,affairs, as we know them, could not continue." -Dialogue: 0,0:05:13.74,0:05:18.26,Default,,0,0,0,,And Von Neumann suggested this back in the 1950s, when computers were trillions of times -Dialogue: 0,0:05:18.26,0:05:19.71,Default,,0,0,0,,slower than they are today. -Dialogue: 0,0:05:19.71,0:05:24.22,Default,,0,0,0,,Sixty years later, though, the singularity is still just a possibility on the horizon. -Dialogue: 0,0:05:24.22,0:05:28.16,Default,,0,0,0,,Some experts believe this progress is going to level off, and be more of an S curve than -Dialogue: 0,0:05:28.16,0:05:33.80,Default,,0,0,0,,an exponential one, where as complexity increases, it becomes more difficult to make additional progress. -Dialogue: 0,0:05:33.80,0:05:37.22,Default,,0,0,0,,Microsoft co-founder Paul Allen calls it a “complexity brake”. -Dialogue: 0,0:05:37.22,0:05:42.05,Default,,0,0,0,,But, as a thought experiment, let’s just say that superintelligent computers will emerge. -Dialogue: 0,0:05:42.05,0:05:44.96,Default,,0,0,0,,What that would mean for humanity is a hotly debated topic. -Dialogue: 0,0:05:44.96,0:05:49.70,Default,,0,0,0,,There are people who eagerly await it, and those who are already working to stop it from happening. -Dialogue: 0,0:05:49.70,0:05:53.82,Default,,0,0,0,,Probably the most immediate effect would be technological unemployment, where workers -Dialogue: 0,0:05:53.82,0:05:58.47,Default,,0,0,0,,in many job sectors are rendered obsolete by computers – like AIs and Robots – that -Dialogue: 0,0:05:58.47,0:06:00.87,Default,,0,0,0,,can do their work better and for less pay. -Dialogue: 0,0:06:00.87,0:06:03.52,Default,,0,0,0,,Although computers are new, this effect is not. -Dialogue: 0,0:06:03.52,0:06:05.84,Default,,0,0,0,,Remember Jacquard's Loom from Episode 10? -Dialogue: 0,0:06:05.84,0:06:11.02,Default,,0,0,0,,That automated the task of skilled textile workers back in the 1800s, which led to riots. -Dialogue: 0,0:06:11.02,0:06:14.80,Default,,0,0,0,,Also, back then, most of the population of the US and Europe were farmers. -Dialogue: 0,0:06:14.80,0:06:20.06,Default,,0,0,0,,That’s dropped to under 5% today, due to advances like synthetic fertilizers and tractors. -Dialogue: 0,0:06:20.06,0:06:24.72,Default,,0,0,0,,More modern examples include telephone switchboard operators being replaced with automatic switchboards -Dialogue: 0,0:06:24.72,0:06:29.94,Default,,0,0,0,,in 1960, and robotic arms replacing human painters in car factories in the 1980s. -Dialogue: 0,0:06:29.94,0:06:31.47,Default,,0,0,0,,And the list goes on and on. -Dialogue: 0,0:06:31.47,0:06:34.40,Default,,0,0,0,,On one hand, these were jobs lost to automation. -Dialogue: 0,0:06:34.40,0:06:39.34,Default,,0,0,0,,And on the other hand, clothes, food, bicycles, toys, and a myriad of other products are all -Dialogue: 0,0:06:39.34,0:06:43.48,Default,,0,0,0,,plentiful today because they can be cheaply produced thanks to computing. -Dialogue: 0,0:06:43.48,0:06:48.96,Default,,0,0,0,,But, experts argue that AI, robots and computing technologies in general, are going to be even -Dialogue: 0,0:06:48.96,0:06:51.38,Default,,0,0,0,,more disruptive than these historical examples. -Dialogue: 0,0:06:51.38,0:06:55.01,Default,,0,0,0,,Jobs, at a very high level, can be summarized along two dimensions. -Dialogue: 0,0:06:55.01,0:06:59.34,Default,,0,0,0,,First, jobs can be either more manual – like assembling toys – or more cognitive – like -Dialogue: 0,0:06:59.34,0:07:00.58,Default,,0,0,0,,picking stocks. -Dialogue: 0,0:07:00.58,0:07:05.85,Default,,0,0,0,,These jobs can also be routine – the same tasks over and over again – or non-routine -Dialogue: 0,0:07:05.85,0:07:09.78,Default,,0,0,0,,– where tasks vary and workers need to problem solve and be creative. -Dialogue: 0,0:07:09.78,0:07:12.96,Default,,0,0,0,,We already know that routine-manual jobs can be automated by machines. -Dialogue: 0,0:07:12.96,0:07:16.66,Default,,0,0,0,,It has already happened for some jobs and is happening right now for others. -Dialogue: 0,0:07:16.66,0:07:21.10,Default,,0,0,0,,What’s getting people worried is that non-routine manual jobs, like cooks, waiters and security -Dialogue: 0,0:07:21.10,0:07:23.18,Default,,0,0,0,,guards, may get automated too. -Dialogue: 0,0:07:23.18,0:07:27.69,Default,,0,0,0,,And the same goes for routine cognitive work, like customer service agents, cashiers, bank -Dialogue: 0,0:07:27.69,0:07:29.41,Default,,0,0,0,,tellers, and office assistants. -Dialogue: 0,0:07:29.41,0:07:33.19,Default,,0,0,0,,That leaves us with just one quadrant that might be safe, at least for a little while: -Dialogue: 0,0:07:33.19,0:07:37.90,Default,,0,0,0,,non-routine cognitive work, which includes professions like teachers and artists, novelists -Dialogue: 0,0:07:37.90,0:07:39.88,Default,,0,0,0,,and lawyers, and doctors and scientists. -Dialogue: 0,0:07:39.88,0:07:43.82,Default,,0,0,0,,These types of jobs encompass roughly 40% of the US workforce. -Dialogue: 0,0:07:43.82,0:07:47.10,Default,,0,0,0,,That leaves 60% of jobs vulnerable to automation. -Dialogue: 0,0:07:47.10,0:07:52.50,Default,,0,0,0,,People argue that technological unemployment at this scale would be unprecedented and catastrophic, -Dialogue: 0,0:07:52.50,0:07:54.26,Default,,0,0,0,,with most people losing their jobs. -Dialogue: 0,0:07:54.26,0:07:58.50,Default,,0,0,0,,Others argue that this will be great, freeing people from less interesting jobs to pursue -Dialogue: 0,0:07:58.50,0:08:03.47,Default,,0,0,0,,better ones, all while enjoying a higher standard of living with the bounty of food and products -Dialogue: 0,0:08:03.47,0:08:06.72,Default,,0,0,0,,that will result from computers and robots doing most of the hard work. -Dialogue: 0,0:08:06.72,0:08:10.42,Default,,0,0,0,,No one really knows how this is going to shake out, but if history is any guide, it’ll -Dialogue: 0,0:08:10.42,0:08:12.22,Default,,0,0,0,,probably be ok in the long run. -Dialogue: 0,0:08:12.22,0:08:16.88,Default,,0,0,0,,Afterall, no one is advocating that 90% of people go back to farming and weaving textiles -Dialogue: 0,0:08:16.88,0:08:17.56,Default,,0,0,0,,by hand. -Dialogue: 0,0:08:17.56,0:08:22.08,Default,,0,0,0,,The tough question, which politicians are now discussing, is how to handle hopefully-short-term -Dialogue: 0,0:08:22.08,0:08:26.04,Default,,0,0,0,,economic disruption, for millions of people that might be suddenly out of a job. -Dialogue: 0,0:08:26.04,0:08:29.92,Default,,0,0,0,,Beyond the workplace, computers are also very likely to change our bodies. -Dialogue: 0,0:08:29.92,0:08:35.34,Default,,0,0,0,,For example, futurist Ray Kurzweil believes that “The Singularity will allow us to transcend -Dialogue: 0,0:08:35.34,0:08:38.46,Default,,0,0,0,,[the] limitations of our biological bodies and brains. -Dialogue: 0,0:08:38.46,0:08:40.21,Default,,0,0,0,,We will gain power over our fates. -Dialogue: 0,0:08:40.21,0:08:42.70,Default,,0,0,0,,... We will be able to live as long as we want. -Dialogue: 0,0:08:42.70,0:08:47.37,Default,,0,0,0,,We will fully understand human thinking and will vastly extend and expand its reach.” -Dialogue: 0,0:08:47.37,0:08:52.13,Default,,0,0,0,,Transhumanists see this happening in the form of cyborgs, where humans and technology merge, -Dialogue: 0,0:08:52.13,0:08:54.20,Default,,0,0,0,,enhancing our intellect and physiology. -Dialogue: 0,0:08:54.20,0:08:57.47,Default,,0,0,0,,There are already brain computer interfaces in use today. -Dialogue: 0,0:08:57.47,0:09:01.69,Default,,0,0,0,,And wearable computers, like Google Glass and Microsoft Hololens, are starting to blur -Dialogue: 0,0:09:01.69,0:09:02.44,Default,,0,0,0,,the line too. -Dialogue: 0,0:09:02.44,0:09:06.96,Default,,0,0,0,,There are also people who foresee "Digital Ascension", which, in the words of Jaron Lanier, -Dialogue: 0,0:09:06.96,0:09:12.60,Default,,0,0,0,,“would involve people dying in the flesh and being uploaded into a computer and remaining conscious". -Dialogue: 0,0:09:12.60,0:09:18.08,Default,,0,0,0,,This transition from biological to digital beings might end up being our next evolutionary step... -Dialogue: 0,0:09:18.08,0:09:26.80,Default,,0,0,0,,and a new level of abstraction. -Dialogue: 0,0:09:26.80,0:09:31.52,Default,,0,0,0,,Others predict humans staying largely human, but with superintelligent computers as a benevolent -Dialogue: 0,0:09:31.52,0:09:36.74,Default,,0,0,0,,force, emerging as a caretaker for humanity – running all the farms, curing diseases, -Dialogue: 0,0:09:36.74,0:09:41.16,Default,,0,0,0,,directing robots to pick-up trash, building new homes and many other functions. -Dialogue: 0,0:09:41.16,0:09:45.06,Default,,0,0,0,,This would allow us to simply enjoy our time on this lovely pale blue dot. -Dialogue: 0,0:09:45.06,0:09:49.94,Default,,0,0,0,,Still others view AI with more suspicion – why would a superintelligent AI waste its time -Dialogue: 0,0:09:49.94,0:09:51.30,Default,,0,0,0,,taking care of us? -Dialogue: 0,0:09:51.30,0:09:55.20,Default,,0,0,0,,It’s not like we’ve taken on the role of being the benevolent caretaker of ants. -Dialogue: 0,0:09:55.20,0:09:59.86,Default,,0,0,0,,So maybe this play out like so many Sci-Fi movies where we’re at war with computers, -Dialogue: 0,0:09:59.86,0:10:01.82,Default,,0,0,0,,our own creation having turned on us. -Dialogue: 0,0:10:01.82,0:10:05.42,Default,,0,0,0,,It’s impossible to know what the future holds, but it’s great that this discussion -Dialogue: 0,0:10:05.42,0:10:10.72,Default,,0,0,0,,and debate is already happening, so as these technologies emerge, we can plan and react intelligently. -Dialogue: 0,0:10:10.72,0:10:15.10,Default,,0,0,0,,What’s much more likely, regardless of whether you see computers as future friend or foe, -Dialogue: 0,0:10:15.10,0:10:17.24,Default,,0,0,0,,is that they will outlive humanity. -Dialogue: 0,0:10:17.24,0:10:21.14,Default,,0,0,0,,Many futurists and science fiction writers have speculated that computers will head out -Dialogue: 0,0:10:21.14,0:10:26.12,Default,,0,0,0,,into space and colonize the galaxy, ambivalent to time scales, radiation, and all that other -Dialogue: 0,0:10:26.12,0:10:29.44,Default,,0,0,0,,stuff that makes long-distance space travel difficult for us humans. -Dialogue: 0,0:10:29.44,0:10:34.12,Default,,0,0,0,,And when the sun is burned up and the Earth is space dust, maybe our technological children -Dialogue: 0,0:10:34.12,0:10:38.16,Default,,0,0,0,,will be hard at work exploring every nook and cranny of the universe, hopefully in honor -Dialogue: 0,0:10:38.16,0:10:43.17,Default,,0,0,0,,of their parents’ tradition to build knowledge,improve the state of the universe, and to boldly go -Dialogue: 0,0:10:43.17,0:10:44.97,Default,,0,0,0,,where no one has gone before! -Dialogue: 0,0:10:44.97,0:10:48.72,Default,,0,0,0,,In the meantime, computers have a long way to go, and computer scientists are hard at -Dialogue: 0,0:10:48.72,0:10:52.98,Default,,0,0,0,,work advancing all of the topics we talked about over the past forty episodes. -Dialogue: 0,0:10:52.98,0:10:57.94,Default,,0,0,0,,In the next decade or so, we’ll likely see technologies like virtual and augmented reality, -Dialogue: 0,0:10:57.94,0:11:02.82,Default,,0,0,0,,self-driving vehicles, drones, wearable computers, and service robots go mainstream. -Dialogue: 0,0:11:02.82,0:11:08.70,Default,,0,0,0,,The internet will continue to evolve new services, stream new media, and connect people in different ways. -Dialogue: 0,0:11:08.70,0:11:13.01,Default,,0,0,0,,New programming languages and paradigms will be developed to facilitate the creation of -Dialogue: 0,0:11:13.01,0:11:14.78,Default,,0,0,0,,new and amazing software. -Dialogue: 0,0:11:14.78,0:11:20.80,Default,,0,0,0,,And new hardware will make complex operations blazingly fast, like neural networks and 3D graphics. -Dialogue: 0,0:11:20.80,0:11:25.51,Default,,0,0,0,,Personal computers are also ripe for innovation, perhaps shedding their forty-year old desktop -Dialogue: 0,0:11:25.51,0:11:30.16,Default,,0,0,0,,metaphor and being reborn as omnipresent and lifelong virtual assistants. -Dialogue: 0,0:11:30.16,0:11:34.32,Default,,0,0,0,,And there’s so much we didn’t get to talk about in this series, like cryptocurrencies, -Dialogue: 0,0:11:34.32,0:11:39.14,Default,,0,0,0,,wireless communication, 3D printing, bioinformatics, and quantum computing. -Dialogue: 0,0:11:39.14,0:11:44.24,Default,,0,0,0,,We’re in a golden age of computing and there’s so much going on, it’s impossible to summarize. -Dialogue: 0,0:11:44.24,0:11:49.07,Default,,0,0,0,,But most importantly, you can be a part of this amazing transformation and challenge, -Dialogue: 0,0:11:49.07,0:11:53.70,Default,,0,0,0,,by learning about computing, and taking what’s arguably humanity’s greatest invention, -Dialogue: 0,0:11:53.70,0:11:55.76,Default,,0,0,0,,to make the world a better place. -Dialogue: 0,0:11:55.76,0:11:55.76,Default,,0,0,0,,Thanks for watching. diff --git "a/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2662 - SRT - The Singularity, Skynet, and the Future of Computing_ Crash Course Computer Science #40.srt" "b/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2662 - SRT - The Singularity, Skynet, and the Future of Computing_ Crash Course Computer Science #40.srt" deleted file mode 100644 index b05b7c6..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2662 - SRT - The Singularity, Skynet, and the Future of Computing_ Crash Course Computer Science #40.srt" +++ /dev/null @@ -1,752 +0,0 @@ -1 -00:00:03,120 --> 00:00:06,040 -Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science! - -2 -00:00:06,040 --> 00:00:08,219 -We’re here: the final episode! - -3 -00:00:08,219 --> 00:00:12,080 -If you’ve watched the whole series, hopefully you’ve developed a newfound appreciation - -4 -00:00:12,080 --> 00:00:14,700 -for the incredible breadth of computing applications and topics. - -5 -00:00:14,700 --> 00:00:18,410 -It’s hard to believe we’ve worked up from mere transistors and logic gates, all the - -6 -00:00:18,410 --> 00:00:21,460 -way to computer vision, machine learning, robotics and beyond. - -7 -00:00:21,460 --> 00:00:25,750 -We’ve stood on the shoulders of giants like Babbage and Lovelace, Hollerith and Turing, - -8 -00:00:25,750 --> 00:00:30,770 -Eckert and Hopper, Sutherland and Engelbart, Bush and Berners Lee, Gates and the Woz, and - -9 -00:00:30,770 --> 00:00:32,739 -many other computing pioneers. - -10 -00:00:32,739 --> 00:00:36,080 -My biggest hope is that these episodes have inspired you to learn more about how these - -11 -00:00:36,080 --> 00:00:37,540 -subjects affect your life. - -12 -00:00:37,540 --> 00:00:41,100 -Maybe you’ll even pick up programming or choose a career in computing. - -13 -00:00:41,100 --> 00:00:42,100 -It’s awesome! - -14 -00:00:42,100 --> 00:00:43,840 -It’s also a skill of the future. - -15 -00:00:43,840 --> 00:00:48,140 -I said in the very first episode that computer science isn’t magic, but it sort of is! - -16 -00:00:48,140 --> 00:00:52,120 -Knowing how to use and program computers is sorcery of the 21st century. - -17 -00:00:52,120 --> 00:00:55,400 -Instead of incantations and spells, it’s scripts and code. - -18 -00:00:55,400 --> 00:00:59,380 -Those who know how to wield that tremendous power will be able to craft great things, - -19 -00:00:59,380 --> 00:01:03,620 -not just to improve their own lives, but also their communities and humanity at large. - -20 -00:01:03,620 --> 00:01:08,480 -Computing is also going to be literally everywhere – not just the computers we see today, sitting - -21 -00:01:08,480 --> 00:01:13,780 -on desks and countertops, and carried in pockets and bags – but inside every object imaginable. - -22 -00:01:13,780 --> 00:01:18,990 -Inside all your kitchen appliances, embedded in your walls, nanotagged in your food, woven - -23 -00:01:18,990 --> 00:01:21,940 -into your clothes, and floating around inside your body. - -24 -00:01:21,940 --> 00:01:24,440 -This is the vision of the field of Ubiquitous Computing. - -25 -00:01:24,440 --> 00:01:28,500 -In some ways, it’s already here, and in other ways, we’ve got many decades to go. - -26 -00:01:28,500 --> 00:01:33,170 -Some might view this eventuality as dystopian, with computers everywhere surveilling us and - -27 -00:01:33,170 --> 00:01:34,960 -competing for our attention. - -28 -00:01:34,960 --> 00:01:39,360 -But the late Mark Weiser, who articulated this idea in the 1990s, saw the potential - -29 -00:01:39,360 --> 00:01:40,360 -very differently: - -30 -00:01:40,360 --> 00:01:44,340 -“For [fifty] years, most interface design, and most computer design, has been headed - -31 -00:01:44,340 --> 00:01:46,580 -down the path of the "dramatic" machine. - -32 -00:01:46,580 --> 00:01:51,710 -Its highest idea is to make a computer so exciting, so wonderful, so interesting, that - -33 -00:01:51,710 --> 00:01:53,310 -we never want to be without it. - -34 -00:01:53,310 --> 00:01:58,420 -A less-traveled path I call the "invisible"; its highest idea is to make a computer so - -35 -00:01:58,420 --> 00:02:03,530 -imbedded, so fitting, so natural, that we use it without even thinking about it … - -36 -00:02:03,530 --> 00:02:06,700 -The most profound technologies are those that disappear. - -37 -00:02:06,700 --> 00:02:11,700 -They weave themselves into the fabric of everyday life until they are indistinguishable from it." - -38 -00:02:11,700 --> 00:02:15,360 -That doesn’t describe computing of today – where people sit for hours upon end in - -39 -00:02:15,360 --> 00:02:19,540 -front of computer monitors, and social media notifications interrupt us at dinner. - -40 -00:02:19,540 --> 00:02:23,460 -But, it could describe computing of the future, our final topic. - -41 -00:02:23,460 --> 00:02:32,420 -INTRO - -42 -00:02:32,420 --> 00:02:37,060 -When people think of computing in the future, they often jump right to Artificial Intelligence. - -43 -00:02:37,060 --> 00:02:41,290 -No doubt there will be tremendous strides made in AI in the coming years, but not everything - -44 -00:02:41,290 --> 00:02:43,930 -will be, or need to be, AI-powered. - -45 -00:02:43,930 --> 00:02:48,030 -Your car might have an AI to self-drive, but the door locks might continue to be powered - -46 -00:02:48,030 --> 00:02:50,200 -by what are essentially if-statements. - -47 -00:02:50,200 --> 00:02:54,880 -AI technology is just as likely to enhance existing devices, like cars, as it is to open - -48 -00:02:54,880 --> 00:02:56,880 -up entirely new product categories. - -49 -00:02:56,880 --> 00:03:01,440 -The exact same thing happened with the advent of electrical power – lightbulbs replaced candles. - -50 -00:03:01,440 --> 00:03:06,300 -But electrification also led to the creation of hundreds of new electrically-powered gadgets. - -51 -00:03:06,300 --> 00:03:08,430 -And of course, we still have candles today. - -52 -00:03:08,430 --> 00:03:13,359 -It’s most likely that AI will be yet another tool that computer scientists can draw upon - -53 -00:03:13,359 --> 00:03:14,359 -to tackle problems. - -54 -00:03:14,359 --> 00:03:18,650 -What really gets people thinking, and sometimes sweating, is whether Artificial Intelligence - -55 -00:03:18,650 --> 00:03:20,709 -will surpass human intelligence. - -56 -00:03:20,709 --> 00:03:24,960 -This is a really tricky question for a multitude of reasons, including most immediately: - -57 -00:03:24,960 --> 00:03:26,240 -“what is intelligence?” - -58 -00:03:26,240 --> 00:03:31,400 -On one hand, we have computers that can drive cars, recognize songs with only a few seconds of audio, - -59 -00:03:31,400 --> 00:03:36,400 -translate dozens of languages, and totally dominate at games like chess, Jeopardy, and Go. - -60 -00:03:36,400 --> 00:03:37,820 -That sounds pretty smart! - -61 -00:03:37,820 --> 00:03:42,280 -But on the other hand, computers fail at some basic tasks, like walking up steps, folding - -62 -00:03:42,280 --> 00:03:46,420 -laundry, understanding speech at a cocktail party, and feeding themselves. - -63 -00:03:46,420 --> 00:03:51,680 -We’re a long way from Artificial Intelligence that’s as general purpose and capable as a human. - -64 -00:03:51,680 --> 00:03:56,100 -With intelligence being somewhat hard to quantify, people prefer to characterize computers and - -65 -00:03:56,100 --> 00:04:01,280 -creatures by their processing power instead, but that’s a pretty computing-centric view of intelligence. - -66 -00:04:01,280 --> 00:04:05,760 -Nonetheless, if we do this exercise, plotting computers and processors we’ve talked about - -67 -00:04:05,760 --> 00:04:10,349 -in this series, we find that computing today has very roughly equivalence in calculating - -68 -00:04:10,349 --> 00:04:11,939 -power to that of a mouse... - -69 -00:04:11,939 --> 00:04:16,590 -which, to be fair, also can’t fold laundry, although that would be super cute! - -70 -00:04:16,590 --> 00:04:21,919 -Human calculating power is up here, another 10 to the 5, or 100,000 times more powerful - -71 -00:04:21,919 --> 00:04:23,210 -than computers today. - -72 -00:04:23,210 --> 00:04:27,190 -That sounds like a big gap, but with the rate of change in computing technologies, we might - -73 -00:04:27,190 --> 00:04:31,680 -meet that point in as early as a decade, even though processor speeds are no longer following - -74 -00:04:31,680 --> 00:04:34,540 -Moore’s Law, like we discussed in Episode 17. - -75 -00:04:34,540 --> 00:04:39,190 -If this trend continues, computers would have more processing power, slash intelligence, - -76 -00:04:39,190 --> 00:04:43,780 -than the sum total of all human brains combined before the end of this century. - -77 -00:04:43,780 --> 00:04:48,800 -And this could snowball as such systems need less human input, with an artificial superintelligence - -78 -00:04:48,800 --> 00:04:51,229 -designing and training new versions of itself. - -79 -00:04:51,229 --> 00:04:55,280 -This runaway technological growth, especially with respect to an intelligence explosion, - -80 -00:04:55,280 --> 00:04:57,250 -is called the singularity. - -81 -00:04:57,250 --> 00:05:01,860 -The term was first used by our old friend from Episode 10, John von Neumann, who said: - -82 -00:05:01,860 --> 00:05:06,460 -"The accelerating progress of technology and changes in the mode of human life, give the - -83 -00:05:06,460 --> 00:05:11,380 -appearance of approaching some essential singularity in the history of the race beyond which human - -84 -00:05:11,380 --> 00:05:13,740 -affairs, as we know them, could not continue." - -85 -00:05:13,740 --> 00:05:18,260 -And Von Neumann suggested this back in the 1950s, when computers were trillions of times - -86 -00:05:18,260 --> 00:05:19,710 -slower than they are today. - -87 -00:05:19,710 --> 00:05:24,220 -Sixty years later, though, the singularity is still just a possibility on the horizon. - -88 -00:05:24,220 --> 00:05:28,160 -Some experts believe this progress is going to level off, and be more of an S curve than - -89 -00:05:28,160 --> 00:05:33,800 -an exponential one, where as complexity increases, it becomes more difficult to make additional progress. - -90 -00:05:33,800 --> 00:05:37,220 -Microsoft co-founder Paul Allen calls it a “complexity brake”. - -91 -00:05:37,220 --> 00:05:42,050 -But, as a thought experiment, let’s just say that superintelligent computers will emerge. - -92 -00:05:42,050 --> 00:05:44,960 -What that would mean for humanity is a hotly debated topic. - -93 -00:05:44,960 --> 00:05:49,700 -There are people who eagerly await it, and those who are already working to stop it from happening. - -94 -00:05:49,700 --> 00:05:53,820 -Probably the most immediate effect would be technological unemployment, where workers - -95 -00:05:53,820 --> 00:05:58,479 -in many job sectors are rendered obsolete by computers – like AIs and Robots – that - -96 -00:05:58,479 --> 00:06:00,870 -can do their work better and for less pay. - -97 -00:06:00,870 --> 00:06:03,520 -Although computers are new, this effect is not. - -98 -00:06:03,520 --> 00:06:05,840 -Remember Jacquard's Loom from Episode 10? - -99 -00:06:05,840 --> 00:06:11,020 -That automated the task of skilled textile workers back in the 1800s, which led to riots. - -100 -00:06:11,020 --> 00:06:14,800 -Also, back then, most of the population of the US and Europe were farmers. - -101 -00:06:14,800 --> 00:06:20,069 -That’s dropped to under 5% today, due to advances like synthetic fertilizers and tractors. - -102 -00:06:20,069 --> 00:06:24,720 -More modern examples include telephone switchboard operators being replaced with automatic switchboards - -103 -00:06:24,720 --> 00:06:29,940 -in 1960, and robotic arms replacing human painters in car factories in the 1980s. - -104 -00:06:29,940 --> 00:06:31,471 -And the list goes on and on. - -105 -00:06:31,471 --> 00:06:34,409 -On one hand, these were jobs lost to automation. - -106 -00:06:34,409 --> 00:06:39,340 -And on the other hand, clothes, food, bicycles, toys, and a myriad of other products are all - -107 -00:06:39,340 --> 00:06:43,480 -plentiful today because they can be cheaply produced thanks to computing. - -108 -00:06:43,480 --> 00:06:48,960 -But, experts argue that AI, robots and computing technologies in general, are going to be even - -109 -00:06:48,960 --> 00:06:51,389 -more disruptive than these historical examples. - -110 -00:06:51,389 --> 00:06:55,010 -Jobs, at a very high level, can be summarized along two dimensions. - -111 -00:06:55,010 --> 00:06:59,340 -First, jobs can be either more manual – like assembling toys – or more cognitive – like - -112 -00:06:59,340 --> 00:07:00,580 -picking stocks. - -113 -00:07:00,580 --> 00:07:05,850 -These jobs can also be routine – the same tasks over and over again – or non-routine - -114 -00:07:05,850 --> 00:07:09,780 -– where tasks vary and workers need to problem solve and be creative. - -115 -00:07:09,780 --> 00:07:12,969 -We already know that routine-manual jobs can be automated by machines. - -116 -00:07:12,969 --> 00:07:16,669 -It has already happened for some jobs and is happening right now for others. - -117 -00:07:16,669 --> 00:07:21,100 -What’s getting people worried is that non-routine manual jobs, like cooks, waiters and security - -118 -00:07:21,100 --> 00:07:23,189 -guards, may get automated too. - -119 -00:07:23,189 --> 00:07:27,699 -And the same goes for routine cognitive work, like customer service agents, cashiers, bank - -120 -00:07:27,699 --> 00:07:29,419 -tellers, and office assistants. - -121 -00:07:29,419 --> 00:07:33,199 -That leaves us with just one quadrant that might be safe, at least for a little while: - -122 -00:07:33,199 --> 00:07:37,900 -non-routine cognitive work, which includes professions like teachers and artists, novelists - -123 -00:07:37,900 --> 00:07:39,880 -and lawyers, and doctors and scientists. - -124 -00:07:39,880 --> 00:07:43,820 -These types of jobs encompass roughly 40% of the US workforce. - -125 -00:07:43,820 --> 00:07:47,100 -That leaves 60% of jobs vulnerable to automation. - -126 -00:07:47,100 --> 00:07:52,500 -People argue that technological unemployment at this scale would be unprecedented and catastrophic, - -127 -00:07:52,500 --> 00:07:54,260 -with most people losing their jobs. - -128 -00:07:54,260 --> 00:07:58,509 -Others argue that this will be great, freeing people from less interesting jobs to pursue - -129 -00:07:58,509 --> 00:08:03,479 -better ones, all while enjoying a higher standard of living with the bounty of food and products - -130 -00:08:03,479 --> 00:08:06,720 -that will result from computers and robots doing most of the hard work. - -131 -00:08:06,720 --> 00:08:10,420 -No one really knows how this is going to shake out, but if history is any guide, it’ll - -132 -00:08:10,420 --> 00:08:12,220 -probably be ok in the long run. - -133 -00:08:12,220 --> 00:08:16,880 -Afterall, no one is advocating that 90% of people go back to farming and weaving textiles - -134 -00:08:16,880 --> 00:08:17,560 -by hand. - -135 -00:08:17,560 --> 00:08:22,080 -The tough question, which politicians are now discussing, is how to handle hopefully-short-term - -136 -00:08:22,080 --> 00:08:26,040 -economic disruption, for millions of people that might be suddenly out of a job. - -137 -00:08:26,040 --> 00:08:29,920 -Beyond the workplace, computers are also very likely to change our bodies. - -138 -00:08:29,920 --> 00:08:35,349 -For example, futurist Ray Kurzweil believes that “The Singularity will allow us to transcend - -139 -00:08:35,349 --> 00:08:38,469 -[the] limitations of our biological bodies and brains. - -140 -00:08:38,469 --> 00:08:40,219 -We will gain power over our fates. - -141 -00:08:40,219 --> 00:08:42,709 -... We will be able to live as long as we want. - -142 -00:08:42,709 --> 00:08:47,370 -We will fully understand human thinking and will vastly extend and expand its reach.” - -143 -00:08:47,370 --> 00:08:52,130 -Transhumanists see this happening in the form of cyborgs, where humans and technology merge, - -144 -00:08:52,130 --> 00:08:54,200 -enhancing our intellect and physiology. - -145 -00:08:54,200 --> 00:08:57,470 -There are already brain computer interfaces in use today. - -146 -00:08:57,470 --> 00:09:01,690 -And wearable computers, like Google Glass and Microsoft Hololens, are starting to blur - -147 -00:09:01,690 --> 00:09:02,440 -the line too. - -148 -00:09:02,440 --> 00:09:06,960 -There are also people who foresee "Digital Ascension", which, in the words of Jaron Lanier, - -149 -00:09:06,960 --> 00:09:12,600 -“would involve people dying in the flesh and being uploaded into a computer and remaining conscious". - -150 -00:09:12,600 --> 00:09:18,080 -This transition from biological to digital beings might end up being our next evolutionary step... - -151 -00:09:18,080 --> 00:09:26,800 -and a new level of abstraction. - -152 -00:09:26,800 --> 00:09:31,520 -Others predict humans staying largely human, but with superintelligent computers as a benevolent - -153 -00:09:31,520 --> 00:09:36,740 -force, emerging as a caretaker for humanity – running all the farms, curing diseases, - -154 -00:09:36,740 --> 00:09:41,160 -directing robots to pick-up trash, building new homes and many other functions. - -155 -00:09:41,160 --> 00:09:45,060 -This would allow us to simply enjoy our time on this lovely pale blue dot. - -156 -00:09:45,060 --> 00:09:49,940 -Still others view AI with more suspicion – why would a superintelligent AI waste its time - -157 -00:09:49,940 --> 00:09:51,300 -taking care of us? - -158 -00:09:51,300 --> 00:09:55,200 -It’s not like we’ve taken on the role of being the benevolent caretaker of ants. - -159 -00:09:55,200 --> 00:09:59,860 -So maybe this play out like so many Sci-Fi movies where we’re at war with computers, - -160 -00:09:59,860 --> 00:10:01,829 -our own creation having turned on us. - -161 -00:10:01,829 --> 00:10:05,420 -It’s impossible to know what the future holds, but it’s great that this discussion - -162 -00:10:05,420 --> 00:10:10,720 -and debate is already happening, so as these technologies emerge, we can plan and react intelligently. - -163 -00:10:10,720 --> 00:10:15,100 -What’s much more likely, regardless of whether you see computers as future friend or foe, - -164 -00:10:15,100 --> 00:10:17,240 -is that they will outlive humanity. - -165 -00:10:17,240 --> 00:10:21,140 -Many futurists and science fiction writers have speculated that computers will head out - -166 -00:10:21,140 --> 00:10:26,120 -into space and colonize the galaxy, ambivalent to time scales, radiation, and all that other - -167 -00:10:26,120 --> 00:10:29,440 -stuff that makes long-distance space travel difficult for us humans. - -168 -00:10:29,440 --> 00:10:34,120 -And when the sun is burned up and the Earth is space dust, maybe our technological children - -169 -00:10:34,120 --> 00:10:38,160 -will be hard at work exploring every nook and cranny of the universe, hopefully in honor - -170 -00:10:38,160 --> 00:10:43,170 -of their parents’ tradition to build knowledge,improve the state of the universe, and to boldly go - -171 -00:10:43,170 --> 00:10:44,970 -where no one has gone before! - -172 -00:10:44,970 --> 00:10:48,720 -In the meantime, computers have a long way to go, and computer scientists are hard at - -173 -00:10:48,720 --> 00:10:52,980 -work advancing all of the topics we talked about over the past forty episodes. - -174 -00:10:52,980 --> 00:10:57,940 -In the next decade or so, we’ll likely see technologies like virtual and augmented reality, - -175 -00:10:57,940 --> 00:11:02,820 -self-driving vehicles, drones, wearable computers, and service robots go mainstream. - -176 -00:11:02,820 --> 00:11:08,700 -The internet will continue to evolve new services, stream new media, and connect people in different ways. - -177 -00:11:08,700 --> 00:11:13,010 -New programming languages and paradigms will be developed to facilitate the creation of - -178 -00:11:13,010 --> 00:11:14,780 -new and amazing software. - -179 -00:11:14,780 --> 00:11:20,800 -And new hardware will make complex operations blazingly fast, like neural networks and 3D graphics. - -180 -00:11:20,800 --> 00:11:25,510 -Personal computers are also ripe for innovation, perhaps shedding their forty-year old desktop - -181 -00:11:25,510 --> 00:11:30,160 -metaphor and being reborn as omnipresent and lifelong virtual assistants. - -182 -00:11:30,160 --> 00:11:34,320 -And there’s so much we didn’t get to talk about in this series, like cryptocurrencies, - -183 -00:11:34,320 --> 00:11:39,140 -wireless communication, 3D printing, bioinformatics, and quantum computing. - -184 -00:11:39,140 --> 00:11:44,240 -We’re in a golden age of computing and there’s so much going on, it’s impossible to summarize. - -185 -00:11:44,240 --> 00:11:49,070 -But most importantly, you can be a part of this amazing transformation and challenge, - -186 -00:11:49,070 --> 00:11:53,700 -by learning about computing, and taking what’s arguably humanity’s greatest invention, - -187 -00:11:53,700 --> 00:11:55,760 -to make the world a better place. - -188 -00:11:55,760 --> 00:11:55,765 -Thanks for watching. - diff --git "a/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2663 - ASS - Robot Chicken - 05x17 - The Curious Case of the Box.DVDRip.English.C.orig.Addic7ed.com 2.ass" "b/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2663 - ASS - Robot Chicken - 05x17 - The Curious Case of the Box.DVDRip.English.C.orig.Addic7ed.com 2.ass" deleted file mode 100644 index b4c8de0..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2663 - ASS - Robot Chicken - 05x17 - The Curious Case of the Box.DVDRip.English.C.orig.Addic7ed.com 2.ass" +++ /dev/null @@ -1,227 +0,0 @@ -[Script Info] -; Script generated by Aegisub 3.2.2 -; http://www.aegisub.org/ -Title: Default Aegisub file -ScriptType: v4.00+ -WrapStyle: 0 -ScaledBorderAndShadow: yes -YCbCr Matrix: TV.601 -PlayResX: 720 -PlayResY: 400 - -[Aegisub Project Garbage] -Last Style Storage: Default -Audio File: S05E17 The Curious Case of the Box.avi -Video File: S05E17 The Curious Case of the Box.avi -Video AR Mode: 4 -Video AR Value: 1.800000 -Scroll Position: 106 -Active Line: 130 -Video Position: 14913 - -[V4+ Styles] -Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding -Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1 -Style: 底部白,方正准圆简体,48,&H00FFFFFF,&H000000FF,&H77000000,&H78000000,-1,0,0,0,100,100,0,0,1,3,2,2,3,3,20,1 -Style: 中文黄,方正准圆简体,24,&H0080FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,2.1,0,1,3,2,2,3,3,13,1 - -[Events] -Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text -Dialogue: 0,0:00:18.18,0:00:20.79,中文黄,,0,0,0,,It's alive! -Dialogue: 0,0:00:38.37,0:00:40.68,Default,,0,0,0,,And you are one word away from winning. -Dialogue: 0,0:00:40.74,0:00:42.15,Default,,0,0,0,,Here is your final password... -Dialogue: 0,0:00:42.20,0:00:44.11,Default,,0,0,0,,Okay, this is something really small. -Dialogue: 0,0:00:44.17,0:00:45.01,Default,,0,0,0,,A hobbit? -Dialogue: 0,0:00:45.07,0:00:47.11,Default,,0,0,0,,No, uh... it gets hot... it burns things. -Dialogue: 0,0:00:47.18,0:00:48.81,Default,,0,0,0,, I know.Smaug the Dragon. -Dialogue: 0,0:00:48.88,0:00:49.91,Default,,0,0,0,,No! Forget it. Pass. -Dialogue: 0,0:00:49.98,0:00:51.18,Default,,0,0,0,,You shall not pass. -Dialogue: 0,0:00:51.25,0:00:52.78,Default,,0,0,0,,Yes! Pass! Pass! - You shall not pass. -Dialogue: 0,0:00:52.85,0:00:54.05,Default,,0,0,0,,Pass, dammit! -Dialogue: 0,0:00:54.12,0:00:57.53,Default,,0,0,0,,You shall not pass! -Dialogue: 0,0:00:58.52,0:01:00.09,Default,,0,0,0,,I'm just kidding. -Dialogue: 0,0:01:00.16,0:01:01.23,Default,,0,0,0,,I am an all-seeing wizard, -Dialogue: 0,0:01:01.29,0:01:03.27,Default,,0,0,0,,and the word is 'Toaster.' -Dialogue: 0,0:01:06.69,0:01:08.20,Default,,0,0,0,,I love you all... -Dialogue: 0,0:01:08.26,0:01:09.67,Default,,0,0,0,,so... much... -Dialogue: 0,0:01:09.73,0:01:11.54,Default,,0,0,0,,Grandma! Don't go! -Dialogue: 0,0:01:11.60,0:01:15.45,Default,,0,0,0,,It's okay, child. I'm gonna be with Jesus. -Dialogue: 0,0:01:15.50,0:01:17.51,Default,,0,0,0,,I'm comin', Lord. -Dialogue: 0,0:01:17.57,0:01:18.74,Default,,0,0,0,,Doink! -Dialogue: 0,0:01:18.81,0:01:21.01,Default,,0,0,0,,Hey hey hey, man! What's the deal? -Dialogue: 0,0:01:21.08,0:01:23.18,Default,,0,0,0,,What? Just doin' the ol' jobbarino. -Dialogue: 0,0:01:23.24,0:01:26.02,Default,,0,0,0,,She was ascending to Heaven peacefully, and you just... -Dialogue: 0,0:01:26.08,0:01:29.43,Default,,0,0,0,,Reaped the fuck out of her! Yeah, buddy! -Dialogue: 0,0:01:29.48,0:01:31.96,Default,,0,0,0,,Dad! Why do we even need a Grim Reaper? -Dialogue: 0,0:01:32.02,0:01:33.02,Default,,0,0,0,,He's not in the Bible! -Dialogue: 0,0:01:33.09,0:01:34.33,Default,,0,0,0,,Yes I am. -Dialogue: 0,0:01:34.39,0:01:35.80,Default,,0,0,0,,Ah, no, there's a personification -Dialogue: 0,0:01:35.86,0:01:37.77,Default,,0,0,0,,of Death in the Bible, but he sure doesn't look -Dialogue: 0,0:01:37.83,0:01:39.64,Default,,0,0,0,,like some fucking cartoon character. -Dialogue: 0,0:01:39.69,0:01:41.83,Default,,0,0,0,,{\i1}Well, I suppose Jesus has a point.{\i} -Dialogue: 0,0:01:41.90,0:01:43.38,Default,,0,0,0,,Gladys, what do you think? -Dialogue: 0,0:01:43.43,0:01:46.00,Default,,0,0,0,,Oh, it is not my place to judge Lord... -Dialogue: 0,0:01:46.07,0:01:48.21,Default,,0,0,0,,Oh stop fronting, Gladys! -Dialogue: 0,0:01:48.27,0:01:50.84,Default,,0,0,0,,Now, now, Gladys. This is no time for modesty. -Dialogue: 0,0:01:50.91,0:01:53.75,Default,,0,0,0,,I kind of think dying is scary enough -Dialogue: 0,0:01:53.81,0:01:55.91,Default,,0,0,0,,without a robed skeleton with a knife -Dialogue: 0,0:01:55.98,0:01:58.58,Default,,0,0,0,,popping out at you. - Thank you! -Dialogue: 0,0:01:58.65,0:02:01.39,Default,,0,0,0,,Fine, I'm not sticking around if I'm not wanted. -Dialogue: 0,0:02:04.55,0:02:05.76,Default,,0,0,0,,You can't do that! - Did it. -Dialogue: 0,0:02:05.82,0:02:08.06,Default,,0,0,0,,You can't die in Heaven! Dad, tell him! -Dialogue: 0,0:02:08.12,0:02:09.57,Default,,0,0,0,,Well actually, you can. -Dialogue: 0,0:02:09.62,0:02:11.93,Default,,0,0,0,,You see if you die in Heaven, you go to... -Dialogue: 0,0:02:11.99,0:02:13.50,Default,,0,0,0,,Superheaven. -Dialogue: 0,0:02:13.56,0:02:15.01,Default,,0,0,0,,What?!? -Dialogue: 0,0:02:15.06,0:02:17.54,Default,,0,0,0,,Superheaven is awesoome!!! -Dialogue: 0,0:02:17.60,0:02:19.81,Default,,0,0,0,,Whoooooo! -Dialogue: 0,0:02:19.87,0:02:21.35,Default,,0,0,0,,Whoooohooooo! -Dialogue: 0,0:02:21.40,0:02:23.35,Default,,0,0,0,,What happened to your baby, Precious? -Dialogue: 0,0:02:23.40,0:02:25.85,Default,,0,0,0,,I ate my baby. -Dialogue: 0,0:02:25.91,0:02:29.86,Default,,0,0,0,,I ate all my babies! -Dialogue: 0,0:02:33.78,0:02:37.92,Default,,0,0,0,,Babies! -Dialogue: 0,0:02:46.09,0:02:52.57,Default,,0,0,0,,Where's my babies? -Dialogue: 0,0:02:52.63,0:02:54.41,Default,,0,0,0,,That's pretty much Precious. -Dialogue: 0,0:02:54.47,0:02:56.88,Default,,0,0,0,,Wow, that doesn't sound Oscar-worthy at all. -Dialogue: 0,0:02:56.94,0:02:58.14,Default,,0,0,0,,That's how I felt! -Dialogue: 0,0:02:58.21,0:03:00.31,Default,,0,0,0,,I guess I don't have to rent it. -Dialogue: 0,0:03:00.38,0:03:02.82,Default,,0,0,0,,Mentos! The Freshmaker! -Dialogue: 0,0:03:02.88,0:03:06.05,Default,,0,0,0,,Okay. You boys play cowboys and Indians and I'll be right back. -Dialogue: 0,0:03:06.11,0:03:10.06,Default,,0,0,0,,Okay, mom! -Dialogue: 0,0:03:12.02,0:03:14.30,Default,,0,0,0,,Don't fight it, don't fight it. -Dialogue: 0,0:03:14.36,0:03:18.63,Default,,0,0,0,,Why? -Dialogue: 0,0:03:18.69,0:03:20.20,Default,,0,0,0,,Yeah. -Dialogue: 0,0:03:23.30,0:03:26.01,Default,,0,0,0,,Well, c'mon, let's get him in the oven! -Dialogue: 0,0:03:26.07,0:03:28.31,Default,,0,0,0,,Honey, slow down. Slow down, please. -Dialogue: 0,0:03:28.37,0:03:29.78,Default,,0,0,0,,Nah, gotta go fast... gotta go fast... -Dialogue: 0,0:03:29.84,0:03:31.11,Default,,0,0,0,,On the way there. Drilling, drilling, drilling. -Dialogue: 0,0:03:31.17,0:03:32.48,Default,,0,0,0,,Oh gosh! It's coming out! It's coming out! -Dialogue: 0,0:03:32.54,0:03:34.38,Default,,0,0,0,,No, don't... -Dialogue: 0,0:03:34.44,0:03:35.94,Default,,0,0,0,,It's coming out all over the place! -Dialogue: 0,0:03:36.01,0:03:37.58,Default,,0,0,0,,Ugh and it just keeps coming out! -Dialogue: 0,0:03:37.65,0:03:38.59,Default,,0,0,0,,I can't... I can't stop it! - Oh dear! -Dialogue: 0,0:03:38.65,0:03:40.22,Default,,0,0,0,,I went too fast! -Dialogue: 0,0:03:40.28,0:03:44.42,Default,,0,0,0,,It's not stopping! Don't get it on that seagull! -Dialogue: 0,0:03:46.52,0:03:49.73,Default,,0,0,0,,My name is Dora the Explorer. -Dialogue: 0,0:03:49.79,0:03:51.93,Default,,0,0,0,,And I fear this mountain... -Dialogue: 0,0:03:51.99,0:03:55.41,Default,,0,0,0,,will be my grave. -Dialogue: 0,0:03:55.46,0:03:57.53,Default,,0,0,0,,A snowman! I love snowmen! -Dialogue: 0,0:03:57.60,0:04:00.31,Default,,0,0,0,,Is there anything you don't love, Boots? -Dialogue: 0,0:04:00.37,0:04:01.54,Default,,0,0,0,,Tell her, man. -Dialogue: 0,0:04:01.60,0:04:03.34,Default,,0,0,0,,Tell her her hair looks like Javier Bardem -Dialogue: 0,0:04:03.40,0:04:04.68,Default,,0,0,0,,{\i1}in No Country for Old Men.{\i} -Dialogue: 0,0:04:04.74,0:04:07.15,Default,,0,0,0,,This is your chance, Boots. Don't puss out. -Dialogue: 0,0:04:07.21,0:04:08.71,Default,,0,0,0,,Nope! -Dialogue: 0,0:04:08.78,0:04:11.42,Default,,0,0,0,,You pussy. -Dialogue: 0,0:04:15.08,0:04:17.62,Default,,0,0,0,,Swiper, no swiping! Swiper, no swiping! -Dialogue: 0,0:04:17.69,0:04:19.13,Default,,0,0,0,,Swiper, no swiping! -Dialogue: 0,0:04:19.19,0:04:22.13,Default,,0,0,0,,B-but Dora, I'm dying! -Dialogue: 0,0:04:22.19,0:04:25.64,Default,,0,0,0,,I have severe altitude sickness! -Dialogue: 0,0:04:25.69,0:04:27.60,Default,,0,0,0,,See this face? -Dialogue: 0,0:04:27.66,0:04:29.16,Default,,0,0,0,,Y-Yes? -Dialogue: 0,0:04:29.23,0:04:31.47,Default,,0,0,0,,This is my "not giving a fuck" face. -Dialogue: 0,0:04:35.50,0:04:38.68,Default,,0,0,0,,Which way should I go? -Dialogue: 0,0:04:38.74,0:04:40.55,Default,,0,0,0,,Right! Good choice! -Dialogue: 0,0:04:40.61,0:04:43.28,Default,,0,0,0,,Huh? No. -Dialogue: 0,0:04:43.34,0:04:45.85,Default,,0,0,0,,I'm pretty sure you said this way. -Dialogue: 0,0:04:45.91,0:04:47.26,Default,,0,0,0,,Oh, you didn't? -Dialogue: 0,0:04:47.32,0:04:49.82,Default,,0,0,0,,Well, maybe in just this one instance -Dialogue: 0,0:04:49.88,0:04:52.19,Default,,0,0,0,,I could ignore your advice? -Dialogue: 0,0:04:52.25,0:04:55.76,Default,,0,0,0,,Fine! -Dialogue: 0,0:04:55.82,0:04:58.33,Default,,0,0,0,,Here's another choice for you. -Dialogue: 0,0:04:58.39,0:05:00.70,Default,,0,0,0,,Guess which finger. -Dialogue: 0,0:05:00.76,0:05:03.83,Default,,0,0,0,,I hope you guessed the one that means fuck you! -Dialogue: 0,0:05:06.23,0:05:08.34,Default,,0,0,0,,Dora! Boots! -Dialogue: 0,0:05:08.40,0:05:09.35,Default,,0,0,0,,Diego! -Dialogue: 0,0:05:09.40,0:05:11.85,Default,,0,0,0,,I'm coming too! -Dialogue: 0,0:05:11.91,0:05:13.91,Default,,0,0,0,,Wh... what was that? -Dialogue: 0,0:05:13.98,0:05:14.95,Default,,0,0,0,,Dora! -Dialogue: 0,0:05:15.01,0:05:16.89,Default,,0,0,0,,Where is your safety harness? -Dialogue: 0,0:05:16.94,0:05:19.19,Default,,0,0,0,,Payback's a bitch. -Dialogue: 0,0:05:19.25,0:05:20.12,Default,,0,0,0,,Help! -Dialogue: 0,0:05:20.18,0:05:22.66,Default,,0,0,0,,I'm coming, Diego! -Dialogue: 0,0:05:22.72,0:05:24.63,Default,,0,0,0,,I rescued some condors once! -Dialogue: 0,0:05:24.69,0:05:26.29,Default,,0,0,0,,Are you here to return the favor? -Dialogue: 0,0:05:26.35,0:05:29.60,Default,,0,0,0,,OW! Why didn't we learn from the Crocodile Hunter? -Dialogue: 0,0:05:29.66,0:05:31.97,Default,,0,0,0,,Dora! -Dialogue: 0,0:05:32.03,0:05:35.10,Default,,0,0,0,,Arrgh! I can't... hang on...! -Dialogue: 0,0:05:35.16,0:05:37.11,Default,,0,0,0,,It's okay, Dora. -Dialogue: 0,0:05:37.17,0:05:40.48,Default,,0,0,0,,It's time for me to "Go Diego Go"... -Dialogue: 0,0:05:40.54,0:05:42.17,Default,,0,0,0,,To heaven! -Dialogue: 0,0:05:42.24,0:05:44.88,Default,,0,0,0,,Diegoooooooooo! -Dialogue: 0,0:05:47.04,0:05:49.35,Default,,0,0,0,,We did it! -Dialogue: 0,0:05:52.41,0:05:55.02,Default,,0,0,0,,I'm an explorer. Food is food. -Dialogue: 0,0:05:57.05,0:05:59.09,Default,,0,0,0,,H-H-Help... -Dialogue: 0,0:05:59.15,0:06:00.69,Default,,0,0,0,,m-m-me... -Dialogue: 0,0:06:00.76,0:06:02.76,Default,,0,0,0,,Gotcha something. -Dialogue: 0,0:06:04.43,0:06:06.87,Default,,0,0,0,,You bitch! -Dialogue: 0,0:06:12.87,0:06:14.78,Default,,0,0,0,,R-R-Reaper, no r-r-reaping... -Dialogue: 0,0:06:14.84,0:06:17.34,Default,,0,0,0,,R-R-Reaper, no reaping... Reaper... -Dialogue: 0,0:06:17.41,0:06:20.28,Default,,0,0,0,,Doink! Haha! -Dialogue: 0,0:06:20.34,0:06:23.08,Default,,0,0,0,,Ha ha, well, Mr. Fasolo, -Dialogue: 0,0:06:23.14,0:06:26.22,Default,,0,0,0,,it looks like you've developed a kidney stone. -Dialogue: 0,0:06:27.92,0:06:31.39,Default,,0,0,0,,You shall not pass! -Dialogue: 0,0:06:31.45,0:06:35.46,Default,,0,0,0,,Bruce Willis starred in The Fifth Element. -Dialogue: 0,0:06:35.52,0:06:38.83,Default,,0,0,0,,Then he starred in The {\i1}Sixth{\i} Sense. -Dialogue: 0,0:06:38.89,0:06:40.84,Default,,0,0,0,,Now he's pushing the boundaries one step further. -Dialogue: 0,0:06:40.90,0:06:44.50,Default,,0,0,0,,Bruce Willis in... The Seventh Vowel. -Dialogue: 0,0:06:44.57,0:06:47.74,Default,,0,0,0,,Everyone knows A,E,I,O,U, and sometimes Y. -Dialogue: 0,0:06:47.80,0:06:50.58,Default,,0,0,0,,But there's another vowel out there. -Dialogue: 0,0:06:52.61,0:06:56.52,Default,,0,0,0,,It's Ughhrt. -Dialogue: 0,0:06:56.58,0:06:58.78,Default,,0,0,0,,Ughhrt. -Dialogue: 0,0:06:58.85,0:07:00.02,Default,,0,0,0,,Uhrt. -Dialogue: 0,0:07:00.08,0:07:00.96,Default,,0,0,0,,Ughhrt. -Dialogue: 0,0:07:01.02,0:07:02.32,Default,,0,0,0,,Uhrgz. -Dialogue: 0,0:07:02.38,0:07:04.69,Default,,0,0,0,,Ug-h-hr-t. -Dialogue: 0,0:07:07.66,0:07:11.50,Default,,0,0,0,,Uuouorttt. -Dialogue: 0,0:07:11.56,0:07:13.84,Default,,0,0,0,,Yippee-ki-yay mother ughhrt! -Dialogue: 0,0:07:13.90,0:07:16.77,Default,,0,0,0,,Coming this summer to a theater near Urghhrt. -Dialogue: 0,0:07:16.83,0:07:19.04,Default,,0,0,0,,{\i1}♪ Flyin' car, flyin' car ♪{\i} -Dialogue: 0,0:07:19.10,0:07:21.24,Default,,0,0,0,,{\i1}♪ love cruisin' round in my flyin' car ♪{\i} -Dialogue: 0,0:07:21.30,0:07:24.11,Default,,0,0,0,,Ughhh, Herman, you have less than a quarter tank. -Dialogue: 0,0:07:24.17,0:07:26.17,Default,,0,0,0,,I'll drive on the regular road when it's an eighth of a tank. -Dialogue: 0,0:07:26.24,0:07:27.91,Default,,0,0,0,,You will not take that risk. -Dialogue: 0,0:07:27.98,0:07:30.85,Default,,0,0,0,,There are children in this car. -Dialogue: 0,0:07:30.91,0:07:33.42,Default,,0,0,0,,{\i1}♪ Flyin' car, flyin' car ♪{\i} -Dialogue: 0,0:07:33.48,0:07:35.79,Default,,0,0,0,,{\i1}♪ bitch musta forgot who paid for this flyin' car ♪{\i} -Dialogue: 0,0:07:35.85,0:07:37.19,Default,,0,0,0,,I can hear you. -Dialogue: 0,0:07:37.25,0:07:40.93,Default,,0,0,0,,Eat, and you will be as God is, -Dialogue: 0,0:07:40.99,0:07:43.30,Default,,0,0,0,,knowing good and evil. -Dialogue: 0,0:07:43.36,0:07:45.10,Default,,0,0,0,,I don't know... -Dialogue: 0,0:07:45.16,0:07:46.47,Default,,0,0,0,,Just do it, you pussy. -Dialogue: 0,0:07:48.63,0:07:51.80,Default,,0,0,0,,Oh, my God... we're naked... -Dialogue: 0,0:07:51.87,0:07:55.21,Default,,0,0,0,,Yes, your nakedness is shameful! -Dialogue: 0,0:07:55.27,0:07:56.75,Default,,0,0,0,,Cover yourselves! -Dialogue: 0,0:07:56.80,0:07:58.84,Default,,0,0,0,,I'm sorry! We didn't know! -Dialogue: 0,0:07:58.91,0:08:01.44,Default,,0,0,0,,Now you see the world as I do! -Dialogue: 0,0:08:01.51,0:08:04.15,Default,,0,0,0,,Wait, you knew we were naked this whole time -Dialogue: 0,0:08:04.21,0:08:05.69,Default,,0,0,0,,and didn't say anything? -Dialogue: 0,0:08:05.75,0:08:07.73,Default,,0,0,0,,Well you weren't supposed to know! -Dialogue: 0,0:08:07.78,0:08:10.35,Default,,0,0,0,,Yeah, we get that. But you did know. -Dialogue: 0,0:08:10.42,0:08:13.06,Default,,0,0,0,,My dick's just swinging on out here. -Dialogue: 0,0:08:13.12,0:08:14.53,Default,,0,0,0,,Thanks for the heads up. -Dialogue: 0,0:08:14.59,0:08:15.83,Default,,0,0,0,,Let's move on! -Dialogue: 0,0:08:15.89,0:08:17.10,Default,,0,0,0,,Come on, God. -Dialogue: 0,0:08:17.16,0:08:19.93,Default,,0,0,0,,We had a conversation while I was jogging yesterday. -Dialogue: 0,0:08:19.99,0:08:22.37,Default,,0,0,0,,These things must have been flying everywhere. -Dialogue: 0,0:08:22.43,0:08:24.24,Default,,0,0,0,,No wonder you were distracted. -Dialogue: 0,0:08:24.30,0:08:26.94,Default,,0,0,0,,Well I work in mysterious ways... -Dialogue: 0,0:08:27.00,0:08:29.00,Default,,0,0,0,,Hey God, were you checking out my girl's tits? -Dialogue: 0,0:08:29.07,0:08:30.34,Default,,0,0,0,,Uhhh... -Dialogue: 0,0:08:30.40,0:08:32.11,Default,,0,0,0,,Get out. Get out of the garden. -Dialogue: 0,0:08:32.17,0:08:33.38,Default,,0,0,0,,You're both banned. -Dialogue: 0,0:08:33.44,0:08:34.98,Default,,0,0,0,,Yeah, we busted him. -Dialogue: 0,0:08:35.04,0:08:38.05,Default,,0,0,0,,Yeah, you enjoy childbirth, bitch! -Dialogue: 0,0:08:38.11,0:08:40.82,Default,,0,0,0,,Okay, sir, sit back, cross your arms over your chest -Dialogue: 0,0:08:40.88,0:08:41.88,Default,,0,0,0,,and wait for the water... -Dialogue: 0,0:08:41.95,0:08:44.36,Default,,0,0,0,,I know what to do, stupid! -Dialogue: 0,0:08:46.89,0:08:50.77,Default,,0,0,0,,Ow! Oh god! Why is there no water?! Ow! -Dialogue: 0,0:08:50.83,0:08:51.67,Default,,0,0,0,,Who's next! -Dialogue: 0,0:08:52.89,0:08:56.21,Default,,0,0,0,,Shhh! Warna Bwathas Standards and Pwactices says -Dialogue: 0,0:08:56.26,0:08:58.27,Default,,0,0,0,,I'm not awowed to use a gun anymore. -Dialogue: 0,0:08:58.33,0:09:00.31,Default,,0,0,0,,That's my wivewehood. -Dialogue: 0,0:09:00.37,0:09:02.04,Default,,0,0,0,,I'll show them. -Dialogue: 0,0:09:06.37,0:09:08.98,Default,,0,0,0,,Youuuuu! Shall not! Pa... -Dialogue: 0,0:10:29.46,0:10:32.80,Default,,0,0,0,,Nothing funny about this. -Dialogue: 0,0:10:37.26,0:10:41.51,Default,,0,0,0,,I know your father loved you very much. -Dialogue: 0,0:10:45.24,0:11:13.72,Default,,0,0,0,,{\c&HCC9933&}Subtitles by {\c\c&HFFFFFF&}MemoryOnSmells{\c} {\c&HCC9933&}Exclusive for http://UKsubtitles.ru{\c} diff --git "a/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2664 - SRT - Robot Chicken - 05x20 - Fight Club Paradise.DVDRip.English.C.orig.Addic7ed.com 2.srt" "b/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2664 - SRT - Robot Chicken - 05x20 - Fight Club Paradise.DVDRip.English.C.orig.Addic7ed.com 2.srt" deleted file mode 100644 index c5450d5..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2664 - SRT - Robot Chicken - 05x20 - Fight Club Paradise.DVDRip.English.C.orig.Addic7ed.com 2.srt" +++ /dev/null @@ -1,499 +0,0 @@ -1 -00:00:00,958 --> 00:00:06,258 -Subtitles by MemoryOnSmells -Exclusive for http://UKsubtitles.ru - -2 -00:00:11,544 --> 00:00:12,682 -Hello? - -3 -00:00:12,746 --> 00:00:14,419 -Oh, my... - -4 -00:00:14,481 --> 00:00:16,688 -It smells like this room -has not been cleaned - -5 -00:00:16,750 --> 00:00:19,287 -for five whole seasons... - -6 -00:00:19,352 --> 00:00:22,231 -of a television show. - -7 -00:00:26,126 --> 00:00:29,801 -Oh! Hello chicken! -Ooh, your chair so dirty. - -8 -00:00:29,863 --> 00:00:33,242 -If I clean you no run -away, okay? - -9 -00:00:34,601 --> 00:00:36,103 -You promise? - -10 -00:00:51,418 --> 00:00:54,386 -I like you, Chicken. - -11 -00:01:13,273 --> 00:01:15,307 -Oh man! I just realized -they'll probably show - -12 -00:01:15,308 --> 00:01:17,543 -the Sex and the City 3 trailer! - -13 -00:01:17,544 --> 00:01:18,818 -Why are you so excited? - -14 -00:01:18,878 --> 00:01:20,323 -I tried to drag you -to the last one - -15 -00:01:20,380 --> 00:01:21,518 -and you almost -broke up with me. - -16 -00:01:21,581 --> 00:01:22,924 -The last one flopped pretty bad, - -17 -00:01:22,982 --> 00:01:24,290 -so the studio's -making the third one - -18 -00:01:24,350 --> 00:01:28,628 -more guy-friendly. - -19 -00:01:28,688 --> 00:01:31,294 -Well, the lack of testes -was making me testy - -20 -00:01:31,357 --> 00:01:35,134 -but this boring event just took -a sperm for the better. - -21 -00:01:37,997 --> 00:01:40,341 -Hey everyone, this chick is -giving me some... - -22 -00:01:40,400 --> 00:01:41,378 -ah you know what, -it's too easy. - -23 -00:01:41,434 --> 00:01:42,879 -Joke withdrawn, everyone. -Joke withdrawn. - -24 -00:01:42,936 --> 00:01:45,473 -"The detective said Samantha's -collar was rigged to blow - -25 -00:01:45,538 --> 00:01:47,211 -as soon as she made a sex pun. - -26 -00:01:47,273 --> 00:01:49,583 -So it couldn't have been on her -for more than 60 seconds." - -27 -00:01:51,444 --> 00:01:53,720 -Carrie, come -to Miranda's, quick! - -28 -00:01:53,780 --> 00:01:56,522 -The collar was rigged to blow as -soon as she tasted tuna. - -29 -00:01:56,583 --> 00:01:59,462 -Ironically, she was making -an actual tuna fish sandwich. - -30 -00:01:59,519 --> 00:02:02,125 -Mr. Big, someone -is killing my friends! - -31 -00:02:02,188 --> 00:02:03,531 -You've got to help us! - -32 -00:02:03,590 --> 00:02:04,898 -Carrie, I have two secrets. - -33 -00:02:04,958 --> 00:02:07,564 -First, my real name isn't -Alexander Big. - -34 -00:02:07,627 --> 00:02:09,573 -My second secret... - -35 -00:02:09,629 --> 00:02:11,836 -is THIS. - -36 -00:02:11,898 --> 00:02:14,708 -Out of the way gaybies! - -37 -00:02:14,767 --> 00:02:17,304 -Hyah! Hyah! - -38 -00:02:29,015 --> 00:02:31,586 -Big? I feel so strange. - -39 -00:02:31,651 --> 00:02:34,996 -Your brain is getting used to -your new body, Miss Bradshaw. - -40 -00:02:38,057 --> 00:02:43,939 -Uhh, what shall I do -with her old body? - -41 -00:02:43,997 --> 00:02:46,841 -Donate it to science. - -44 -00:02:58,111 --> 00:03:00,387 -Shut up! The Katherine Heigl -movie is starting. - -45 -00:03:02,815 --> 00:03:04,522 -Sex and The City 3! - -46 -00:03:04,584 --> 00:03:05,585 -Sex and The City 3! - -47 -00:03:05,652 --> 00:03:07,359 -Shhh!! - -48 -00:03:10,924 --> 00:03:14,633 -Hey hey hey! I avoid starvation -for another day! - -49 -00:03:14,694 --> 00:03:16,173 -Sorry Yogi, - -50 -00:03:16,229 --> 00:03:18,971 -but if you steal -one more basket, it's my job. - -51 -00:03:19,032 --> 00:03:22,172 -You'll never catch me, I live -the life of the free! - -52 -00:03:22,235 --> 00:03:24,408 -Not this time, Yogi. - -53 -00:03:24,470 --> 00:03:27,383 -Ho Chi Hacharu! - -54 -00:03:38,284 --> 00:03:42,027 -Quite the surprise, but try -this one on for size! - -55 -00:03:45,091 --> 00:03:47,037 -Hey, hey, hey! - -56 -00:03:47,093 --> 00:03:49,733 -♪ Go, Go! -Power Forest Rangers ♪ - -57 -00:03:52,031 --> 00:03:55,410 -♪ Go, go! -Power Forest Rangers ♪ - -58 -00:04:00,240 --> 00:04:02,743 -♪ Go, Go! -Power Forest Rangers ♪ - -59 -00:04:05,612 --> 00:04:08,388 -♪ Go, Go! -Power Forest Rangers ♪ - -60 -00:04:13,686 --> 00:04:15,461 -♪ Go, Go! -Power Forest Rangers ♪ - -61 -00:04:15,521 --> 00:04:18,092 -What the fuck is happening!! - -62 -00:04:20,126 --> 00:04:23,428 -And that is how you bring -Yogi Bear to Japan! - -63 -00:04:23,429 --> 00:04:26,171 -You're welcome! - -64 -00:04:33,172 --> 00:04:36,244 -They called me mad, -but I did it! - -65 -00:04:36,309 --> 00:04:38,482 -Egypt shall forevermore be known - -66 -00:04:38,544 --> 00:04:42,492 -as the land of giant boobies! - -67 -00:04:52,992 --> 00:04:55,302 -Haha. They're like giant -boobies! - -68 -00:04:55,361 --> 00:04:57,671 -Don't be an idiot! - -69 -00:04:57,730 --> 00:04:59,141 -I just don't think -we're ready for this. - -70 -00:04:59,198 --> 00:05:00,832 -Not-not right now. - -71 -00:05:00,833 --> 00:05:04,804 -Okay. -I understand. It's okay. - -72 -00:06:27,253 --> 00:06:30,700 -Are you on your way -to a fancy party?! - -73 -00:06:30,757 --> 00:06:34,398 -That was my line from our first -appearance on this show. - -74 -00:06:34,460 --> 00:06:35,302 -Eyegorp! - -75 -00:06:38,664 --> 00:06:40,837 -I deserve it! - -76 -00:06:44,070 --> 00:06:46,550 -Oh, man. - -77 -00:06:52,311 --> 00:06:54,450 -You seem so RUTHLESS... - -78 -00:06:54,514 --> 00:06:57,757 -time to make you TOOTHLESS! - -79 -00:07:17,804 --> 00:07:19,477 -Mmm, your beak looks ribbed... - -80 -00:07:19,539 --> 00:07:22,019 -for MY pleasure! - -81 -00:07:22,074 --> 00:07:23,052 -Oh! Ow! - -82 -00:07:25,311 --> 00:07:29,054 -That's not half bad actually. - -83 -00:07:29,115 --> 00:07:31,652 -I'm so happy -'cause you are gonna die - -84 -00:07:31,717 --> 00:07:34,323 -GONNA DIE! - -85 -00:07:38,891 --> 00:07:41,667 -No no no! -No, stop! - -86 -00:07:49,769 --> 00:07:51,942 -A drumroll? -It's so suspenseful! - -87 -00:07:52,004 --> 00:07:54,006 -AAAAAAAAAAA!! - -88 -00:07:54,073 --> 00:07:56,053 -What an ironic death! - -89 -00:07:56,108 --> 00:07:58,577 -I'm a CHAMPION! - -90 -00:07:58,578 --> 00:08:00,580 -Looks like SOMEONE'S -been watching - -91 -00:08:00,646 --> 00:08:02,353 -Tony Jaa's The Protector. - -92 -00:08:02,415 --> 00:08:04,326 -L-Looks like someone -just peed - -93 -00:08:04,383 --> 00:08:06,385 -in his Gatchaman boxer shorts! - -94 -00:08:18,397 --> 00:08:20,001 -Whew. - -95 -00:08:22,702 --> 00:08:25,512 -Suck my sleigh balls! - -96 -00:08:25,571 --> 00:08:28,814 -Argh! -My only weakness! - -97 -00:08:31,177 --> 00:08:34,386 -Duh da da da dah dah daaaah! - -98 -00:08:34,447 --> 00:08:36,290 -Bitch. Pudding! - -99 -00:08:36,349 --> 00:08:37,623 -B-b-b-blam! - -100 -00:08:37,683 --> 00:08:40,289 -How do you like this taste -of Bitch Pudding?! - -101 -00:08:40,353 --> 00:08:41,889 -Your momma sure liked it -when she ate it - -102 -00:08:41,954 --> 00:08:43,058 -out of my butthole! - -103 -00:08:45,258 --> 00:08:47,431 -B-Blam! Bitch Pudding! - -104 -00:08:47,493 --> 00:08:49,166 -Blam blam blam blam blam! -Whoooo! Blam! - -105 -00:08:51,664 --> 00:08:54,736 -Blaaaaamm... Ow! - -106 -00:08:59,438 --> 00:09:00,917 -You saved me! -- Have at thee! - -107 -00:09:00,973 --> 00:09:02,975 -My life has value after all! - -108 -00:09:06,746 --> 00:09:08,419 -Ding dang! - -109 -00:09:08,481 --> 00:09:12,258 -This is gonna be one -dilly of a slobberknocker! - -110 -00:09:12,318 --> 00:09:15,925 -These ratings will be glorious. - -111 -00:09:21,561 --> 00:09:24,371 -Let me just get that for you. - -112 -00:09:24,430 --> 00:09:26,341 -I wish I was a bionic chicken. - -113 -00:09:26,399 --> 00:09:30,814 -That would be so cool. - -114 -00:10:38,792 --> 00:11:17,024 -Subtitles by MemoryOnSmells -Exclusive for http://UKsubtitles.ru - diff --git "a/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2665 - ASS - CS38.ass" "b/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2665 - ASS - CS38.ass" deleted file mode 100644 index a4c39e9..0000000 --- "a/app/test file/\346\265\213\350\257\225\346\226\207\344\273\2665 - ASS - CS38.ass" +++ /dev/null @@ -1,266 +0,0 @@ -[Script Info] -; Script generated by Aegisub 3.2.2 -; http://www.aegisub.org/ -Title: Default Aegisub file -ScriptType: v4.00+ -WrapStyle: 0 -ScaledBorderAndShadow: yes -YCbCr Matrix: TV.601 -PlayResX: 1920 -PlayResY: 1080 - -[Aegisub Project Garbage] -Audio File: 38. Psychology_of_Computing_-_Crash_Course_Computer_Science_38-DEHsvQ3Ylwg.mkv -Video File: 38. Psychology_of_Computing_-_Crash_Course_Computer_Science_38-DEHsvQ3Ylwg.mkv -Video AR Mode: 4 -Video AR Value: 1.777778 -Video Zoom Percent: 0.375000 -Scroll Position: 205 -Active Line: 215 -Video Position: 16148 - -[V4+ Styles] -Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding -Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1 -Style: 底部白,方正准圆简体,48,&H00FFFFFF,&H000000FF,&H77000000,&H78000000,-1,0,0,0,100,100,0,0,1,3,2,2,3,3,20,1 -Style: 中文黄,方正准圆简体,72,&H0080FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,2.1,0,1,3,2,2,3,3,13,1 -Style: 批注-黄,方正准圆简体,49,&H0080FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,2.1,0,1,3,2,8,3,3,13,1 -Style: 中文白,方正准圆简体,57,&H00FFFFFF,&H000000FF,&H55000000,&H63000000,-1,0,0,0,100,100,0,0,1,3,2,2,3,3,13,1 -Style: 批注黑,FZZhunYuan-M02S,46,&H44000000,&HFF0000FF,&HFF000000,&HFFFFFFFF,0,0,0,0,100,100,0,0,1,3,2,7,3,3,13,1 -Style: 批注白,方正准圆简体,40,&H00FFFFFF,&HFF0000FF,&HFF000000,&HFFFFFFFF,-1,0,0,0,100,100,0,0,1,3,2,7,3,3,13,1 - -[Events] -Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text -Dialogue: 0,0:00:03.02,0:00:05.81,底部白,,0,0,0,,Hi, I’m Carrie Anne, and welcome to Crash Course Computer Science! -Dialogue: 0,0:00:05.81,0:00:07.44,底部白,,0,0,0,,So, over the course of this series, -Dialogue: 0,0:00:10.20,0:00:12.54,底部白,,0,0,0,, we’ve focused almost exclusively on computers – -Dialogue: 0,0:00:12.54,0:00:12.54,底部白,,0,0,0,,the circuits and algorithms that make them tick. -Dialogue: 0,0:00:12.54,0:00:15.19,底部白,,0,0,0,,Because...this is Crash Course Computer Science. -Dialogue: 0,0:00:15.19,0:00:17.79,底部白,,0,0,0,,But ultimately, computers are tools employed by people. -Dialogue: 0,0:00:17.79,0:00:19.81,底部白,,0,0,0,,And humans are… well… messy. -Dialogue: 0,0:00:19.81,0:00:22.29,底部白,,0,0,0,,We haven’t been designed by human engineers from the ground up -Dialogue: 0,0:00:22.29,0:00:24.76,底部白,,0,0,0,, with known performance specifications. -Dialogue: 0,0:00:24.76,0:00:27.62,底部白,,0,0,0,,We can be logical one moment and irrational the next. -Dialogue: 0,0:00:27.62,0:00:31.46,底部白,,0,0,0,,Have you ever gotten angry at your navigation system? Surfed wikipedia aimlessly? -Dialogue: 0,0:00:31.46,0:00:34.14,底部白,,0,0,0,,Begged your internet browser to load faster? -Dialogue: 0,0:00:34.14,0:00:35.79,底部白,,0,0,0,,Nicknamed your roomba? -Dialogue: 0,0:00:35.79,0:00:37.94,底部白,,0,0,0,,These behaviors are quintessentially human! -Dialogue: 0,0:00:37.94,0:00:41.22,底部白,,0,0,0,,To build computer systems that are useful, usable and enjoyable, -Dialogue: 0,0:00:41.22,0:00:45.48,底部白,,0,0,0,,we need to understand the strengths and weaknesses of both computers and humans. -Dialogue: 0,0:00:45.48,0:00:48.90,底部白,,0,0,0,,And for this reason, when good system designers are creating software, -Dialogue: 0,0:00:48.90,0:00:53.68,底部白,,0,0,0,, they employ social, cognitive, behavioral, and perceptual psychology principles. -Comment: 0,0:00:53.68,0:01:02.70,底部白,,0,0,0,,INTRO -Dialogue: 0,0:01:02.70,0:01:05.29,底部白,,0,0,0,,No doubt you’ve encountered a physical or computer interface -Dialogue: 0,0:01:05.29,0:01:08.57,底部白,,0,0,0,,that was frustrating to use, impeding your progress. -Dialogue: 0,0:01:08.57,0:01:12.17,底部白,,0,0,0,,Maybe it was so badly designed that you couldn’t figure it out and just gave up. -Dialogue: 0,0:01:12.17,0:01:14.41,底部白,,0,0,0,,That interface had poor usability. -Dialogue: 0,0:01:14.41,0:01:17.59,底部白,,0,0,0,,Usability is the degree to which a human-made artifact – like software -Dialogue: 0,0:01:17.59,0:01:21.50,底部白,,0,0,0,, – can be used to achieve an objective effectively and efficiently. -Dialogue: 0,0:01:21.50,0:01:24.52,底部白,,0,0,0,,To facilitate human work, we need to understand humans -Dialogue: 0,0:01:24.52,0:01:27.80,底部白,,0,0,0,,- from how they see and think, to how they react and interact. -Dialogue: 0,0:01:27.80,0:01:31.48,底部白,,0,0,0,,For instance, the human visual system has been well studied by Psychologists. -Dialogue: 0,0:01:31.48,0:01:34.56,底部白,,0,0,0,,Like, we know that people are good at ordering intensities of colors. -Dialogue: 0,0:01:34.56,0:01:35.56,底部白,,0,0,0,,Here are three. -Dialogue: 0,0:01:35.56,0:01:38.04,底部白,,0,0,0,,Can you arrange these from lightest to darkest? -Dialogue: 0,0:01:38.04,0:01:40.51,底部白,,0,0,0,,You probably don’t have to think too much about it. -Dialogue: 0,0:01:40.51,0:01:43.33,底部白,,0,0,0,,Because of this innate ability, color intensity is a great choice -Dialogue: 0,0:01:43.33,0:01:45.50,底部白,,0,0,0,, for displaying data with continuous values. -Dialogue: 0,0:01:45.50,0:01:48.57,底部白,,0,0,0,,On the other hand, humans are terrible at ordering colors. -Dialogue: 0,0:01:48.57,0:01:50.63,底部白,,0,0,0,,Here’s another example for you to put in order. -Dialogue: 0,0:01:50.63,0:01:53.23,底部白,,0,0,0,,is orange before blue, or after blue? -Dialogue: 0,0:01:53.23,0:01:54.25,底部白,,0,0,0,,Where does green go? -Dialogue: 0,0:01:54.25,0:01:57.18,底部白,,0,0,0,,You might be thinking we could order this by wavelength of light, -Dialogue: 0,0:01:57.18,0:01:59.82,底部白,,0,0,0,, like a rainbow, but that’s a lot more to think about. -Dialogue: 0,0:01:59.82,0:02:03.17,底部白,,0,0,0,,Most people are going to be much slower and error-prone at ordering. -Dialogue: 0,0:02:03.17,0:02:05.56,底部白,,0,0,0,,Because of this innate ineptitude of your visual system, -Dialogue: 0,0:02:05.56,0:02:09.81,底部白,,0,0,0,, displaying continuous data using colors can be a disastrous design choice. -Dialogue: 0,0:02:09.81,0:02:14.06,底部白,,0,0,0,,You’ll find yourself constantly referring back to a color legend to compare items. -Dialogue: 0,0:02:14.06,0:02:17.40,底部白,,0,0,0,,However, colors are perfect for when the data is discrete with no ordering, -Dialogue: 0,0:02:17.40,0:02:19.32,底部白,,0,0,0,, like categorical data. -Dialogue: 0,0:02:19.32,0:02:21.49,底部白,,0,0,0,,This might seem obvious, but you’d be amazed at -Dialogue: 0,0:02:21.49,0:02:23.88,底部白,,0,0,0,,how many interfaces get basic things like this wrong. -Dialogue: 0,0:02:23.88,0:02:27.04,底部白,,0,0,0,,Beyond visual perception, understanding human cognition helps us -Dialogue: 0,0:02:27.04,0:02:30.26,底部白,,0,0,0,, design interfaces that align with how the mind works. -Dialogue: 0,0:02:30.26,0:02:33.80,底部白,,0,0,0,,Like, humans can read, remember and process information more effectively -Dialogue: 0,0:02:33.80,0:02:38.76,底部白,,0,0,0,,when it's chunked–that is, when items are put together into small, meaningful groups. -Dialogue: 0,0:02:38.76,0:02:43.08,底部白,,0,0,0,,Humans can generally juggle seven items, plus-or-minus two, in short-term memory. -Dialogue: 0,0:02:43.08,0:02:46.08,底部白,,0,0,0,,To be conservative, we typically see groupings of five or less. -Dialogue: 0,0:02:46.08,0:02:51.76,底部白,,0,0,0,,That’s why telephone numbers are broken into chunks, like 317, 555, 3897. -Dialogue: 0,0:02:51.76,0:02:55.76,底部白,,0,0,0,,Instead of being ten individual digits that we’d likely forget, it’s three chunks, -Dialogue: 0,0:02:55.76,0:02:56.87,底部白,,0,0,0,,which we can handle better. -Dialogue: 0,0:02:56.87,0:03:00.15,底部白,,0,0,0,,From a computer's standpoint, this needlessly takes more time and space, -Dialogue: 0,0:03:00.15,0:03:01.92,底部白,,0,0,0,,so it's less efficient. -Dialogue: 0,0:03:01.92,0:03:05.03,底部白,,0,0,0,,But, it’s way more efficient for us humans – a tradeoff we almost -Dialogue: 0,0:03:05.03,0:03:09.10,底部白,,0,0,0,,always make in our favor, since we’re the ones running the show...for now. -Dialogue: 0,0:03:09.10,0:03:11.42,底部白,,0,0,0,,Chunking has been applied to computer interfaces for things -Dialogue: 0,0:03:11.42,0:03:14.02,底部白,,0,0,0,, like drop-down menu items and menu bars with buttons. -Dialogue: 0,0:03:14.02,0:03:18.06,底部白,,0,0,0,,It’d be more efficient for computers to just pack all those together, edge to edge -Dialogue: 0,0:03:18.06,0:03:20.56,底部白,,0,0,0,,– it’s wasted memory and screen real estate. -Dialogue: 0,0:03:20.56,0:03:23.30,底部白,,0,0,0,,But designing interfaces in this way makes them much easier -Dialogue: 0,0:03:23.30,0:03:25.42,底部白,,0,0,0,, to visually scan, remember and access. -Dialogue: 0,0:03:25.42,0:03:29.60,底部白,,0,0,0,,Another central concept used in interface design is affordances. -Dialogue: 0,0:03:29.60,0:03:32.48,底部白,,0,0,0,,According to Don Norman, who popularized the term in computing, -Dialogue: 0,0:03:32.48,0:03:36.64,底部白,,0,0,0,,"affordances provide strong clues to the operations of things. -Dialogue: 0,0:03:36.64,0:03:37.84,底部白,,0,0,0,,Plates are for pushing. -Dialogue: 0,0:03:37.84,0:03:39.24,底部白,,0,0,0,,Knobs are for turning. -Dialogue: 0,0:03:39.24,0:03:41.40,底部白,,0,0,0,,Slots are for inserting things into. -Dialogue: 0,0:03:41.40,0:03:45.94,底部白,,0,0,0,,[...] When affordances are taken advantage of, the user knows what to do just by looking: -Dialogue: 0,0:03:45.94,0:03:48.45,底部白,,0,0,0,,no picture, label, or instruction needed.” -Dialogue: 0,0:03:48.45,0:03:52.38,底部白,,0,0,0,,If you’ve ever tried to pull a door handle, only to realize that you have to push it open, -Dialogue: 0,0:03:52.38,0:03:54.31,底部白,,0,0,0,,you’ve discovered a broken affordance. -Dialogue: 0,0:03:54.31,0:03:56.13,底部白,,0,0,0,,On the other hand, a door plate is a better design -Dialogue: 0,0:03:56.13,0:03:58.44,底部白,,0,0,0,, because it only gives you the option to push. -Dialogue: 0,0:03:58.44,0:04:01.98,底部白,,0,0,0,,Doors are pretty straightforward – if you need to put written instructions on them, -Dialogue: 0,0:04:01.98,0:04:03.72,底部白,,0,0,0,,you should probably go back to the drawing board. -Dialogue: 0,0:04:03.72,0:04:06.76,底部白,,0,0,0,,Affordances are used extensively in graphical user interfaces, -Dialogue: 0,0:04:06.76,0:04:09.18,底部白,,0,0,0,, which we discussed in episode 26. -Dialogue: 0,0:04:09.18,0:04:13.67,底部白,,0,0,0,,It’s one of the reasons why computers became so much easier to use than with command lines. -Dialogue: 0,0:04:13.67,0:04:18.02,底部白,,0,0,0,,You don’t have to guess what things on-screen are clickable, because they look like buttons. -Dialogue: 0,0:04:18.02,0:04:20.20,底部白,,0,0,0,,They pop out, just waiting for you to press them! -Dialogue: 0,0:04:20.20,0:04:24.91,底部白,,0,0,0,,One of my favorite affordances, which suggests to users that an on-screen element is draggable, -Dialogue: 0,0:04:24.91,0:04:27.49,底部白,,0,0,0,,is knurling – that texture added to objects -Dialogue: 0,0:04:27.49,0:04:30.29,底部白,,0,0,0,, to improve grip and show you where to best grab them. -Dialogue: 0,0:04:30.29,0:04:33.28,底部白,,0,0,0,,This idea and pattern was borrowed from real world physical tools. -Dialogue: 0,0:04:33.28,0:04:38.09,底部白,,0,0,0,,Related to the concept of affordances is the psychology of recognition vs recall. -Dialogue: 0,0:04:38.09,0:04:39.59,底部白,,0,0,0,,You know this effect well from tests – -Dialogue: 0,0:04:39.59,0:04:43.46,底部白,,0,0,0,,it's why multiple choice questions are easier than fill-in-the-blank ones. -Dialogue: 0,0:04:43.46,0:04:46.84,底部白,,0,0,0,,In general, human memory is much better when it’s triggered by a sensory cue, -Dialogue: 0,0:04:46.84,0:04:48.78,底部白,,0,0,0,,like a word, picture or sound. -Dialogue: 0,0:04:48.78,0:04:52.60,底部白,,0,0,0,,That’s why interfaces use icons – pictorial representations of functions -Dialogue: 0,0:04:52.60,0:04:55.60,底部白,,0,0,0,, – like a trash can for where files go to be deleted. -Dialogue: 0,0:04:55.60,0:04:59.72,底部白,,0,0,0,,We don’t have to recall what that icon does, we just have to recognise the icon. -Dialogue: 0,0:04:59.72,0:05:02.49,底部白,,0,0,0,,This was also a huge improvement over command line interfaces, -Dialogue: 0,0:05:02.49,0:05:05.80,底部白,,0,0,0,, where you had to rely on your memory for what commands to use. -Dialogue: 0,0:05:05.80,0:05:10.66,底部白,,0,0,0,,Do I have to type “delete”, or “remove”, or... “trash”, or… shoot, it could be anything! -Dialogue: 0,0:05:10.66,0:05:11.79,底部白,,0,0,0,,It’s actually “rm” in linux, -Dialogue: 0,0:05:11.79,0:05:16.17,底部白,,0,0,0,, but anyway, making everything easy to discover and learn sometimes means slow to access, -Dialogue: 0,0:05:16.17,0:05:19.59,底部白,,0,0,0,,which conflicts with another psychology concept: expertise. -Dialogue: 0,0:05:19.59,0:05:22.34,底部白,,0,0,0,,As you gain experience with interfaces, you get faster, -Dialogue: 0,0:05:22.34,0:05:25.14,底部白,,0,0,0,, building mental models of how to do things efficiently. -Dialogue: 0,0:05:25.14,0:05:28.63,底部白,,0,0,0,,So, good interfaces should offer multiple paths to accomplish goals. -Dialogue: 0,0:05:28.63,0:05:32.57,底部白,,0,0,0,,A great example of this is copy and paste, which can be found in the edit dropdown menu -Dialogue: 0,0:05:32.57,0:05:36.56,底部白,,0,0,0,,of word processors, and is also triggered with keyboard shortcuts. -Dialogue: 0,0:05:36.56,0:05:41.08,底部白,,0,0,0,,One approach caters to novices, while the other caters to experts, slowing down neither. -Dialogue: 0,0:05:41.08,0:05:43.82,底部白,,0,0,0,,So, you can have your cake and eat it too! -Dialogue: 0,0:05:43.82,0:05:45.57,底部白,,0,0,0,,In addition to making humans more efficient, -Dialogue: 0,0:05:45.57,0:05:48.66,底部白,,0,0,0,,we'd also like computers to be emotionally intelligent – -Dialogue: 0,0:05:48.66,0:05:51.16,底部白,,0,0,0,,adapting their behavior to respond appropriately -Dialogue: 0,0:05:51.16,0:05:54.61,底部白,,0,0,0,, to their users' emotional state – also called affect. -Dialogue: 0,0:05:54.61,0:05:58.41,底部白,,0,0,0,,That could make experiences more empathetic, enjoyable, or even delightful. -Dialogue: 0,0:05:58.41,0:06:03.63,底部白,,0,0,0,,This vision was articulated by Rosalind Picard in her 1995 paper on Affective Computing, -Dialogue: 0,0:06:03.63,0:06:06.80,底部白,,0,0,0,,which kickstarted an interdisciplinary field combining aspects -Dialogue: 0,0:06:06.80,0:06:09.30,底部白,,0,0,0,, of psychology, social and computer sciences. -Dialogue: 0,0:06:09.30,0:06:12.26,底部白,,0,0,0,,It spurred work on computing systems that could recognize, -Dialogue: 0,0:06:12.26,0:06:14.93,底部白,,0,0,0,, interpret, simulate and alter human affect. -Dialogue: 0,0:06:14.93,0:06:18.94,底部白,,0,0,0,,This was a huge deal, because we know emotion influences cognition and perception -Dialogue: 0,0:06:18.94,0:06:23.07,底部白,,0,0,0,, in everyday tasks like learning, communication, and decision making. -Dialogue: 0,0:06:23.07,0:06:26.93,底部白,,0,0,0,,Affect-aware systems use sensors, sometimes worn, that capture things like speech and -Dialogue: 0,0:06:26.93,0:06:31.12,底部白,,0,0,0,,video of the face, as well as biometrics, like sweatiness and heart rate. -Dialogue: 0,0:06:31.12,0:06:35.98,底部白,,0,0,0,,This multimodal sensor data is used in conjunction with computational models that represent how -Dialogue: 0,0:06:35.98,0:06:40.72,底部白,,0,0,0,,people develop and express affective states, like happiness and frustration, -Dialogue: 0,0:06:40.72,0:06:42.61,底部白,,0,0,0,, and social states, like friendship and trust. -Dialogue: 0,0:06:42.61,0:06:45.92,底部白,,0,0,0,,These models estimate the likelihood of a user being in a particular state, -Dialogue: 0,0:06:45.92,0:06:48.42,底部白,,0,0,0,,and figure out how to best respond to that state, -Dialogue: 0,0:06:48.42,0:06:50.86,底部白,,0,0,0,,in order to achieve the goals of the system. -Dialogue: 0,0:06:50.86,0:06:55.22,底部白,,0,0,0,,This might be to calm the user down, build trust, or help them get their homework done. -Dialogue: 0,0:06:55.22,0:06:59.12,底部白,,0,0,0,,A study, looking at user affect, was conducted by Facebook in 2012. -Dialogue: 0,0:06:59.12,0:07:01.40,底部白,,0,0,0,,For one week, data scientists altered the content -Dialogue: 0,0:07:01.40,0:07:03.74,底部白,,0,0,0,,on hundreds of thousands of users' feeds. -Dialogue: 0,0:07:03.74,0:07:06.11,底部白,,0,0,0,,Some people were shown more items with positive content, -Dialogue: 0,0:07:06.11,0:07:08.87,底部白,,0,0,0,, while others were presented with more negative content. -Dialogue: 0,0:07:08.87,0:07:11.53,底部白,,0,0,0,,The researchers analyzed people's posts during that week, -Dialogue: 0,0:07:11.53,0:07:14.12,底部白,,0,0,0,, and found that users who were shown more positive content, -Dialogue: 0,0:07:14.12,0:07:16.63,底部白,,0,0,0,,tended to also post more positive content. -Dialogue: 0,0:07:16.63,0:07:21.22,底部白,,0,0,0,,On the other hand, users who saw more negative content, tended to have more negative posts. -Dialogue: 0,0:07:21.22,0:07:23.54,底部白,,0,0,0,,Clearly, what Facebook and other services show you -Dialogue: 0,0:07:23.54,0:07:25.76,底部白,,0,0,0,, can absolutely have an affect on you. -Dialogue: 0,0:07:25.76,0:07:29.56,底部白,,0,0,0,,As gatekeepers of content, that’s a huge opportunity and responsibility. -Dialogue: 0,0:07:29.56,0:07:32.06,底部白,,0,0,0,,Which is why this study ended up being pretty controversial. -Dialogue: 0,0:07:32.06,0:07:34.22,底部白,,0,0,0,,Also, it raises some interesting questions about -Dialogue: 0,0:07:34.22,0:07:37.64,底部白,,0,0,0,,how computer programs should respond to human communication. -Dialogue: 0,0:07:37.64,0:07:40.27,底部白,,0,0,0,,If the user is being negative, maybe the computer shouldn’t be -Dialogue: 0,0:07:40.27,0:07:43.28,底部白,,0,0,0,, annoying by responding in a cheery, upbeat manner. -Dialogue: 0,0:07:43.28,0:07:46.32,底部白,,0,0,0,,Or, maybe the computer should attempt to evoke a positive response, -Dialogue: 0,0:07:46.32,0:07:48.09,底部白,,0,0,0,, even if it's a bit awkward. -Dialogue: 0,0:07:48.09,0:07:51.31,底部白,,0,0,0,,The “correct” behavior is very much an open research question. -Dialogue: 0,0:07:51.31,0:07:56.03,底部白,,0,0,0,,Speaking of Facebook, it’s a great example of computer-mediated communication, or CMC, -Dialogue: 0,0:07:56.03,0:07:57.74,底部白,,0,0,0,,another large field of research. -Dialogue: 0,0:07:57.74,0:08:01.97,底部白,,0,0,0,,This includes synchronous communication – like video calls, where all participants are online -Dialogue: 0,0:08:01.97,0:08:06.46,底部白,,0,0,0,,simultaneously – as well as asynchronous communication – like tweets, emails, and -Dialogue: 0,0:08:06.46,0:08:09.48,底部白,,0,0,0,,text messages, where people respond whenever they can or want. -Dialogue: 0,0:08:09.48,0:08:12.76,底部白,,0,0,0,,Researchers study things like the use of emoticons, rules such as turn-taking, -Dialogue: 0,0:08:12.76,0:08:15.46,底部白,,0,0,0,, and language used in different communication channels. -Dialogue: 0,0:08:15.46,0:08:19.02,底部白,,0,0,0,,One interesting finding is that people exhibit higher levels of self-disclosure -Dialogue: 0,0:08:19.02,0:08:23.23,底部白,,0,0,0,,– that is, reveal personal information –in computer-mediated conversations, -Dialogue: 0,0:08:23.23,0:08:25.52,底部白,,0,0,0,, as opposed to face-to-face interactions. -Dialogue: 0,0:08:25.52,0:08:29.15,底部白,,0,0,0,,So if you want to build a system that knows how many hours a user truly spent -Dialogue: 0,0:08:29.15,0:08:32.24,底部白,,0,0,0,,watching The Great British Bakeoff, it might be better to build a chatbot -Dialogue: 0,0:08:32.24,0:08:34.18,底部白,,0,0,0,, than a virtual agent with a face. -Dialogue: 0,0:08:34.18,0:08:38.44,底部白,,0,0,0,,Psychology research has also demonstrated that eye gaze is extremely important in persuading, -Dialogue: 0,0:08:38.44,0:08:40.40,底部白,,0,0,0,,teaching and getting people's attention. -Dialogue: 0,0:08:40.40,0:08:43.59,底部白,,0,0,0,,Looking at others while talking is called mutual gaze. -Dialogue: 0,0:08:43.59,0:08:47.49,底部白,,0,0,0,,This has been shown to boost engagement and help achieve the goals of a conversation, -Dialogue: 0,0:08:47.49,0:08:50.54,底部白,,0,0,0,,whether that’s learning, making a friend, or closing a business deal. -Dialogue: 0,0:08:50.54,0:08:54.89,底部白,,0,0,0,,In settings like a videotaped lecture, the instructor rarely, if ever, looks into the -Dialogue: 0,0:08:54.89,0:08:58.55,底部白,,0,0,0,,camera, and instead generally looks at the students who are physically present. -Dialogue: 0,0:08:58.55,0:09:01.02,底部白,,0,0,0,,That’s ok for them, but it means people who -Dialogue: 0,0:09:01.02,0:09:03.24,底部白,,0,0,0,, watch the lectures online have reduced engagement. -Dialogue: 0,0:09:03.24,0:09:05.52,底部白,,0,0,0,,In response, researchers have developed computer vision -Dialogue: 0,0:09:05.52,0:09:08.11,底部白,,0,0,0,, and graphics software that can warp the head and eyes, -Dialogue: 0,0:09:08.11,0:09:10.79,底部白,,0,0,0,,making it appear as though the instructor is looking into the camera -Dialogue: 0,0:09:10.79,0:09:12.90,底部白,,0,0,0,,– right at the remote viewer. -Dialogue: 0,0:09:12.90,0:09:15.09,底部白,,0,0,0,,This technique is called augmented gaze. -Dialogue: 0,0:09:15.09,0:09:18.47,底部白,,0,0,0,,Similar techniques have also been applied to video conference calls, to correct for -Dialogue: 0,0:09:18.47,0:09:21.81,底部白,,0,0,0,,the placement of webcams, which are almost always located above screens. -Dialogue: 0,0:09:21.81,0:09:24.75,底部白,,0,0,0,,Since you’re typically looking at the video of your conversation partner, -Dialogue: 0,0:09:24.75,0:09:26.50,底部白,,0,0,0,,rather than directly into the webcam, -Dialogue: 0,0:09:26.50,0:09:29.21,底部白,,0,0,0,,you'll always appear to them as though you're looking downwards – -Dialogue: 0,0:09:29.21,0:09:32.25,底部白,,0,0,0,,breaking mutual gaze – which can create all kinds of -Dialogue: 0,0:09:32.25,0:09:35.38,底部白,,0,0,0,, unfortunate social side effects, like a power imbalance. -Dialogue: 0,0:09:35.38,0:09:38.93,底部白,,0,0,0,,Fortunately, this can be corrected digitally, and appear to participants -Dialogue: 0,0:09:38.93,0:09:41.26,底部白,,0,0,0,, as though you're lovingly gazing into their eyes. -Dialogue: 0,0:09:41.26,0:09:45.64,底部白,,0,0,0,,Humans also love anthropomorphizing objects, and computers are no exception, -Dialogue: 0,0:09:45.64,0:09:49.18,底部白,,0,0,0,, especially if they move, like our Robots from last episode. -Dialogue: 0,0:09:49.18,0:09:51.90,底部白,,0,0,0,,Beyond industrial uses that prevailed over the last century, -Dialogue: 0,0:09:51.90,0:09:56.32,底部白,,0,0,0,, robots are used increasingly in medical, education, and entertainment settings, -Dialogue: 0,0:09:56.32,0:09:58.56,底部白,,0,0,0,,where they frequently interact with humans. -Dialogue: 0,0:09:58.56,0:10:00.78,底部白,,0,0,0,,Human-Robot Interaction – or HRI -Dialogue: 0,0:10:00.78,0:10:03.89,底部白,,0,0,0,,– is a field dedicated to studying these interactions, -Dialogue: 0,0:10:03.89,0:10:06.62,底部白,,0,0,0,,like how people perceive different robots behaviors and forms, -Dialogue: 0,0:10:06.62,0:10:11.08,底部白,,0,0,0,, or how robots can interpret human social cues to blend in and not be super awkward. -Dialogue: 0,0:10:11.08,0:10:14.05,底部白,,0,0,0,,As we discussed last episode, there’s an ongoing quest to make -Dialogue: 0,0:10:14.05,0:10:17.88,底部白,,0,0,0,,robots as human-like in their appearance and interactions as possible. -Dialogue: 0,0:10:17.88,0:10:22.50,底部白,,0,0,0,,When engineers first made robots in the 1940s and 50s, they didn’t look very human at all. -Dialogue: 0,0:10:22.50,0:10:25.90,底部白,,0,0,0,,They were almost exclusively industrial machines with no human-likeness. -Dialogue: 0,0:10:25.90,0:10:29.44,底部白,,0,0,0,,Over time, engineers got better and better at making human-like robots -Dialogue: 0,0:10:29.44,0:10:31.90,底部白,,0,0,0,, – they gained heads and walked around on two legs, -Dialogue: 0,0:10:31.90,0:10:35.44,底部白,,0,0,0,, but… they couldn't exactly go to restaurants and masquerade as humans. -Dialogue: 0,0:10:35.44,0:10:38.03,底部白,,0,0,0,,As people pushed closer and closer to human likeness, -Dialogue: 0,0:10:38.03,0:10:42.83,底部白,,0,0,0,, replacing cameras with artificial eyeballs, and covering metal chassis with synthetic flesh, -Dialogue: 0,0:10:42.83,0:10:44.95,底部白,,0,0,0,, things started to get a bit... uncanny... -Dialogue: 0,0:10:44.95,0:10:47.87,底部白,,0,0,0,,eliciting an eerie and unsettling feeling. -Dialogue: 0,0:10:47.87,0:10:53.42,底部白,,0,0,0,,This dip in realism between almost-human and actually-human became known as the uncanny valley. -Dialogue: 0,0:10:53.42,0:10:56.34,底部白,,0,0,0,,There’s debate over whether robots should act like humans too. -Dialogue: 0,0:10:56.34,0:10:59.84,底部白,,0,0,0,,Lots of evidence already suggests that even if robots don’t act like us, -Dialogue: 0,0:10:59.84,0:11:02.69,底部白,,0,0,0,, people will treat them as though they know our social conventions. -Dialogue: 0,0:11:02.69,0:11:06.64,底部白,,0,0,0,,And when they violate these rules – such as not apologizing if they cut in front of -Dialogue: 0,0:11:06.64,0:11:09.80,底部白,,0,0,0,,you or roll over your foot – people get really mad! -Dialogue: 0,0:11:09.80,0:11:12.94,底部白,,0,0,0,,Without a doubt, psychology and computer science are a potent combination, -Dialogue: 0,0:11:12.94,0:11:16.20,底部白,,0,0,0,, and have tremendous potential to affect our everyday lives. -Dialogue: 0,0:11:16.20,0:11:19.61,底部白,,0,0,0,,Which leaves us with a lot of question, like you might lie to your laptop, -Dialogue: 0,0:11:19.61,0:11:21.44,底部白,,0,0,0,, but should your laptop lie to you? -Dialogue: 0,0:11:21.44,0:11:23.67,底部白,,0,0,0,,What if it makes you more efficient or happy? -Dialogue: 0,0:11:23.67,0:11:26.58,底部白,,0,0,0,,Or should social media companies curate the content they show you to -Dialogue: 0,0:11:26.58,0:11:29.86,底部白,,0,0,0,,make you stay on their site longer to make you buy more products? -Dialogue: 0,0:11:29.86,0:11:31.26,底部白,,0,0,0,,They do by the way. -Dialogue: 0,0:11:31.26,0:11:35.58,底部白,,0,0,0,,These types of ethical considerations aren’t easy to answer, but psychology can at least -Dialogue: 0,0:11:35.58,0:11:40.13,底部白,,0,0,0,,help us understand the effects and implications of design choices in our computing systems. -Dialogue: 0,0:11:40.13,0:11:43.93,底部白,,0,0,0,,But, on the positive side, understanding the psychology behind design -Dialogue: 0,0:11:43.93,0:11:46.24,底部白,,0,0,0,, might lead to increased accessibility. -Dialogue: 0,0:11:46.24,0:11:49.18,底部白,,0,0,0,,A greater number of people can understand and use computers -Dialogue: 0,0:11:49.18,0:11:51.34,底部白,,0,0,0,, now that they're more intuitive than ever. -Dialogue: 0,0:11:51.34,0:11:55.43,底部白,,0,0,0,,Conference calls and virtual classrooms are becoming more agreeable experiences. -Dialogue: 0,0:11:55.43,0:11:58.23,底部白,,0,0,0,,As robot technology continues to improve, the population -Dialogue: 0,0:11:58.23,0:12:00.74,底部白,,0,0,0,,will grow more comfortable in those interactions. -Dialogue: 0,0:12:00.74,0:12:04.66,底部白,,0,0,0,,Plus, thanks to psychology, we can all bond over our love of knurling. -Dialogue: 0,0:12:04.66,0:12:05.90,底部白,,0,0,0,,I’ll see you next week. diff --git a/app/test/baidu_translate.js b/app/test/baidu_translate.js deleted file mode 100644 index e116e90..0000000 --- a/app/test/baidu_translate.js +++ /dev/null @@ -1 +0,0 @@ -// 使用百度翻译的最简例子 \ No newline at end of file diff --git a/app/test/g4.js b/app/test/g4.js deleted file mode 100644 index abfc484..0000000 --- a/app/test/g4.js +++ /dev/null @@ -1,88 +0,0 @@ -const {OAuth2Client} = require('google-auth-library'); -const http = require('http'); -const url = require('url'); -const open = require('open'); -const destroyer = require('server-destroy'); - -// Download your OAuth2 configuration from the Google -// const keys = require('./client_secret_1058382469405-cl97ogec0s9an7qantj6dnf5d17uvtfq.apps.googleusercontent.com.json'); - -/** - * Start by acquiring a pre-authenticated oAuth2 client. - */ -async function main() { - const oAuth2Client = await getAuthenticatedClient(); - // Make a simple request to the People API using our pre-authenticated client. The `request()` method - // takes an GaxiosOptions object. Visit https://github.com/JustinBeckwith/gaxios. - const url = 'https://people.googleapis.com/v1/people/me?personFields=names'; - const res = await oAuth2Client.request({url}); - console.log(res.data); - - // After acquiring an access_token, you may want to check on the audience, expiration, - // or original scopes requested. You can do that with the `getTokenInfo` method. - const tokenInfo = await oAuth2Client.getTokenInfo( - oAuth2Client.credentials.access_token - ); - console.log(tokenInfo); -} - -/** - * Create a new OAuth2Client, and go through the OAuth2 content - * workflow. Return the full client to the callback. - */ -function getAuthenticatedClient() { - return new Promise((resolve, reject) => { - // create an oAuth client to authorize the API call. Secrets are kept in a `keys.json` file, - // which should be downloaded from the Google Developers Console. - // const oAuth2Client = new OAuth2Client( - // keys.web.client_id, - // keys.web.client_secret, - // 'http://localhost:3000' - // ); - - const oAuth2Client = new OAuth2Client({ - clientId: '1058382469405-em0mtqch877g3etc1ddo8j4sk9uafia6.apps.googleusercontent.com', - redirectUri: 'http://localhost:3000' - }); - - - // Generate the url that will be used for the consent dialog. - const authorizeUrl = oAuth2Client.generateAuthUrl({ - access_type: 'offline', - scope: 'https://www.googleapis.com/auth/userinfo.profile', - }); - - // Open an http server to accept the oauth callback. In this simple example, the - // only request to our webserver is to /oauth2callback?code= - const server = http - .createServer(async (req, res) => { - try { - if (req.url.indexOf('code') > -1) { - // acquire the code from the querystring, and close the web server. - const qs = new url.URL(req.url, 'http://localhost:3000') - .searchParams; - const code = qs.get('code'); - console.log(`Code is ${code}`); - res.end('Authentication successful! Please return to the console.'); - server.destroy(); - - // Now that we have the code, use that to acquire tokens. - const r = await oAuth2Client.getToken(code); - // Make sure to set the credentials on the OAuth2 client. - oAuth2Client.setCredentials(r.tokens); - console.info('Tokens acquired.'); - resolve(oAuth2Client); - } - } catch (e) { - reject(e); - } - }) - .listen(3000, () => { - // open the browser to the authorize url to start the workflow - open(authorizeUrl, {wait: false}).then(cp => cp.unref()); - }); - destroyer(server); - }); -} - -main().catch(console.error); \ No newline at end of file diff --git a/app/test/google_translate.js b/app/test/google_translate.js deleted file mode 100644 index f9b4f7b..0000000 --- a/app/test/google_translate.js +++ /dev/null @@ -1 +0,0 @@ -// 使用谷歌翻译的最简例子 \ No newline at end of file diff --git a/app/webpack.config.js b/app/webpack.config.js deleted file mode 100644 index d64b9af..0000000 --- a/app/webpack.config.js +++ /dev/null @@ -1,39 +0,0 @@ -const path = require('path'); - -module.exports = { - mode: "development", // "production" | "development" | "none" - entry: "./src/index.js", - output: { - path: path.resolve(__dirname, 'dist'), - filename: 'app.js' - }, - // resolve: { - // modules: ['node_modules'], - // descriptionFiles: ['package.json'], - // extensions: ['.js', '.json', '.html'] - // }, - // resolve: { - // modules: [path.resolve(__dirname, 'src'), 'node_modules'] - // }, - // module: { - // rules: [ - // { - // test: /\.js$/, - // exclude: /node_modules/, - // use: { - // loader: 'babel-loader' - // } - // } - // ] - // }, - // module: { - // rules: [{ - // test: /\.scss$/, - // use: [ - // "style-loader", // 将 JS 字符串生成为 style 节点 - // "css-loader", // 将 CSS 转化成 CommonJS 模块 - // "sass-loader" // 将 Sass 编译成 CSS,默认使用 Node Sass - // ] - // }] - // } -}; \ No newline at end of file diff --git a/app/yarn.lock b/app/yarn.lock deleted file mode 100644 index b9783c9..0000000 --- a/app/yarn.lock +++ /dev/null @@ -1,7287 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"7zip-bin@~5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" - integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== - -"@babel/cli@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.7.4.tgz#38804334c8db40209f88c69a5c90998e60cca18b" - integrity sha512-O7mmzaWdm+VabWQmxuM8hqNrWGGihN83KfhPUzp2lAW4kzIMwBxujXkZbD4fMwKMYY9FXTbDvXsJqU+5XHXi4A== - dependencies: - commander "^4.0.1" - convert-source-map "^1.1.0" - fs-readdir-recursive "^1.1.0" - glob "^7.0.0" - lodash "^4.17.13" - make-dir "^2.1.0" - slash "^2.0.0" - source-map "^0.5.0" - optionalDependencies: - chokidar "^2.1.8" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.4.tgz#db651e2840ca9aa66f327dcec1dc5f5fa9611369" - integrity sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg== - dependencies: - "@babel/types" "^7.7.4" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce" - integrity sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og== - dependencies: - "@babel/types" "^7.7.4" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz#5f73f2b28580e224b5b9bd03146a4015d6217f5f" - integrity sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-call-delegate@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz#621b83e596722b50c0066f9dc37d3232e461b801" - integrity sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA== - dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-create-regexp-features-plugin@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59" - integrity sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A== - dependencies: - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" - -"@babel/helper-define-map@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz#2841bf92eb8bd9c906851546fe6b9d45e162f176" - integrity sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg== - dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/types" "^7.7.4" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz#fa700878e008d85dc51ba43e9fb835cddfe05c84" - integrity sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg== - dependencies: - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-function-name@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e" - integrity sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ== - dependencies: - "@babel/helper-get-function-arity" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-get-function-arity@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" - integrity sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA== - dependencies: - "@babel/types" "^7.7.4" - -"@babel/helper-hoist-variables@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" - integrity sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ== - dependencies: - "@babel/types" "^7.7.4" - -"@babel/helper-member-expression-to-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz#356438e2569df7321a8326644d4b790d2122cb74" - integrity sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw== - dependencies: - "@babel/types" "^7.7.4" - -"@babel/helper-module-imports@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91" - integrity sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ== - dependencies: - "@babel/types" "^7.7.4" - -"@babel/helper-module-transforms@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz#8d7cdb1e1f8ea3d8c38b067345924ac4f8e0879a" - integrity sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA== - dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-simple-access" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2" - integrity sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg== - dependencies: - "@babel/types" "^7.7.4" - -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234" - integrity sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-wrap-function" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-replace-supers@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz#3c881a6a6a7571275a72d82e6107126ec9e2cdd2" - integrity sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-simple-access@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294" - integrity sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A== - dependencies: - "@babel/template" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/helper-split-export-declaration@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8" - integrity sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug== - dependencies: - "@babel/types" "^7.7.4" - -"@babel/helper-wrap-function@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" - integrity sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg== - dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.4.tgz#75ab2d7110c2cf2fa949959afb05fa346d2231bb" - integrity sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g== - -"@babel/plugin-proposal-async-generator-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d" - integrity sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" - "@babel/plugin-syntax-async-generators" "^7.7.4" - -"@babel/plugin-proposal-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d" - integrity sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" - -"@babel/plugin-proposal-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz#7700a6bfda771d8dc81973249eac416c6b4c697d" - integrity sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.7.4" - -"@babel/plugin-proposal-object-rest-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz#cc57849894a5c774214178c8ab64f6334ec8af71" - integrity sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.7.4" - -"@babel/plugin-proposal-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379" - integrity sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" - -"@babel/plugin-proposal-unicode-property-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz#7c239ccaf09470dbe1d453d50057460e84517ebb" - integrity sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-async-generators@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889" - integrity sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-dynamic-import@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec" - integrity sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-json-strings@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz#86e63f7d2e22f9e27129ac4e83ea989a382e86cc" - integrity sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-object-rest-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz#47cf220d19d6d0d7b154304701f468fc1cc6ff46" - integrity sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6" - integrity sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-top-level-await@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz#bd7d8fa7b9fee793a36e4027fd6dd1aa32f946da" - integrity sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-arrow-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12" - integrity sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-async-to-generator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba" - integrity sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg== - dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.4" - -"@babel/plugin-transform-block-scoped-functions@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz#d0d9d5c269c78eaea76227ace214b8d01e4d837b" - integrity sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-block-scoping@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224" - integrity sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz#c92c14be0a1399e15df72667067a8f510c9400ec" - integrity sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-define-map" "^7.7.4" - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-optimise-call-expression" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz#e856c1628d3238ffe12d668eb42559f79a81910d" - integrity sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz#2b713729e5054a1135097b6a67da1b6fe8789267" - integrity sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-dotall-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz#f7ccda61118c5b7a2599a72d5e3210884a021e96" - integrity sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-duplicate-keys@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz#3d21731a42e3f598a73835299dd0169c3b90ac91" - integrity sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-exponentiation-operator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz#dd30c0191e3a1ba19bcc7e389bdfddc0729d5db9" - integrity sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-for-of@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz#248800e3a5e507b1f103d8b4ca998e77c63932bc" - integrity sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-function-name@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz#75a6d3303d50db638ff8b5385d12451c865025b1" - integrity sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g== - dependencies: - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz#27fe87d2b5017a2a5a34d1c41a6b9f6a6262643e" - integrity sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-member-expression-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a" - integrity sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-amd@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz#276b3845ca2b228f2995e453adc2e6f54d72fb71" - integrity sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ== - dependencies: - "@babel/helper-module-transforms" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-commonjs@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz#bee4386e550446343dd52a571eda47851ff857a3" - integrity sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA== - dependencies: - "@babel/helper-module-transforms" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.4" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-systemjs@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz#cd98152339d3e763dfe838b7d4273edaf520bb30" - integrity sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw== - dependencies: - "@babel/helper-hoist-variables" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" - -"@babel/plugin-transform-modules-umd@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz#1027c355a118de0aae9fee00ad7813c584d9061f" - integrity sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw== - dependencies: - "@babel/helper-module-transforms" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz#fb3bcc4ee4198e7385805007373d6b6f42c98220" - integrity sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - -"@babel/plugin-transform-new-target@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz#4a0753d2d60639437be07b592a9e58ee00720167" - integrity sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-object-super@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262" - integrity sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.4" - -"@babel/plugin-transform-parameters@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz#da4555c97f39b51ac089d31c7380f03bca4075ce" - integrity sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw== - dependencies: - "@babel/helper-call-delegate" "^7.7.4" - "@babel/helper-get-function-arity" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-property-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2" - integrity sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-regenerator@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz#d18eac0312a70152d7d914cbed2dc3999601cfc0" - integrity sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw== - dependencies: - regenerator-transform "^0.14.0" - -"@babel/plugin-transform-reserved-words@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz#6a7cf123ad175bb5c69aec8f6f0770387ed3f1eb" - integrity sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-shorthand-properties@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz#74a0a9b2f6d67a684c6fbfd5f0458eb7ba99891e" - integrity sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-spread@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz#aa673b356fe6b7e70d69b6e33a17fef641008578" - integrity sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-sticky-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz#ffb68c05090c30732076b1285dc1401b404a123c" - integrity sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - -"@babel/plugin-transform-template-literals@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz#1eb6411736dd3fe87dbd20cc6668e5121c17d604" - integrity sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-typeof-symbol@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz#3174626214f2d6de322882e498a38e8371b2140e" - integrity sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-unicode-regex@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae" - integrity sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/preset-env@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.4.tgz#ccaf309ae8d1ee2409c85a4e2b5e280ceee830f8" - integrity sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g== - dependencies: - "@babel/helper-module-imports" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.4" - "@babel/plugin-proposal-dynamic-import" "^7.7.4" - "@babel/plugin-proposal-json-strings" "^7.7.4" - "@babel/plugin-proposal-object-rest-spread" "^7.7.4" - "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.4" - "@babel/plugin-syntax-async-generators" "^7.7.4" - "@babel/plugin-syntax-dynamic-import" "^7.7.4" - "@babel/plugin-syntax-json-strings" "^7.7.4" - "@babel/plugin-syntax-object-rest-spread" "^7.7.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" - "@babel/plugin-syntax-top-level-await" "^7.7.4" - "@babel/plugin-transform-arrow-functions" "^7.7.4" - "@babel/plugin-transform-async-to-generator" "^7.7.4" - "@babel/plugin-transform-block-scoped-functions" "^7.7.4" - "@babel/plugin-transform-block-scoping" "^7.7.4" - "@babel/plugin-transform-classes" "^7.7.4" - "@babel/plugin-transform-computed-properties" "^7.7.4" - "@babel/plugin-transform-destructuring" "^7.7.4" - "@babel/plugin-transform-dotall-regex" "^7.7.4" - "@babel/plugin-transform-duplicate-keys" "^7.7.4" - "@babel/plugin-transform-exponentiation-operator" "^7.7.4" - "@babel/plugin-transform-for-of" "^7.7.4" - "@babel/plugin-transform-function-name" "^7.7.4" - "@babel/plugin-transform-literals" "^7.7.4" - "@babel/plugin-transform-member-expression-literals" "^7.7.4" - "@babel/plugin-transform-modules-amd" "^7.7.4" - "@babel/plugin-transform-modules-commonjs" "^7.7.4" - "@babel/plugin-transform-modules-systemjs" "^7.7.4" - "@babel/plugin-transform-modules-umd" "^7.7.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" - "@babel/plugin-transform-new-target" "^7.7.4" - "@babel/plugin-transform-object-super" "^7.7.4" - "@babel/plugin-transform-parameters" "^7.7.4" - "@babel/plugin-transform-property-literals" "^7.7.4" - "@babel/plugin-transform-regenerator" "^7.7.4" - "@babel/plugin-transform-reserved-words" "^7.7.4" - "@babel/plugin-transform-shorthand-properties" "^7.7.4" - "@babel/plugin-transform-spread" "^7.7.4" - "@babel/plugin-transform-sticky-regex" "^7.7.4" - "@babel/plugin-transform-template-literals" "^7.7.4" - "@babel/plugin-transform-typeof-symbol" "^7.7.4" - "@babel/plugin-transform-unicode-regex" "^7.7.4" - "@babel/types" "^7.7.4" - browserslist "^4.6.0" - core-js-compat "^3.1.1" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.5.0" - -"@babel/template@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b" - integrity sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.4" - "@babel/types" "^7.7.4" - -"@babel/traverse@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" - integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.4" - "@babel/helper-function-name" "^7.7.4" - "@babel/helper-split-export-declaration" "^7.7.4" - "@babel/parser" "^7.7.4" - "@babel/types" "^7.7.4" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" - integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@develar/schema-utils@~2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.1.0.tgz#eceb1695bfbed6f6bb84666d5d3abe5e1fd54e17" - integrity sha512-qjCqB4ctMig9Gz5bd6lkdFr3bO6arOdQqptdBSpF1ZpCnjofieCciEzkoS9ujY9cMGyllYSCSmBJ3x9OKHXzoA== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -"@electron/get@^1.0.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.7.1.tgz#41aa60871b9d7e225bbe68135012f88a9ef87012" - integrity sha512-+BOIzkmYbe+oOBGqSByq8zXYXCFztccoymR3uNkvX5ckJ/5xU+4peVyEvFyH6+zfv58hCo99RxgIpwuaMfRtRg== - dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^9.6.0" - sanitize-filename "^1.6.2" - sumchecker "^3.0.0" - optionalDependencies: - global-agent "^2.0.2" - global-tunnel-ng "^2.7.1" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@types/debug@^4.1.4": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" - integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== - -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - -"@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "12.7.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.8.tgz#cb1bf6800238898bc2ff6ffa5702c3cadd350708" - integrity sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A== - -"@types/node@^12.0.12": - version "12.12.14" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.14.tgz#1c1d6e3c75dba466e0326948d56e8bd72a1903d2" - integrity sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA== - -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== - -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== - -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== - -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== - dependencies: - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== - -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== - dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== - -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== - -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" - integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.0.tgz#e609350e50a9313b472789b2f14ef35808ee14d6" - integrity sha512-Ozz7l4ixzI7Oxj2+cw+p0tVUt27BpaJ+1+q1TCeANWxHpvyn2+Un+YamBdfKu0uh8xLodGhoa1v7595NhKDAuA== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -app-builder-bin@3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.4.3.tgz#58a74193eb882f029be6b7f0cd3f0c6805927a6b" - integrity sha512-qMhayIwi3juerQEVJMQ76trObEbfQT0nhUdxZz9a26/3NLT3pE6awmQ8S1cEnrGugaaM5gYqR8OElcDezfmEsg== - -app-builder-lib@21.2.0, app-builder-lib@~21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-21.2.0.tgz#fa1d1604601431e2c3476857e9b9b61d33ad26cc" - integrity sha512-aOX/nv77/Bti6NymJDg7p9T067xD8m1ipIEJR7B4Mm1GsJWpMm9PZdXtCRiMNRjHtQS5KIljT0g17781y6qn5A== - dependencies: - "7zip-bin" "~5.0.3" - "@develar/schema-utils" "~2.1.0" - async-exit-hook "^2.0.1" - bluebird-lst "^1.0.9" - builder-util "21.2.0" - builder-util-runtime "8.3.0" - chromium-pickle-js "^0.2.0" - debug "^4.1.1" - ejs "^2.6.2" - electron-publish "21.2.0" - fs-extra "^8.1.0" - hosted-git-info "^2.7.1" - is-ci "^2.0.0" - isbinaryfile "^4.0.2" - js-yaml "^3.13.1" - lazy-val "^1.0.4" - minimatch "^3.0.4" - normalize-package-data "^2.5.0" - read-config-file "5.0.0" - sanitize-filename "^1.6.2" - semver "^6.3.0" - temp-file "^3.3.4" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -ass-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ass-parser/-/ass-parser-0.2.0.tgz#81e7e0425500a01fb2d218ac4a19a0ec4fad1ebf" - integrity sha512-fAzb3Bwjp5Q1EfMna73lKDy6gPacc4sF6jZcBbHUZdWJaBWVT250Wb8LK72b9HvR5SRoV20fSSSLG3VHZDR2vg== - dependencies: - flatmap "0.0.3" - fzip "^0.2.0" - regexp.execall "^1.0.2" - zipmap "^1.1.1" - -ass-stringify@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ass-stringify/-/ass-stringify-0.1.3.tgz#33def35e9572682f1333eb1ae1ece192de5312b9" - integrity sha1-M97zXpVyaC8TM+sa4ezhkt5TErk= - dependencies: - pick-values "^1.0.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-exit-hook@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" - integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== - -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= - -babel-plugin-transform-object-rest-spread@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - -babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -bable-loader@^0.0.1-security: - version "0.0.1-security" - resolved "https://registry.yarnpkg.com/bable-loader/-/bable-loader-0.0.1-security.tgz#d4e36f85e65a6a4f701c55cb0eb8925b0a046412" - integrity sha512-c+3kzBR1xfVF2s/Lxk0J9rnI8lXJ7gGqcRTOcnvvrknHGiHHRoZbxrkh+Hq0eOb2tnZB3WvDSkD9yi5vV5bFCA== - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - -bluebird-lst@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" - integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== - dependencies: - bluebird "^3.5.5" - -bluebird@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" - integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolean@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.0.tgz#fab78d5907dbae6216ab46d32733bb7b76b99e76" - integrity sha512-OElxJ1lUSinuoUnkpOgLmxp0DC4ytEhODEL6QJU0NpxE/mI4rUSh8h1P1Wkvfi3xQEBcxXR2gBIPNYNuaFcAbQ== - -boxen@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" - integrity sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^2.4.2" - cli-boxes "^2.2.0" - string-width "^3.0.0" - term-size "^1.2.0" - type-fest "^0.3.0" - widest-line "^2.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.6.0, browserslist@^4.6.6: - version "4.7.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" - integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== - dependencies: - caniuse-lite "^1.0.30000989" - electron-to-chromium "^1.3.247" - node-releases "^1.1.29" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builder-util-runtime@8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.3.0.tgz#f5fac9139af6facf42a21fbe4d3aebed88fda33e" - integrity sha512-CSOdsYqf4RXIHh1HANPbrZHlZ9JQJXSuDDloblZPcWQVN62inyYoTQuSmY3KrgefME2Sv3Kn2MxHvbGQHRf8Iw== - dependencies: - debug "^4.1.1" - sax "^1.2.4" - -builder-util@21.2.0, builder-util@~21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-21.2.0.tgz#aba721190e4e841009d9fb4b88f1130ed616522f" - integrity sha512-Nd6CUb6YgDY8EXAXEIegx+1kzKqyFQ5ZM5BoYkeunAlwz/zDJoH1UCyULjoS5wQe5czNClFQy07zz2bzYD0Z4A== - dependencies: - "7zip-bin" "~5.0.3" - "@types/debug" "^4.1.4" - app-builder-bin "3.4.3" - bluebird-lst "^1.0.9" - builder-util-runtime "8.3.0" - chalk "^2.4.2" - debug "^4.1.1" - fs-extra "^8.1.0" - is-ci "^2.0.0" - js-yaml "^3.13.1" - source-map-support "^0.5.13" - stat-mode "^0.3.0" - temp-file "^3.3.4" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^12.0.2: - version "12.0.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - -camelcase@^5.0.0, camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-lite@^1.0.30000989: - version "1.0.30000997" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000997.tgz#ba44a606804f8680894b7042612c2c7f65685b7e" - integrity sha512-BQLFPIdj2ntgBNWp9Q64LGUIEmvhKkzzHhUHR3CD5A9Lb7ZKF20/+sgadhFap69lk5XmK1fTUleDclaRFvgVUA== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -charenc@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= - -chokidar@^2.0.2, chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chokidar@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.1.1.tgz#27e953f3950336efcc455fd03e240c7299062003" - integrity sha512-df4o16uZmMHzVQwECZRHwfguOt5ixpuQVaZHjYMvYisgKhE+JXwcj/Tcr3+3bu/XeOJQ9ycYmzu7Mv8XrGxJDQ== - dependencies: - anymatch "^3.1.0" - braces "^3.0.2" - glob-parent "^5.0.0" - is-binary-path "^2.1.0" - is-glob "^4.0.1" - normalize-path "^3.0.0" - readdirp "^3.1.1" - optionalDependencies: - fsevents "^2.0.6" - -chownr@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" - integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== - -chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" - -chromium-pickle-js@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" - integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone-response@1.0.2, clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@^2.20.0: - version "2.20.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" - integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== - -commander@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.0.1.tgz#b67622721785993182e807f4883633e6401ba53c" - integrity sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -compressible@~2.0.16: - version "2.0.17" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" - integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== - dependencies: - mime-db ">= 1.40.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@1.6.2, concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" - integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.1.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.1.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" - integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== - dependencies: - browserslist "^4.6.6" - semver "^6.3.0" - -core-js@^2.4.0: - version "2.6.9" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" - integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== - -core-js@^3.4.1: - version "3.4.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.4.5.tgz#3dda65611d95699b5eb7742ea451ea052d37aa65" - integrity sha512-OuvejWH6vIaUo59Ndlh89purNm4DCIy/v3QoYlcGnn+PkYI8BhNHfCuAESrWX+ZPfq9JccVJ+XXgOMy77PJexg== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@6.0.5, cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -cross-spawn@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -crypt@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= - -css-loader@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.2.0.tgz#bb570d89c194f763627fcf1f80059c6832d009b2" - integrity sha512-QTF3Ud5H7DaZotgdcJjGMvyDj5F3Pn1j/sC6VBEOVp94cbwqyIBdcs/quzj4MC1BKQSrTpQznegH/5giYbhnCQ== - dependencies: - camelcase "^5.3.1" - cssesc "^3.0.0" - icss-utils "^4.1.1" - loader-utils "^1.2.3" - normalize-path "^3.0.0" - postcss "^7.0.17" - postcss-modules-extract-imports "^2.0.0" - postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.1.0" - postcss-modules-values "^3.0.0" - postcss-value-parser "^4.0.0" - schema-utils "^2.0.0" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= - dependencies: - array-find-index "^1.0.1" - -cyclist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-equal@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" - integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -defer-to-connect@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.0.2.tgz#4bae758a314b034ae33902b5aac25a8dd6a8633e" - integrity sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw== - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dmg-builder@21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-21.2.0.tgz#a9c883557cacb9abdb66c7133b30fe921c1a3ba7" - integrity sha512-9cJEclnGy7EyKFCoHDYDf54pub/t92CQapyiUxU0w9Bj2vUvfoDagP1PMiX4XD5rPp96141h9A+QN0OB4VgvQg== - dependencies: - app-builder-lib "~21.2.0" - bluebird-lst "^1.0.9" - builder-util "~21.2.0" - fs-extra "^8.1.0" - iconv-lite "^0.5.0" - js-yaml "^3.13.1" - sanitize-filename "^1.6.2" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -dot-prop@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.1.0.tgz#d811e178652bfb8a1e593c6dd704ec7e90d85ea2" - integrity sha512-GUE3gqcDCaMltj2++g6bRQ5rBJWtkWTmqmD0fo1RnnMuUqHNCt2oTPeDnS9n6fKYvlhn7AeBkb38lymBtWBQdA== - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" - integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== - -electron-builder@^21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-21.2.0.tgz#b68ec4def713fc0b8602654ce842f972432f50c5" - integrity sha512-x8EXrqFbAb2L3N22YlGar3dGh8vwptbB3ovo3OF6K7NTpcsmM2zEoJv7GhFyX73rNzSG2HaWpXwGAtOp2JWiEw== - dependencies: - app-builder-lib "21.2.0" - bluebird-lst "^1.0.9" - builder-util "21.2.0" - builder-util-runtime "8.3.0" - chalk "^2.4.2" - dmg-builder "21.2.0" - fs-extra "^8.1.0" - is-ci "^2.0.0" - lazy-val "^1.0.4" - read-config-file "5.0.0" - sanitize-filename "^1.6.2" - update-notifier "^3.0.1" - yargs "^13.3.0" - -electron-is-dev@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-0.3.0.tgz#14e6fda5c68e9e4ecbeff9ccf037cbd7c05c5afe" - integrity sha1-FOb9pcaOnk7L7/nM8DfL18BcWv4= - -electron-publish@21.2.0: - version "21.2.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-21.2.0.tgz#cc225cb46aa62e74b899f2f7299b396c9802387d" - integrity sha512-mWavuoWJe87iaeKd0I24dNWIaR+0yRzshjNVqGyK019H766fsPWl3caQJnVKFaEyrZRP397v4JZVG0e7s16AxA== - dependencies: - bluebird-lst "^1.0.9" - builder-util "~21.2.0" - builder-util-runtime "8.3.0" - chalk "^2.4.2" - fs-extra "^8.1.0" - lazy-val "^1.0.4" - mime "^2.4.4" - -electron-reload@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/electron-reload/-/electron-reload-1.5.0.tgz#179ab1f6941fcf0ed261c37b16dc465e201348f5" - integrity sha512-L9X6LzsL3Bt2j0eJ4/MBrI9Vt902KvVUtBB7J4qrL1A9sXqC2fE0lpvUAlOThpJYh6zWO1l86U/YiEN9bDURHw== - dependencies: - chokidar "^3.0.2" - -electron-to-chromium@^1.3.247: - version "1.3.269" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.269.tgz#3e00cc9266a0123fc2e7b4f290899e257200e6e3" - integrity sha512-t2ZTfo07HxkxTOUbIwMmqHBSnJsC9heqJUm7LwQu2iSk0wNhG4H5cMREtb8XxeCrQABDZ6IqQKY3yZq+NfAqwg== - -electron@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/electron/-/electron-7.1.2.tgz#d1726b9e50b29e97f5f12b52feb225ba87e0640f" - integrity sha512-7hjONYt2GlQfKuKgQrhhUL1P9lbGWLBfMUq+2QFU3yeLtCvM0ROfPJCRP4OF5pVp3KDyfFp4DtmhuVzAnxV3jA== - dependencies: - "@electron/get" "^1.0.1" - "@types/node" "^12.0.12" - extract-zip "^1.0.3" - -elliptic@^6.0.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" - integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -encodeurl@^1.0.2, encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es6-error@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.1.0, estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== - -events@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" - integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== - -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -express@^4.17.1: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-zip@^1.0.3: - version "1.6.7" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" - integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= - dependencies: - concat-stream "1.6.2" - debug "2.6.9" - mkdirp "0.5.1" - yauzl "2.4.1" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== - dependencies: - websocket-driver ">=0.5.1" - -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= - dependencies: - pend "~1.2.0" - -figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-cache-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -findup-sync@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -flatmap@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/flatmap/-/flatmap-0.0.3.tgz#1f18a4d938152d495965f9c958d923ab2dd669b4" - integrity sha1-Hxik2TgVLUlZZfnJWNkjqy3WabQ= - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -follow-redirects@^1.0.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" - integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== - dependencies: - debug "^3.0.0" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0, from2@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.12.0" - -fsevents@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a" - integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ== - -fstream@^1.0.0, fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -fzip@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/fzip/-/fzip-0.2.0.tgz#5f09df77c375337f61ca3ff8a628ac6845149ddd" - integrity sha1-Xwnfd8N1M39hyj/4piisaEUUnd0= - dependencies: - lodash.zip "^2.4.1" - lodash.zipobject "^2.4.1" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -gaze@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== - dependencies: - globule "^1.0.0" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= - -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -github-url-to-object@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/github-url-to-object/-/github-url-to-object-4.0.4.tgz#a9797b7026e18d53b50b07f45b7e169b55fd90ee" - integrity sha512-1Ri1pR8XTfzLpbtPz5MlW/amGNdNReuExPsbF9rxLsBfO1GH9RtDBamhJikd0knMWq3RTTQDbTtw0GGvvEAJEA== - dependencies: - is-url "^1.1.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" - integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-agent@^2.0.2: - version "2.1.7" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.7.tgz#12d7bc2b07cd862d0fa76b0f1b2c48cd5ffcf150" - integrity sha512-ooK7eqGYZku+LgnbfH/Iv0RJ74XfhrBZDlke1QSzcBt0bw1PmJcnRADPAQuFE+R45pKKDTynAr25SBasY2kvow== - dependencies: - boolean "^3.0.0" - core-js "^3.4.1" - es6-error "^4.1.1" - matcher "^2.0.0" - roarr "^2.14.5" - semver "^6.3.0" - serialize-error "^5.0.0" - -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= - dependencies: - ini "^1.3.4" - -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -global-tunnel-ng@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" - integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== - dependencies: - encodeurl "^1.0.2" - lodash "^4.17.10" - npm-conf "^1.1.3" - tunnel "^0.0.6" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globalthis@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.0.tgz#c5fb98213a9b4595f59cf3e7074f141b4169daae" - integrity sha512-vcCAZTJ3r5Qcu5l8/2oyVdoFwxKgfYnMTR2vwWeux/NAVZK3PwcMaWkdUIn4GJbmKuRK7xcvDsLuK+CKcXyodg== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - object-keys "^1.0.12" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globule@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" - integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ== - dependencies: - glob "~7.1.1" - lodash "~4.17.10" - minimatch "~3.0.2" - -google-baidu-translate-api@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/google-baidu-translate-api/-/google-baidu-translate-api-1.0.3.tgz#a31990e201713cb5b22c46fc8c226b65f44e6c3c" - integrity sha512-5lQOnHhKffSZRSfZ5LOSDF11HeGwE3Mi0tyldx3rgqtVDCGNUrN6LFlDiq8vwZ+2rrKhQAOiSXcBQKzWbZgxkg== - dependencies: - configstore "^4.0.0" - got "^9.4.0" - querystring "^0.2.0" - request "^2.88.0" - safe-eval "^0.4.1" - -got@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -got@^9.4.0, got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" - integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== - -handle-thing@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" - integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== - dependencies: - has-symbol-support-x "^1.4.1" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" - integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -html-entities@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= - -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - -http-cache-semantics@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" - integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -"http-parser-js@>=0.4.0 <0.4.11": - version "0.4.10" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" - integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= - -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.18.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" - integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -iconv-lite@0.4.24, iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.0.tgz#59cdde0a2a297cc2aeb0c6445a195ee89f127550" - integrity sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-utils@^4.0.0, icss-utils@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== - dependencies: - postcss "^7.0.14" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-walk@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.2.tgz#99d83a246c196ea5c93ef9315ad7b0819c35069b" - integrity sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw== - dependencies: - minimatch "^3.0.4" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -import-local@2.0.0, import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -in-publish@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" - integrity sha1-4g/146KvwmkDILbcVSaCqcf631E= - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -infer-owner@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -interpret@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== - -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" - integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== - -ipaddr.js@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5, is-buffer@~1.1.1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-npm@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053" - integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA== - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= - -is-path-cwd@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= - dependencies: - path-is-inside "^1.0.1" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-retry-allowed@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-url@^1.1.0, is-url@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-windows@^1.0.1, is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isbinaryfile@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.2.tgz#bfc45642da645681c610cca831022e30af426488" - integrity sha512-C3FSxJdNrEr2F4z6uFtNzECDM5hXk+46fxaa+cwBe5/XrWSmzdG8DDgyjfX6/NRdBB21q2JXuRAzPCUs+fclnQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -jquery@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" - integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== - -js-base64@^2.1.8: - version "2.5.1" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" - integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json3@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== - dependencies: - minimist "^1.2.0" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -lazy-val@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" - integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.2.3, loader-utils@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash._arraypool@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._arraypool/-/lodash._arraypool-2.4.1.tgz#e88eecb92e2bb84c9065612fd958a0719cd47f94" - integrity sha1-6I7suS4ruEyQZWEv2VigcZzUf5Q= - -lodash._basebind@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._basebind/-/lodash._basebind-2.4.1.tgz#e940b9ebdd27c327e0a8dab1b55916c5341e9575" - integrity sha1-6UC5690nwyfgqNqxtVkWxTQelXU= - dependencies: - lodash._basecreate "~2.4.1" - lodash._setbinddata "~2.4.1" - lodash._slice "~2.4.1" - lodash.isobject "~2.4.1" - -lodash._basecreate@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-2.4.1.tgz#f8e6f5b578a9e34e541179b56b8eeebf4a287e08" - integrity sha1-+Ob1tXip405UEXm1a47uv0oofgg= - dependencies: - lodash._isnative "~2.4.1" - lodash.isobject "~2.4.1" - lodash.noop "~2.4.1" - -lodash._basecreatecallback@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._basecreatecallback/-/lodash._basecreatecallback-2.4.1.tgz#7d0b267649cb29e7a139d0103b7c11fae84e4851" - integrity sha1-fQsmdknLKeehOdAQO3wR+uhOSFE= - dependencies: - lodash._setbinddata "~2.4.1" - lodash.bind "~2.4.1" - lodash.identity "~2.4.1" - lodash.support "~2.4.1" - -lodash._basecreatewrapper@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._basecreatewrapper/-/lodash._basecreatewrapper-2.4.1.tgz#4d31f2e7de7e134fbf2803762b8150b32519666f" - integrity sha1-TTHy595+E0+/KAN2K4FQsyUZZm8= - dependencies: - lodash._basecreate "~2.4.1" - lodash._setbinddata "~2.4.1" - lodash._slice "~2.4.1" - lodash.isobject "~2.4.1" - -lodash._baseisequal@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-2.4.1.tgz#6b1e62e587c5523111f6f228553dab19e445fc03" - integrity sha1-ax5i5YfFUjER9vIoVT2rGeRF/AM= - dependencies: - lodash._getarray "~2.4.1" - lodash._objecttypes "~2.4.1" - lodash._releasearray "~2.4.1" - lodash.forin "~2.4.1" - lodash.isfunction "~2.4.1" - -lodash._charatcallback@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._charatcallback/-/lodash._charatcallback-2.4.1.tgz#e893148cdf1264317e0c2a53235c2093e9ae5a08" - integrity sha1-6JMUjN8SZDF+DCpTI1wgk+muWgg= - -lodash._createwrapper@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._createwrapper/-/lodash._createwrapper-2.4.1.tgz#51d6957973da4ed556e37290d8c1a18c53de1607" - integrity sha1-UdaVeXPaTtVW43KQ2MGhjFPeFgc= - dependencies: - lodash._basebind "~2.4.1" - lodash._basecreatewrapper "~2.4.1" - lodash._slice "~2.4.1" - lodash.isfunction "~2.4.1" - -lodash._getarray@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._getarray/-/lodash._getarray-2.4.1.tgz#faf1f7f810fa985a251c2187404481094839e5ee" - integrity sha1-+vH3+BD6mFolHCGHQESBCUg55e4= - dependencies: - lodash._arraypool "~2.4.1" - -lodash._isnative@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz#3ea6404b784a7be836c7b57580e1cdf79b14832c" - integrity sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw= - -lodash._maxpoolsize@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._maxpoolsize/-/lodash._maxpoolsize-2.4.1.tgz#9d482f463b8e66afbe59c2c14edb117060172334" - integrity sha1-nUgvRjuOZq++WcLBTtsRcGAXIzQ= - -lodash._objecttypes@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz#7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11" - integrity sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE= - -lodash._releasearray@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._releasearray/-/lodash._releasearray-2.4.1.tgz#a6139630d76d1536b07ddc80962889b082f6a641" - integrity sha1-phOWMNdtFTawfdyAliiJsIL2pkE= - dependencies: - lodash._arraypool "~2.4.1" - lodash._maxpoolsize "~2.4.1" - -lodash._setbinddata@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._setbinddata/-/lodash._setbinddata-2.4.1.tgz#f7c200cd1b92ef236b399eecf73c648d17aa94d2" - integrity sha1-98IAzRuS7yNrOZ7s9zxkjReqlNI= - dependencies: - lodash._isnative "~2.4.1" - lodash.noop "~2.4.1" - -lodash._shimkeys@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz#6e9cc9666ff081f0b5a6c978b83e242e6949d203" - integrity sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM= - dependencies: - lodash._objecttypes "~2.4.1" - -lodash._slice@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash._slice/-/lodash._slice-2.4.1.tgz#745cf41a53597b18f688898544405efa2b06d90f" - integrity sha1-dFz0GlNZexj2iImFREBe+isG2Q8= - -lodash.bind@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-2.4.1.tgz#5d19fa005c8c4d236faf4742c7b7a1fcabe29267" - integrity sha1-XRn6AFyMTSNvr0dCx7eh/Kvikmc= - dependencies: - lodash._createwrapper "~2.4.1" - lodash._slice "~2.4.1" - -lodash.createcallback@~2.4.1: - version "2.4.4" - resolved "https://registry.yarnpkg.com/lodash.createcallback/-/lodash.createcallback-2.4.4.tgz#4a4530849b01655003fcbdf563524eff3ceb02c4" - integrity sha1-SkUwhJsBZVAD/L31Y1JO/zzrAsQ= - dependencies: - lodash._basecreatecallback "~2.4.1" - lodash._baseisequal "~2.4.1" - lodash.isobject "~2.4.1" - lodash.keys "~2.4.1" - lodash.property "~2.4.1" - -lodash.foreach@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-2.4.1.tgz#fe3fc3a34c86c94cab6f9522560282741e016309" - integrity sha1-/j/Do0yGyUyrb5UiVgKCdB4BYwk= - dependencies: - lodash._basecreatecallback "~2.4.1" - lodash.forown "~2.4.1" - -lodash.forin@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.forin/-/lodash.forin-2.4.1.tgz#8089eaed7d25b08672b7c66fd07ac55d062320eb" - integrity sha1-gInq7X0lsIZyt8Zv0HrFXQYjIOs= - dependencies: - lodash._basecreatecallback "~2.4.1" - lodash._objecttypes "~2.4.1" - -lodash.forown@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.forown/-/lodash.forown-2.4.1.tgz#78b41eafe1405fa966459ea4193fd502d084524b" - integrity sha1-eLQer+FAX6lmRZ6kGT/VAtCEUks= - dependencies: - lodash._basecreatecallback "~2.4.1" - lodash._objecttypes "~2.4.1" - lodash.keys "~2.4.1" - -lodash.identity@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.identity/-/lodash.identity-2.4.1.tgz#6694cffa65fef931f7c31ce86c74597cf560f4f1" - integrity sha1-ZpTP+mX++TH3wxzobHRZfPVg9PE= - -lodash.isarray@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-2.4.1.tgz#b52a326c1f62f6d7da73a31d5401df6ef44f0fa1" - integrity sha1-tSoybB9i9tfac6MdVAHfbvRPD6E= - dependencies: - lodash._isnative "~2.4.1" - -lodash.isfunction@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-2.4.1.tgz#2cfd575c73e498ab57e319b77fa02adef13a94d1" - integrity sha1-LP1XXHPkmKtX4xm3f6Aq3vE6lNE= - -lodash.isobject@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5" - integrity sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU= - dependencies: - lodash._objecttypes "~2.4.1" - -lodash.isstring@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-2.4.1.tgz#3a4a42ee344b5bc09aeaa87ef1dc3097789d0792" - integrity sha1-OkpC7jRLW8Ca6qh+8dwwl3idB5I= - -lodash.keys@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.4.1.tgz#48dea46df8ff7632b10d706b8acb26591e2b3727" - integrity sha1-SN6kbfj/djKxDXBrissmWR4rNyc= - dependencies: - lodash._isnative "~2.4.1" - lodash._shimkeys "~2.4.1" - lodash.isobject "~2.4.1" - -lodash.map@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-2.4.1.tgz#5c8bf0b32c1c0a1a569f8a70670d862f1b4d399d" - integrity sha1-XIvwsywcChpWn4pwZw2GLxtNOZ0= - dependencies: - lodash.createcallback "~2.4.1" - lodash.forown "~2.4.1" - -lodash.max@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.max/-/lodash.max-2.4.1.tgz#41282bf7b5af23e569f23e2a56223794e6877b6f" - integrity sha1-QSgr97WvI+Vp8j4qViI3lOaHe28= - dependencies: - lodash._charatcallback "~2.4.1" - lodash.createcallback "~2.4.1" - lodash.foreach "~2.4.1" - lodash.forown "~2.4.1" - lodash.isarray "~2.4.1" - lodash.isstring "~2.4.1" - -lodash.noop@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-2.4.1.tgz#4fb54f816652e5ae10e8f72f717a388c7326538a" - integrity sha1-T7VPgWZS5a4Q6PcvcXo4jHMmU4o= - -lodash.pluck@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.pluck/-/lodash.pluck-2.4.1.tgz#56b6034b340ecef15f3967128c91812909d86fc7" - integrity sha1-VrYDSzQOzvFfOWcSjJGBKQnYb8c= - dependencies: - lodash.map "~2.4.1" - -lodash.property@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.property/-/lodash.property-2.4.1.tgz#4049c0549daf5a7102bc5e93eeaebb379deb132f" - integrity sha1-QEnAVJ2vWnECvF6T7q67N53rEy8= - -lodash.support@~2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.support/-/lodash.support-2.4.1.tgz#320e0b67031673c28d7a2bb5d9e0331a45240515" - integrity sha1-Mg4LZwMWc8KNeiu12eAzGkUkBRU= - dependencies: - lodash._isnative "~2.4.1" - -lodash.zip@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-2.4.1.tgz#e6826b495f99c1a546e9de93797705c515584d13" - integrity sha1-5oJrSV+ZwaVG6d6TeXcFxRVYTRM= - dependencies: - lodash.max "~2.4.1" - lodash.pluck "~2.4.1" - -lodash.zipobject@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/lodash.zipobject/-/lodash.zipobject-2.4.1.tgz#54c2e4bf628b79373f5d0c982c6dfdf83c1ef649" - integrity sha1-VMLkv2KLeTc/XQyYLG39+Dwe9kk= - dependencies: - lodash.isarray "~2.4.1" - -lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@~4.17.10: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== - -loglevel@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56" - integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g== - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -matcher@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-2.1.0.tgz#64e1041c15b993e23b786f93320a7474bf833c28" - integrity sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ== - dependencies: - escape-string-regexp "^2.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -md5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" - integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= - dependencies: - charenc "~0.0.1" - crypt "~0.0.1" - is-buffer "~1.1.1" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -"mime-db@>= 1.40.0 < 2": - version "1.42.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" - integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== - dependencies: - mime-db "1.40.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== - -mimic-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4, minimatch@~3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minipass@^2.6.0, minipass@^2.8.6: - version "2.8.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.8.6.tgz#620d889ace26356391d010ecb9458749df9b6db5" - integrity sha512-lFG7d6g3+/UaFDCOtqPiKAC9zngWWsQZl1g5q6gaONqrjq61SX2xFqXMleQiFVyDpYwa018E9hmlAFY22PCb+A== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.2.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.2.tgz#5d24764998f98112586f7e566bd4c0999769dad4" - integrity sha512-lsNFqSHdJ21EwKzCp12HHJGxSMtHkCW1EMA9cceG3MkMNARjuWotZnMe3NKNshAvFXpm4loZqmYsCmRwhS2JMw== - dependencies: - minipass "^2.9.0" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -nan@^2.12.1, nan@^2.13.2: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-forge@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" - integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== - -node-gyp@^3.8.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - -node-libs-browser@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.1.29: - version "1.1.33" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.33.tgz#349f10291234624574f44cf32b7de259bf028303" - integrity sha512-I0V30bWQEoHb+10W8oedVoUrdjW5wIkYm0w7vvcrPO95pZY738m1k77GF5sO0vKg5eXYg9oGtrMAETbgZGm11A== - dependencies: - semver "^5.3.0" - -node-sass@^4.13.0: - version "4.13.0" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.0.tgz#b647288babdd6a1cb726de4545516b31f90da066" - integrity sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA== - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash "^4.17.15" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.13.2" - node-gyp "^3.8.0" - npmlog "^4.0.0" - request "^2.88.0" - sass-graph "^2.2.4" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= - dependencies: - abbrev "1" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -normalize.css@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" - integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== - -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - -npm-conf@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -npm-packlist@^1.1.6: - version "1.4.4" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" - integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= - dependencies: - lcid "^1.0.0" - -os-locale@^3.0.0, os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@0, osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== - dependencies: - retry "^0.12.0" - -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pako@~1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== - -parallel-transform@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== - dependencies: - cyclist "^1.0.1" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parse-asn1@^5.0.0: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.1, path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -pick-values@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pick-values/-/pick-values-1.0.1.tgz#67b2d7734e593eb5ba082a54a0477560e374254d" - integrity sha1-Z7LXc05ZPrW6CCpUoEd1YON0JU0= - -picomatch@^2.0.4: - version "2.0.7" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" - integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -portfinder@^1.0.25: - version "1.0.25" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" - integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.1" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-modules-extract-imports@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== - dependencies: - postcss "^7.0.5" - -postcss-modules-local-by-default@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" - integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== - dependencies: - icss-utils "^4.1.1" - postcss "^7.0.16" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.0" - -postcss-modules-scope@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb" - integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A== - dependencies: - postcss "^7.0.6" - postcss-selector-parser "^6.0.0" - -postcss-modules-values@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== - dependencies: - icss-utils "^4.0.0" - postcss "^7.0.6" - -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-value-parser@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" - integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== - -postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.18.tgz#4b9cda95ae6c069c67a4d933029eddd4838ac233" - integrity sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -private@^0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -proxy-addr@~2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" - integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.0" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.24: - version "1.4.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" - integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0, querystring@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" - integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.2.7, rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-config-file@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-5.0.0.tgz#1487c983fae9c1b672d3acda5cac899a2d451f02" - integrity sha512-jIKUu+C84bfnKxyJ5j30CxCqgXWYjZLXuVE/NYlMEpeni+dhESgAeZOZd0JZbg1xTkMmnCdxksDoarkOyfEsOg== - dependencies: - dotenv "^8.0.0" - dotenv-expand "^5.1.0" - fs-extra "^8.1.0" - js-yaml "^3.13.1" - json5 "^2.1.0" - lazy-val "^1.0.4" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.2.tgz#fa85d2d14d4289920e4671dead96431add2ee78a" - integrity sha512-8rhl0xs2cxfVsqzreYCvs8EwBfn/DhVdqtoLmw19uI3SC5avYX9teCurlErfpPXGmYtMHReGaP2RsLnFvz/lnw== - dependencies: - picomatch "^2.0.4" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== - dependencies: - private "^0.1.6" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.execall@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regexp.execall/-/regexp.execall-1.0.2.tgz#c8040949ab6f8d3900385fcaab0772f581495a52" - integrity sha1-yAQJSatvjTkAOF/Kqwdy9YFJWlI= - -regexp.prototype.flags@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" - integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== - dependencies: - define-properties "^1.1.2" - -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - -registry-auth-token@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" - integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== - dependencies: - rc "^1.2.8" - safe-buffer "^5.0.1" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== - -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request@^2.87.0, request@^2.88.0: - version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.10.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== - dependencies: - path-parse "^1.0.6" - -responselike@1.0.2, responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -roarr@^2.14.5: - version "2.14.6" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.14.6.tgz#cebe8ad7ecbfd15bfa37b02dacf00809dd633912" - integrity sha512-qjbw0BEesKA+3XFBPt+KVe1PC/Z6ShfJ4wPlx2XifqH5h2Lj8/KQT5XJTsy3n1Es5kai+BwKALaECW3F70B1cg== - dependencies: - boolean "^3.0.0" - detect-node "^2.0.4" - globalthis "^1.0.0" - json-stringify-safe "^5.0.1" - semver-compare "^1.0.0" - sprintf-js "^1.1.2" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== - -safe-eval@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/safe-eval/-/safe-eval-0.4.1.tgz#e54ba5a1bbdec795d488f6c8765e0c2a78b4cdc0" - integrity sha512-wmiu4RSYVZ690RP1+cv/LxfPK1dIlEN35aW7iv4SMYdqDrHbkll4+NJcHmKm7PbCuI1df1otOcPwgcc2iFR85g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sanitize-filename@^1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - -sass-graph@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" - integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k= - dependencies: - glob "^7.0.0" - lodash "^4.0.0" - scss-tokenizer "^0.2.3" - yargs "^7.0.0" - -sass-loader@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.0.tgz#e7b07a3e357f965e6b03dd45b016b0a9746af797" - integrity sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w== - dependencies: - clone-deep "^4.0.1" - loader-utils "^1.2.3" - neo-async "^2.6.1" - schema-utils "^2.1.0" - semver "^6.3.0" - -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.1.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.4.1.tgz#e89ade5d056dc8bcaca377574bb4a9c4e1b8be56" - integrity sha512-RqYLpkPZX5Oc3fw/kHHHyP56fg5Y+XBpIpV8nCg0znIALfq3OH+Ea9Hfeac9BAMwG5IICltiZ0vxFvJQONfA5w== - dependencies: - ajv "^6.10.2" - ajv-keywords "^3.4.1" - -scss-tokenizer@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" - integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= - dependencies: - js-base64 "^2.1.8" - source-map "^0.4.2" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -selfsigned@^1.10.7: - version "1.10.7" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" - integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== - dependencies: - node-forge "0.9.0" - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-error@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-5.0.0.tgz#a7ebbcdb03a5d71a6ed8461ffe0fc1a1afed62ac" - integrity sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA== - dependencies: - type-fest "^0.8.0" - -serialize-javascript@^1.7.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" - integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" - -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== - dependencies: - faye-websocket "^0.10.0" - uuid "^3.0.1" - -sogou-translate@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/sogou-translate/-/sogou-translate-0.0.1.tgz#83165fa051df176dd7e7ae6b310905a5e20e0eda" - integrity sha512-VvL139fCL/30rb6lJFQ/hM32g1H234ea79dMrwQf8Icv3+T3SeJWzE9kIdPG3HSmbQxz7Oz6dSAXgbyD/mWlAg== - dependencies: - got "^8.3.2" - md5 "^2.2.1" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.13, source-map-support@~0.5.12: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - integrity sha1-66T12pwNyZneaAMti092FzZSA2s= - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" - integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -stat-mode@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.3.0.tgz#69283b081f851582b328d2a4ace5f591ce52f54b" - integrity sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stdout-stream@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== - dependencies: - readable-stream "^2.0.1" - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -style-loader@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.0.1.tgz#aec6d4c61d0ed8d0a442faed741d4dfc6573888a" - integrity sha512-CnpEkSR1C+REjudiTWCv4+ssP7SCiuaQZJTZDWBRwTJoS90mdqkB8uOGMHKgVeUzpaU7IfLWoyQbvvs5Joj3Xw== - dependencies: - loader-utils "^1.2.3" - schema-utils "^2.0.1" - -subtitle@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/subtitle/-/subtitle-2.0.3.tgz#1fed16180273e60dc4be320ecc8ec2f90a51a28d" - integrity sha512-NAQVYcWOGky/zEv37EGaTk6VK3WmD3m9JGILLcoh2YTAnXTcVhvNilAWPcqVKtWhmi3zYOBLSGa+3ufetLFrsA== - dependencies: - zero-fill "^2.2.3" - -subtitles-parser@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/subtitles-parser/-/subtitles-parser-0.0.2.tgz#cf2fcc3e397b1c7f831e1365f6b3ce37d3155194" - integrity sha1-zy/MPjl7HH+DHhNl9rPON9MVUZQ= - -sumchecker@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" - integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== - dependencies: - debug "^4.1.0" - -supports-color@6.1.0, supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tar@^2.0.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - -tar@^4: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -temp-file@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.4.tgz#73af868cd7cb7400a44e4bb03e653b2280ce2878" - integrity sha512-qSZ5W5q54iyGnP8cNl49RE0jTJc5CrzNocux5APD5yIxcgonoMuMSbsZfaZy8rTGCYo0Xz6ySVv3adagZ8gffg== - dependencies: - async-exit-hook "^2.0.1" - fs-extra "^8.1.0" - -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= - dependencies: - execa "^0.7.0" - -terser-webpack-plugin@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" - integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^1.7.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.3.4" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.4.tgz#ad91bade95619e3434685d69efa621a5af5f877d" - integrity sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -thunky@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" - integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== - -timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= - -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - -"true-case-path@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== - dependencies: - glob "^7.1.2" - -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= - dependencies: - utf8-byte-length "^1.0.1" - -tslib@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-fest@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" - integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== - -type-fest@^0.8.0: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" - integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= - dependencies: - crypto-random-string "^1.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-electron-app@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/update-electron-app/-/update-electron-app-1.5.0.tgz#492cb904db07a0b28dbd83fb52e0fe500bbe3463" - integrity sha512-g7noW9JfQ8Hwq6zw9lmZei+R/ikOIBcaZ04TbmIcU5zNfv23HkN80QLLAyiR/47KvfS4sjnh2/wuDq5nh8+0mQ== - dependencies: - electron-is-dev "^0.3.0" - github-url-to-object "^4.0.4" - is-url "^1.2.4" - ms "^2.1.1" - -update-notifier@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250" - integrity sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ== - dependencies: - boxen "^3.0.0" - chalk "^2.0.1" - configstore "^4.0.0" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.1.0" - is-npm "^3.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url-parse@^1.4.3: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.0.1, uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== - -v8-compile-cache@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" - integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== - -watchpack@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -webpack-cli@^3.3.10: - version "3.3.10" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.10.tgz#17b279267e9b4fb549023fae170da8e6e766da13" - integrity sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg== - dependencies: - chalk "2.4.2" - cross-spawn "6.0.5" - enhanced-resolve "4.1.0" - findup-sync "3.0.0" - global-modules "2.0.0" - import-local "2.0.0" - interpret "1.2.0" - loader-utils "1.2.3" - supports-color "6.1.0" - v8-compile-cache "2.0.3" - yargs "13.2.4" - -webpack-dev-middleware@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.4" - mkdirp "^0.5.1" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz#27c3b5d0f6b6677c4304465ac817623c8b27b89c" - integrity sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.8" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.1" - html-entities "^1.2.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - is-absolute-url "^3.0.3" - killable "^1.0.1" - loglevel "^1.6.4" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.25" - schema-utils "^1.0.0" - selfsigned "^1.10.7" - semver "^6.3.0" - serve-index "^1.9.1" - sockjs "0.3.19" - sockjs-client "1.4.0" - spdy "^4.0.1" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "12.0.5" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-sources@^1.4.0, webpack-sources@^1.4.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.41.2: - version "4.41.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e" - integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A== - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - acorn "^6.2.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.1" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.1" - watchpack "^1.6.0" - webpack-sources "^1.4.1" - -websocket-driver@>=0.5.1: - version "0.7.3" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" - integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== - dependencies: - http-parser-js ">=0.4.0 <0.4.11" - safe-buffer ">=5.1.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.0.tgz#906cc2100972dc2625ae78f566a2577230a1d6f7" - integrity sha512-6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w== - -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^13.1.0, yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= - dependencies: - camelcase "^3.0.0" - -yargs@12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - -yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.1" - -yargs@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" - -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= - dependencies: - fd-slicer "~1.0.1" - -zero-fill@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/zero-fill/-/zero-fill-2.2.3.tgz#a3def06ba5e39ae644850bb4ca2ad4112b4855e9" - integrity sha1-o97wa6XjmuZEhQu0yirUEStIVek= - -zipmap@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/zipmap/-/zipmap-1.1.1.tgz#ce510dd27184c113d26ea337ad7a4ba78e720468" - integrity sha1-zlEN0nGEwRPSbqM3rXpLp45yBGg= diff --git a/app/image/1.png b/image/1.png similarity index 100% rename from app/image/1.png rename to image/1.png diff --git a/app/image/2.png b/image/2.png similarity index 100% rename from app/image/2.png rename to image/2.png diff --git a/app/image/3.png b/image/3.png similarity index 100% rename from app/image/3.png rename to image/3.png diff --git a/app/image/bilibili.png b/image/bilibili.png similarity index 100% rename from app/image/bilibili.png rename to image/bilibili.png diff --git a/app/image/logo.png b/image/logo.png similarity index 100% rename from app/image/logo.png rename to image/logo.png