UNPKG

2.32 MBJavaScriptView Raw
1#!/usr/bin/env node
2(function webpackUniversalModuleDefinition(root, factory) {
3 if(typeof exports === 'object' && typeof module === 'object')
4 module.exports = factory();
5 else if(typeof define === 'function' && define.amd)
6 define([], factory);
7 else {
8 var a = factory();
9 for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
10 }
11})((typeof window !== 'undefined' ? window : this), function() {
12return /******/ (function(modules) { // webpackBootstrap
13/******/ // The module cache
14/******/ var installedModules = {};
15/******/
16/******/ // The require function
17/******/ function __webpack_require__(moduleId) {
18/******/
19/******/ // Check if module is in cache
20/******/ if(installedModules[moduleId]) {
21/******/ return installedModules[moduleId].exports;
22/******/ }
23/******/ // Create a new module (and put it into the cache)
24/******/ var module = installedModules[moduleId] = {
25/******/ i: moduleId,
26/******/ l: false,
27/******/ exports: {}
28/******/ };
29/******/
30/******/ // Execute the module function
31/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
32/******/
33/******/ // Flag the module as loaded
34/******/ module.l = true;
35/******/
36/******/ // Return the exports of the module
37/******/ return module.exports;
38/******/ }
39/******/
40/******/
41/******/ // expose the modules object (__webpack_modules__)
42/******/ __webpack_require__.m = modules;
43/******/
44/******/ // expose the module cache
45/******/ __webpack_require__.c = installedModules;
46/******/
47/******/ // define getter function for harmony exports
48/******/ __webpack_require__.d = function(exports, name, getter) {
49/******/ if(!__webpack_require__.o(exports, name)) {
50/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
51/******/ }
52/******/ };
53/******/
54/******/ // define __esModule on exports
55/******/ __webpack_require__.r = function(exports) {
56/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
57/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
58/******/ }
59/******/ Object.defineProperty(exports, '__esModule', { value: true });
60/******/ };
61/******/
62/******/ // create a fake namespace object
63/******/ // mode & 1: value is a module id, require it
64/******/ // mode & 2: merge all properties of value into the ns
65/******/ // mode & 4: return value when already ns object
66/******/ // mode & 8|1: behave like require
67/******/ __webpack_require__.t = function(value, mode) {
68/******/ if(mode & 1) value = __webpack_require__(value);
69/******/ if(mode & 8) return value;
70/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
71/******/ var ns = Object.create(null);
72/******/ __webpack_require__.r(ns);
73/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
74/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
75/******/ return ns;
76/******/ };
77/******/
78/******/ // getDefaultExport function for compatibility with non-harmony modules
79/******/ __webpack_require__.n = function(module) {
80/******/ var getter = module && module.__esModule ?
81/******/ function getDefault() { return module['default']; } :
82/******/ function getModuleExports() { return module; };
83/******/ __webpack_require__.d(getter, 'a', getter);
84/******/ return getter;
85/******/ };
86/******/
87/******/ // Object.prototype.hasOwnProperty.call
88/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
89/******/
90/******/ // __webpack_public_path__
91/******/ __webpack_require__.p = "";
92/******/
93/******/
94/******/ // Load entry module and return exports
95/******/ return __webpack_require__(__webpack_require__.s = "./src/cyanprint.ts");
96/******/ })
97/************************************************************************/
98/******/ ({
99
100/***/ "./node_modules/@kirinnee/core/index.js":
101/*!**********************************************!*\
102 !*** ./node_modules/@kirinnee/core/index.js ***!
103 \**********************************************/
104/*! no static exports found */
105/***/ (function(module, exports, __webpack_require__) {
106
107!function(t,r){if(true)module.exports=r();else { var e, n; }}("undefined"!=typeof window?window:this,function(){return function(n){var e={};function i(t){if(e[t])return e[t].exports;var r=e[t]={i:t,l:!1,exports:{}};return n[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=n,i.c=e,i.d=function(t,r,n){i.o(t,r)||Object.defineProperty(t,r,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(r,t){if(1&t&&(r=i(r)),8&t)return r;if(4&t&&"object"==typeof r&&r&&r.__esModule)return r;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:r}),2&t&&"string"!=typeof r)for(var e in r)i.d(n,e,function(t){return r[t]}.bind(null,e));return n},i.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(r,"a",r),r},i.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},i.p="",i(i.s=0)}([function(t,r,n){"use strict";n.r(r);var u=function(){function t(){}return t.Ascending={IsNum:!0},t.Descending={IsNum:!0},t.AtoZ={IsNum:!1},t.ZtoA={IsNum:!1},t}(),e=function(){function t(){this.m=" _-,;:!?.'\"()[]{ }@*/&#%`^+<=>|~$0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ"}return t.prototype.AssertExtend=function(){this.IsExtended||this.t("Core needs to be extended")},Object.defineProperty(t.prototype,"IsExtended",{get:function(){return null!=Map.prototype.All},enumerable:!0,configurable:!0}),t.prototype.ExtendPrimitives=function(){var o=this;String.prototype.Match=function(t){return this.match(t)||[]},String.prototype.ReplaceAll=function(t,r){return this.replace(new RegExp(t,"g"),r)},String.prototype.IsEmpty=function(){return 0===this.trim().length},String.prototype.Starts=function(t){if(this.IsEmpty()||t.IsEmpty())return!1;var r=t.trim();return this.trim().Take(r.length)===r},String.prototype.Ends=function(t){if(this.IsEmpty()||t.IsEmpty())return!1;var r=t.trim();return this.trim().Last(r.length)===r},String.prototype.CharAt=function(t){return(-1<t&&t>=this.length||t<0&&-t>this.length)&&o.t("Cannot exceed length of string"),this.charAt(t+(t<0?this.length:0))},String.prototype.RemoveCharAt=function(t){var r=t+(t<0?this.length:0);return(-1<t&&t>=this.length||-t>=this.length+1&&t<0)&&o.t("Cannot exceed length of string"),this.Take(r)+this.Skip(r+1)},String.prototype.Remove=function(t){return this.split(t).join("")},String.prototype.Without=function(t){var r=this;return t.Each(function(t){return r=r.Remove(t)}),r},String.prototype.Skip=function(t){return this.substr(t)},String.prototype.Take=function(t){return null==t?0===this.length?"":this.charAt(0):this.substr(0,t)},String.prototype.Last=function(t){return null==t?0===this.length?"":this.charAt(this.length-1):this.substr(this.length-t)},String.prototype.Omit=function(t){return this.substr(0,this.length-t)},String.prototype.Repeat=function(t){return t<0&&o.t("Count cannot be negative"),this.repeat(t)},String.prototype.Count=function(t){var r=new RegExp(t,"gi");return this.Match(r).length},String.prototype.Capitalize=function(){return this.Take(1).toUpperCase()+this.Skip(1)},String.prototype.CapitalizeWords=function(){return this.split(" ").Map(function(t){return t.Capitalize()}).join(" ")},String.prototype.IsAlphanumeric=function(){return!this.IsEmpty()&&null==this.split("").Map(function(t){return t.charCodeAt(0)}).When(function(t){return!(47<t&&t<58||64<t&&t<91||96<t&&t<123)},function(){return!1})},String.prototype.IsHexadecimal=function(){return!this.IsEmpty()&&parseInt(this.toLowerCase(),16).toString(16)===this.toLowerCase()},String.prototype.LineBreak=function(){return this.ReplaceAll("\r\n","\n").ReplaceAll("\r","\n").split("\n")},Number.prototype.Odd=function(){return!(!this.Int()||0===this)&&this%2!=0},Number.prototype.Even=function(){return!(!this.Int()||0===this)&&this%2==0},Number.prototype.Int=function(){return!!o.IsNumber(this)&&Math.abs(this%1)<1e-15},Number.prototype.Finite=function(){return!!o.IsAnyNumber(this)&&(!this.NaN()&&isFinite(this))},Number.prototype.Infinite=function(){return!!o.IsAnyNumber(this)&&(!this.NaN()&&!isFinite(this))},Number.prototype.NaN=function(){return isNaN(this)},Number.prototype.RoundOff=function(){o.A(this);var t=this<0?-1:1;return t*Math.round(t*this)},Number.prototype.Ceil=function(){o.A(this);var t=this<0?-1:1;return t*Math.ceil(t*this)},Number.prototype.Floor=function(){o.A(this);var t=this<0?-1:1;return t*Math.floor(t*this)},Number.prototype.Abs=function(){return o.A(this),Math.abs(this)},Number.prototype.Root=function(){return o.A(this),this<0&&o.t("Can't root negative"),Math.sqrt(this)},Number.prototype.ToInt=function(){return o.i(this)},Number.prototype.ToFloat=function(){return o.f(this)},String.prototype.ToInt=function(){return o.i(this)},String.prototype.ToFloat=function(){return o.f(this)},Number.prototype.AtMax=function(t){return o.A(this),Math.min(this,t)},Number.prototype.AtMin=function(t){return o.A(this),Math.max(this,t)},Number.prototype.Clamp=function(t,r){return o.A(this),this.AtMax(t.AtMin(r)).AtMin(t.AtMax(r))},Number.prototype.RandomTo=function(t,r){return o.A(this),r?(this+Math.random()*(t-this+1)).Floor():(this+Math.random()*(t-this+1)).AtMax(t)},Number.prototype.RandomFor=function(t,r){return this.RandomTo(this+t-1,r)},Array.prototype.Flatten=function(){return 0===this.length?[]:this.Reduce(function(t,r){return t.concat(r)})},Array.prototype.Merge=function(n){if(this.length!==n.length)throw"Array has to be same length";var e=new Map;return this.Each(function(t,r){return e.set(t,n[r])}),e},Array.prototype.AsKey=function(n){var e=new Map;return this.Each(function(t,r){return e.set(t,n(t,r))}),e},Array.prototype.AsValue=function(n){var e=new Map;return this.Each(function(t,r){return e.set(n(t,r),t)}),e},Array.prototype.TrimAll=function(){return this.Map(function(t){return t.trim()})},Array.prototype.Sort=function(n,e){var t=this.slice();null==e&&(n.IsNum&&!o.IsNumberArray(t)||!o.IsStringArray(t)&&!n.IsNum)&&o.t("Please provide scoring strategy"),null==e&&(e=function(t){return t});var i=n===u.Ascending||n===u.AtoZ?1:-1;return t.sort(function(t,r){return(n.IsNum?e(t)>e(r)?1:-1:o.lc(e(t),e(r)))*i}),t},Array.prototype.Reverse=function(){var r=[];return this.Each(function(t){return r.push(t)},!0),r},Array.prototype.Has=function(r,n){return void 0===n&&(n=!1),this.When(function(t){return o.Eq(t,r,n)},function(){return!0})||!1},Array.prototype.Where=function(t){var r=[];return this.When(t,function(t){r.push(t)},!1),r},Array.prototype.Map=function(n){var e=[];return this.Each(function(t,r){return e.push(n(t,r))}),e},Array.prototype.Each=function(t,r){if(void 0===r&&(r=!1),!r){for(var n=0;n<this.length;n++)t(this[n],n);return this}for(n=this.length-1;0<=n;n--)t(this[n],n);return this},Array.prototype.RemoveValue=function(r,n){return void 0===n&&(n=!1),this.Where(function(t){return!o.Eq(t,r,n)})},Array.prototype.Without=function(r,n){return void 0===n&&(n=!1),this.Where(function(t){return!r.Has(t,n)})},Array.prototype.WithoutIndex=function(n){return this.Where(function(t,r){return!n.Has(r)})},Array.prototype.Fill=function(t,r){for(var n=this.slice(),e=0;e<t;e++)n.push(r(e));return n},Array.prototype.RemoveIndex=function(n){return this.Where(function(t,r){return r!==n})},Array.prototype.Take=function(t){return null==t?0===this.length?null:this[0]:this.slice(0,t)},Array.prototype.TakeWhile=function(t){var r=[];return this.When(t,function(t){r.push(t)},!0),r},Array.prototype.Skip=function(t){return this.slice(t)},Array.prototype.SkipWhile=function(t){var r=0;return this.When(t,function(){r++},!0),this.Skip(r)},Array.prototype.Omit=function(t){return this.slice(0,-t)},Array.prototype.OmitWhile=function(t){var r=0;return this.Reverse().When(t,function(){r++},!0),this.Omit(r)},Array.prototype.Last=function(t){if(null==t)return 0===this.length?null:this[this.length-1];var r=this.length-t;return this.slice(0<r?r:0)},Array.prototype.LastWhile=function(t){var r=0;return this.Reverse().When(t,function(){r++},!0),this.Last(r)},Array.prototype.FirstIndexOf=function(r,n){return void 0===n&&(n=!1),this.FindIndex(function(t){return o.Eq(t,r,n)})},Array.prototype.Count=function(r,n){return void 0===n&&(n=!1),this.Where(function(t){return o.Eq(t,r,n)}).length},Array.prototype.Indexes=function(r,n){void 0===n&&(n=!1);var e=[];return this.When(function(t){return o.Eq(t,r,n)},function(t,r){e.push(r)}),e},Array.prototype.Unique=function(n){var e=this;return void 0===n&&(n=!1),this.Where(function(t,r){return e.FirstIndexOf(t,n)===r})},Array.prototype.Union=function(t,r){return void 0===r&&(r=!1),this.concat(t).Unique(r)},Array.prototype.Intersect=function(r,n){return void 0===n&&(n=!1),this.Unique(n).Where(function(t){return r.Has(t,n)})},Array.prototype.Outer=function(t,r){return void 0===r&&(r=!1),this.Union(t,r).Without(this.Intersect(t,r),r)},Array.prototype.Max=function(e){return void 0===e&&(e=function(t,r){return t}),this.Reverse().Reduce(function(t,r,n){return e(t,n-1)>e(r,n)?t:r})},Array.prototype.Min=function(e){return void 0===e&&(e=function(t,r){return t}),this.Reverse().Reduce(function(t,r,n){return e(t,n-1)<e(r,n)?t:r})},Array.prototype.Sum=function(n){return void 0===n&&(n=function(t){return t}),this.Map(function(t,r){return n(t,r)}).Reduce(function(t,r){return t+r})},Array.prototype.Reduce=function(t){if(0===this.length&&o.t("Empty Array"),1===this.length)return this[0];for(var r=this[0],n=1;n<this.length;n++)r=t(r,this[n],n-1);return r},Array.prototype.Find=function(t){var r=this.When(t,function(t){return t});return null==r?null:r},Array.prototype.FindIndex=function(t){var r=this.When(t,function(t,r){return r});return null==r?null:r},Array.prototype.Any=function(t){return this.When(t,function(){return!0})||!1},Array.prototype.All=function(n){return!this.Any(function(t,r){return!n(t,r)})},Array.prototype.When=function(t,r,n){void 0===n&&(n=!1);for(var e=0;e<this.length;e++)if(t(this[e],e)){var i=r(this[e],e);if(void 0!==i)return i}else if(n)break},Array.prototype.Random=function(){return 0===this.length?null:1===this.length?this[0]:this[(0).RandomFor(this.length,!0)]},Map.prototype.TrimValue=function(){return this.MapValue(function(t){return t.trim()})},Map.prototype.SortByKey=function(t,r){var n=this.Arr();return n=n.Sort(t,null==r?function(t){return t[0]}:function(t){return r(t[0])}),new Map(n)},Map.prototype.SortByValue=function(t,r){var n=this.Arr();return n=n.Sort(t,null==r?function(t){return t[1]}:function(t){return r(t[1])}),new Map(n)},Map.prototype.Reverse=function(){return new Map(this.Arr().Reverse())},Map.prototype.HasKey=function(t,r){return this.Keys().Has(t,r)},Map.prototype.HasValue=function(t,r){return this.Values().Has(t,r)},Map.prototype.Where=function(r){return new Map(this.Arr().Where(function(t){return o.M(t,r)}))},Map.prototype.MapKey=function(n){var e=new Map;return this.Each(function(t,r){return e.set(n(t,r),r)}),e},Map.prototype.MapValue=function(n){var e=new Map;return this.Each(function(t,r){return e.set(t,n(r,t))}),e},Map.prototype.Map=function(n){var e=[];return this.Each(function(t,r){return e.push(n(t,r))}),e},Map.prototype.Each=function(r){var n=new Map;return this.Arr().Each(function(t){r(t[0],t[1]),n.set(t[0],t[1])}),n},Map.prototype.RemoveKey=function(r,n){return void 0===n&&(n=!1),this.Where(function(t){return!o.Eq(r,t,n)})},Map.prototype.RemoveValue=function(n,e){return void 0===e&&(e=!1),this.Where(function(t,r){return!o.Eq(r,n,e)})},Map.prototype.Without=function(n,e,i){return void 0===i&&(i=!1),this.Where(function(t,r){return!n.Has(t,i)&&!e.Has(r,i)})},Map.prototype.Take=function(t){if(null!=t)return new Map(this.Arr().Take(t));var r=this.Arr().Take();return null==r?null:o.P(r)},Map.prototype.TakeWhile=function(r){return new Map(this.Arr().TakeWhile(function(t){return o.M(t,r)}))},Map.prototype.Skip=function(t){return new Map(this.Arr().Skip(t))},Map.prototype.SkipWhile=function(r){return new Map(this.Arr().SkipWhile(function(t){return o.M(t,r)}))},Map.prototype.Omit=function(t){return new Map(this.Arr().Omit(t))},Map.prototype.OmitWhile=function(r){return new Map(this.Arr().OmitWhile(function(t){return o.M(t,r)}))},Map.prototype.Last=function(t){if(null!=t)return new Map(this.Arr().Last(t));var r=this.Arr().Last();return null==r?null:o.P(r)},Map.prototype.LastWhile=function(r){return new Map(this.Arr().LastWhile(function(t){return o.M(t,r)}))},Map.prototype.Arr=function(){return Array.from(this.entries())},Map.prototype.Keys=function(){return Array.from(this.keys())},Map.prototype.Values=function(){return Array.from(this.values())},Map.prototype.Find=function(r){var t=this.Arr().Find(function(t){return o.M(t,r)});return null==t?null:o.P(t)},Map.prototype.Max=function(r){return o.P(this.Arr().Max(function(t){return r(t[0],t[1])}))},Map.prototype.Min=function(r){return o.P(this.Arr().Min(function(t){return r(t[0],t[1])}))},Map.prototype.Sum=function(r){return this.Arr().Sum(function(t){return r(t[0],t[1])})},Map.prototype.Reduce=function(t){return this.Arr().Map(function(t){return o.P(t)}).Reduce(t)},Map.prototype.Any=function(r){return this.Arr().Any(function(t){return o.M(t,r)})},Map.prototype.All=function(r){return this.Arr().All(function(t){return o.M(t,r)})}},t.prototype.DeepEqual=function(r,n){var e=this;if(r===n)return!0;if(void 0===r||void 0===n)return!1;if(null===r||null===n)return!1;if(typeof r!=typeof n)return!1;if(e.TC(r,n,"string"))return String(r)===String(n);if(e.TC(r,n,"number"))return isNaN(r)?isNaN(n):r===n;if(e.TC(r,n,"boolean"))return r===n;if(r instanceof Date)return r.valueOf()===n.valueOf();if(r.constructor!==n.constructor)return!1;if(r instanceof Function||r instanceof RegExp)return r.toString()===n.toString();if(this.IsArray(r)){if(!this.IsArray(n))return!1;if(r.length!==n.length)return!1}if(r instanceof Object&&n instanceof Object){var i=Object.keys(r);return Object.keys(n).every(function(t){return-1!==i.indexOf(t)})&&i.every(function(t){return e.Eq(r[t],n[t],!0)})}return!1},t.prototype.IsAnyString=function(t){return"string"==typeof t||t instanceof String},t.prototype.IsString=function(t){return!!this.IsAnyString(t)&&""!==t.trim()},t.prototype.IsAnyNumber=function(t){return null!=t&&("number"==typeof t||t instanceof Number)},t.prototype.IsNumber=function(t,r){if(void 0===r&&(r=!1),this.IsAnyNumber(t))return!isNaN(t)&&isFinite(t);if(this.IsAnyString(t)&&r){var n=parseFloat(t);return!isNaN(n)&&isFinite(n)}return!1},t.prototype.IsArray=function(t){return Array.isArray(t)},t.prototype.IsBooleanArray=function(t){return this.I(t,"boolean")},t.prototype.IsNumberArray=function(t){return this.I(t,"number")},t.prototype.IsStringArray=function(t){return this.I(t,"string")},t.prototype.Random=function(t){var r=this.m.Skip(34).split("");return[].Fill(t,function(){return r.Random()}).join("")},t.prototype.WrapArray=function(t){return this.IsArray(t)?t:[t]},t.prototype.Eq=function(t,r,n){return n?this.DeepEqual(t,r):t===r},t.prototype.I=function(t,r){return this.IsArray(t)&&t.every(function(t){return typeof t===r})},t.prototype.t=function(t){throw new Error(t)},t.prototype.lc=function(t,r){for(var n="",e="",i=0,o=t.length===r.length;n===e&&i<100;)n=(o?t:t.toLowerCase()).charAt(i),e=(o?r:r.toLowerCase()).charAt(i),i++;return(this.m.indexOf(n)-this.m.indexOf(e)).Clamp(-1,1)},t.prototype.TC=function(t,r,n){return typeof t===n&&typeof r===n},t.prototype.M=function(t,r){return r(t[0],t[1])},t.prototype.P=function(t){return{key:t[0],value:t[1]}},t.prototype.i=function(t){return this.A(t),this.IsAnyString(t)?parseInt(t):Math.trunc(t)},t.prototype.f=function(t){return this.A(t),parseFloat(t)},t.prototype.A=function(t){this.IsNumber(t,!0)||this.t("Invalid Number")},t}();n.d(r,"Kore",function(){return e}),n.d(r,"SortType",function(){return u})}])});
108
109/***/ }),
110
111/***/ "./node_modules/@kirinnee/objex/index.js":
112/*!***********************************************!*\
113 !*** ./node_modules/@kirinnee/objex/index.js ***!
114 \***********************************************/
115/*! no static exports found */
116/***/ (function(module, exports, __webpack_require__) {
117
118!function(t,e){if(true)module.exports=e();else { var r, n; }}("undefined"!=typeof window?window:this,function(){return function(n){var r={};function o(t){if(r[t])return r[t].exports;var e=r[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,o),e.l=!0,e.exports}return o.m=n,o.c=r,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=0)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(1);e.ObjectX=r.ObjectX},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t){t.AssertExtend(),this.c=t}return Object.defineProperty(t.prototype,"IsExtended",{get:function(){return null!=Object.prototype.Equal},enumerable:!0,configurable:!0}),t.prototype.AssertExtend=function(){if(!this.IsExtended)throw new Error("Objex needs to be extended")},t.prototype.ExtendPrimitives=function(){var o=this,e=this.c;Map.prototype.AsObject=function(){var r={};return this.Each(function(t,e){var n=t.split(".");o.SV(r,n,e)}),r},Object.prototype.AsMap=function(){return o.FO(this)},Object.prototype.Clone=function(){var n={};return this.Each(function(t,e){o.NO(e)?n[t]=e:n[t]=e.Clone()}),n},Object.prototype.Overwrite=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=(t=t.Where(function(t){return null!=t})).length;if(0===n)return this.Clone();var r=o.OR(this,t[0]);return 1===n?r:r.Overwrite.apply(r,t.Skip(1))},Object.prototype.Each=function(t){for(var e in this)this.hasOwnProperty(e)&&t(e,this[e]);return this},Object.prototype.Map=function(r){var o={};return this.Each(function(t,e){var n=r(t,e);o[n.key]=n.value}),o},Object.prototype.MapKey=function(n){var r={};return this.Each(function(t,e){return r[n(t,e)]=e}),r},Object.prototype.MapValue=function(n){var r={};return this.Each(function(t,e){return r[t]=n(e,t)}),r},Object.prototype.Where=function(n){var r={};return this.Each(function(t,e){n(t,e)&&(r[t]=e)}),r},Object.prototype.Equal=function(t){return e.DeepEqual(this,t)}},t.prototype.SV=function(t,e,n){1===e.length?t[e[0]]=n:(void 0===t[e[0]]&&(t[e[0]]={}),this.SV(t[e[0]],e.Skip(1),n))},t.prototype.TO=function(t,e){return typeof t===e},t.prototype.NO=function(t){return this.c.IsArray(t)||t instanceof RegExp||t instanceof Date||!this.TO(t,"object")||this.TO(t,"function")},t.prototype.FO=function(t,e){void 0===e&&(e="");var n=new Map;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];this.NO(o)?n.set(e+r,o):n=new Map(n.Arr().Union(this.FO(o,e+r+".").Arr(),!0))}return n},t.prototype.OR=function(t,e){for(var n in e=e.Clone(),t)t.hasOwnProperty(n)&&("object"==typeof e[n]?e[n]=this.OR(t[n],e[n]):e[n]=t[n]);return e},t}();e.ObjectX=r}])});
119
120/***/ }),
121
122/***/ "./node_modules/ansi-escapes/index.js":
123/*!********************************************!*\
124 !*** ./node_modules/ansi-escapes/index.js ***!
125 \********************************************/
126/*! no static exports found */
127/***/ (function(module, exports, __webpack_require__) {
128
129"use strict";
130
131const x = module.exports;
132const ESC = '\u001B[';
133const OSC = '\u001B]';
134const BEL = '\u0007';
135const SEP = ';';
136const isTerminalApp = process.env.TERM_PROGRAM === 'Apple_Terminal';
137
138x.cursorTo = (x, y) => {
139 if (typeof x !== 'number') {
140 throw new TypeError('The `x` argument is required');
141 }
142
143 if (typeof y !== 'number') {
144 return ESC + (x + 1) + 'G';
145 }
146
147 return ESC + (y + 1) + ';' + (x + 1) + 'H';
148};
149
150x.cursorMove = (x, y) => {
151 if (typeof x !== 'number') {
152 throw new TypeError('The `x` argument is required');
153 }
154
155 let ret = '';
156
157 if (x < 0) {
158 ret += ESC + (-x) + 'D';
159 } else if (x > 0) {
160 ret += ESC + x + 'C';
161 }
162
163 if (y < 0) {
164 ret += ESC + (-y) + 'A';
165 } else if (y > 0) {
166 ret += ESC + y + 'B';
167 }
168
169 return ret;
170};
171
172x.cursorUp = count => ESC + (typeof count === 'number' ? count : 1) + 'A';
173x.cursorDown = count => ESC + (typeof count === 'number' ? count : 1) + 'B';
174x.cursorForward = count => ESC + (typeof count === 'number' ? count : 1) + 'C';
175x.cursorBackward = count => ESC + (typeof count === 'number' ? count : 1) + 'D';
176
177x.cursorLeft = ESC + 'G';
178x.cursorSavePosition = ESC + (isTerminalApp ? '7' : 's');
179x.cursorRestorePosition = ESC + (isTerminalApp ? '8' : 'u');
180x.cursorGetPosition = ESC + '6n';
181x.cursorNextLine = ESC + 'E';
182x.cursorPrevLine = ESC + 'F';
183x.cursorHide = ESC + '?25l';
184x.cursorShow = ESC + '?25h';
185
186x.eraseLines = count => {
187 let clear = '';
188
189 for (let i = 0; i < count; i++) {
190 clear += x.eraseLine + (i < count - 1 ? x.cursorUp() : '');
191 }
192
193 if (count) {
194 clear += x.cursorLeft;
195 }
196
197 return clear;
198};
199
200x.eraseEndLine = ESC + 'K';
201x.eraseStartLine = ESC + '1K';
202x.eraseLine = ESC + '2K';
203x.eraseDown = ESC + 'J';
204x.eraseUp = ESC + '1J';
205x.eraseScreen = ESC + '2J';
206x.scrollUp = ESC + 'S';
207x.scrollDown = ESC + 'T';
208
209x.clearScreen = '\u001Bc';
210x.beep = BEL;
211
212x.link = (text, url) => {
213 return [
214 OSC,
215 '8',
216 SEP,
217 SEP,
218 url,
219 BEL,
220 text,
221 OSC,
222 '8',
223 SEP,
224 SEP,
225 BEL
226 ].join('');
227};
228
229x.image = (buf, opts) => {
230 opts = opts || {};
231
232 let ret = OSC + '1337;File=inline=1';
233
234 if (opts.width) {
235 ret += `;width=${opts.width}`;
236 }
237
238 if (opts.height) {
239 ret += `;height=${opts.height}`;
240 }
241
242 if (opts.preserveAspectRatio === false) {
243 ret += ';preserveAspectRatio=0';
244 }
245
246 return ret + ':' + buf.toString('base64') + BEL;
247};
248
249x.iTerm = {};
250
251x.iTerm.setCwd = cwd => OSC + '50;CurrentDir=' + (cwd || process.cwd()) + BEL;
252
253
254/***/ }),
255
256/***/ "./node_modules/ansi-styles/index.js":
257/*!*******************************************!*\
258 !*** ./node_modules/ansi-styles/index.js ***!
259 \*******************************************/
260/*! no static exports found */
261/***/ (function(module, exports, __webpack_require__) {
262
263"use strict";
264/* WEBPACK VAR INJECTION */(function(module) {
265const colorConvert = __webpack_require__(/*! color-convert */ "./node_modules/color-convert/index.js");
266
267const wrapAnsi16 = (fn, offset) => function () {
268 const code = fn.apply(colorConvert, arguments);
269 return `\u001B[${code + offset}m`;
270};
271
272const wrapAnsi256 = (fn, offset) => function () {
273 const code = fn.apply(colorConvert, arguments);
274 return `\u001B[${38 + offset};5;${code}m`;
275};
276
277const wrapAnsi16m = (fn, offset) => function () {
278 const rgb = fn.apply(colorConvert, arguments);
279 return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
280};
281
282function assembleStyles() {
283 const codes = new Map();
284 const styles = {
285 modifier: {
286 reset: [0, 0],
287 // 21 isn't widely supported and 22 does the same thing
288 bold: [1, 22],
289 dim: [2, 22],
290 italic: [3, 23],
291 underline: [4, 24],
292 inverse: [7, 27],
293 hidden: [8, 28],
294 strikethrough: [9, 29]
295 },
296 color: {
297 black: [30, 39],
298 red: [31, 39],
299 green: [32, 39],
300 yellow: [33, 39],
301 blue: [34, 39],
302 magenta: [35, 39],
303 cyan: [36, 39],
304 white: [37, 39],
305 gray: [90, 39],
306
307 // Bright color
308 redBright: [91, 39],
309 greenBright: [92, 39],
310 yellowBright: [93, 39],
311 blueBright: [94, 39],
312 magentaBright: [95, 39],
313 cyanBright: [96, 39],
314 whiteBright: [97, 39]
315 },
316 bgColor: {
317 bgBlack: [40, 49],
318 bgRed: [41, 49],
319 bgGreen: [42, 49],
320 bgYellow: [43, 49],
321 bgBlue: [44, 49],
322 bgMagenta: [45, 49],
323 bgCyan: [46, 49],
324 bgWhite: [47, 49],
325
326 // Bright color
327 bgBlackBright: [100, 49],
328 bgRedBright: [101, 49],
329 bgGreenBright: [102, 49],
330 bgYellowBright: [103, 49],
331 bgBlueBright: [104, 49],
332 bgMagentaBright: [105, 49],
333 bgCyanBright: [106, 49],
334 bgWhiteBright: [107, 49]
335 }
336 };
337
338 // Fix humans
339 styles.color.grey = styles.color.gray;
340
341 for (const groupName of Object.keys(styles)) {
342 const group = styles[groupName];
343
344 for (const styleName of Object.keys(group)) {
345 const style = group[styleName];
346
347 styles[styleName] = {
348 open: `\u001B[${style[0]}m`,
349 close: `\u001B[${style[1]}m`
350 };
351
352 group[styleName] = styles[styleName];
353
354 codes.set(style[0], style[1]);
355 }
356
357 Object.defineProperty(styles, groupName, {
358 value: group,
359 enumerable: false
360 });
361
362 Object.defineProperty(styles, 'codes', {
363 value: codes,
364 enumerable: false
365 });
366 }
367
368 const ansi2ansi = n => n;
369 const rgb2rgb = (r, g, b) => [r, g, b];
370
371 styles.color.close = '\u001B[39m';
372 styles.bgColor.close = '\u001B[49m';
373
374 styles.color.ansi = {
375 ansi: wrapAnsi16(ansi2ansi, 0)
376 };
377 styles.color.ansi256 = {
378 ansi256: wrapAnsi256(ansi2ansi, 0)
379 };
380 styles.color.ansi16m = {
381 rgb: wrapAnsi16m(rgb2rgb, 0)
382 };
383
384 styles.bgColor.ansi = {
385 ansi: wrapAnsi16(ansi2ansi, 10)
386 };
387 styles.bgColor.ansi256 = {
388 ansi256: wrapAnsi256(ansi2ansi, 10)
389 };
390 styles.bgColor.ansi16m = {
391 rgb: wrapAnsi16m(rgb2rgb, 10)
392 };
393
394 for (let key of Object.keys(colorConvert)) {
395 if (typeof colorConvert[key] !== 'object') {
396 continue;
397 }
398
399 const suite = colorConvert[key];
400
401 if (key === 'ansi16') {
402 key = 'ansi';
403 }
404
405 if ('ansi16' in suite) {
406 styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);
407 styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);
408 }
409
410 if ('ansi256' in suite) {
411 styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);
412 styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);
413 }
414
415 if ('rgb' in suite) {
416 styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);
417 styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);
418 }
419 }
420
421 return styles;
422}
423
424// Make the export immutable
425Object.defineProperty(module, 'exports', {
426 enumerable: true,
427 get: assembleStyles
428});
429
430/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
431
432/***/ }),
433
434/***/ "./node_modules/balanced-match/index.js":
435/*!**********************************************!*\
436 !*** ./node_modules/balanced-match/index.js ***!
437 \**********************************************/
438/*! no static exports found */
439/***/ (function(module, exports, __webpack_require__) {
440
441"use strict";
442
443module.exports = balanced;
444function balanced(a, b, str) {
445 if (a instanceof RegExp) a = maybeMatch(a, str);
446 if (b instanceof RegExp) b = maybeMatch(b, str);
447
448 var r = range(a, b, str);
449
450 return r && {
451 start: r[0],
452 end: r[1],
453 pre: str.slice(0, r[0]),
454 body: str.slice(r[0] + a.length, r[1]),
455 post: str.slice(r[1] + b.length)
456 };
457}
458
459function maybeMatch(reg, str) {
460 var m = str.match(reg);
461 return m ? m[0] : null;
462}
463
464balanced.range = range;
465function range(a, b, str) {
466 var begs, beg, left, right, result;
467 var ai = str.indexOf(a);
468 var bi = str.indexOf(b, ai + 1);
469 var i = ai;
470
471 if (ai >= 0 && bi > 0) {
472 begs = [];
473 left = str.length;
474
475 while (i >= 0 && !result) {
476 if (i == ai) {
477 begs.push(i);
478 ai = str.indexOf(a, i + 1);
479 } else if (begs.length == 1) {
480 result = [ begs.pop(), bi ];
481 } else {
482 beg = begs.pop();
483 if (beg < left) {
484 left = beg;
485 right = bi;
486 }
487
488 bi = str.indexOf(b, i + 1);
489 }
490
491 i = ai < bi && ai >= 0 ? ai : bi;
492 }
493
494 if (begs.length) {
495 result = [ left, right ];
496 }
497 }
498
499 return result;
500}
501
502
503/***/ }),
504
505/***/ "./node_modules/brace-expansion/index.js":
506/*!***********************************************!*\
507 !*** ./node_modules/brace-expansion/index.js ***!
508 \***********************************************/
509/*! no static exports found */
510/***/ (function(module, exports, __webpack_require__) {
511
512var concatMap = __webpack_require__(/*! concat-map */ "./node_modules/concat-map/index.js");
513var balanced = __webpack_require__(/*! balanced-match */ "./node_modules/balanced-match/index.js");
514
515module.exports = expandTop;
516
517var escSlash = '\0SLASH'+Math.random()+'\0';
518var escOpen = '\0OPEN'+Math.random()+'\0';
519var escClose = '\0CLOSE'+Math.random()+'\0';
520var escComma = '\0COMMA'+Math.random()+'\0';
521var escPeriod = '\0PERIOD'+Math.random()+'\0';
522
523function numeric(str) {
524 return parseInt(str, 10) == str
525 ? parseInt(str, 10)
526 : str.charCodeAt(0);
527}
528
529function escapeBraces(str) {
530 return str.split('\\\\').join(escSlash)
531 .split('\\{').join(escOpen)
532 .split('\\}').join(escClose)
533 .split('\\,').join(escComma)
534 .split('\\.').join(escPeriod);
535}
536
537function unescapeBraces(str) {
538 return str.split(escSlash).join('\\')
539 .split(escOpen).join('{')
540 .split(escClose).join('}')
541 .split(escComma).join(',')
542 .split(escPeriod).join('.');
543}
544
545
546// Basically just str.split(","), but handling cases
547// where we have nested braced sections, which should be
548// treated as individual members, like {a,{b,c},d}
549function parseCommaParts(str) {
550 if (!str)
551 return [''];
552
553 var parts = [];
554 var m = balanced('{', '}', str);
555
556 if (!m)
557 return str.split(',');
558
559 var pre = m.pre;
560 var body = m.body;
561 var post = m.post;
562 var p = pre.split(',');
563
564 p[p.length-1] += '{' + body + '}';
565 var postParts = parseCommaParts(post);
566 if (post.length) {
567 p[p.length-1] += postParts.shift();
568 p.push.apply(p, postParts);
569 }
570
571 parts.push.apply(parts, p);
572
573 return parts;
574}
575
576function expandTop(str) {
577 if (!str)
578 return [];
579
580 // I don't know why Bash 4.3 does this, but it does.
581 // Anything starting with {} will have the first two bytes preserved
582 // but *only* at the top level, so {},a}b will not expand to anything,
583 // but a{},b}c will be expanded to [a}c,abc].
584 // One could argue that this is a bug in Bash, but since the goal of
585 // this module is to match Bash's rules, we escape a leading {}
586 if (str.substr(0, 2) === '{}') {
587 str = '\\{\\}' + str.substr(2);
588 }
589
590 return expand(escapeBraces(str), true).map(unescapeBraces);
591}
592
593function identity(e) {
594 return e;
595}
596
597function embrace(str) {
598 return '{' + str + '}';
599}
600function isPadded(el) {
601 return /^-?0\d/.test(el);
602}
603
604function lte(i, y) {
605 return i <= y;
606}
607function gte(i, y) {
608 return i >= y;
609}
610
611function expand(str, isTop) {
612 var expansions = [];
613
614 var m = balanced('{', '}', str);
615 if (!m || /\$$/.test(m.pre)) return [str];
616
617 var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
618 var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
619 var isSequence = isNumericSequence || isAlphaSequence;
620 var isOptions = m.body.indexOf(',') >= 0;
621 if (!isSequence && !isOptions) {
622 // {a},b}
623 if (m.post.match(/,.*\}/)) {
624 str = m.pre + '{' + m.body + escClose + m.post;
625 return expand(str);
626 }
627 return [str];
628 }
629
630 var n;
631 if (isSequence) {
632 n = m.body.split(/\.\./);
633 } else {
634 n = parseCommaParts(m.body);
635 if (n.length === 1) {
636 // x{{a,b}}y ==> x{a}y x{b}y
637 n = expand(n[0], false).map(embrace);
638 if (n.length === 1) {
639 var post = m.post.length
640 ? expand(m.post, false)
641 : [''];
642 return post.map(function(p) {
643 return m.pre + n[0] + p;
644 });
645 }
646 }
647 }
648
649 // at this point, n is the parts, and we know it's not a comma set
650 // with a single entry.
651
652 // no need to expand pre, since it is guaranteed to be free of brace-sets
653 var pre = m.pre;
654 var post = m.post.length
655 ? expand(m.post, false)
656 : [''];
657
658 var N;
659
660 if (isSequence) {
661 var x = numeric(n[0]);
662 var y = numeric(n[1]);
663 var width = Math.max(n[0].length, n[1].length)
664 var incr = n.length == 3
665 ? Math.abs(numeric(n[2]))
666 : 1;
667 var test = lte;
668 var reverse = y < x;
669 if (reverse) {
670 incr *= -1;
671 test = gte;
672 }
673 var pad = n.some(isPadded);
674
675 N = [];
676
677 for (var i = x; test(i, y); i += incr) {
678 var c;
679 if (isAlphaSequence) {
680 c = String.fromCharCode(i);
681 if (c === '\\')
682 c = '';
683 } else {
684 c = String(i);
685 if (pad) {
686 var need = width - c.length;
687 if (need > 0) {
688 var z = new Array(need + 1).join('0');
689 if (i < 0)
690 c = '-' + z + c.slice(1);
691 else
692 c = z + c;
693 }
694 }
695 }
696 N.push(c);
697 }
698 } else {
699 N = concatMap(n, function(el) { return expand(el, false) });
700 }
701
702 for (var j = 0; j < N.length; j++) {
703 for (var k = 0; k < post.length; k++) {
704 var expansion = pre + N[j] + post[k];
705 if (!isTop || isSequence || expansion)
706 expansions.push(expansion);
707 }
708 }
709
710 return expansions;
711}
712
713
714
715/***/ }),
716
717/***/ "./node_modules/chalk/index.js":
718/*!*************************************!*\
719 !*** ./node_modules/chalk/index.js ***!
720 \*************************************/
721/*! no static exports found */
722/***/ (function(module, exports, __webpack_require__) {
723
724"use strict";
725
726const escapeStringRegexp = __webpack_require__(/*! escape-string-regexp */ "./node_modules/escape-string-regexp/index.js");
727const ansiStyles = __webpack_require__(/*! ansi-styles */ "./node_modules/ansi-styles/index.js");
728const stdoutColor = __webpack_require__(/*! supports-color */ "./node_modules/supports-color/index.js").stdout;
729
730const template = __webpack_require__(/*! ./templates.js */ "./node_modules/chalk/templates.js");
731
732const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');
733
734// `supportsColor.level` → `ansiStyles.color[name]` mapping
735const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];
736
737// `color-convert` models to exclude from the Chalk API due to conflicts and such
738const skipModels = new Set(['gray']);
739
740const styles = Object.create(null);
741
742function applyOptions(obj, options) {
743 options = options || {};
744
745 // Detect level if not set manually
746 const scLevel = stdoutColor ? stdoutColor.level : 0;
747 obj.level = options.level === undefined ? scLevel : options.level;
748 obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;
749}
750
751function Chalk(options) {
752 // We check for this.template here since calling `chalk.constructor()`
753 // by itself will have a `this` of a previously constructed chalk object
754 if (!this || !(this instanceof Chalk) || this.template) {
755 const chalk = {};
756 applyOptions(chalk, options);
757
758 chalk.template = function () {
759 const args = [].slice.call(arguments);
760 return chalkTag.apply(null, [chalk.template].concat(args));
761 };
762
763 Object.setPrototypeOf(chalk, Chalk.prototype);
764 Object.setPrototypeOf(chalk.template, chalk);
765
766 chalk.template.constructor = Chalk;
767
768 return chalk.template;
769 }
770
771 applyOptions(this, options);
772}
773
774// Use bright blue on Windows as the normal blue color is illegible
775if (isSimpleWindowsTerm) {
776 ansiStyles.blue.open = '\u001B[94m';
777}
778
779for (const key of Object.keys(ansiStyles)) {
780 ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
781
782 styles[key] = {
783 get() {
784 const codes = ansiStyles[key];
785 return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);
786 }
787 };
788}
789
790styles.visible = {
791 get() {
792 return build.call(this, this._styles || [], true, 'visible');
793 }
794};
795
796ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');
797for (const model of Object.keys(ansiStyles.color.ansi)) {
798 if (skipModels.has(model)) {
799 continue;
800 }
801
802 styles[model] = {
803 get() {
804 const level = this.level;
805 return function () {
806 const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
807 const codes = {
808 open,
809 close: ansiStyles.color.close,
810 closeRe: ansiStyles.color.closeRe
811 };
812 return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
813 };
814 }
815 };
816}
817
818ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');
819for (const model of Object.keys(ansiStyles.bgColor.ansi)) {
820 if (skipModels.has(model)) {
821 continue;
822 }
823
824 const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);
825 styles[bgModel] = {
826 get() {
827 const level = this.level;
828 return function () {
829 const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
830 const codes = {
831 open,
832 close: ansiStyles.bgColor.close,
833 closeRe: ansiStyles.bgColor.closeRe
834 };
835 return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
836 };
837 }
838 };
839}
840
841const proto = Object.defineProperties(() => {}, styles);
842
843function build(_styles, _empty, key) {
844 const builder = function () {
845 return applyStyle.apply(builder, arguments);
846 };
847
848 builder._styles = _styles;
849 builder._empty = _empty;
850
851 const self = this;
852
853 Object.defineProperty(builder, 'level', {
854 enumerable: true,
855 get() {
856 return self.level;
857 },
858 set(level) {
859 self.level = level;
860 }
861 });
862
863 Object.defineProperty(builder, 'enabled', {
864 enumerable: true,
865 get() {
866 return self.enabled;
867 },
868 set(enabled) {
869 self.enabled = enabled;
870 }
871 });
872
873 // See below for fix regarding invisible grey/dim combination on Windows
874 builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';
875
876 // `__proto__` is used because we must return a function, but there is
877 // no way to create a function with a different prototype
878 builder.__proto__ = proto; // eslint-disable-line no-proto
879
880 return builder;
881}
882
883function applyStyle() {
884 // Support varags, but simply cast to string in case there's only one arg
885 const args = arguments;
886 const argsLen = args.length;
887 let str = String(arguments[0]);
888
889 if (argsLen === 0) {
890 return '';
891 }
892
893 if (argsLen > 1) {
894 // Don't slice `arguments`, it prevents V8 optimizations
895 for (let a = 1; a < argsLen; a++) {
896 str += ' ' + args[a];
897 }
898 }
899
900 if (!this.enabled || this.level <= 0 || !str) {
901 return this._empty ? '' : str;
902 }
903
904 // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,
905 // see https://github.com/chalk/chalk/issues/58
906 // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.
907 const originalDim = ansiStyles.dim.open;
908 if (isSimpleWindowsTerm && this.hasGrey) {
909 ansiStyles.dim.open = '';
910 }
911
912 for (const code of this._styles.slice().reverse()) {
913 // Replace any instances already present with a re-opening code
914 // otherwise only the part of the string until said closing code
915 // will be colored, and the rest will simply be 'plain'.
916 str = code.open + str.replace(code.closeRe, code.open) + code.close;
917
918 // Close the styling before a linebreak and reopen
919 // after next line to fix a bleed issue on macOS
920 // https://github.com/chalk/chalk/pull/92
921 str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`);
922 }
923
924 // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue
925 ansiStyles.dim.open = originalDim;
926
927 return str;
928}
929
930function chalkTag(chalk, strings) {
931 if (!Array.isArray(strings)) {
932 // If chalk() was called by itself or with a string,
933 // return the string itself as a string.
934 return [].slice.call(arguments, 1).join(' ');
935 }
936
937 const args = [].slice.call(arguments, 2);
938 const parts = [strings.raw[0]];
939
940 for (let i = 1; i < strings.length; i++) {
941 parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&'));
942 parts.push(String(strings.raw[i]));
943 }
944
945 return template(chalk, parts.join(''));
946}
947
948Object.defineProperties(Chalk.prototype, styles);
949
950module.exports = Chalk(); // eslint-disable-line new-cap
951module.exports.supportsColor = stdoutColor;
952module.exports.default = module.exports; // For TypeScript
953
954
955/***/ }),
956
957/***/ "./node_modules/chalk/templates.js":
958/*!*****************************************!*\
959 !*** ./node_modules/chalk/templates.js ***!
960 \*****************************************/
961/*! no static exports found */
962/***/ (function(module, exports, __webpack_require__) {
963
964"use strict";
965
966const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
967const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
968const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
969const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi;
970
971const ESCAPES = new Map([
972 ['n', '\n'],
973 ['r', '\r'],
974 ['t', '\t'],
975 ['b', '\b'],
976 ['f', '\f'],
977 ['v', '\v'],
978 ['0', '\0'],
979 ['\\', '\\'],
980 ['e', '\u001B'],
981 ['a', '\u0007']
982]);
983
984function unescape(c) {
985 if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) {
986 return String.fromCharCode(parseInt(c.slice(1), 16));
987 }
988
989 return ESCAPES.get(c) || c;
990}
991
992function parseArguments(name, args) {
993 const results = [];
994 const chunks = args.trim().split(/\s*,\s*/g);
995 let matches;
996
997 for (const chunk of chunks) {
998 if (!isNaN(chunk)) {
999 results.push(Number(chunk));
1000 } else if ((matches = chunk.match(STRING_REGEX))) {
1001 results.push(matches[2].replace(ESCAPE_REGEX, (m, escape, chr) => escape ? unescape(escape) : chr));
1002 } else {
1003 throw new Error(`Invalid Chalk template style argument: ${chunk} (in style '${name}')`);
1004 }
1005 }
1006
1007 return results;
1008}
1009
1010function parseStyle(style) {
1011 STYLE_REGEX.lastIndex = 0;
1012
1013 const results = [];
1014 let matches;
1015
1016 while ((matches = STYLE_REGEX.exec(style)) !== null) {
1017 const name = matches[1];
1018
1019 if (matches[2]) {
1020 const args = parseArguments(name, matches[2]);
1021 results.push([name].concat(args));
1022 } else {
1023 results.push([name]);
1024 }
1025 }
1026
1027 return results;
1028}
1029
1030function buildStyle(chalk, styles) {
1031 const enabled = {};
1032
1033 for (const layer of styles) {
1034 for (const style of layer.styles) {
1035 enabled[style[0]] = layer.inverse ? null : style.slice(1);
1036 }
1037 }
1038
1039 let current = chalk;
1040 for (const styleName of Object.keys(enabled)) {
1041 if (Array.isArray(enabled[styleName])) {
1042 if (!(styleName in current)) {
1043 throw new Error(`Unknown Chalk style: ${styleName}`);
1044 }
1045
1046 if (enabled[styleName].length > 0) {
1047 current = current[styleName].apply(current, enabled[styleName]);
1048 } else {
1049 current = current[styleName];
1050 }
1051 }
1052 }
1053
1054 return current;
1055}
1056
1057module.exports = (chalk, tmp) => {
1058 const styles = [];
1059 const chunks = [];
1060 let chunk = [];
1061
1062 // eslint-disable-next-line max-params
1063 tmp.replace(TEMPLATE_REGEX, (m, escapeChar, inverse, style, close, chr) => {
1064 if (escapeChar) {
1065 chunk.push(unescape(escapeChar));
1066 } else if (style) {
1067 const str = chunk.join('');
1068 chunk = [];
1069 chunks.push(styles.length === 0 ? str : buildStyle(chalk, styles)(str));
1070 styles.push({inverse, styles: parseStyle(style)});
1071 } else if (close) {
1072 if (styles.length === 0) {
1073 throw new Error('Found extraneous } in Chalk template literal');
1074 }
1075
1076 chunks.push(buildStyle(chalk, styles)(chunk.join('')));
1077 chunk = [];
1078 styles.pop();
1079 } else {
1080 chunk.push(chr);
1081 }
1082 });
1083
1084 chunks.push(chunk.join(''));
1085
1086 if (styles.length > 0) {
1087 const errMsg = `Chalk template literal is missing ${styles.length} closing bracket${styles.length === 1 ? '' : 's'} (\`}\`)`;
1088 throw new Error(errMsg);
1089 }
1090
1091 return chunks.join('');
1092};
1093
1094
1095/***/ }),
1096
1097/***/ "./node_modules/chardet/encoding/iso2022.js":
1098/*!**************************************************!*\
1099 !*** ./node_modules/chardet/encoding/iso2022.js ***!
1100 \**************************************************/
1101/*! no static exports found */
1102/***/ (function(module, exports, __webpack_require__) {
1103
1104var util = __webpack_require__(/*! util */ "util"),
1105 Match = __webpack_require__ (/*! ../match */ "./node_modules/chardet/match.js");
1106
1107
1108/**
1109 * This is a superclass for the individual detectors for
1110 * each of the detectable members of the ISO 2022 family
1111 * of encodings.
1112 */
1113
1114function ISO_2022() {}
1115
1116ISO_2022.prototype.match = function(det) {
1117
1118 /**
1119 * Matching function shared among the 2022 detectors JP, CN and KR
1120 * Counts up the number of legal an unrecognized escape sequences in
1121 * the sample of text, and computes a score based on the total number &
1122 * the proportion that fit the encoding.
1123 *
1124 *
1125 * @param text the byte buffer containing text to analyse
1126 * @param textLen the size of the text in the byte.
1127 * @param escapeSequences the byte escape sequences to test for.
1128 * @return match quality, in the range of 0-100.
1129 */
1130
1131 var i, j;
1132 var escN;
1133 var hits = 0;
1134 var misses = 0;
1135 var shifts = 0;
1136 var quality;
1137
1138 // TODO: refactor me
1139 var text = det.fInputBytes;
1140 var textLen = det.fInputLen;
1141
1142 scanInput:
1143 for (i = 0; i < textLen; i++) {
1144 if (text[i] == 0x1b) {
1145 checkEscapes:
1146 for (escN = 0; escN < this.escapeSequences.length; escN++) {
1147 var seq = this.escapeSequences[escN];
1148
1149 if ((textLen - i) < seq.length)
1150 continue checkEscapes;
1151
1152 for (j = 1; j < seq.length; j++)
1153 if (seq[j] != text[i + j])
1154 continue checkEscapes;
1155
1156
1157 hits++;
1158 i += seq.length - 1;
1159 continue scanInput;
1160 }
1161
1162 misses++;
1163 }
1164
1165 // Shift in/out
1166 if (text[i] == 0x0e || text[i] == 0x0f)
1167 shifts++;
1168
1169 }
1170
1171 if (hits == 0)
1172 return null;
1173
1174 //
1175 // Initial quality is based on relative proportion of recongized vs.
1176 // unrecognized escape sequences.
1177 // All good: quality = 100;
1178 // half or less good: quality = 0;
1179 // linear inbetween.
1180 quality = (100 * hits - 100 * misses) / (hits + misses);
1181
1182 // Back off quality if there were too few escape sequences seen.
1183 // Include shifts in this computation, so that KR does not get penalized
1184 // for having only a single Escape sequence, but many shifts.
1185 if (hits + shifts < 5)
1186 quality -= (5 - (hits + shifts)) * 10;
1187
1188 return quality <= 0 ? null : new Match(det, this, quality);
1189};
1190
1191module.exports.ISO_2022_JP = function() {
1192 this.name = function() {
1193 return 'ISO-2022-JP';
1194 };
1195 this.escapeSequences = [
1196 [ 0x1b, 0x24, 0x28, 0x43 ], // KS X 1001:1992
1197 [ 0x1b, 0x24, 0x28, 0x44 ], // JIS X 212-1990
1198 [ 0x1b, 0x24, 0x40 ], // JIS C 6226-1978
1199 [ 0x1b, 0x24, 0x41 ], // GB 2312-80
1200 [ 0x1b, 0x24, 0x42 ], // JIS X 208-1983
1201 [ 0x1b, 0x26, 0x40 ], // JIS X 208 1990, 1997
1202 [ 0x1b, 0x28, 0x42 ], // ASCII
1203 [ 0x1b, 0x28, 0x48 ], // JIS-Roman
1204 [ 0x1b, 0x28, 0x49 ], // Half-width katakana
1205 [ 0x1b, 0x28, 0x4a ], // JIS-Roman
1206 [ 0x1b, 0x2e, 0x41 ], // ISO 8859-1
1207 [ 0x1b, 0x2e, 0x46 ] // ISO 8859-7
1208 ];
1209};
1210util.inherits(module.exports.ISO_2022_JP, ISO_2022);
1211
1212
1213
1214module.exports.ISO_2022_KR = function() {
1215 this.name = function() {
1216 return 'ISO-2022-KR';
1217 };
1218 this.escapeSequences = [
1219 [ 0x1b, 0x24, 0x29, 0x43 ]
1220 ];
1221};
1222util.inherits(module.exports.ISO_2022_KR, ISO_2022);
1223
1224
1225
1226module.exports.ISO_2022_CN = function() {
1227 this.name = function() {
1228 return 'ISO-2022-CN';
1229 };
1230 this.escapeSequences = [
1231 [ 0x1b, 0x24, 0x29, 0x41 ], // GB 2312-80
1232 [ 0x1b, 0x24, 0x29, 0x47 ], // CNS 11643-1992 Plane 1
1233 [ 0x1b, 0x24, 0x2A, 0x48 ], // CNS 11643-1992 Plane 2
1234 [ 0x1b, 0x24, 0x29, 0x45 ], // ISO-IR-165
1235 [ 0x1b, 0x24, 0x2B, 0x49 ], // CNS 11643-1992 Plane 3
1236 [ 0x1b, 0x24, 0x2B, 0x4A ], // CNS 11643-1992 Plane 4
1237 [ 0x1b, 0x24, 0x2B, 0x4B ], // CNS 11643-1992 Plane 5
1238 [ 0x1b, 0x24, 0x2B, 0x4C ], // CNS 11643-1992 Plane 6
1239 [ 0x1b, 0x24, 0x2B, 0x4D ], // CNS 11643-1992 Plane 7
1240 [ 0x1b, 0x4e ], // SS2
1241 [ 0x1b, 0x4f ] // SS3
1242 ];
1243};
1244util.inherits(module.exports.ISO_2022_CN, ISO_2022);
1245
1246
1247/***/ }),
1248
1249/***/ "./node_modules/chardet/encoding/mbcs.js":
1250/*!***********************************************!*\
1251 !*** ./node_modules/chardet/encoding/mbcs.js ***!
1252 \***********************************************/
1253/*! no static exports found */
1254/***/ (function(module, exports, __webpack_require__) {
1255
1256var util = __webpack_require__(/*! util */ "util"),
1257 Match = __webpack_require__ (/*! ../match */ "./node_modules/chardet/match.js");
1258
1259/**
1260 * Binary search implementation (recursive)
1261 */
1262function binarySearch(arr, searchValue) {
1263 function find(arr, searchValue, left, right) {
1264 if (right < left)
1265 return -1;
1266
1267 /*
1268 int mid = mid = (left + right) / 2;
1269 There is a bug in the above line;
1270 Joshua Bloch suggests the following replacement:
1271 */
1272 var mid = Math.floor((left + right) >>> 1);
1273 if (searchValue > arr[mid])
1274 return find(arr, searchValue, mid + 1, right);
1275
1276 if (searchValue < arr[mid])
1277 return find(arr, searchValue, left, mid - 1);
1278
1279 return mid;
1280 };
1281
1282 return find(arr, searchValue, 0, arr.length - 1);
1283};
1284
1285// 'Character' iterated character class.
1286// Recognizers for specific mbcs encodings make their 'characters' available
1287// by providing a nextChar() function that fills in an instance of iteratedChar
1288// with the next char from the input.
1289// The returned characters are not converted to Unicode, but remain as the raw
1290// bytes (concatenated into an int) from the codepage data.
1291//
1292// For Asian charsets, use the raw input rather than the input that has been
1293// stripped of markup. Detection only considers multi-byte chars, effectively
1294// stripping markup anyway, and double byte chars do occur in markup too.
1295//
1296function IteratedChar() {
1297
1298 this.charValue = 0; // 1-4 bytes from the raw input data
1299 this.index = 0;
1300 this.nextIndex = 0;
1301 this.error = false;
1302 this.done = false;
1303
1304 this.reset = function() {
1305 this.charValue = 0;
1306 this.index = -1;
1307 this.nextIndex = 0;
1308 this.error = false;
1309 this.done = false;
1310 };
1311
1312 this.nextByte = function(det) {
1313 if (this.nextIndex >= det.fRawLength) {
1314 this.done = true;
1315 return -1;
1316 }
1317 var byteValue = det.fRawInput[this.nextIndex++] & 0x00ff;
1318 return byteValue;
1319 };
1320};
1321
1322
1323
1324/**
1325 * Asian double or multi-byte - charsets.
1326 * Match is determined mostly by the input data adhering to the
1327 * encoding scheme for the charset, and, optionally,
1328 * frequency-of-occurence of characters.
1329 */
1330
1331function mbcs() {};
1332
1333/**
1334 * Test the match of this charset with the input text data
1335 * which is obtained via the CharsetDetector object.
1336 *
1337 * @param det The CharsetDetector, which contains the input text
1338 * to be checked for being in this charset.
1339 * @return Two values packed into one int (Damn java, anyhow)
1340 * bits 0-7: the match confidence, ranging from 0-100
1341 * bits 8-15: The match reason, an enum-like value.
1342 */
1343mbcs.prototype.match = function(det) {
1344
1345 var singleByteCharCount = 0, //TODO Do we really need this?
1346 doubleByteCharCount = 0,
1347 commonCharCount = 0,
1348 badCharCount = 0,
1349 totalCharCount = 0,
1350 confidence = 0;
1351
1352 var iter = new IteratedChar();
1353
1354 detectBlock: {
1355 for (iter.reset(); this.nextChar(iter, det);) {
1356 totalCharCount++;
1357 if (iter.error) {
1358 badCharCount++;
1359 } else {
1360 var cv = iter.charValue & 0xFFFFFFFF;
1361
1362 if (cv <= 0xff) {
1363 singleByteCharCount++;
1364 } else {
1365 doubleByteCharCount++;
1366 if (this.commonChars != null) {
1367 // NOTE: This assumes that there are no 4-byte common chars.
1368 if (binarySearch(this.commonChars, cv) >= 0) {
1369 commonCharCount++;
1370 }
1371 }
1372 }
1373 }
1374 if (badCharCount >= 2 && badCharCount * 5 >= doubleByteCharCount) {
1375 // console.log('its here!')
1376 // Bail out early if the byte data is not matching the encoding scheme.
1377 break detectBlock;
1378 }
1379 }
1380
1381 if (doubleByteCharCount <= 10 && badCharCount== 0) {
1382 // Not many multi-byte chars.
1383 if (doubleByteCharCount == 0 && totalCharCount < 10) {
1384 // There weren't any multibyte sequences, and there was a low density of non-ASCII single bytes.
1385 // We don't have enough data to have any confidence.
1386 // Statistical analysis of single byte non-ASCII charcters would probably help here.
1387 confidence = 0;
1388 }
1389 else {
1390 // ASCII or ISO file? It's probably not our encoding,
1391 // but is not incompatible with our encoding, so don't give it a zero.
1392 confidence = 10;
1393 }
1394 break detectBlock;
1395 }
1396
1397 //
1398 // No match if there are too many characters that don't fit the encoding scheme.
1399 // (should we have zero tolerance for these?)
1400 //
1401 if (doubleByteCharCount < 20 * badCharCount) {
1402 confidence = 0;
1403 break detectBlock;
1404 }
1405
1406 if (this.commonChars == null) {
1407 // We have no statistics on frequently occuring characters.
1408 // Assess confidence purely on having a reasonable number of
1409 // multi-byte characters (the more the better
1410 confidence = 30 + doubleByteCharCount - 20 * badCharCount;
1411 if (confidence > 100) {
1412 confidence = 100;
1413 }
1414 } else {
1415 //
1416 // Frequency of occurence statistics exist.
1417 //
1418 var maxVal = Math.log(parseFloat(doubleByteCharCount) / 4);
1419 var scaleFactor = 90.0 / maxVal;
1420 confidence = Math.floor(Math.log(commonCharCount + 1) * scaleFactor + 10);
1421 confidence = Math.min(confidence, 100);
1422 }
1423 } // end of detectBlock:
1424
1425 return confidence == 0 ? null : new Match(det, this, confidence);
1426};
1427
1428/**
1429 * Get the next character (however many bytes it is) from the input data
1430 * Subclasses for specific charset encodings must implement this function
1431 * to get characters according to the rules of their encoding scheme.
1432 *
1433 * This function is not a method of class iteratedChar only because
1434 * that would require a lot of extra derived classes, which is awkward.
1435 * @param it The iteratedChar 'struct' into which the returned char is placed.
1436 * @param det The charset detector, which is needed to get at the input byte data
1437 * being iterated over.
1438 * @return True if a character was returned, false at end of input.
1439 */
1440
1441mbcs.prototype.nextChar = function(iter, det) {};
1442
1443
1444
1445/**
1446 * Shift-JIS charset recognizer.
1447 */
1448module.exports.sjis = function() {
1449 this.name = function() {
1450 return 'Shift-JIS';
1451 };
1452 this.language = function() {
1453 return 'ja';
1454 };
1455
1456 // TODO: This set of data comes from the character frequency-
1457 // of-occurence analysis tool. The data needs to be moved
1458 // into a resource and loaded from there.
1459 this.commonChars = [
1460 0x8140, 0x8141, 0x8142, 0x8145, 0x815b, 0x8169, 0x816a, 0x8175, 0x8176, 0x82a0,
1461 0x82a2, 0x82a4, 0x82a9, 0x82aa, 0x82ab, 0x82ad, 0x82af, 0x82b1, 0x82b3, 0x82b5,
1462 0x82b7, 0x82bd, 0x82be, 0x82c1, 0x82c4, 0x82c5, 0x82c6, 0x82c8, 0x82c9, 0x82cc,
1463 0x82cd, 0x82dc, 0x82e0, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82f0, 0x82f1, 0x8341,
1464 0x8343, 0x834e, 0x834f, 0x8358, 0x835e, 0x8362, 0x8367, 0x8375, 0x8376, 0x8389,
1465 0x838a, 0x838b, 0x838d, 0x8393, 0x8e96, 0x93fa, 0x95aa
1466 ];
1467
1468 this.nextChar = function(iter, det) {
1469 iter.index = iter.nextIndex;
1470 iter.error = false;
1471
1472 var firstByte;
1473 firstByte = iter.charValue = iter.nextByte(det);
1474 if (firstByte < 0)
1475 return false;
1476
1477 if (firstByte <= 0x7f || (firstByte > 0xa0 && firstByte <= 0xdf))
1478 return true;
1479
1480 var secondByte = iter.nextByte(det);
1481 if (secondByte < 0)
1482 return false;
1483
1484 iter.charValue = (firstByte << 8) | secondByte;
1485 if (! ((secondByte >= 0x40 && secondByte <= 0x7f) || (secondByte >= 0x80 && secondByte <= 0xff))) {
1486 // Illegal second byte value.
1487 iter.error = true;
1488 }
1489 return true;
1490 };
1491};
1492util.inherits(module.exports.sjis, mbcs);
1493
1494
1495
1496/**
1497 * Big5 charset recognizer.
1498 */
1499module.exports.big5 = function() {
1500 this.name = function() {
1501 return 'Big5';
1502 };
1503 this.language = function() {
1504 return 'zh';
1505 };
1506 // TODO: This set of data comes from the character frequency-
1507 // of-occurence analysis tool. The data needs to be moved
1508 // into a resource and loaded from there.
1509 this.commonChars = [
1510 0xa140, 0xa141, 0xa142, 0xa143, 0xa147, 0xa149, 0xa175, 0xa176, 0xa440, 0xa446,
1511 0xa447, 0xa448, 0xa451, 0xa454, 0xa457, 0xa464, 0xa46a, 0xa46c, 0xa477, 0xa4a3,
1512 0xa4a4, 0xa4a7, 0xa4c1, 0xa4ce, 0xa4d1, 0xa4df, 0xa4e8, 0xa4fd, 0xa540, 0xa548,
1513 0xa558, 0xa569, 0xa5cd, 0xa5e7, 0xa657, 0xa661, 0xa662, 0xa668, 0xa670, 0xa6a8,
1514 0xa6b3, 0xa6b9, 0xa6d3, 0xa6db, 0xa6e6, 0xa6f2, 0xa740, 0xa751, 0xa759, 0xa7da,
1515 0xa8a3, 0xa8a5, 0xa8ad, 0xa8d1, 0xa8d3, 0xa8e4, 0xa8fc, 0xa9c0, 0xa9d2, 0xa9f3,
1516 0xaa6b, 0xaaba, 0xaabe, 0xaacc, 0xaafc, 0xac47, 0xac4f, 0xacb0, 0xacd2, 0xad59,
1517 0xaec9, 0xafe0, 0xb0ea, 0xb16f, 0xb2b3, 0xb2c4, 0xb36f, 0xb44c, 0xb44e, 0xb54c,
1518 0xb5a5, 0xb5bd, 0xb5d0, 0xb5d8, 0xb671, 0xb7ed, 0xb867, 0xb944, 0xbad8, 0xbb44,
1519 0xbba1, 0xbdd1, 0xc2c4, 0xc3b9, 0xc440, 0xc45f
1520 ];
1521 this.nextChar = function(iter, det) {
1522 iter.index = iter.nextIndex;
1523 iter.error = false;
1524
1525 var firstByte = iter.charValue = iter.nextByte(det);
1526
1527 if (firstByte < 0)
1528 return false;
1529
1530 // single byte character.
1531 if (firstByte <= 0x7f || firstByte == 0xff)
1532 return true;
1533
1534 var secondByte = iter.nextByte(det);
1535
1536 if (secondByte < 0)
1537 return false;
1538
1539 iter.charValue = (iter.charValue << 8) | secondByte;
1540
1541 if (secondByte < 0x40 || secondByte == 0x7f || secondByte == 0xff)
1542 iter.error = true;
1543
1544 return true;
1545 };
1546};
1547util.inherits(module.exports.big5, mbcs);
1548
1549
1550
1551/**
1552 * EUC charset recognizers. One abstract class that provides the common function
1553 * for getting the next character according to the EUC encoding scheme,
1554 * and nested derived classes for EUC_KR, EUC_JP, EUC_CN.
1555 *
1556 * Get the next character value for EUC based encodings.
1557 * Character 'value' is simply the raw bytes that make up the character
1558 * packed into an int.
1559 */
1560function eucNextChar(iter, det) {
1561 iter.index = iter.nextIndex;
1562 iter.error = false;
1563 var firstByte = 0;
1564 var secondByte = 0;
1565 var thirdByte = 0;
1566 //int fourthByte = 0;
1567 buildChar: {
1568 firstByte = iter.charValue = iter.nextByte(det);
1569 if (firstByte < 0) {
1570 // Ran off the end of the input data
1571 iter.done = true;
1572 break buildChar;
1573 }
1574 if (firstByte <= 0x8d) {
1575 // single byte char
1576 break buildChar;
1577 }
1578 secondByte = iter.nextByte(det);
1579 iter.charValue = (iter.charValue << 8) | secondByte;
1580 if (firstByte >= 0xA1 && firstByte <= 0xfe) {
1581 // Two byte Char
1582 if (secondByte < 0xa1) {
1583 iter.error = true;
1584 }
1585 break buildChar;
1586 }
1587 if (firstByte == 0x8e) {
1588 // Code Set 2.
1589 // In EUC-JP, total char size is 2 bytes, only one byte of actual char value.
1590 // In EUC-TW, total char size is 4 bytes, three bytes contribute to char value.
1591 // We don't know which we've got.
1592 // Treat it like EUC-JP. If the data really was EUC-TW, the following two
1593 // bytes will look like a well formed 2 byte char.
1594 if (secondByte < 0xa1) {
1595 iter.error = true;
1596 }
1597 break buildChar;
1598 }
1599 if (firstByte == 0x8f) {
1600 // Code set 3.
1601 // Three byte total char size, two bytes of actual char value.
1602 thirdByte = iter.nextByte(det);
1603 iter.charValue = (iter.charValue << 8) | thirdByte;
1604 if (thirdByte < 0xa1) {
1605 iter.error = true;
1606 }
1607 }
1608 }
1609 return iter.done == false;
1610};
1611
1612
1613
1614/**
1615 * The charset recognize for EUC-JP. A singleton instance of this class
1616 * is created and kept by the public CharsetDetector class
1617 */
1618module.exports.euc_jp = function() {
1619 this.name = function() {
1620 return 'EUC-JP';
1621 };
1622 this.language = function() {
1623 return 'ja';
1624 };
1625
1626 // TODO: This set of data comes from the character frequency-
1627 // of-occurence analysis tool. The data needs to be moved
1628 // into a resource and loaded from there.
1629 this.commonChars = [
1630 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a6, 0xa1bc, 0xa1ca, 0xa1cb, 0xa1d6, 0xa1d7, 0xa4a2,
1631 0xa4a4, 0xa4a6, 0xa4a8, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4af, 0xa4b1, 0xa4b3,
1632 0xa4b5, 0xa4b7, 0xa4b9, 0xa4bb, 0xa4bd, 0xa4bf, 0xa4c0, 0xa4c1, 0xa4c3, 0xa4c4,
1633 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4ce, 0xa4cf, 0xa4d0, 0xa4de,
1634 0xa4df, 0xa4e1, 0xa4e2, 0xa4e4, 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ef,
1635 0xa4f2, 0xa4f3, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a6, 0xa5a7, 0xa5aa, 0xa5ad, 0xa5af,
1636 0xa5b0, 0xa5b3, 0xa5b5, 0xa5b7, 0xa5b8, 0xa5b9, 0xa5bf, 0xa5c3, 0xa5c6, 0xa5c7,
1637 0xa5c8, 0xa5c9, 0xa5cb, 0xa5d0, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5de, 0xa5e0, 0xa5e1,
1638 0xa5e5, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5f3, 0xb8a9, 0xb9d4, 0xbaee,
1639 0xbbc8, 0xbef0, 0xbfb7, 0xc4ea, 0xc6fc, 0xc7bd, 0xcab8, 0xcaf3, 0xcbdc, 0xcdd1
1640 ];
1641
1642 this.nextChar = eucNextChar;
1643};
1644util.inherits(module.exports.euc_jp, mbcs);
1645
1646
1647
1648/**
1649 * The charset recognize for EUC-KR. A singleton instance of this class
1650 * is created and kept by the public CharsetDetector class
1651 */
1652module.exports.euc_kr = function() {
1653 this.name = function() {
1654 return 'EUC-KR';
1655 };
1656 this.language = function() {
1657 return 'ko';
1658 };
1659
1660 // TODO: This set of data comes from the character frequency-
1661 // of-occurence analysis tool. The data needs to be moved
1662 // into a resource and loaded from there.
1663 this.commonChars = [
1664 0xb0a1, 0xb0b3, 0xb0c5, 0xb0cd, 0xb0d4, 0xb0e6, 0xb0ed, 0xb0f8, 0xb0fa, 0xb0fc,
1665 0xb1b8, 0xb1b9, 0xb1c7, 0xb1d7, 0xb1e2, 0xb3aa, 0xb3bb, 0xb4c2, 0xb4cf, 0xb4d9,
1666 0xb4eb, 0xb5a5, 0xb5b5, 0xb5bf, 0xb5c7, 0xb5e9, 0xb6f3, 0xb7af, 0xb7c2, 0xb7ce,
1667 0xb8a6, 0xb8ae, 0xb8b6, 0xb8b8, 0xb8bb, 0xb8e9, 0xb9ab, 0xb9ae, 0xb9cc, 0xb9ce,
1668 0xb9fd, 0xbab8, 0xbace, 0xbad0, 0xbaf1, 0xbbe7, 0xbbf3, 0xbbfd, 0xbcad, 0xbcba,
1669 0xbcd2, 0xbcf6, 0xbdba, 0xbdc0, 0xbdc3, 0xbdc5, 0xbec6, 0xbec8, 0xbedf, 0xbeee,
1670 0xbef8, 0xbefa, 0xbfa1, 0xbfa9, 0xbfc0, 0xbfe4, 0xbfeb, 0xbfec, 0xbff8, 0xc0a7,
1671 0xc0af, 0xc0b8, 0xc0ba, 0xc0bb, 0xc0bd, 0xc0c7, 0xc0cc, 0xc0ce, 0xc0cf, 0xc0d6,
1672 0xc0da, 0xc0e5, 0xc0fb, 0xc0fc, 0xc1a4, 0xc1a6, 0xc1b6, 0xc1d6, 0xc1df, 0xc1f6,
1673 0xc1f8, 0xc4a1, 0xc5cd, 0xc6ae, 0xc7cf, 0xc7d1, 0xc7d2, 0xc7d8, 0xc7e5, 0xc8ad
1674 ];
1675
1676 this.nextChar = eucNextChar;
1677};
1678util.inherits(module.exports.euc_kr, mbcs);
1679
1680
1681
1682/**
1683 * GB-18030 recognizer. Uses simplified Chinese statistics.
1684 */
1685module.exports.gb_18030 = function() {
1686 this.name = function() {
1687 return 'GB18030';
1688 };
1689 this.language = function() {
1690 return 'zh';
1691 };
1692
1693 /*
1694 * Get the next character value for EUC based encodings.
1695 * Character 'value' is simply the raw bytes that make up the character
1696 * packed into an int.
1697 */
1698 this.nextChar = function(iter, det) {
1699 iter.index = iter.nextIndex;
1700 iter.error = false;
1701 var firstByte = 0;
1702 var secondByte = 0;
1703 var thirdByte = 0;
1704 var fourthByte = 0;
1705 buildChar: {
1706 firstByte = iter.charValue = iter.nextByte(det);
1707 if (firstByte < 0) {
1708 // Ran off the end of the input data
1709 iter.done = true;
1710 break buildChar;
1711 }
1712 if (firstByte <= 0x80) {
1713 // single byte char
1714 break buildChar;
1715 }
1716 secondByte = iter.nextByte(det);
1717 iter.charValue = (iter.charValue << 8) | secondByte;
1718 if (firstByte >= 0x81 && firstByte <= 0xFE) {
1719 // Two byte Char
1720 if ((secondByte >= 0x40 && secondByte <= 0x7E) || (secondByte >=80 && secondByte <= 0xFE)) {
1721 break buildChar;
1722 }
1723 // Four byte char
1724 if (secondByte >= 0x30 && secondByte <= 0x39) {
1725 thirdByte = iter.nextByte(det);
1726 if (thirdByte >= 0x81 && thirdByte <= 0xFE) {
1727 fourthByte = iter.nextByte(det);
1728 if (fourthByte >= 0x30 && fourthByte <= 0x39) {
1729 iter.charValue = (iter.charValue << 16) | (thirdByte << 8) | fourthByte;
1730 break buildChar;
1731 }
1732 }
1733 }
1734 iter.error = true;
1735 break buildChar;
1736 }
1737 }
1738 return iter.done == false;
1739 };
1740
1741 // TODO: This set of data comes from the character frequency-
1742 // of-occurence analysis tool. The data needs to be moved
1743 // into a resource and loaded from there.
1744 this.commonChars = [
1745 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1b0, 0xa1b1, 0xa1f1, 0xa1f3, 0xa3a1, 0xa3ac,
1746 0xa3ba, 0xb1a8, 0xb1b8, 0xb1be, 0xb2bb, 0xb3c9, 0xb3f6, 0xb4f3, 0xb5bd, 0xb5c4,
1747 0xb5e3, 0xb6af, 0xb6d4, 0xb6e0, 0xb7a2, 0xb7a8, 0xb7bd, 0xb7d6, 0xb7dd, 0xb8b4,
1748 0xb8df, 0xb8f6, 0xb9ab, 0xb9c9, 0xb9d8, 0xb9fa, 0xb9fd, 0xbacd, 0xbba7, 0xbbd6,
1749 0xbbe1, 0xbbfa, 0xbcbc, 0xbcdb, 0xbcfe, 0xbdcc, 0xbecd, 0xbedd, 0xbfb4, 0xbfc6,
1750 0xbfc9, 0xc0b4, 0xc0ed, 0xc1cb, 0xc2db, 0xc3c7, 0xc4dc, 0xc4ea, 0xc5cc, 0xc6f7,
1751 0xc7f8, 0xc8ab, 0xc8cb, 0xc8d5, 0xc8e7, 0xc9cf, 0xc9fa, 0xcab1, 0xcab5, 0xcac7,
1752 0xcad0, 0xcad6, 0xcaf5, 0xcafd, 0xccec, 0xcdf8, 0xceaa, 0xcec4, 0xced2, 0xcee5,
1753 0xcfb5, 0xcfc2, 0xcfd6, 0xd0c2, 0xd0c5, 0xd0d0, 0xd0d4, 0xd1a7, 0xd2aa, 0xd2b2,
1754 0xd2b5, 0xd2bb, 0xd2d4, 0xd3c3, 0xd3d0, 0xd3fd, 0xd4c2, 0xd4da, 0xd5e2, 0xd6d0
1755 ];
1756};
1757util.inherits(module.exports.gb_18030, mbcs);
1758
1759
1760/***/ }),
1761
1762/***/ "./node_modules/chardet/encoding/sbcs.js":
1763/*!***********************************************!*\
1764 !*** ./node_modules/chardet/encoding/sbcs.js ***!
1765 \***********************************************/
1766/*! no static exports found */
1767/***/ (function(module, exports, __webpack_require__) {
1768
1769var util = __webpack_require__(/*! util */ "util"),
1770 Match = __webpack_require__ (/*! ../match */ "./node_modules/chardet/match.js");
1771
1772/**
1773 * This class recognizes single-byte encodings. Because the encoding scheme is so
1774 * simple, language statistics are used to do the matching.
1775 */
1776
1777function NGramParser(theNgramList, theByteMap) {
1778 var N_GRAM_MASK = 0xFFFFFF;
1779
1780 this.byteIndex = 0;
1781 this.ngram = 0;
1782
1783 this.ngramList = theNgramList;
1784 this.byteMap = theByteMap;
1785
1786 this.ngramCount = 0;
1787 this.hitCount = 0;
1788
1789 this.spaceChar;
1790
1791 /*
1792 * Binary search for value in table, which must have exactly 64 entries.
1793 */
1794 this.search = function(table, value) {
1795 var index = 0;
1796
1797 if (table[index + 32] <= value) index += 32;
1798 if (table[index + 16] <= value) index += 16;
1799 if (table[index + 8] <= value) index += 8;
1800 if (table[index + 4] <= value) index += 4;
1801 if (table[index + 2] <= value) index += 2;
1802 if (table[index + 1] <= value) index += 1;
1803 if (table[index] > value) index -= 1;
1804
1805 if (index < 0 || table[index] != value)
1806 return -1;
1807
1808 return index;
1809 };
1810
1811 this.lookup = function(thisNgram) {
1812 this.ngramCount += 1;
1813 if (this.search(this.ngramList, thisNgram) >= 0) {
1814 this.hitCount += 1;
1815 }
1816 };
1817
1818 this.addByte = function(b) {
1819 this.ngram = ((this.ngram << 8) + (b & 0xFF)) & N_GRAM_MASK;
1820 this.lookup(this.ngram);
1821 }
1822
1823 this.nextByte = function(det) {
1824 if (this.byteIndex >= det.fInputLen)
1825 return -1;
1826
1827 return det.fInputBytes[this.byteIndex++] & 0xFF;
1828 }
1829
1830 this.parse = function(det, spaceCh) {
1831 var b, ignoreSpace = false;
1832 this.spaceChar = spaceCh;
1833
1834 while ((b = this.nextByte(det)) >= 0) {
1835 var mb = this.byteMap[b];
1836
1837 // TODO: 0x20 might not be a space in all character sets...
1838 if (mb != 0) {
1839 if (!(mb == this.spaceChar && ignoreSpace)) {
1840 this.addByte(mb);
1841 }
1842
1843 ignoreSpace = (mb == this.spaceChar);
1844 }
1845 }
1846
1847 // TODO: Is this OK? The buffer could have ended in the middle of a word...
1848 this.addByte(this.spaceChar);
1849
1850 var rawPercent = this.hitCount / this.ngramCount;
1851
1852 // TODO - This is a bit of a hack to take care of a case
1853 // were we were getting a confidence of 135...
1854 if (rawPercent > 0.33)
1855 return 98;
1856
1857 return Math.floor(rawPercent * 300.0);
1858 };
1859};
1860
1861function NGramsPlusLang(la, ng) {
1862 this.fLang = la;
1863 this.fNGrams = ng;
1864};
1865
1866function sbcs() {};
1867sbcs.prototype.spaceChar = 0x20;
1868sbcs.prototype.ngrams = function() {};
1869sbcs.prototype.byteMap = function() {};
1870sbcs.prototype.match = function(det) {
1871
1872 var ngrams = this.ngrams();
1873 var multiple = (Array.isArray(ngrams) && ngrams[0] instanceof NGramsPlusLang);
1874
1875 if (!multiple) {
1876 var parser = new NGramParser(ngrams, this.byteMap());
1877 var confidence = parser.parse(det, this.spaceChar);
1878 return confidence <= 0 ? null : new Match(det, this, confidence);
1879 }
1880
1881 var bestConfidenceSoFar = -1;
1882 var lang = null;
1883
1884 for (var i = ngrams.length - 1; i >= 0; i--) {
1885 var ngl = ngrams[i];
1886
1887 var parser = new NGramParser(ngl.fNGrams, this.byteMap());
1888 var confidence = parser.parse(det, this.spaceChar);
1889 if (confidence > bestConfidenceSoFar) {
1890 bestConfidenceSoFar = confidence;
1891 lang = ngl.fLang;
1892 }
1893 }
1894
1895 var name = this.name(det);
1896 return bestConfidenceSoFar <= 0 ? null : new Match(det, this, bestConfidenceSoFar, name, lang);
1897};
1898
1899
1900module.exports.ISO_8859_1 = function() {
1901 this.byteMap = function() {
1902 return [
1903 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1904 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1905 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1906 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1907 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
1908 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1909 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1910 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1911 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1912 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
1913 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1914 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
1915 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
1916 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
1917 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
1918 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
1919 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1920 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1921 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1922 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1923 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
1924 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20,
1925 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
1926 0x20, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0x20,
1927 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
1928 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
1929 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
1930 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
1931 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
1932 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
1933 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
1934 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
1935 ];
1936 };
1937
1938 this.ngrams = function() {
1939 return [
1940 new NGramsPlusLang('da', [
1941 0x206166, 0x206174, 0x206465, 0x20656E, 0x206572, 0x20666F, 0x206861, 0x206920,
1942 0x206D65, 0x206F67, 0x2070E5, 0x207369, 0x207374, 0x207469, 0x207669, 0x616620,
1943 0x616E20, 0x616E64, 0x617220, 0x617420, 0x646520, 0x64656E, 0x646572, 0x646574,
1944 0x652073, 0x656420, 0x656465, 0x656E20, 0x656E64, 0x657220, 0x657265, 0x657320,
1945 0x657420, 0x666F72, 0x676520, 0x67656E, 0x676572, 0x696765, 0x696C20, 0x696E67,
1946 0x6B6520, 0x6B6B65, 0x6C6572, 0x6C6967, 0x6C6C65, 0x6D6564, 0x6E6465, 0x6E6520,
1947 0x6E6720, 0x6E6765, 0x6F6720, 0x6F6D20, 0x6F7220, 0x70E520, 0x722064, 0x722065,
1948 0x722073, 0x726520, 0x737465, 0x742073, 0x746520, 0x746572, 0x74696C, 0x766572
1949 ]),
1950 new NGramsPlusLang('de', [
1951 0x20616E, 0x206175, 0x206265, 0x206461, 0x206465, 0x206469, 0x206569, 0x206765,
1952 0x206861, 0x20696E, 0x206D69, 0x207363, 0x207365, 0x20756E, 0x207665, 0x20766F,
1953 0x207765, 0x207A75, 0x626572, 0x636820, 0x636865, 0x636874, 0x646173, 0x64656E,
1954 0x646572, 0x646965, 0x652064, 0x652073, 0x65696E, 0x656974, 0x656E20, 0x657220,
1955 0x657320, 0x67656E, 0x68656E, 0x687420, 0x696368, 0x696520, 0x696E20, 0x696E65,
1956 0x697420, 0x6C6963, 0x6C6C65, 0x6E2061, 0x6E2064, 0x6E2073, 0x6E6420, 0x6E6465,
1957 0x6E6520, 0x6E6720, 0x6E6765, 0x6E7465, 0x722064, 0x726465, 0x726569, 0x736368,
1958 0x737465, 0x742064, 0x746520, 0x74656E, 0x746572, 0x756E64, 0x756E67, 0x766572
1959 ]),
1960 new NGramsPlusLang('en', [
1961 0x206120, 0x20616E, 0x206265, 0x20636F, 0x20666F, 0x206861, 0x206865, 0x20696E,
1962 0x206D61, 0x206F66, 0x207072, 0x207265, 0x207361, 0x207374, 0x207468, 0x20746F,
1963 0x207768, 0x616964, 0x616C20, 0x616E20, 0x616E64, 0x617320, 0x617420, 0x617465,
1964 0x617469, 0x642061, 0x642074, 0x652061, 0x652073, 0x652074, 0x656420, 0x656E74,
1965 0x657220, 0x657320, 0x666F72, 0x686174, 0x686520, 0x686572, 0x696420, 0x696E20,
1966 0x696E67, 0x696F6E, 0x697320, 0x6E2061, 0x6E2074, 0x6E6420, 0x6E6720, 0x6E7420,
1967 0x6F6620, 0x6F6E20, 0x6F7220, 0x726520, 0x727320, 0x732061, 0x732074, 0x736169,
1968 0x737420, 0x742074, 0x746572, 0x746861, 0x746865, 0x74696F, 0x746F20, 0x747320
1969 ]),
1970 new NGramsPlusLang('es', [
1971 0x206120, 0x206361, 0x20636F, 0x206465, 0x20656C, 0x20656E, 0x206573, 0x20696E,
1972 0x206C61, 0x206C6F, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207265, 0x207365,
1973 0x20756E, 0x207920, 0x612063, 0x612064, 0x612065, 0x61206C, 0x612070, 0x616369,
1974 0x61646F, 0x616C20, 0x617220, 0x617320, 0x6369F3, 0x636F6E, 0x646520, 0x64656C,
1975 0x646F20, 0x652064, 0x652065, 0x65206C, 0x656C20, 0x656E20, 0x656E74, 0x657320,
1976 0x657374, 0x69656E, 0x69F36E, 0x6C6120, 0x6C6F73, 0x6E2065, 0x6E7465, 0x6F2064,
1977 0x6F2065, 0x6F6E20, 0x6F7220, 0x6F7320, 0x706172, 0x717565, 0x726120, 0x726573,
1978 0x732064, 0x732065, 0x732070, 0x736520, 0x746520, 0x746F20, 0x756520, 0xF36E20
1979 ]),
1980 new NGramsPlusLang('fr', [
1981 0x206175, 0x20636F, 0x206461, 0x206465, 0x206475, 0x20656E, 0x206574, 0x206C61,
1982 0x206C65, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207365, 0x20736F, 0x20756E,
1983 0x20E020, 0x616E74, 0x617469, 0x636520, 0x636F6E, 0x646520, 0x646573, 0x647520,
1984 0x652061, 0x652063, 0x652064, 0x652065, 0x65206C, 0x652070, 0x652073, 0x656E20,
1985 0x656E74, 0x657220, 0x657320, 0x657420, 0x657572, 0x696F6E, 0x697320, 0x697420,
1986 0x6C6120, 0x6C6520, 0x6C6573, 0x6D656E, 0x6E2064, 0x6E6520, 0x6E7320, 0x6E7420,
1987 0x6F6E20, 0x6F6E74, 0x6F7572, 0x717565, 0x72206C, 0x726520, 0x732061, 0x732064,
1988 0x732065, 0x73206C, 0x732070, 0x742064, 0x746520, 0x74696F, 0x756520, 0x757220
1989 ]),
1990 new NGramsPlusLang('it', [
1991 0x20616C, 0x206368, 0x20636F, 0x206465, 0x206469, 0x206520, 0x20696C, 0x20696E,
1992 0x206C61, 0x207065, 0x207072, 0x20756E, 0x612063, 0x612064, 0x612070, 0x612073,
1993 0x61746F, 0x636865, 0x636F6E, 0x64656C, 0x646920, 0x652061, 0x652063, 0x652064,
1994 0x652069, 0x65206C, 0x652070, 0x652073, 0x656C20, 0x656C6C, 0x656E74, 0x657220,
1995 0x686520, 0x692061, 0x692063, 0x692064, 0x692073, 0x696120, 0x696C20, 0x696E20,
1996 0x696F6E, 0x6C6120, 0x6C6520, 0x6C6920, 0x6C6C61, 0x6E6520, 0x6E6920, 0x6E6F20,
1997 0x6E7465, 0x6F2061, 0x6F2064, 0x6F2069, 0x6F2073, 0x6F6E20, 0x6F6E65, 0x706572,
1998 0x726120, 0x726520, 0x736920, 0x746120, 0x746520, 0x746920, 0x746F20, 0x7A696F
1999 ]),
2000 new NGramsPlusLang('nl', [
2001 0x20616C, 0x206265, 0x206461, 0x206465, 0x206469, 0x206565, 0x20656E, 0x206765,
2002 0x206865, 0x20696E, 0x206D61, 0x206D65, 0x206F70, 0x207465, 0x207661, 0x207665,
2003 0x20766F, 0x207765, 0x207A69, 0x61616E, 0x616172, 0x616E20, 0x616E64, 0x617220,
2004 0x617420, 0x636874, 0x646520, 0x64656E, 0x646572, 0x652062, 0x652076, 0x65656E,
2005 0x656572, 0x656E20, 0x657220, 0x657273, 0x657420, 0x67656E, 0x686574, 0x696520,
2006 0x696E20, 0x696E67, 0x697320, 0x6E2062, 0x6E2064, 0x6E2065, 0x6E2068, 0x6E206F,
2007 0x6E2076, 0x6E6465, 0x6E6720, 0x6F6E64, 0x6F6F72, 0x6F7020, 0x6F7220, 0x736368,
2008 0x737465, 0x742064, 0x746520, 0x74656E, 0x746572, 0x76616E, 0x766572, 0x766F6F
2009 ]),
2010 new NGramsPlusLang('no', [
2011 0x206174, 0x206176, 0x206465, 0x20656E, 0x206572, 0x20666F, 0x206861, 0x206920,
2012 0x206D65, 0x206F67, 0x2070E5, 0x207365, 0x20736B, 0x20736F, 0x207374, 0x207469,
2013 0x207669, 0x20E520, 0x616E64, 0x617220, 0x617420, 0x646520, 0x64656E, 0x646574,
2014 0x652073, 0x656420, 0x656E20, 0x656E65, 0x657220, 0x657265, 0x657420, 0x657474,
2015 0x666F72, 0x67656E, 0x696B6B, 0x696C20, 0x696E67, 0x6B6520, 0x6B6B65, 0x6C6520,
2016 0x6C6C65, 0x6D6564, 0x6D656E, 0x6E2073, 0x6E6520, 0x6E6720, 0x6E6765, 0x6E6E65,
2017 0x6F6720, 0x6F6D20, 0x6F7220, 0x70E520, 0x722073, 0x726520, 0x736F6D, 0x737465,
2018 0x742073, 0x746520, 0x74656E, 0x746572, 0x74696C, 0x747420, 0x747465, 0x766572
2019 ]),
2020 new NGramsPlusLang('pt', [
2021 0x206120, 0x20636F, 0x206461, 0x206465, 0x20646F, 0x206520, 0x206573, 0x206D61,
2022 0x206E6F, 0x206F20, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207265, 0x207365,
2023 0x20756D, 0x612061, 0x612063, 0x612064, 0x612070, 0x616465, 0x61646F, 0x616C20,
2024 0x617220, 0x617261, 0x617320, 0x636F6D, 0x636F6E, 0x646120, 0x646520, 0x646F20,
2025 0x646F73, 0x652061, 0x652064, 0x656D20, 0x656E74, 0x657320, 0x657374, 0x696120,
2026 0x696361, 0x6D656E, 0x6E7465, 0x6E746F, 0x6F2061, 0x6F2063, 0x6F2064, 0x6F2065,
2027 0x6F2070, 0x6F7320, 0x706172, 0x717565, 0x726120, 0x726573, 0x732061, 0x732064,
2028 0x732065, 0x732070, 0x737461, 0x746520, 0x746F20, 0x756520, 0xE36F20, 0xE7E36F
2029 ]),
2030 new NGramsPlusLang('sv', [
2031 0x206174, 0x206176, 0x206465, 0x20656E, 0x2066F6, 0x206861, 0x206920, 0x20696E,
2032 0x206B6F, 0x206D65, 0x206F63, 0x2070E5, 0x20736B, 0x20736F, 0x207374, 0x207469,
2033 0x207661, 0x207669, 0x20E472, 0x616465, 0x616E20, 0x616E64, 0x617220, 0x617474,
2034 0x636820, 0x646520, 0x64656E, 0x646572, 0x646574, 0x656420, 0x656E20, 0x657220,
2035 0x657420, 0x66F672, 0x67656E, 0x696C6C, 0x696E67, 0x6B6120, 0x6C6C20, 0x6D6564,
2036 0x6E2073, 0x6E6120, 0x6E6465, 0x6E6720, 0x6E6765, 0x6E696E, 0x6F6368, 0x6F6D20,
2037 0x6F6E20, 0x70E520, 0x722061, 0x722073, 0x726120, 0x736B61, 0x736F6D, 0x742073,
2038 0x746120, 0x746520, 0x746572, 0x74696C, 0x747420, 0x766172, 0xE47220, 0xF67220,
2039 ])
2040 ];
2041 };
2042
2043 this.name = function(det) {
2044 return (det && det.fC1Bytes) ? 'windows-1252' : 'ISO-8859-1';
2045 };
2046};
2047util.inherits(module.exports.ISO_8859_1, sbcs);
2048
2049
2050module.exports.ISO_8859_2 = function() {
2051 this.byteMap = function() {
2052 return [
2053 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2054 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2055 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2056 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2057 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
2058 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2059 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2060 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2061 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2062 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2063 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2064 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2065 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2066 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2067 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2068 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2069 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2070 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2071 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2072 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2073 0x20, 0xB1, 0x20, 0xB3, 0x20, 0xB5, 0xB6, 0x20,
2074 0x20, 0xB9, 0xBA, 0xBB, 0xBC, 0x20, 0xBE, 0xBF,
2075 0x20, 0xB1, 0x20, 0xB3, 0x20, 0xB5, 0xB6, 0xB7,
2076 0x20, 0xB9, 0xBA, 0xBB, 0xBC, 0x20, 0xBE, 0xBF,
2077 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2078 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2079 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
2080 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
2081 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2082 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2083 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
2084 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x20
2085 ];
2086 }
2087
2088 this.ngrams = function() {
2089 return [
2090 new NGramsPlusLang('cs', [
2091 0x206120, 0x206279, 0x20646F, 0x206A65, 0x206E61, 0x206E65, 0x206F20, 0x206F64,
2092 0x20706F, 0x207072, 0x2070F8, 0x20726F, 0x207365, 0x20736F, 0x207374, 0x20746F,
2093 0x207620, 0x207679, 0x207A61, 0x612070, 0x636520, 0x636820, 0x652070, 0x652073,
2094 0x652076, 0x656D20, 0x656EED, 0x686F20, 0x686F64, 0x697374, 0x6A6520, 0x6B7465,
2095 0x6C6520, 0x6C6920, 0x6E6120, 0x6EE920, 0x6EEC20, 0x6EED20, 0x6F2070, 0x6F646E,
2096 0x6F6A69, 0x6F7374, 0x6F7520, 0x6F7661, 0x706F64, 0x706F6A, 0x70726F, 0x70F865,
2097 0x736520, 0x736F75, 0x737461, 0x737469, 0x73746E, 0x746572, 0x746EED, 0x746F20,
2098 0x752070, 0xBE6520, 0xE16EED, 0xE9686F, 0xED2070, 0xED2073, 0xED6D20, 0xF86564,
2099 ]),
2100 new NGramsPlusLang('hu', [
2101 0x206120, 0x20617A, 0x206265, 0x206567, 0x20656C, 0x206665, 0x206861, 0x20686F,
2102 0x206973, 0x206B65, 0x206B69, 0x206BF6, 0x206C65, 0x206D61, 0x206D65, 0x206D69,
2103 0x206E65, 0x20737A, 0x207465, 0x20E973, 0x612061, 0x61206B, 0x61206D, 0x612073,
2104 0x616B20, 0x616E20, 0x617A20, 0x62616E, 0x62656E, 0x656779, 0x656B20, 0x656C20,
2105 0x656C65, 0x656D20, 0x656E20, 0x657265, 0x657420, 0x657465, 0x657474, 0x677920,
2106 0x686F67, 0x696E74, 0x697320, 0x6B2061, 0x6BF67A, 0x6D6567, 0x6D696E, 0x6E2061,
2107 0x6E616B, 0x6E656B, 0x6E656D, 0x6E7420, 0x6F6779, 0x732061, 0x737A65, 0x737A74,
2108 0x737AE1, 0x73E967, 0x742061, 0x747420, 0x74E173, 0x7A6572, 0xE16E20, 0xE97320,
2109 ]),
2110 new NGramsPlusLang('pl', [
2111 0x20637A, 0x20646F, 0x206920, 0x206A65, 0x206B6F, 0x206D61, 0x206D69, 0x206E61,
2112 0x206E69, 0x206F64, 0x20706F, 0x207072, 0x207369, 0x207720, 0x207769, 0x207779,
2113 0x207A20, 0x207A61, 0x612070, 0x612077, 0x616E69, 0x636820, 0x637A65, 0x637A79,
2114 0x646F20, 0x647A69, 0x652070, 0x652073, 0x652077, 0x65207A, 0x65676F, 0x656A20,
2115 0x656D20, 0x656E69, 0x676F20, 0x696120, 0x696520, 0x69656A, 0x6B6120, 0x6B6920,
2116 0x6B6965, 0x6D6965, 0x6E6120, 0x6E6961, 0x6E6965, 0x6F2070, 0x6F7761, 0x6F7769,
2117 0x706F6C, 0x707261, 0x70726F, 0x70727A, 0x727A65, 0x727A79, 0x7369EA, 0x736B69,
2118 0x737461, 0x776965, 0x796368, 0x796D20, 0x7A6520, 0x7A6965, 0x7A7920, 0xF37720,
2119 ]),
2120 new NGramsPlusLang('ro', [
2121 0x206120, 0x206163, 0x206361, 0x206365, 0x20636F, 0x206375, 0x206465, 0x206469,
2122 0x206C61, 0x206D61, 0x207065, 0x207072, 0x207365, 0x2073E3, 0x20756E, 0x20BA69,
2123 0x20EE6E, 0x612063, 0x612064, 0x617265, 0x617420, 0x617465, 0x617520, 0x636172,
2124 0x636F6E, 0x637520, 0x63E320, 0x646520, 0x652061, 0x652063, 0x652064, 0x652070,
2125 0x652073, 0x656120, 0x656920, 0x656C65, 0x656E74, 0x657374, 0x692061, 0x692063,
2126 0x692064, 0x692070, 0x696520, 0x696920, 0x696E20, 0x6C6120, 0x6C6520, 0x6C6F72,
2127 0x6C7569, 0x6E6520, 0x6E7472, 0x6F7220, 0x70656E, 0x726520, 0x726561, 0x727520,
2128 0x73E320, 0x746520, 0x747275, 0x74E320, 0x756920, 0x756C20, 0xBA6920, 0xEE6E20,
2129 ])
2130 ];
2131 };
2132
2133 this.name = function(det) {
2134 return (det && det.fC1Bytes) ? 'windows-1250' : 'ISO-8859-2';
2135 };
2136};
2137util.inherits(module.exports.ISO_8859_2, sbcs);
2138
2139
2140module.exports.ISO_8859_5 = function() {
2141 this.byteMap = function() {
2142 return [
2143 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2144 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2145 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2146 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2147 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
2148 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2149 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2150 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2151 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2152 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2153 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2154 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2155 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2156 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2157 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2158 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2159 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2160 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2161 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2162 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2163 0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
2164 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x20, 0xFE, 0xFF,
2165 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
2166 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
2167 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2168 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2169 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
2170 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
2171 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2172 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2173 0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
2174 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x20, 0xFE, 0xFF
2175 ];
2176 };
2177
2178 this.ngrams = function() {
2179 return [
2180 0x20D220, 0x20D2DE, 0x20D4DE, 0x20D7D0, 0x20D820, 0x20DAD0, 0x20DADE, 0x20DDD0,
2181 0x20DDD5, 0x20DED1, 0x20DFDE, 0x20DFE0, 0x20E0D0, 0x20E1DE, 0x20E1E2, 0x20E2DE,
2182 0x20E7E2, 0x20EDE2, 0xD0DDD8, 0xD0E2EC, 0xD3DE20, 0xD5DBEC, 0xD5DDD8, 0xD5E1E2,
2183 0xD5E220, 0xD820DF, 0xD8D520, 0xD8D820, 0xD8EF20, 0xDBD5DD, 0xDBD820, 0xDBECDD,
2184 0xDDD020, 0xDDD520, 0xDDD8D5, 0xDDD8EF, 0xDDDE20, 0xDDDED2, 0xDE20D2, 0xDE20DF,
2185 0xDE20E1, 0xDED220, 0xDED2D0, 0xDED3DE, 0xDED920, 0xDEDBEC, 0xDEDC20, 0xDEE1E2,
2186 0xDFDEDB, 0xDFE0D5, 0xDFE0D8, 0xDFE0DE, 0xE0D0D2, 0xE0D5D4, 0xE1E2D0, 0xE1E2D2,
2187 0xE1E2D8, 0xE1EF20, 0xE2D5DB, 0xE2DE20, 0xE2DEE0, 0xE2EC20, 0xE7E2DE, 0xEBE520
2188 ];
2189 };
2190
2191 this.name = function(det) {
2192 return 'ISO-8859-5';
2193 };
2194
2195 this.language = function() {
2196 return 'ru';
2197 };
2198};
2199util.inherits(module.exports.ISO_8859_5, sbcs);
2200
2201
2202module.exports.ISO_8859_6 = function() {
2203 this.byteMap = function() {
2204 return [
2205 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2206 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2207 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2208 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2209 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
2210 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2211 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2212 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2213 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2214 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2215 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2216 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2217 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2218 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2219 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2220 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2221 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2222 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2223 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2224 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2225 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2226 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2227 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2228 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2229 0x20, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
2230 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
2231 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
2232 0xD8, 0xD9, 0xDA, 0x20, 0x20, 0x20, 0x20, 0x20,
2233 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2234 0xE8, 0xE9, 0xEA, 0x20, 0x20, 0x20, 0x20, 0x20,
2235 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2236 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
2237 ];
2238 };
2239
2240 this.ngrams = function() {
2241 return [
2242 0x20C7E4, 0x20C7E6, 0x20C8C7, 0x20D9E4, 0x20E1EA, 0x20E4E4, 0x20E5E6, 0x20E8C7,
2243 0xC720C7, 0xC7C120, 0xC7CA20, 0xC7D120, 0xC7E420, 0xC7E4C3, 0xC7E4C7, 0xC7E4C8,
2244 0xC7E4CA, 0xC7E4CC, 0xC7E4CD, 0xC7E4CF, 0xC7E4D3, 0xC7E4D9, 0xC7E4E2, 0xC7E4E5,
2245 0xC7E4E8, 0xC7E4EA, 0xC7E520, 0xC7E620, 0xC7E6CA, 0xC820C7, 0xC920C7, 0xC920E1,
2246 0xC920E4, 0xC920E5, 0xC920E8, 0xCA20C7, 0xCF20C7, 0xCFC920, 0xD120C7, 0xD1C920,
2247 0xD320C7, 0xD920C7, 0xD9E4E9, 0xE1EA20, 0xE420C7, 0xE4C920, 0xE4E920, 0xE4EA20,
2248 0xE520C7, 0xE5C720, 0xE5C920, 0xE5E620, 0xE620C7, 0xE720C7, 0xE7C720, 0xE8C7E4,
2249 0xE8E620, 0xE920C7, 0xEA20C7, 0xEA20E5, 0xEA20E8, 0xEAC920, 0xEAD120, 0xEAE620
2250 ];
2251 };
2252
2253 this.name = function(det) {
2254 return 'ISO-8859-6';
2255 };
2256
2257 this.language = function() {
2258 return 'ar';
2259 };
2260};
2261util.inherits(module.exports.ISO_8859_6, sbcs);
2262
2263
2264module.exports.ISO_8859_7 = function() {
2265 this.byteMap = function() {
2266 return [
2267 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2268 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2269 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2270 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2271 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
2272 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2273 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2274 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2275 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2276 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2277 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2278 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2279 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2280 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2281 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2282 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2283 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2284 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2285 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2286 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2287 0x20, 0xA1, 0xA2, 0x20, 0x20, 0x20, 0x20, 0x20,
2288 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2289 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xDC, 0x20,
2290 0xDD, 0xDE, 0xDF, 0x20, 0xFC, 0x20, 0xFD, 0xFE,
2291 0xC0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2292 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2293 0xF0, 0xF1, 0x20, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
2294 0xF8, 0xF9, 0xFA, 0xFB, 0xDC, 0xDD, 0xDE, 0xDF,
2295 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2296 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2297 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
2298 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x20
2299 ];
2300 };
2301
2302 this.ngrams = function() {
2303 return [
2304 0x20E1ED, 0x20E1F0, 0x20E3E9, 0x20E4E9, 0x20E5F0, 0x20E720, 0x20EAE1, 0x20ECE5,
2305 0x20EDE1, 0x20EF20, 0x20F0E1, 0x20F0EF, 0x20F0F1, 0x20F3F4, 0x20F3F5, 0x20F4E7,
2306 0x20F4EF, 0xDFE120, 0xE120E1, 0xE120F4, 0xE1E920, 0xE1ED20, 0xE1F0FC, 0xE1F220,
2307 0xE3E9E1, 0xE5E920, 0xE5F220, 0xE720F4, 0xE7ED20, 0xE7F220, 0xE920F4, 0xE9E120,
2308 0xE9EADE, 0xE9F220, 0xEAE1E9, 0xEAE1F4, 0xECE520, 0xED20E1, 0xED20E5, 0xED20F0,
2309 0xEDE120, 0xEFF220, 0xEFF520, 0xF0EFF5, 0xF0F1EF, 0xF0FC20, 0xF220E1, 0xF220E5,
2310 0xF220EA, 0xF220F0, 0xF220F4, 0xF3E520, 0xF3E720, 0xF3F4EF, 0xF4E120, 0xF4E1E9,
2311 0xF4E7ED, 0xF4E7F2, 0xF4E9EA, 0xF4EF20, 0xF4EFF5, 0xF4F9ED, 0xF9ED20, 0xFEED20
2312 ];
2313 };
2314
2315 this.name = function(det) {
2316 return (det && det.fC1Bytes) ? 'windows-1253' : 'ISO-8859-7';
2317 };
2318
2319 this.language = function() {
2320 return 'el';
2321 };
2322};
2323util.inherits(module.exports.ISO_8859_7, sbcs);
2324
2325module.exports.ISO_8859_8 = function() {
2326
2327 this.byteMap = function() {
2328 return [
2329 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2330 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2331 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2332 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2333 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
2334 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2335 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2336 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2337 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2338 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2339 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2340 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2341 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2342 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2343 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2344 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2345 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2346 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2347 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2348 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2349 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2350 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2351 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
2352 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2353 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2354 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2355 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2356 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2357 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2358 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2359 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
2360 0xF8, 0xF9, 0xFA, 0x20, 0x20, 0x20, 0x20, 0x20
2361 ];
2362 };
2363
2364 this.ngrams = function() {
2365 return [
2366 new NGramsPlusLang('he', [
2367 0x20E0E5, 0x20E0E7, 0x20E0E9, 0x20E0FA, 0x20E1E9, 0x20E1EE, 0x20E4E0, 0x20E4E5,
2368 0x20E4E9, 0x20E4EE, 0x20E4F2, 0x20E4F9, 0x20E4FA, 0x20ECE0, 0x20ECE4, 0x20EEE0,
2369 0x20F2EC, 0x20F9EC, 0xE0FA20, 0xE420E0, 0xE420E1, 0xE420E4, 0xE420EC, 0xE420EE,
2370 0xE420F9, 0xE4E5E0, 0xE5E020, 0xE5ED20, 0xE5EF20, 0xE5F820, 0xE5FA20, 0xE920E4,
2371 0xE9E420, 0xE9E5FA, 0xE9E9ED, 0xE9ED20, 0xE9EF20, 0xE9F820, 0xE9FA20, 0xEC20E0,
2372 0xEC20E4, 0xECE020, 0xECE420, 0xED20E0, 0xED20E1, 0xED20E4, 0xED20EC, 0xED20EE,
2373 0xED20F9, 0xEEE420, 0xEF20E4, 0xF0E420, 0xF0E920, 0xF0E9ED, 0xF2EC20, 0xF820E4,
2374 0xF8E9ED, 0xF9EC20, 0xFA20E0, 0xFA20E1, 0xFA20E4, 0xFA20EC, 0xFA20EE, 0xFA20F9,
2375 ]),
2376 new NGramsPlusLang('he', [
2377 0x20E0E5, 0x20E0EC, 0x20E4E9, 0x20E4EC, 0x20E4EE, 0x20E4F0, 0x20E9F0, 0x20ECF2,
2378 0x20ECF9, 0x20EDE5, 0x20EDE9, 0x20EFE5, 0x20EFE9, 0x20F8E5, 0x20F8E9, 0x20FAE0,
2379 0x20FAE5, 0x20FAE9, 0xE020E4, 0xE020EC, 0xE020ED, 0xE020FA, 0xE0E420, 0xE0E5E4,
2380 0xE0EC20, 0xE0EE20, 0xE120E4, 0xE120ED, 0xE120FA, 0xE420E4, 0xE420E9, 0xE420EC,
2381 0xE420ED, 0xE420EF, 0xE420F8, 0xE420FA, 0xE4EC20, 0xE5E020, 0xE5E420, 0xE7E020,
2382 0xE9E020, 0xE9E120, 0xE9E420, 0xEC20E4, 0xEC20ED, 0xEC20FA, 0xECF220, 0xECF920,
2383 0xEDE9E9, 0xEDE9F0, 0xEDE9F8, 0xEE20E4, 0xEE20ED, 0xEE20FA, 0xEEE120, 0xEEE420,
2384 0xF2E420, 0xF920E4, 0xF920ED, 0xF920FA, 0xF9E420, 0xFAE020, 0xFAE420, 0xFAE5E9,
2385 ])
2386 ];
2387 };
2388
2389 this.name = function(det) {
2390 return (det && det.fC1Bytes) ? 'windows-1255' : 'ISO-8859-8';
2391 };
2392
2393 this.language = function() {
2394 return 'he';
2395 };
2396
2397};
2398util.inherits(module.exports.ISO_8859_8, sbcs);
2399
2400
2401module.exports.ISO_8859_9 = function() {
2402 this.byteMap = function() {
2403 return [
2404 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2405 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2406 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2407 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2408 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
2409 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2410 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2411 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2412 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2413 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2414 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2415 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2416 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2417 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2418 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2419 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2420 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2421 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2422 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2423 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2424 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2425 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20,
2426 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
2427 0x20, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0x20,
2428 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2429 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2430 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
2431 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x69, 0xFE, 0xDF,
2432 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2433 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2434 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
2435 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
2436 ];
2437 };
2438
2439 this.ngrams = function() {
2440 return [
2441 0x206261, 0x206269, 0x206275, 0x206461, 0x206465, 0x206765, 0x206861, 0x20696C,
2442 0x206B61, 0x206B6F, 0x206D61, 0x206F6C, 0x207361, 0x207461, 0x207665, 0x207961,
2443 0x612062, 0x616B20, 0x616C61, 0x616D61, 0x616E20, 0x616EFD, 0x617220, 0x617261,
2444 0x6172FD, 0x6173FD, 0x617961, 0x626972, 0x646120, 0x646520, 0x646920, 0x652062,
2445 0x65206B, 0x656469, 0x656E20, 0x657220, 0x657269, 0x657369, 0x696C65, 0x696E20,
2446 0x696E69, 0x697220, 0x6C616E, 0x6C6172, 0x6C6520, 0x6C6572, 0x6E2061, 0x6E2062,
2447 0x6E206B, 0x6E6461, 0x6E6465, 0x6E6520, 0x6E6920, 0x6E696E, 0x6EFD20, 0x72696E,
2448 0x72FD6E, 0x766520, 0x796120, 0x796F72, 0xFD6E20, 0xFD6E64, 0xFD6EFD, 0xFDF0FD
2449 ];
2450 };
2451
2452 this.name = function(det) {
2453 return (det && det.fC1Bytes) ? 'windows-1254' : 'ISO-8859-9';
2454 };
2455
2456 this.language = function() {
2457 return 'tr';
2458 };
2459};
2460util.inherits(module.exports.ISO_8859_9, sbcs);
2461
2462
2463module.exports.windows_1251 = function() {
2464 this.byteMap = function() {
2465 return [
2466 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2467 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2468 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2469 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2470 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
2471 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2472 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2473 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2474 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2475 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2476 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2477 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2478 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2479 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2480 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2481 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2482 0x90, 0x83, 0x20, 0x83, 0x20, 0x20, 0x20, 0x20,
2483 0x20, 0x20, 0x9A, 0x20, 0x9C, 0x9D, 0x9E, 0x9F,
2484 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2485 0x20, 0x20, 0x9A, 0x20, 0x9C, 0x9D, 0x9E, 0x9F,
2486 0x20, 0xA2, 0xA2, 0xBC, 0x20, 0xB4, 0x20, 0x20,
2487 0xB8, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0xBF,
2488 0x20, 0x20, 0xB3, 0xB3, 0xB4, 0xB5, 0x20, 0x20,
2489 0xB8, 0x20, 0xBA, 0x20, 0xBC, 0xBE, 0xBE, 0xBF,
2490 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2491 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2492 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
2493 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
2494 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2495 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2496 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
2497 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
2498 ];
2499 };
2500
2501 this.ngrams = function() {
2502 return [
2503 0x20E220, 0x20E2EE, 0x20E4EE, 0x20E7E0, 0x20E820, 0x20EAE0, 0x20EAEE, 0x20EDE0,
2504 0x20EDE5, 0x20EEE1, 0x20EFEE, 0x20EFF0, 0x20F0E0, 0x20F1EE, 0x20F1F2, 0x20F2EE,
2505 0x20F7F2, 0x20FDF2, 0xE0EDE8, 0xE0F2FC, 0xE3EE20, 0xE5EBFC, 0xE5EDE8, 0xE5F1F2,
2506 0xE5F220, 0xE820EF, 0xE8E520, 0xE8E820, 0xE8FF20, 0xEBE5ED, 0xEBE820, 0xEBFCED,
2507 0xEDE020, 0xEDE520, 0xEDE8E5, 0xEDE8FF, 0xEDEE20, 0xEDEEE2, 0xEE20E2, 0xEE20EF,
2508 0xEE20F1, 0xEEE220, 0xEEE2E0, 0xEEE3EE, 0xEEE920, 0xEEEBFC, 0xEEEC20, 0xEEF1F2,
2509 0xEFEEEB, 0xEFF0E5, 0xEFF0E8, 0xEFF0EE, 0xF0E0E2, 0xF0E5E4, 0xF1F2E0, 0xF1F2E2,
2510 0xF1F2E8, 0xF1FF20, 0xF2E5EB, 0xF2EE20, 0xF2EEF0, 0xF2FC20, 0xF7F2EE, 0xFBF520
2511 ];
2512 };
2513
2514 this.name = function(det) {
2515 return 'windows-1251';
2516 };
2517
2518 this.language = function() {
2519 return 'ru';
2520 };
2521};
2522util.inherits(module.exports.windows_1251, sbcs);
2523
2524
2525module.exports.windows_1256 = function() {
2526 this.byteMap = function() {
2527 return [
2528 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2529 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2530 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2531 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2532 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
2533 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2534 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2535 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2536 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2537 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2538 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2539 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2540 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2541 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2542 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2543 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2544 0x20, 0x81, 0x20, 0x83, 0x20, 0x20, 0x20, 0x20,
2545 0x88, 0x20, 0x8A, 0x20, 0x9C, 0x8D, 0x8E, 0x8F,
2546 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2547 0x98, 0x20, 0x9A, 0x20, 0x9C, 0x20, 0x20, 0x9F,
2548 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2549 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20,
2550 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
2551 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2552 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
2553 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
2554 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0x20,
2555 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
2556 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
2557 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
2558 0x20, 0x20, 0x20, 0x20, 0xF4, 0x20, 0x20, 0x20,
2559 0x20, 0xF9, 0x20, 0xFB, 0xFC, 0x20, 0x20, 0xFF
2560 ];
2561 };
2562
2563 this.ngrams = function() {
2564 return [
2565 0x20C7E1, 0x20C7E4, 0x20C8C7, 0x20DAE1, 0x20DDED, 0x20E1E1, 0x20E3E4, 0x20E6C7,
2566 0xC720C7, 0xC7C120, 0xC7CA20, 0xC7D120, 0xC7E120, 0xC7E1C3, 0xC7E1C7, 0xC7E1C8,
2567 0xC7E1CA, 0xC7E1CC, 0xC7E1CD, 0xC7E1CF, 0xC7E1D3, 0xC7E1DA, 0xC7E1DE, 0xC7E1E3,
2568 0xC7E1E6, 0xC7E1ED, 0xC7E320, 0xC7E420, 0xC7E4CA, 0xC820C7, 0xC920C7, 0xC920DD,
2569 0xC920E1, 0xC920E3, 0xC920E6, 0xCA20C7, 0xCF20C7, 0xCFC920, 0xD120C7, 0xD1C920,
2570 0xD320C7, 0xDA20C7, 0xDAE1EC, 0xDDED20, 0xE120C7, 0xE1C920, 0xE1EC20, 0xE1ED20,
2571 0xE320C7, 0xE3C720, 0xE3C920, 0xE3E420, 0xE420C7, 0xE520C7, 0xE5C720, 0xE6C7E1,
2572 0xE6E420, 0xEC20C7, 0xED20C7, 0xED20E3, 0xED20E6, 0xEDC920, 0xEDD120, 0xEDE420
2573 ];
2574 };
2575
2576 this.name = function(det) {
2577 return 'windows-1256';
2578 };
2579
2580 this.language = function() {
2581 return 'ar';
2582 };
2583};
2584util.inherits(module.exports.windows_1256, sbcs);
2585
2586
2587module.exports.KOI8_R = function() {
2588 this.byteMap = function() {
2589 return [
2590 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2591 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2592 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2593 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2594 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
2595 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2596 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2597 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2598 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2599 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2600 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2601 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2602 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
2603 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
2604 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
2605 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
2606 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2607 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2608 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2609 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2610 0x20, 0x20, 0x20, 0xA3, 0x20, 0x20, 0x20, 0x20,
2611 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2612 0x20, 0x20, 0x20, 0xA3, 0x20, 0x20, 0x20, 0x20,
2613 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2614 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
2615 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
2616 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
2617 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
2618 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
2619 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
2620 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
2621 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF
2622 ];
2623 };
2624
2625 this.ngrams = function() {
2626 return [
2627 0x20C4CF, 0x20C920, 0x20CBC1, 0x20CBCF, 0x20CEC1, 0x20CEC5, 0x20CFC2, 0x20D0CF,
2628 0x20D0D2, 0x20D2C1, 0x20D3CF, 0x20D3D4, 0x20D4CF, 0x20D720, 0x20D7CF, 0x20DAC1,
2629 0x20DCD4, 0x20DED4, 0xC1CEC9, 0xC1D4D8, 0xC5CCD8, 0xC5CEC9, 0xC5D3D4, 0xC5D420,
2630 0xC7CF20, 0xC920D0, 0xC9C520, 0xC9C920, 0xC9D120, 0xCCC5CE, 0xCCC920, 0xCCD8CE,
2631 0xCEC120, 0xCEC520, 0xCEC9C5, 0xCEC9D1, 0xCECF20, 0xCECFD7, 0xCF20D0, 0xCF20D3,
2632 0xCF20D7, 0xCFC7CF, 0xCFCA20, 0xCFCCD8, 0xCFCD20, 0xCFD3D4, 0xCFD720, 0xCFD7C1,
2633 0xD0CFCC, 0xD0D2C5, 0xD0D2C9, 0xD0D2CF, 0xD2C1D7, 0xD2C5C4, 0xD3D120, 0xD3D4C1,
2634 0xD3D4C9, 0xD3D4D7, 0xD4C5CC, 0xD4CF20, 0xD4CFD2, 0xD4D820, 0xD9C820, 0xDED4CF
2635 ];
2636 };
2637
2638 this.name = function(det) {
2639 return 'KOI8-R';
2640 };
2641
2642 this.language = function() {
2643 return 'ru';
2644 };
2645};
2646util.inherits(module.exports.KOI8_R, sbcs);
2647
2648
2649/*
2650module.exports.ISO_8859_7 = function() {
2651 this.byteMap = function() {
2652 return [
2653
2654 ];
2655 };
2656
2657 this.ngrams = function() {
2658 return [
2659
2660 ];
2661 };
2662
2663 this.name = function(det) {
2664 if (typeof det == 'undefined')
2665 return 'ISO-8859-7';
2666 return det.fC1Bytes ? 'windows-1253' : 'ISO-8859-7';
2667 };
2668
2669 this.language = function() {
2670 return 'el';
2671 };
2672};
2673util.inherits(module.exports.ISO_8859_7, sbcs);
2674*/
2675
2676
2677
2678/***/ }),
2679
2680/***/ "./node_modules/chardet/encoding/unicode.js":
2681/*!**************************************************!*\
2682 !*** ./node_modules/chardet/encoding/unicode.js ***!
2683 \**************************************************/
2684/*! no static exports found */
2685/***/ (function(module, exports, __webpack_require__) {
2686
2687"use strict";
2688
2689var util = __webpack_require__(/*! util */ "util"),
2690 Match = __webpack_require__ (/*! ../match */ "./node_modules/chardet/match.js");
2691
2692/**
2693 * This class matches UTF-16 and UTF-32, both big- and little-endian. The
2694 * BOM will be used if it is present.
2695 */
2696module.exports.UTF_16BE = function() {
2697 this.name = function() {
2698 return 'UTF-16BE';
2699 };
2700 this.match = function(det) {
2701 var input = det.fRawInput;
2702
2703 if (input.length >= 2 && ((input[0] & 0xff) == 0xfe && (input[1] & 0xff) == 0xff)) {
2704 return new Match(det, this, 100); // confidence = 100
2705 }
2706
2707 // TODO: Do some statistics to check for unsigned UTF-16BE
2708 return null;
2709 };
2710};
2711
2712module.exports.UTF_16LE = function() {
2713 this.name = function() {
2714 return 'UTF-16LE';
2715 };
2716 this.match = function(det) {
2717 var input = det.fRawInput;
2718
2719 if (input.length >= 2 && ((input[0] & 0xff) == 0xff && (input[1] & 0xff) == 0xfe)) {
2720 // LE BOM is present.
2721 if (input.length >= 4 && input[2] == 0x00 && input[3] == 0x00) {
2722 // It is probably UTF-32 LE, not UTF-16
2723 return null;
2724 }
2725 return new Match(det, this, 100); // confidence = 100
2726 }
2727
2728 // TODO: Do some statistics to check for unsigned UTF-16LE
2729 return null;
2730 }
2731};
2732
2733function UTF_32() {};
2734UTF_32.prototype.match = function(det) {
2735 var input = det.fRawInput,
2736 limit = (det.fRawLength / 4) * 4,
2737 numValid = 0,
2738 numInvalid = 0,
2739 hasBOM = false,
2740 confidence = 0;
2741
2742 if (limit == 0) {
2743 return null;
2744 }
2745
2746 if (this.getChar(input, 0) == 0x0000FEFF) {
2747 hasBOM = true;
2748 }
2749
2750 for (var i = 0; i < limit; i += 4) {
2751 var ch = this.getChar(input, i);
2752
2753 if (ch < 0 || ch >= 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF)) {
2754 numInvalid += 1;
2755 } else {
2756 numValid += 1;
2757 }
2758 }
2759
2760 // Cook up some sort of confidence score, based on presence of a BOM
2761 // and the existence of valid and/or invalid multi-byte sequences.
2762 if (hasBOM && numInvalid == 0) {
2763 confidence = 100;
2764 } else if (hasBOM && numValid > numInvalid * 10) {
2765 confidence = 80;
2766 } else if (numValid > 3 && numInvalid == 0) {
2767 confidence = 100;
2768 } else if (numValid > 0 && numInvalid == 0) {
2769 confidence = 80;
2770 } else if (numValid > numInvalid * 10) {
2771 // Probably corrupt UTF-32BE data. Valid sequences aren't likely by chance.
2772 confidence = 25;
2773 }
2774
2775 // return confidence == 0 ? null : new CharsetMatch(det, this, confidence);
2776 return confidence == 0 ? null : new Match(det, this, confidence);
2777};
2778
2779module.exports.UTF_32BE = function() {
2780 this.name = function() {
2781 return 'UTF-32BE';
2782 };
2783 this.getChar = function(input, index) {
2784 return (input[index + 0] & 0xff) << 24 | (input[index + 1] & 0xff) << 16 |
2785 (input[index + 2] & 0xff) << 8 | (input[index + 3] & 0xff);
2786 };
2787};
2788util.inherits(module.exports.UTF_32BE, UTF_32);
2789
2790module.exports.UTF_32LE = function() {
2791 this.name = function() {
2792 return 'UTF-32LE';
2793 };
2794 this.getChar = function(input, index) {
2795 return (input[index + 3] & 0xff) << 24 | (input[index + 2] & 0xff) << 16 |
2796 (input[index + 1] & 0xff) << 8 | (input[index + 0] & 0xff);
2797 };
2798};
2799util.inherits(module.exports.UTF_32LE, UTF_32);
2800
2801
2802/***/ }),
2803
2804/***/ "./node_modules/chardet/encoding/utf8.js":
2805/*!***********************************************!*\
2806 !*** ./node_modules/chardet/encoding/utf8.js ***!
2807 \***********************************************/
2808/*! no static exports found */
2809/***/ (function(module, exports, __webpack_require__) {
2810
2811
2812var Match = __webpack_require__ (/*! ../match */ "./node_modules/chardet/match.js");
2813
2814/**
2815 * Charset recognizer for UTF-8
2816 */
2817module.exports = function() {
2818 this.name = function() {
2819 return 'UTF-8';
2820 };
2821 this.match = function(det) {
2822
2823 var hasBOM = false,
2824 numValid = 0,
2825 numInvalid = 0,
2826 input = det.fRawInput,
2827 trailBytes = 0,
2828 confidence;
2829
2830 if (det.fRawLength >= 3 &&
2831 (input[0] & 0xff) == 0xef && (input[1] & 0xff) == 0xbb && (input[2] & 0xff) == 0xbf) {
2832 hasBOM = true;
2833 }
2834
2835 // Scan for multi-byte sequences
2836 for (var i = 0; i < det.fRawLength; i++) {
2837 var b = input[i];
2838 if ((b & 0x80) == 0)
2839 continue; // ASCII
2840
2841 // Hi bit on char found. Figure out how long the sequence should be
2842 if ((b & 0x0e0) == 0x0c0) {
2843 trailBytes = 1;
2844 } else if ((b & 0x0f0) == 0x0e0) {
2845 trailBytes = 2;
2846 } else if ((b & 0x0f8) == 0xf0) {
2847 trailBytes = 3;
2848 } else {
2849 numInvalid++;
2850 if (numInvalid > 5)
2851 break;
2852 trailBytes = 0;
2853 }
2854
2855 // Verify that we've got the right number of trail bytes in the sequence
2856 for (;;) {
2857 i++;
2858 if (i >= det.fRawLength)
2859 break;
2860
2861 if ((input[i] & 0xc0) != 0x080) {
2862 numInvalid++;
2863 break;
2864 }
2865 if (--trailBytes == 0) {
2866 numValid++;
2867 break;
2868 }
2869 }
2870 }
2871
2872 // Cook up some sort of confidence score, based on presense of a BOM
2873 // and the existence of valid and/or invalid multi-byte sequences.
2874 confidence = 0;
2875 if (hasBOM && numInvalid == 0)
2876 confidence = 100;
2877 else if (hasBOM && numValid > numInvalid * 10)
2878 confidence = 80;
2879 else if (numValid > 3 && numInvalid == 0)
2880 confidence = 100;
2881 else if (numValid > 0 && numInvalid == 0)
2882 confidence = 80;
2883 else if (numValid == 0 && numInvalid == 0)
2884 // Plain ASCII.
2885 confidence = 10;
2886 else if (numValid > numInvalid * 10)
2887 // Probably corruput utf-8 data. Valid sequences aren't likely by chance.
2888 confidence = 25;
2889 else
2890 return null
2891
2892 return new Match(det, this, confidence);
2893 };
2894};
2895
2896
2897/***/ }),
2898
2899/***/ "./node_modules/chardet/index.js":
2900/*!***************************************!*\
2901 !*** ./node_modules/chardet/index.js ***!
2902 \***************************************/
2903/*! no static exports found */
2904/***/ (function(module, exports, __webpack_require__) {
2905
2906
2907var fs = __webpack_require__(/*! fs */ "fs");
2908
2909var utf8 = __webpack_require__(/*! ./encoding/utf8 */ "./node_modules/chardet/encoding/utf8.js"),
2910 unicode = __webpack_require__(/*! ./encoding/unicode */ "./node_modules/chardet/encoding/unicode.js"),
2911 mbcs = __webpack_require__(/*! ./encoding/mbcs */ "./node_modules/chardet/encoding/mbcs.js"),
2912 sbcs = __webpack_require__(/*! ./encoding/sbcs */ "./node_modules/chardet/encoding/sbcs.js"),
2913 iso2022 = __webpack_require__(/*! ./encoding/iso2022 */ "./node_modules/chardet/encoding/iso2022.js");
2914
2915var self = this;
2916
2917var recognisers = [
2918 new utf8,
2919 new unicode.UTF_16BE,
2920 new unicode.UTF_16LE,
2921 new unicode.UTF_32BE,
2922 new unicode.UTF_32LE,
2923 new mbcs.sjis,
2924 new mbcs.big5,
2925 new mbcs.euc_jp,
2926 new mbcs.euc_kr,
2927 new mbcs.gb_18030,
2928 new iso2022.ISO_2022_JP,
2929 new iso2022.ISO_2022_KR,
2930 new iso2022.ISO_2022_CN,
2931 new sbcs.ISO_8859_1,
2932 new sbcs.ISO_8859_2,
2933 new sbcs.ISO_8859_5,
2934 new sbcs.ISO_8859_6,
2935 new sbcs.ISO_8859_7,
2936 new sbcs.ISO_8859_8,
2937 new sbcs.ISO_8859_9,
2938 new sbcs.windows_1251,
2939 new sbcs.windows_1256,
2940 new sbcs.KOI8_R
2941];
2942
2943module.exports.detect = function(buffer, opts) {
2944
2945 // Tally up the byte occurence statistics.
2946 var fByteStats = [];
2947 for (var i = 0; i < 256; i++)
2948 fByteStats[i] = 0;
2949
2950 for (var i = buffer.length - 1; i >= 0; i--)
2951 fByteStats[buffer[i] & 0x00ff]++;
2952
2953 var fC1Bytes = false;
2954 for (var i = 0x80; i <= 0x9F; i += 1) {
2955 if (fByteStats[i] != 0) {
2956 fC1Bytes = true;
2957 break;
2958 }
2959 }
2960
2961 var context = {
2962 fByteStats: fByteStats,
2963 fC1Bytes: fC1Bytes,
2964 fRawInput: buffer,
2965 fRawLength: buffer.length,
2966 fInputBytes: buffer,
2967 fInputLen: buffer.length
2968 };
2969
2970 var matches = recognisers.map(function(rec) {
2971 return rec.match(context);
2972 }).filter(function(match) {
2973 return !!match;
2974 }).sort(function(a, b) {
2975 return b.confidence - a.confidence;
2976 });
2977
2978 if (opts && opts.returnAllMatches === true) {
2979 return matches;
2980 }
2981 else {
2982 return matches.length > 0 ? matches[0].name : null;
2983 }
2984};
2985
2986module.exports.detectFile = function(filepath, opts, cb) {
2987 if (typeof opts === 'function') {
2988 cb = opts;
2989 opts = undefined;
2990 }
2991
2992 var fd;
2993
2994 var handler = function(err, buffer) {
2995 if (fd) {
2996 fs.closeSync(fd);
2997 }
2998
2999 if (err) return cb(err, null);
3000 cb(null, self.detect(buffer, opts));
3001 };
3002
3003 if (opts && opts.sampleSize) {
3004 fd = fs.openSync(filepath, 'r'),
3005 sample = Buffer.allocUnsafe(opts.sampleSize);
3006
3007 fs.read(fd, sample, 0, opts.sampleSize, null, function(err) {
3008 handler(err, sample);
3009 });
3010 return;
3011 }
3012
3013 fs.readFile(filepath, handler);
3014};
3015
3016module.exports.detectFileSync = function(filepath, opts) {
3017 if (opts && opts.sampleSize) {
3018 var fd = fs.openSync(filepath, 'r'),
3019 sample = Buffer.allocUnsafe(opts.sampleSize);
3020
3021 fs.readSync(fd, sample, 0, opts.sampleSize);
3022 fs.closeSync(fd);
3023 return self.detect(sample, opts);
3024 }
3025
3026 return self.detect(fs.readFileSync(filepath), opts);
3027};
3028
3029// Wrappers for the previous functions to return all encodings
3030module.exports.detectAll = function(buffer, opts) {
3031 if (typeof opts !== 'object') {
3032 opts = {};
3033 }
3034 opts.returnAllMatches = true;
3035 return self.detect(buffer, opts);
3036}
3037
3038module.exports.detectFileAll = function(filepath, opts, cb) {
3039 if (typeof opts === 'function') {
3040 cb = opts;
3041 opts = undefined;
3042 }
3043 if (typeof opts !== 'object') {
3044 opts = {};
3045 }
3046 opts.returnAllMatches = true;
3047 self.detectFile(filepath, opts, cb);
3048}
3049
3050module.exports.detectFileAllSync = function(filepath, opts) {
3051 if (typeof opts !== 'object') {
3052 opts = {};
3053 }
3054 opts.returnAllMatches = true;
3055 return self.detectFileSync(filepath, opts);
3056}
3057
3058
3059/***/ }),
3060
3061/***/ "./node_modules/chardet/match.js":
3062/*!***************************************!*\
3063 !*** ./node_modules/chardet/match.js ***!
3064 \***************************************/
3065/*! no static exports found */
3066/***/ (function(module, exports) {
3067
3068
3069module.exports = function(det, rec, confidence, name, lang) {
3070 this.confidence = confidence;
3071 this.name = name || rec.name(det);
3072 this.lang = lang;
3073};
3074
3075
3076/***/ }),
3077
3078/***/ "./node_modules/cli-cursor/index.js":
3079/*!******************************************!*\
3080 !*** ./node_modules/cli-cursor/index.js ***!
3081 \******************************************/
3082/*! no static exports found */
3083/***/ (function(module, exports, __webpack_require__) {
3084
3085"use strict";
3086
3087const restoreCursor = __webpack_require__(/*! restore-cursor */ "./node_modules/restore-cursor/index.js");
3088
3089let hidden = false;
3090
3091exports.show = stream => {
3092 const s = stream || process.stderr;
3093
3094 if (!s.isTTY) {
3095 return;
3096 }
3097
3098 hidden = false;
3099 s.write('\u001b[?25h');
3100};
3101
3102exports.hide = stream => {
3103 const s = stream || process.stderr;
3104
3105 if (!s.isTTY) {
3106 return;
3107 }
3108
3109 restoreCursor();
3110 hidden = true;
3111 s.write('\u001b[?25l');
3112};
3113
3114exports.toggle = (force, stream) => {
3115 if (force !== undefined) {
3116 hidden = force;
3117 }
3118
3119 if (hidden) {
3120 exports.show(stream);
3121 } else {
3122 exports.hide(stream);
3123 }
3124};
3125
3126
3127/***/ }),
3128
3129/***/ "./node_modules/cli-progress/cli-progress.js":
3130/*!***************************************************!*\
3131 !*** ./node_modules/cli-progress/cli-progress.js ***!
3132 \***************************************************/
3133/*! no static exports found */
3134/***/ (function(module, exports, __webpack_require__) {
3135
3136const _Bar = __webpack_require__(/*! ./lib/Bar */ "./node_modules/cli-progress/lib/Bar.js");
3137const _Presets = __webpack_require__(/*! ./presets/index */ "./node_modules/cli-progress/presets/index.js");
3138
3139// sub-module access
3140module.exports = {
3141 Bar: _Bar,
3142 Presets: _Presets
3143};
3144
3145/***/ }),
3146
3147/***/ "./node_modules/cli-progress/lib/Bar.js":
3148/*!**********************************************!*\
3149 !*** ./node_modules/cli-progress/lib/Bar.js ***!
3150 \**********************************************/
3151/*! no static exports found */
3152/***/ (function(module, exports, __webpack_require__) {
3153
3154const _Terminal = __webpack_require__(/*! ./Terminal */ "./node_modules/cli-progress/lib/Terminal.js");
3155const _ETA = __webpack_require__(/*! ./ETA */ "./node_modules/cli-progress/lib/ETA.js");
3156const _stringWidth = __webpack_require__(/*! string-width */ "./node_modules/string-width/index.js");
3157
3158// Progress-Bar constructor
3159module.exports = class Bar{
3160
3161 constructor(opt, preset){
3162 // options set ?
3163 opt = opt || {};
3164
3165 // preset set ?
3166 const options = preset || {};
3167
3168 // merge options - take precedence over preset
3169 for (const attb in opt){
3170 options[attb] = opt[attb];
3171 }
3172
3173 // utility to merge defaults
3174 function getOption(v, defaultValue){
3175 if (typeof v === 'undefined' || v === null){
3176 return defaultValue;
3177 }else{
3178 return v;
3179 }
3180 }
3181
3182 // the update timer
3183 this.timer = null;
3184
3185 // the current bar value
3186 this.value = 0;
3187
3188 // the end value of the bar
3189 this.total = 100;
3190
3191 // the max update rate in fps (redraw will only triggered on value change)
3192 this.throttleTime = 1000 / (options.fps || 10);
3193
3194 // the output stream to write on
3195 this.stream = getOption(options.stream, process.stderr);
3196
3197 // new terminal instance
3198 this.terminal = new _Terminal(this.stream);
3199
3200 // clear on finish ?
3201 this.clearOnComplete = getOption(options.clearOnComplete, false);
3202
3203 // stop on finish ?
3204 this.stopOnComplete = getOption(options.stopOnComplete, false);
3205
3206 // last drawn string - only render on change!
3207 this.lastDrawnString = null;
3208
3209 // size of the progressbar in chars
3210 this.barsize = options.barsize || 40;
3211
3212 // position of the progress bar - 'left' (default), 'right' or 'center'
3213 this.align = getOption(options.align, 'left');
3214
3215 // hide the cursor ?
3216 this.hideCursor = getOption(options.hideCursor, false);
3217
3218 // disable linewrapping ?
3219 this.linewrap = getOption(options.linewrap, false);
3220
3221 // pre-render bar strings (performance)
3222 this.barCompleteString = (new Array(this.barsize + 1 ).join(options.barCompleteChar || '='));
3223 this.barIncompleteString = (new Array(this.barsize + 1 ).join(options.barIncompleteChar || '-'));
3224
3225 // the bar format
3226 this.format = options.format || 'progress [{bar}] {percentage}% | ETA: {eta}s | {value}/{total}';
3227
3228 // start time (used for eta calculation)
3229 this.startTime = null;
3230
3231 // last update time
3232 this.lastRedraw = Date.now();
3233
3234 // the number of results to average ETA over
3235 this.etaBufferLength = getOption(options.etaBuffer, 10);
3236
3237 // default eta calulator (will be re-create on start)
3238 this.eta = new _ETA(this.etaBufferLength, 0, 0);
3239
3240 // payload data
3241 this.payload = {};
3242 }
3243
3244 // internal render function
3245 render(){
3246 this.stopTimer();
3247
3248 // copy format string
3249 let s = this.format;
3250
3251 // calculate the normalized current progress
3252 let progress = (this.value/this.total);
3253
3254 // handle NaN Errors caused by total=0. Set to complete in this case
3255 if (isNaN(progress)){
3256 progress = 1.0;
3257 }
3258
3259 // limiter
3260 progress = Math.min(Math.max(progress, 0.0), 1.0);
3261
3262 // generate bar string by stripping the pre-rendered strings
3263 let b = this.barCompleteString.substr(0, Math.round(progress*this.barsize)) +
3264 this.barIncompleteString.substr(0, Math.round((1.0-progress)*this.barsize));
3265
3266 // limit the bar-size (can cause n+1 chars in some numerical situation)
3267 b = b.substr(0, this.barsize);
3268
3269 // calculate progress in percent
3270 const percentage = Math.round(progress*100) + '';
3271
3272 // calculate elapsed time
3273 const elapsedTime = Math.round((Date.now() - this.startTime)/1000);
3274 const elapsedTimef = Bar.formatTime(elapsedTime, 1);
3275
3276 // calculate eta
3277 const eta = this.eta.getTime();
3278 const etaf = Bar.formatTime(eta, 5);
3279
3280 // assign placeholder tokens
3281 s = s.replace(/\{bar}/gi, b)
3282 .replace(/\{percentage}/gi, percentage)
3283 .replace(/\{total}/gi, this.total + '')
3284 .replace(/\{value}/gi, this.value + '')
3285 .replace(/\{eta}/gi, eta + '')
3286 .replace(/\{eta_formatted}/gi, etaf + '')
3287 .replace(/\{duration}/gi, elapsedTime + '')
3288 .replace(/\{duration_formatted}/gi, elapsedTimef + '');
3289
3290 // assign payload placeholder tokens
3291 for (const key in this.payload) {
3292 const pattern = RegExp('{'+key+'}', 'gi');
3293 s = s.replace(pattern, this.payload[key]);
3294 }
3295
3296 // calculate available whitespace (2 characters margin of error)
3297 const fullMargin = Math.max(0, this.terminal.getWidth() - _stringWidth(s) -2);
3298 const halfMargin = Math.floor(fullMargin / 2);
3299
3300 // distribute available whitespace according to position
3301 switch (this.align) {
3302
3303 // fill start-of-line with whitespaces
3304 case 'right':
3305 s = (fullMargin > 0) ? ' '.repeat(fullMargin) + s : s;
3306 break;
3307
3308 // distribute whitespaces to left+right
3309 case 'center':
3310 s = (halfMargin > 0) ? ' '.repeat(halfMargin) + s : s;
3311 break;
3312
3313 // default: left align, no additional whitespaces
3314 case 'left':
3315 default:
3316 break;
3317 }
3318
3319 // string changed ? only trigger redraw on change!
3320 if (this.lastDrawnString != s){
3321 // set cursor to start of line
3322 this.terminal.cursorTo(0, null);
3323
3324 // write output
3325 this.terminal.write(s);
3326
3327 // clear to the right from cursor
3328 this.terminal.clearRight();
3329
3330 // store string
3331 this.lastDrawnString = s;
3332
3333 // set last redraw time
3334 this.lastRedraw = Date.now();
3335 }
3336
3337 // next update
3338 this.timer = setTimeout(this.render.bind(this), this.throttleTime*2);
3339 }
3340
3341 // format a number of seconds into hours and minutes as appropriate
3342 static formatTime(t, roundToMultipleOf){
3343 function round(input) {
3344 if (roundToMultipleOf) {
3345 return roundToMultipleOf * Math.round(input / roundToMultipleOf);
3346 } else {
3347 return input
3348 }
3349 }
3350 if (t > 3600) {
3351 return Math.floor(t / 3600) + 'h' + round((t % 3600) / 60) + 'm';
3352 } else if (t > 60) {
3353 return Math.floor(t / 60) + 'm' + round((t % 60)) + 's';
3354 } else if (t > 10) {
3355 return round(t) + 's';
3356 } else {
3357 return t + 's';
3358 }
3359 }
3360
3361 // start the progress bar
3362 start(total, startValue, payload){
3363 // set initial values
3364 this.value = startValue || 0;
3365 this.total = (typeof total !== 'undefined' && total >= 0) ? total : 100;
3366 this.payload = payload || {};
3367
3368 this.startTime = Date.now();
3369 this.lastDrawnString = '';
3370
3371 // progress is only visible in TTY mode!
3372 if (!this.terminal.isTTY()){
3373 return;
3374 }
3375
3376 // save current cursor settings
3377 this.terminal.cursorSave();
3378
3379 // hide the cursor ?
3380 if (this.hideCursor === true){
3381 this.terminal.cursor(false);
3382 }
3383
3384 // disable line wrpaping ?
3385 if (this.linewrap === false){
3386 this.terminal.lineWrapping(false);
3387 }
3388
3389 // timer already active ?
3390 this.stopTimer();
3391
3392 // initialize eta buffer
3393 this.eta = new _ETA(this.etaBufferLength, this.startTime, this.value);
3394
3395 // redraw on start!
3396 this.render();
3397 }
3398
3399 // stop the bar
3400 stop(){
3401 // timer inactive ?
3402 if (!this.timer) {
3403 return;
3404 }
3405
3406 // trigger final rendering
3407 this.render();
3408 this.stopTimer();
3409
3410 // cursor hidden ?
3411 if (this.hideCursor === true){
3412 this.terminal.cursor(true);
3413 }
3414
3415 // re-enable line wrpaping ?
3416 if (this.linewrap === false){
3417 this.terminal.lineWrapping(true);
3418 }
3419
3420 // restore cursor on complete (position + settings)
3421 this.terminal.cursorRestore();
3422
3423 // clear line on complete ?
3424 if (this.clearOnComplete){
3425 this.terminal.cursorTo(0, null);
3426 this.terminal.clearLine();
3427 }else{
3428 // new line on complete
3429 this.terminal.write('\n');
3430 }
3431 }
3432
3433 // update the bar value
3434 update(current, payload){
3435 // update value
3436 this.value = current;
3437
3438 // timer inactive ?
3439 if (!this.timer) {
3440 return;
3441 }
3442
3443 // add new value
3444 this.eta.push(Date.now(), current);
3445
3446 // merge payload
3447 const payloadData = payload || {};
3448 for (const key in payloadData){
3449 this.payload[key] = payloadData[key];
3450 }
3451
3452 // throttle the update or force update ?
3453 if (this.lastRedraw + this.throttleTime < Date.now()){
3454 // number of remaining elements required for calculation
3455 this.eta.calculate(this.total-this.value);
3456 this.render();
3457 }
3458 if (this.value >= this.getTotal() && this.stopOnComplete) {
3459 this.stop();
3460 }
3461 }
3462
3463 // update the bar value
3464 increment(step, payload){
3465 step = step || 1;
3466 this.update(this.value + step, payload);
3467 }
3468
3469 // get the total (limit) value
3470 getTotal(){
3471 return this.total;
3472 }
3473
3474 // set the total (limit) value
3475 setTotal(total){
3476 if (typeof total !== 'undefined' && total >= 0){
3477 this.total = total;
3478 }
3479 }
3480
3481 // internal - stop the current timer
3482 stopTimer(){
3483 // stop the timer
3484 if (this.timer) {
3485 clearTimeout(this.timer);
3486 }
3487 this.timer = null;
3488 }
3489}
3490
3491
3492/***/ }),
3493
3494/***/ "./node_modules/cli-progress/lib/ETA.js":
3495/*!**********************************************!*\
3496 !*** ./node_modules/cli-progress/lib/ETA.js ***!
3497 \**********************************************/
3498/*! no static exports found */
3499/***/ (function(module, exports) {
3500
3501
3502// ETA calculation
3503class ETA{
3504
3505 constructor(length, initTime, initValue){
3506 // size of eta buffer
3507 this.etaBufferLength = length || 10;
3508
3509 // eta buffer with initial values
3510 this.valueBuffer = [initValue];
3511 this.timeBuffer = [initTime];
3512
3513 // eta time value
3514 this.eta = '0';
3515 }
3516
3517 // add new values to calculation buffer
3518 push(time, value){
3519 this.valueBuffer.push(value);
3520 this.timeBuffer.push(time);
3521 }
3522
3523 // fetch estimated time
3524 getTime(){
3525 return this.eta;
3526 }
3527
3528 // eta calculation - request number of remaining events
3529 calculate(remaining){
3530 // get number of samples in eta buffer
3531 const currentBufferSize = this.valueBuffer.length;
3532 const buffer = Math.min(this.etaBufferLength, currentBufferSize);
3533
3534 const v_diff = this.valueBuffer[currentBufferSize - 1] - this.valueBuffer[currentBufferSize - buffer];
3535 const t_diff = this.timeBuffer[currentBufferSize - 1] - this.timeBuffer[currentBufferSize - buffer];
3536
3537 // get progress per ms
3538 const vt_rate = v_diff/t_diff;
3539
3540 // strip past elements
3541 this.valueBuffer = this.valueBuffer.slice(-this.etaBufferLength);
3542 this.timeBuffer = this.timeBuffer.slice(-this.etaBufferLength);
3543
3544 // eq: vt_rate *x = total
3545 const eta = Math.ceil(remaining/vt_rate/1000);
3546
3547 // check values
3548 if (isNaN(eta)){
3549 this.eta = 'NULL';
3550
3551 // +/- Infinity --- NaN already handled
3552 }else if (!isFinite(eta)){
3553 this.eta = 'INF';
3554
3555 // > 100k s ?
3556 }else if (eta > 100000){
3557 this.eta = 'INF';
3558
3559 }else{
3560 // assign
3561 this.eta = eta;
3562 }
3563 }
3564}
3565
3566module.exports = ETA;
3567
3568/***/ }),
3569
3570/***/ "./node_modules/cli-progress/lib/Terminal.js":
3571/*!***************************************************!*\
3572 !*** ./node_modules/cli-progress/lib/Terminal.js ***!
3573 \***************************************************/
3574/*! no static exports found */
3575/***/ (function(module, exports, __webpack_require__) {
3576
3577const _readline = __webpack_require__(/*! readline */ "readline");
3578
3579// low-level terminal interactions
3580class Terminal{
3581
3582 constructor(outputStream){
3583 this.stream = outputStream;
3584
3585 // default: line wrapping enabled
3586 this.linewrap = true;
3587 }
3588
3589 // save cursor position + settings
3590 cursorSave(){
3591 this.stream.write('\x1B7');
3592 }
3593
3594 // restore last cursor position + settings
3595 cursorRestore(){
3596 this.stream.write('\x1B8');
3597 }
3598
3599 // show/hide cursor
3600 cursor(enabled){
3601 if (enabled){
3602 this.stream.write('\x1B[?25h');
3603 }else{
3604 this.stream.write('\x1B[?25l');
3605 }
3606 }
3607
3608 // change cursor positionn
3609 cursorTo(x=null, y=null){
3610 _readline.cursorTo(this.stream, x, y);
3611 }
3612
3613 // clear to the right from cursor
3614 clearRight(){
3615 _readline.clearLine(this.stream, 1);
3616 }
3617
3618 // clear the full line
3619 clearLine(){
3620 _readline.clearLine(this.stream, 0);
3621 }
3622
3623 // write content to output stream
3624 // @TODO use string-width to strip length
3625 write(s){
3626 // line wrapping enabled ? trim output
3627 if (this.linewrap === true){
3628 this.stream.write(s.substr(0, this.getWidth()));
3629 }else{
3630 this.stream.write(s);
3631 }
3632 }
3633
3634 // control line wrapping
3635 lineWrapping(enabled){
3636 // store state
3637 this.linewrap = enabled;
3638 if (enabled){
3639 this.stream.write('\x1B[?7h');
3640 }else{
3641 this.stream.write('\x1B[?7l');
3642 }
3643 }
3644
3645 // tty environment ?
3646 isTTY(){
3647 return (this.stream.isTTY === true);
3648 }
3649
3650 // get terminal width
3651 getWidth(){
3652 return this.stream.columns || 80;
3653 }
3654}
3655
3656module.exports = Terminal;
3657
3658
3659/***/ }),
3660
3661/***/ "./node_modules/cli-progress/presets/index.js":
3662/*!****************************************************!*\
3663 !*** ./node_modules/cli-progress/presets/index.js ***!
3664 \****************************************************/
3665/*! no static exports found */
3666/***/ (function(module, exports, __webpack_require__) {
3667
3668const _legacy = __webpack_require__(/*! ./legacy */ "./node_modules/cli-progress/presets/legacy.js");
3669const _shades_classic = __webpack_require__(/*! ./shades-classic */ "./node_modules/cli-progress/presets/shades-classic.js");
3670const _shades_grey = __webpack_require__(/*! ./shades-grey */ "./node_modules/cli-progress/presets/shades-grey.js");
3671const _rect = __webpack_require__(/*! ./rect */ "./node_modules/cli-progress/presets/rect.js");
3672
3673module.exports = {
3674 legacy: _legacy,
3675 shades_classic: _shades_classic,
3676 shades_grey: _shades_grey,
3677 rect: _rect
3678};
3679
3680/***/ }),
3681
3682/***/ "./node_modules/cli-progress/presets/legacy.js":
3683/*!*****************************************************!*\
3684 !*** ./node_modules/cli-progress/presets/legacy.js ***!
3685 \*****************************************************/
3686/*! no static exports found */
3687/***/ (function(module, exports) {
3688
3689// cli-progress legacy style as of 1.x
3690module.exports = {
3691 format: 'progress [{bar}] {percentage}% | ETA: {eta}s | {value}/{total}',
3692 barCompleteChar: '=',
3693 barIncompleteChar: '-'
3694};
3695
3696/***/ }),
3697
3698/***/ "./node_modules/cli-progress/presets/rect.js":
3699/*!***************************************************!*\
3700 !*** ./node_modules/cli-progress/presets/rect.js ***!
3701 \***************************************************/
3702/*! no static exports found */
3703/***/ (function(module, exports) {
3704
3705module.exports = {
3706 format: ' {bar}\u25A0 {percentage}% | ETA: {eta}s | {value}/{total}',
3707 barCompleteChar: '\u25A0',
3708 barIncompleteChar: ' '
3709};
3710
3711/***/ }),
3712
3713/***/ "./node_modules/cli-progress/presets/shades-classic.js":
3714/*!*************************************************************!*\
3715 !*** ./node_modules/cli-progress/presets/shades-classic.js ***!
3716 \*************************************************************/
3717/*! no static exports found */
3718/***/ (function(module, exports) {
3719
3720// cli-progress legacy style as of 1.x
3721module.exports = {
3722 format: ' {bar} {percentage}% | ETA: {eta}s | {value}/{total}',
3723 barCompleteChar: '\u2588',
3724 barIncompleteChar: '\u2591'
3725};
3726
3727/***/ }),
3728
3729/***/ "./node_modules/cli-progress/presets/shades-grey.js":
3730/*!**********************************************************!*\
3731 !*** ./node_modules/cli-progress/presets/shades-grey.js ***!
3732 \**********************************************************/
3733/*! no static exports found */
3734/***/ (function(module, exports, __webpack_require__) {
3735
3736var _colors = __webpack_require__(/*! colors */ "./node_modules/colors/lib/index.js");
3737
3738// cli-progress legacy style as of 1.x
3739module.exports = {
3740 format: _colors.grey(' {bar}') + ' {percentage}% | ETA: {eta}s | {value}/{total}',
3741 barCompleteChar: '\u2588',
3742 barIncompleteChar: '\u2591'
3743};
3744
3745/***/ }),
3746
3747/***/ "./node_modules/cli-width/index.js":
3748/*!*****************************************!*\
3749 !*** ./node_modules/cli-width/index.js ***!
3750 \*****************************************/
3751/*! no static exports found */
3752/***/ (function(module, exports, __webpack_require__) {
3753
3754"use strict";
3755
3756
3757exports = module.exports = cliWidth;
3758
3759function normalizeOpts(options) {
3760 var defaultOpts = {
3761 defaultWidth: 0,
3762 output: process.stdout,
3763 tty: __webpack_require__(/*! tty */ "tty")
3764 };
3765
3766 if (!options) {
3767 return defaultOpts;
3768 } else {
3769 Object.keys(defaultOpts).forEach(function (key) {
3770 if (!options[key]) {
3771 options[key] = defaultOpts[key];
3772 }
3773 });
3774
3775 return options;
3776 }
3777}
3778
3779function cliWidth(options) {
3780 var opts = normalizeOpts(options);
3781
3782 if (opts.output.getWindowSize) {
3783 return opts.output.getWindowSize()[0] || opts.defaultWidth;
3784 } else {
3785 if (opts.tty.getWindowSize) {
3786 return opts.tty.getWindowSize()[1] || opts.defaultWidth;
3787 } else {
3788 if (opts.output.columns) {
3789 return opts.output.columns;
3790 } else {
3791 if (process.env.CLI_WIDTH) {
3792 var width = parseInt(process.env.CLI_WIDTH, 10);
3793
3794 if (!isNaN(width) && width !== 0) {
3795 return width;
3796 }
3797 }
3798 }
3799
3800 return opts.defaultWidth;
3801 }
3802 }
3803};
3804
3805
3806/***/ }),
3807
3808/***/ "./node_modules/color-convert/conversions.js":
3809/*!***************************************************!*\
3810 !*** ./node_modules/color-convert/conversions.js ***!
3811 \***************************************************/
3812/*! no static exports found */
3813/***/ (function(module, exports, __webpack_require__) {
3814
3815/* MIT license */
3816var cssKeywords = __webpack_require__(/*! color-name */ "./node_modules/color-name/index.js");
3817
3818// NOTE: conversions should only return primitive values (i.e. arrays, or
3819// values that give correct `typeof` results).
3820// do not use box values types (i.e. Number(), String(), etc.)
3821
3822var reverseKeywords = {};
3823for (var key in cssKeywords) {
3824 if (cssKeywords.hasOwnProperty(key)) {
3825 reverseKeywords[cssKeywords[key]] = key;
3826 }
3827}
3828
3829var convert = module.exports = {
3830 rgb: {channels: 3, labels: 'rgb'},
3831 hsl: {channels: 3, labels: 'hsl'},
3832 hsv: {channels: 3, labels: 'hsv'},
3833 hwb: {channels: 3, labels: 'hwb'},
3834 cmyk: {channels: 4, labels: 'cmyk'},
3835 xyz: {channels: 3, labels: 'xyz'},
3836 lab: {channels: 3, labels: 'lab'},
3837 lch: {channels: 3, labels: 'lch'},
3838 hex: {channels: 1, labels: ['hex']},
3839 keyword: {channels: 1, labels: ['keyword']},
3840 ansi16: {channels: 1, labels: ['ansi16']},
3841 ansi256: {channels: 1, labels: ['ansi256']},
3842 hcg: {channels: 3, labels: ['h', 'c', 'g']},
3843 apple: {channels: 3, labels: ['r16', 'g16', 'b16']},
3844 gray: {channels: 1, labels: ['gray']}
3845};
3846
3847// hide .channels and .labels properties
3848for (var model in convert) {
3849 if (convert.hasOwnProperty(model)) {
3850 if (!('channels' in convert[model])) {
3851 throw new Error('missing channels property: ' + model);
3852 }
3853
3854 if (!('labels' in convert[model])) {
3855 throw new Error('missing channel labels property: ' + model);
3856 }
3857
3858 if (convert[model].labels.length !== convert[model].channels) {
3859 throw new Error('channel and label counts mismatch: ' + model);
3860 }
3861
3862 var channels = convert[model].channels;
3863 var labels = convert[model].labels;
3864 delete convert[model].channels;
3865 delete convert[model].labels;
3866 Object.defineProperty(convert[model], 'channels', {value: channels});
3867 Object.defineProperty(convert[model], 'labels', {value: labels});
3868 }
3869}
3870
3871convert.rgb.hsl = function (rgb) {
3872 var r = rgb[0] / 255;
3873 var g = rgb[1] / 255;
3874 var b = rgb[2] / 255;
3875 var min = Math.min(r, g, b);
3876 var max = Math.max(r, g, b);
3877 var delta = max - min;
3878 var h;
3879 var s;
3880 var l;
3881
3882 if (max === min) {
3883 h = 0;
3884 } else if (r === max) {
3885 h = (g - b) / delta;
3886 } else if (g === max) {
3887 h = 2 + (b - r) / delta;
3888 } else if (b === max) {
3889 h = 4 + (r - g) / delta;
3890 }
3891
3892 h = Math.min(h * 60, 360);
3893
3894 if (h < 0) {
3895 h += 360;
3896 }
3897
3898 l = (min + max) / 2;
3899
3900 if (max === min) {
3901 s = 0;
3902 } else if (l <= 0.5) {
3903 s = delta / (max + min);
3904 } else {
3905 s = delta / (2 - max - min);
3906 }
3907
3908 return [h, s * 100, l * 100];
3909};
3910
3911convert.rgb.hsv = function (rgb) {
3912 var rdif;
3913 var gdif;
3914 var bdif;
3915 var h;
3916 var s;
3917
3918 var r = rgb[0] / 255;
3919 var g = rgb[1] / 255;
3920 var b = rgb[2] / 255;
3921 var v = Math.max(r, g, b);
3922 var diff = v - Math.min(r, g, b);
3923 var diffc = function (c) {
3924 return (v - c) / 6 / diff + 1 / 2;
3925 };
3926
3927 if (diff === 0) {
3928 h = s = 0;
3929 } else {
3930 s = diff / v;
3931 rdif = diffc(r);
3932 gdif = diffc(g);
3933 bdif = diffc(b);
3934
3935 if (r === v) {
3936 h = bdif - gdif;
3937 } else if (g === v) {
3938 h = (1 / 3) + rdif - bdif;
3939 } else if (b === v) {
3940 h = (2 / 3) + gdif - rdif;
3941 }
3942 if (h < 0) {
3943 h += 1;
3944 } else if (h > 1) {
3945 h -= 1;
3946 }
3947 }
3948
3949 return [
3950 h * 360,
3951 s * 100,
3952 v * 100
3953 ];
3954};
3955
3956convert.rgb.hwb = function (rgb) {
3957 var r = rgb[0];
3958 var g = rgb[1];
3959 var b = rgb[2];
3960 var h = convert.rgb.hsl(rgb)[0];
3961 var w = 1 / 255 * Math.min(r, Math.min(g, b));
3962
3963 b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
3964
3965 return [h, w * 100, b * 100];
3966};
3967
3968convert.rgb.cmyk = function (rgb) {
3969 var r = rgb[0] / 255;
3970 var g = rgb[1] / 255;
3971 var b = rgb[2] / 255;
3972 var c;
3973 var m;
3974 var y;
3975 var k;
3976
3977 k = Math.min(1 - r, 1 - g, 1 - b);
3978 c = (1 - r - k) / (1 - k) || 0;
3979 m = (1 - g - k) / (1 - k) || 0;
3980 y = (1 - b - k) / (1 - k) || 0;
3981
3982 return [c * 100, m * 100, y * 100, k * 100];
3983};
3984
3985/**
3986 * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance
3987 * */
3988function comparativeDistance(x, y) {
3989 return (
3990 Math.pow(x[0] - y[0], 2) +
3991 Math.pow(x[1] - y[1], 2) +
3992 Math.pow(x[2] - y[2], 2)
3993 );
3994}
3995
3996convert.rgb.keyword = function (rgb) {
3997 var reversed = reverseKeywords[rgb];
3998 if (reversed) {
3999 return reversed;
4000 }
4001
4002 var currentClosestDistance = Infinity;
4003 var currentClosestKeyword;
4004
4005 for (var keyword in cssKeywords) {
4006 if (cssKeywords.hasOwnProperty(keyword)) {
4007 var value = cssKeywords[keyword];
4008
4009 // Compute comparative distance
4010 var distance = comparativeDistance(rgb, value);
4011
4012 // Check if its less, if so set as closest
4013 if (distance < currentClosestDistance) {
4014 currentClosestDistance = distance;
4015 currentClosestKeyword = keyword;
4016 }
4017 }
4018 }
4019
4020 return currentClosestKeyword;
4021};
4022
4023convert.keyword.rgb = function (keyword) {
4024 return cssKeywords[keyword];
4025};
4026
4027convert.rgb.xyz = function (rgb) {
4028 var r = rgb[0] / 255;
4029 var g = rgb[1] / 255;
4030 var b = rgb[2] / 255;
4031
4032 // assume sRGB
4033 r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);
4034 g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);
4035 b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);
4036
4037 var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);
4038 var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);
4039 var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);
4040
4041 return [x * 100, y * 100, z * 100];
4042};
4043
4044convert.rgb.lab = function (rgb) {
4045 var xyz = convert.rgb.xyz(rgb);
4046 var x = xyz[0];
4047 var y = xyz[1];
4048 var z = xyz[2];
4049 var l;
4050 var a;
4051 var b;
4052
4053 x /= 95.047;
4054 y /= 100;
4055 z /= 108.883;
4056
4057 x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
4058 y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
4059 z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
4060
4061 l = (116 * y) - 16;
4062 a = 500 * (x - y);
4063 b = 200 * (y - z);
4064
4065 return [l, a, b];
4066};
4067
4068convert.hsl.rgb = function (hsl) {
4069 var h = hsl[0] / 360;
4070 var s = hsl[1] / 100;
4071 var l = hsl[2] / 100;
4072 var t1;
4073 var t2;
4074 var t3;
4075 var rgb;
4076 var val;
4077
4078 if (s === 0) {
4079 val = l * 255;
4080 return [val, val, val];
4081 }
4082
4083 if (l < 0.5) {
4084 t2 = l * (1 + s);
4085 } else {
4086 t2 = l + s - l * s;
4087 }
4088
4089 t1 = 2 * l - t2;
4090
4091 rgb = [0, 0, 0];
4092 for (var i = 0; i < 3; i++) {
4093 t3 = h + 1 / 3 * -(i - 1);
4094 if (t3 < 0) {
4095 t3++;
4096 }
4097 if (t3 > 1) {
4098 t3--;
4099 }
4100
4101 if (6 * t3 < 1) {
4102 val = t1 + (t2 - t1) * 6 * t3;
4103 } else if (2 * t3 < 1) {
4104 val = t2;
4105 } else if (3 * t3 < 2) {
4106 val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
4107 } else {
4108 val = t1;
4109 }
4110
4111 rgb[i] = val * 255;
4112 }
4113
4114 return rgb;
4115};
4116
4117convert.hsl.hsv = function (hsl) {
4118 var h = hsl[0];
4119 var s = hsl[1] / 100;
4120 var l = hsl[2] / 100;
4121 var smin = s;
4122 var lmin = Math.max(l, 0.01);
4123 var sv;
4124 var v;
4125
4126 l *= 2;
4127 s *= (l <= 1) ? l : 2 - l;
4128 smin *= lmin <= 1 ? lmin : 2 - lmin;
4129 v = (l + s) / 2;
4130 sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);
4131
4132 return [h, sv * 100, v * 100];
4133};
4134
4135convert.hsv.rgb = function (hsv) {
4136 var h = hsv[0] / 60;
4137 var s = hsv[1] / 100;
4138 var v = hsv[2] / 100;
4139 var hi = Math.floor(h) % 6;
4140
4141 var f = h - Math.floor(h);
4142 var p = 255 * v * (1 - s);
4143 var q = 255 * v * (1 - (s * f));
4144 var t = 255 * v * (1 - (s * (1 - f)));
4145 v *= 255;
4146
4147 switch (hi) {
4148 case 0:
4149 return [v, t, p];
4150 case 1:
4151 return [q, v, p];
4152 case 2:
4153 return [p, v, t];
4154 case 3:
4155 return [p, q, v];
4156 case 4:
4157 return [t, p, v];
4158 case 5:
4159 return [v, p, q];
4160 }
4161};
4162
4163convert.hsv.hsl = function (hsv) {
4164 var h = hsv[0];
4165 var s = hsv[1] / 100;
4166 var v = hsv[2] / 100;
4167 var vmin = Math.max(v, 0.01);
4168 var lmin;
4169 var sl;
4170 var l;
4171
4172 l = (2 - s) * v;
4173 lmin = (2 - s) * vmin;
4174 sl = s * vmin;
4175 sl /= (lmin <= 1) ? lmin : 2 - lmin;
4176 sl = sl || 0;
4177 l /= 2;
4178
4179 return [h, sl * 100, l * 100];
4180};
4181
4182// http://dev.w3.org/csswg/css-color/#hwb-to-rgb
4183convert.hwb.rgb = function (hwb) {
4184 var h = hwb[0] / 360;
4185 var wh = hwb[1] / 100;
4186 var bl = hwb[2] / 100;
4187 var ratio = wh + bl;
4188 var i;
4189 var v;
4190 var f;
4191 var n;
4192
4193 // wh + bl cant be > 1
4194 if (ratio > 1) {
4195 wh /= ratio;
4196 bl /= ratio;
4197 }
4198
4199 i = Math.floor(6 * h);
4200 v = 1 - bl;
4201 f = 6 * h - i;
4202
4203 if ((i & 0x01) !== 0) {
4204 f = 1 - f;
4205 }
4206
4207 n = wh + f * (v - wh); // linear interpolation
4208
4209 var r;
4210 var g;
4211 var b;
4212 switch (i) {
4213 default:
4214 case 6:
4215 case 0: r = v; g = n; b = wh; break;
4216 case 1: r = n; g = v; b = wh; break;
4217 case 2: r = wh; g = v; b = n; break;
4218 case 3: r = wh; g = n; b = v; break;
4219 case 4: r = n; g = wh; b = v; break;
4220 case 5: r = v; g = wh; b = n; break;
4221 }
4222
4223 return [r * 255, g * 255, b * 255];
4224};
4225
4226convert.cmyk.rgb = function (cmyk) {
4227 var c = cmyk[0] / 100;
4228 var m = cmyk[1] / 100;
4229 var y = cmyk[2] / 100;
4230 var k = cmyk[3] / 100;
4231 var r;
4232 var g;
4233 var b;
4234
4235 r = 1 - Math.min(1, c * (1 - k) + k);
4236 g = 1 - Math.min(1, m * (1 - k) + k);
4237 b = 1 - Math.min(1, y * (1 - k) + k);
4238
4239 return [r * 255, g * 255, b * 255];
4240};
4241
4242convert.xyz.rgb = function (xyz) {
4243 var x = xyz[0] / 100;
4244 var y = xyz[1] / 100;
4245 var z = xyz[2] / 100;
4246 var r;
4247 var g;
4248 var b;
4249
4250 r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);
4251 g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);
4252 b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);
4253
4254 // assume sRGB
4255 r = r > 0.0031308
4256 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)
4257 : r * 12.92;
4258
4259 g = g > 0.0031308
4260 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)
4261 : g * 12.92;
4262
4263 b = b > 0.0031308
4264 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)
4265 : b * 12.92;
4266
4267 r = Math.min(Math.max(0, r), 1);
4268 g = Math.min(Math.max(0, g), 1);
4269 b = Math.min(Math.max(0, b), 1);
4270
4271 return [r * 255, g * 255, b * 255];
4272};
4273
4274convert.xyz.lab = function (xyz) {
4275 var x = xyz[0];
4276 var y = xyz[1];
4277 var z = xyz[2];
4278 var l;
4279 var a;
4280 var b;
4281
4282 x /= 95.047;
4283 y /= 100;
4284 z /= 108.883;
4285
4286 x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
4287 y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
4288 z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
4289
4290 l = (116 * y) - 16;
4291 a = 500 * (x - y);
4292 b = 200 * (y - z);
4293
4294 return [l, a, b];
4295};
4296
4297convert.lab.xyz = function (lab) {
4298 var l = lab[0];
4299 var a = lab[1];
4300 var b = lab[2];
4301 var x;
4302 var y;
4303 var z;
4304
4305 y = (l + 16) / 116;
4306 x = a / 500 + y;
4307 z = y - b / 200;
4308
4309 var y2 = Math.pow(y, 3);
4310 var x2 = Math.pow(x, 3);
4311 var z2 = Math.pow(z, 3);
4312 y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
4313 x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
4314 z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
4315
4316 x *= 95.047;
4317 y *= 100;
4318 z *= 108.883;
4319
4320 return [x, y, z];
4321};
4322
4323convert.lab.lch = function (lab) {
4324 var l = lab[0];
4325 var a = lab[1];
4326 var b = lab[2];
4327 var hr;
4328 var h;
4329 var c;
4330
4331 hr = Math.atan2(b, a);
4332 h = hr * 360 / 2 / Math.PI;
4333
4334 if (h < 0) {
4335 h += 360;
4336 }
4337
4338 c = Math.sqrt(a * a + b * b);
4339
4340 return [l, c, h];
4341};
4342
4343convert.lch.lab = function (lch) {
4344 var l = lch[0];
4345 var c = lch[1];
4346 var h = lch[2];
4347 var a;
4348 var b;
4349 var hr;
4350
4351 hr = h / 360 * 2 * Math.PI;
4352 a = c * Math.cos(hr);
4353 b = c * Math.sin(hr);
4354
4355 return [l, a, b];
4356};
4357
4358convert.rgb.ansi16 = function (args) {
4359 var r = args[0];
4360 var g = args[1];
4361 var b = args[2];
4362 var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization
4363
4364 value = Math.round(value / 50);
4365
4366 if (value === 0) {
4367 return 30;
4368 }
4369
4370 var ansi = 30
4371 + ((Math.round(b / 255) << 2)
4372 | (Math.round(g / 255) << 1)
4373 | Math.round(r / 255));
4374
4375 if (value === 2) {
4376 ansi += 60;
4377 }
4378
4379 return ansi;
4380};
4381
4382convert.hsv.ansi16 = function (args) {
4383 // optimization here; we already know the value and don't need to get
4384 // it converted for us.
4385 return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
4386};
4387
4388convert.rgb.ansi256 = function (args) {
4389 var r = args[0];
4390 var g = args[1];
4391 var b = args[2];
4392
4393 // we use the extended greyscale palette here, with the exception of
4394 // black and white. normal palette only has 4 greyscale shades.
4395 if (r === g && g === b) {
4396 if (r < 8) {
4397 return 16;
4398 }
4399
4400 if (r > 248) {
4401 return 231;
4402 }
4403
4404 return Math.round(((r - 8) / 247) * 24) + 232;
4405 }
4406
4407 var ansi = 16
4408 + (36 * Math.round(r / 255 * 5))
4409 + (6 * Math.round(g / 255 * 5))
4410 + Math.round(b / 255 * 5);
4411
4412 return ansi;
4413};
4414
4415convert.ansi16.rgb = function (args) {
4416 var color = args % 10;
4417
4418 // handle greyscale
4419 if (color === 0 || color === 7) {
4420 if (args > 50) {
4421 color += 3.5;
4422 }
4423
4424 color = color / 10.5 * 255;
4425
4426 return [color, color, color];
4427 }
4428
4429 var mult = (~~(args > 50) + 1) * 0.5;
4430 var r = ((color & 1) * mult) * 255;
4431 var g = (((color >> 1) & 1) * mult) * 255;
4432 var b = (((color >> 2) & 1) * mult) * 255;
4433
4434 return [r, g, b];
4435};
4436
4437convert.ansi256.rgb = function (args) {
4438 // handle greyscale
4439 if (args >= 232) {
4440 var c = (args - 232) * 10 + 8;
4441 return [c, c, c];
4442 }
4443
4444 args -= 16;
4445
4446 var rem;
4447 var r = Math.floor(args / 36) / 5 * 255;
4448 var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
4449 var b = (rem % 6) / 5 * 255;
4450
4451 return [r, g, b];
4452};
4453
4454convert.rgb.hex = function (args) {
4455 var integer = ((Math.round(args[0]) & 0xFF) << 16)
4456 + ((Math.round(args[1]) & 0xFF) << 8)
4457 + (Math.round(args[2]) & 0xFF);
4458
4459 var string = integer.toString(16).toUpperCase();
4460 return '000000'.substring(string.length) + string;
4461};
4462
4463convert.hex.rgb = function (args) {
4464 var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
4465 if (!match) {
4466 return [0, 0, 0];
4467 }
4468
4469 var colorString = match[0];
4470
4471 if (match[0].length === 3) {
4472 colorString = colorString.split('').map(function (char) {
4473 return char + char;
4474 }).join('');
4475 }
4476
4477 var integer = parseInt(colorString, 16);
4478 var r = (integer >> 16) & 0xFF;
4479 var g = (integer >> 8) & 0xFF;
4480 var b = integer & 0xFF;
4481
4482 return [r, g, b];
4483};
4484
4485convert.rgb.hcg = function (rgb) {
4486 var r = rgb[0] / 255;
4487 var g = rgb[1] / 255;
4488 var b = rgb[2] / 255;
4489 var max = Math.max(Math.max(r, g), b);
4490 var min = Math.min(Math.min(r, g), b);
4491 var chroma = (max - min);
4492 var grayscale;
4493 var hue;
4494
4495 if (chroma < 1) {
4496 grayscale = min / (1 - chroma);
4497 } else {
4498 grayscale = 0;
4499 }
4500
4501 if (chroma <= 0) {
4502 hue = 0;
4503 } else
4504 if (max === r) {
4505 hue = ((g - b) / chroma) % 6;
4506 } else
4507 if (max === g) {
4508 hue = 2 + (b - r) / chroma;
4509 } else {
4510 hue = 4 + (r - g) / chroma + 4;
4511 }
4512
4513 hue /= 6;
4514 hue %= 1;
4515
4516 return [hue * 360, chroma * 100, grayscale * 100];
4517};
4518
4519convert.hsl.hcg = function (hsl) {
4520 var s = hsl[1] / 100;
4521 var l = hsl[2] / 100;
4522 var c = 1;
4523 var f = 0;
4524
4525 if (l < 0.5) {
4526 c = 2.0 * s * l;
4527 } else {
4528 c = 2.0 * s * (1.0 - l);
4529 }
4530
4531 if (c < 1.0) {
4532 f = (l - 0.5 * c) / (1.0 - c);
4533 }
4534
4535 return [hsl[0], c * 100, f * 100];
4536};
4537
4538convert.hsv.hcg = function (hsv) {
4539 var s = hsv[1] / 100;
4540 var v = hsv[2] / 100;
4541
4542 var c = s * v;
4543 var f = 0;
4544
4545 if (c < 1.0) {
4546 f = (v - c) / (1 - c);
4547 }
4548
4549 return [hsv[0], c * 100, f * 100];
4550};
4551
4552convert.hcg.rgb = function (hcg) {
4553 var h = hcg[0] / 360;
4554 var c = hcg[1] / 100;
4555 var g = hcg[2] / 100;
4556
4557 if (c === 0.0) {
4558 return [g * 255, g * 255, g * 255];
4559 }
4560
4561 var pure = [0, 0, 0];
4562 var hi = (h % 1) * 6;
4563 var v = hi % 1;
4564 var w = 1 - v;
4565 var mg = 0;
4566
4567 switch (Math.floor(hi)) {
4568 case 0:
4569 pure[0] = 1; pure[1] = v; pure[2] = 0; break;
4570 case 1:
4571 pure[0] = w; pure[1] = 1; pure[2] = 0; break;
4572 case 2:
4573 pure[0] = 0; pure[1] = 1; pure[2] = v; break;
4574 case 3:
4575 pure[0] = 0; pure[1] = w; pure[2] = 1; break;
4576 case 4:
4577 pure[0] = v; pure[1] = 0; pure[2] = 1; break;
4578 default:
4579 pure[0] = 1; pure[1] = 0; pure[2] = w;
4580 }
4581
4582 mg = (1.0 - c) * g;
4583
4584 return [
4585 (c * pure[0] + mg) * 255,
4586 (c * pure[1] + mg) * 255,
4587 (c * pure[2] + mg) * 255
4588 ];
4589};
4590
4591convert.hcg.hsv = function (hcg) {
4592 var c = hcg[1] / 100;
4593 var g = hcg[2] / 100;
4594
4595 var v = c + g * (1.0 - c);
4596 var f = 0;
4597
4598 if (v > 0.0) {
4599 f = c / v;
4600 }
4601
4602 return [hcg[0], f * 100, v * 100];
4603};
4604
4605convert.hcg.hsl = function (hcg) {
4606 var c = hcg[1] / 100;
4607 var g = hcg[2] / 100;
4608
4609 var l = g * (1.0 - c) + 0.5 * c;
4610 var s = 0;
4611
4612 if (l > 0.0 && l < 0.5) {
4613 s = c / (2 * l);
4614 } else
4615 if (l >= 0.5 && l < 1.0) {
4616 s = c / (2 * (1 - l));
4617 }
4618
4619 return [hcg[0], s * 100, l * 100];
4620};
4621
4622convert.hcg.hwb = function (hcg) {
4623 var c = hcg[1] / 100;
4624 var g = hcg[2] / 100;
4625 var v = c + g * (1.0 - c);
4626 return [hcg[0], (v - c) * 100, (1 - v) * 100];
4627};
4628
4629convert.hwb.hcg = function (hwb) {
4630 var w = hwb[1] / 100;
4631 var b = hwb[2] / 100;
4632 var v = 1 - b;
4633 var c = v - w;
4634 var g = 0;
4635
4636 if (c < 1) {
4637 g = (v - c) / (1 - c);
4638 }
4639
4640 return [hwb[0], c * 100, g * 100];
4641};
4642
4643convert.apple.rgb = function (apple) {
4644 return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];
4645};
4646
4647convert.rgb.apple = function (rgb) {
4648 return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];
4649};
4650
4651convert.gray.rgb = function (args) {
4652 return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
4653};
4654
4655convert.gray.hsl = convert.gray.hsv = function (args) {
4656 return [0, 0, args[0]];
4657};
4658
4659convert.gray.hwb = function (gray) {
4660 return [0, 100, gray[0]];
4661};
4662
4663convert.gray.cmyk = function (gray) {
4664 return [0, 0, 0, gray[0]];
4665};
4666
4667convert.gray.lab = function (gray) {
4668 return [gray[0], 0, 0];
4669};
4670
4671convert.gray.hex = function (gray) {
4672 var val = Math.round(gray[0] / 100 * 255) & 0xFF;
4673 var integer = (val << 16) + (val << 8) + val;
4674
4675 var string = integer.toString(16).toUpperCase();
4676 return '000000'.substring(string.length) + string;
4677};
4678
4679convert.rgb.gray = function (rgb) {
4680 var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
4681 return [val / 255 * 100];
4682};
4683
4684
4685/***/ }),
4686
4687/***/ "./node_modules/color-convert/index.js":
4688/*!*********************************************!*\
4689 !*** ./node_modules/color-convert/index.js ***!
4690 \*********************************************/
4691/*! no static exports found */
4692/***/ (function(module, exports, __webpack_require__) {
4693
4694var conversions = __webpack_require__(/*! ./conversions */ "./node_modules/color-convert/conversions.js");
4695var route = __webpack_require__(/*! ./route */ "./node_modules/color-convert/route.js");
4696
4697var convert = {};
4698
4699var models = Object.keys(conversions);
4700
4701function wrapRaw(fn) {
4702 var wrappedFn = function (args) {
4703 if (args === undefined || args === null) {
4704 return args;
4705 }
4706
4707 if (arguments.length > 1) {
4708 args = Array.prototype.slice.call(arguments);
4709 }
4710
4711 return fn(args);
4712 };
4713
4714 // preserve .conversion property if there is one
4715 if ('conversion' in fn) {
4716 wrappedFn.conversion = fn.conversion;
4717 }
4718
4719 return wrappedFn;
4720}
4721
4722function wrapRounded(fn) {
4723 var wrappedFn = function (args) {
4724 if (args === undefined || args === null) {
4725 return args;
4726 }
4727
4728 if (arguments.length > 1) {
4729 args = Array.prototype.slice.call(arguments);
4730 }
4731
4732 var result = fn(args);
4733
4734 // we're assuming the result is an array here.
4735 // see notice in conversions.js; don't use box types
4736 // in conversion functions.
4737 if (typeof result === 'object') {
4738 for (var len = result.length, i = 0; i < len; i++) {
4739 result[i] = Math.round(result[i]);
4740 }
4741 }
4742
4743 return result;
4744 };
4745
4746 // preserve .conversion property if there is one
4747 if ('conversion' in fn) {
4748 wrappedFn.conversion = fn.conversion;
4749 }
4750
4751 return wrappedFn;
4752}
4753
4754models.forEach(function (fromModel) {
4755 convert[fromModel] = {};
4756
4757 Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});
4758 Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});
4759
4760 var routes = route(fromModel);
4761 var routeModels = Object.keys(routes);
4762
4763 routeModels.forEach(function (toModel) {
4764 var fn = routes[toModel];
4765
4766 convert[fromModel][toModel] = wrapRounded(fn);
4767 convert[fromModel][toModel].raw = wrapRaw(fn);
4768 });
4769});
4770
4771module.exports = convert;
4772
4773
4774/***/ }),
4775
4776/***/ "./node_modules/color-convert/route.js":
4777/*!*********************************************!*\
4778 !*** ./node_modules/color-convert/route.js ***!
4779 \*********************************************/
4780/*! no static exports found */
4781/***/ (function(module, exports, __webpack_require__) {
4782
4783var conversions = __webpack_require__(/*! ./conversions */ "./node_modules/color-convert/conversions.js");
4784
4785/*
4786 this function routes a model to all other models.
4787
4788 all functions that are routed have a property `.conversion` attached
4789 to the returned synthetic function. This property is an array
4790 of strings, each with the steps in between the 'from' and 'to'
4791 color models (inclusive).
4792
4793 conversions that are not possible simply are not included.
4794*/
4795
4796function buildGraph() {
4797 var graph = {};
4798 // https://jsperf.com/object-keys-vs-for-in-with-closure/3
4799 var models = Object.keys(conversions);
4800
4801 for (var len = models.length, i = 0; i < len; i++) {
4802 graph[models[i]] = {
4803 // http://jsperf.com/1-vs-infinity
4804 // micro-opt, but this is simple.
4805 distance: -1,
4806 parent: null
4807 };
4808 }
4809
4810 return graph;
4811}
4812
4813// https://en.wikipedia.org/wiki/Breadth-first_search
4814function deriveBFS(fromModel) {
4815 var graph = buildGraph();
4816 var queue = [fromModel]; // unshift -> queue -> pop
4817
4818 graph[fromModel].distance = 0;
4819
4820 while (queue.length) {
4821 var current = queue.pop();
4822 var adjacents = Object.keys(conversions[current]);
4823
4824 for (var len = adjacents.length, i = 0; i < len; i++) {
4825 var adjacent = adjacents[i];
4826 var node = graph[adjacent];
4827
4828 if (node.distance === -1) {
4829 node.distance = graph[current].distance + 1;
4830 node.parent = current;
4831 queue.unshift(adjacent);
4832 }
4833 }
4834 }
4835
4836 return graph;
4837}
4838
4839function link(from, to) {
4840 return function (args) {
4841 return to(from(args));
4842 };
4843}
4844
4845function wrapConversion(toModel, graph) {
4846 var path = [graph[toModel].parent, toModel];
4847 var fn = conversions[graph[toModel].parent][toModel];
4848
4849 var cur = graph[toModel].parent;
4850 while (graph[cur].parent) {
4851 path.unshift(graph[cur].parent);
4852 fn = link(conversions[graph[cur].parent][cur], fn);
4853 cur = graph[cur].parent;
4854 }
4855
4856 fn.conversion = path;
4857 return fn;
4858}
4859
4860module.exports = function (fromModel) {
4861 var graph = deriveBFS(fromModel);
4862 var conversion = {};
4863
4864 var models = Object.keys(graph);
4865 for (var len = models.length, i = 0; i < len; i++) {
4866 var toModel = models[i];
4867 var node = graph[toModel];
4868
4869 if (node.parent === null) {
4870 // no possible conversion, or this node is the source model.
4871 continue;
4872 }
4873
4874 conversion[toModel] = wrapConversion(toModel, graph);
4875 }
4876
4877 return conversion;
4878};
4879
4880
4881
4882/***/ }),
4883
4884/***/ "./node_modules/color-name/index.js":
4885/*!******************************************!*\
4886 !*** ./node_modules/color-name/index.js ***!
4887 \******************************************/
4888/*! no static exports found */
4889/***/ (function(module, exports, __webpack_require__) {
4890
4891"use strict";
4892
4893
4894module.exports = {
4895 "aliceblue": [240, 248, 255],
4896 "antiquewhite": [250, 235, 215],
4897 "aqua": [0, 255, 255],
4898 "aquamarine": [127, 255, 212],
4899 "azure": [240, 255, 255],
4900 "beige": [245, 245, 220],
4901 "bisque": [255, 228, 196],
4902 "black": [0, 0, 0],
4903 "blanchedalmond": [255, 235, 205],
4904 "blue": [0, 0, 255],
4905 "blueviolet": [138, 43, 226],
4906 "brown": [165, 42, 42],
4907 "burlywood": [222, 184, 135],
4908 "cadetblue": [95, 158, 160],
4909 "chartreuse": [127, 255, 0],
4910 "chocolate": [210, 105, 30],
4911 "coral": [255, 127, 80],
4912 "cornflowerblue": [100, 149, 237],
4913 "cornsilk": [255, 248, 220],
4914 "crimson": [220, 20, 60],
4915 "cyan": [0, 255, 255],
4916 "darkblue": [0, 0, 139],
4917 "darkcyan": [0, 139, 139],
4918 "darkgoldenrod": [184, 134, 11],
4919 "darkgray": [169, 169, 169],
4920 "darkgreen": [0, 100, 0],
4921 "darkgrey": [169, 169, 169],
4922 "darkkhaki": [189, 183, 107],
4923 "darkmagenta": [139, 0, 139],
4924 "darkolivegreen": [85, 107, 47],
4925 "darkorange": [255, 140, 0],
4926 "darkorchid": [153, 50, 204],
4927 "darkred": [139, 0, 0],
4928 "darksalmon": [233, 150, 122],
4929 "darkseagreen": [143, 188, 143],
4930 "darkslateblue": [72, 61, 139],
4931 "darkslategray": [47, 79, 79],
4932 "darkslategrey": [47, 79, 79],
4933 "darkturquoise": [0, 206, 209],
4934 "darkviolet": [148, 0, 211],
4935 "deeppink": [255, 20, 147],
4936 "deepskyblue": [0, 191, 255],
4937 "dimgray": [105, 105, 105],
4938 "dimgrey": [105, 105, 105],
4939 "dodgerblue": [30, 144, 255],
4940 "firebrick": [178, 34, 34],
4941 "floralwhite": [255, 250, 240],
4942 "forestgreen": [34, 139, 34],
4943 "fuchsia": [255, 0, 255],
4944 "gainsboro": [220, 220, 220],
4945 "ghostwhite": [248, 248, 255],
4946 "gold": [255, 215, 0],
4947 "goldenrod": [218, 165, 32],
4948 "gray": [128, 128, 128],
4949 "green": [0, 128, 0],
4950 "greenyellow": [173, 255, 47],
4951 "grey": [128, 128, 128],
4952 "honeydew": [240, 255, 240],
4953 "hotpink": [255, 105, 180],
4954 "indianred": [205, 92, 92],
4955 "indigo": [75, 0, 130],
4956 "ivory": [255, 255, 240],
4957 "khaki": [240, 230, 140],
4958 "lavender": [230, 230, 250],
4959 "lavenderblush": [255, 240, 245],
4960 "lawngreen": [124, 252, 0],
4961 "lemonchiffon": [255, 250, 205],
4962 "lightblue": [173, 216, 230],
4963 "lightcoral": [240, 128, 128],
4964 "lightcyan": [224, 255, 255],
4965 "lightgoldenrodyellow": [250, 250, 210],
4966 "lightgray": [211, 211, 211],
4967 "lightgreen": [144, 238, 144],
4968 "lightgrey": [211, 211, 211],
4969 "lightpink": [255, 182, 193],
4970 "lightsalmon": [255, 160, 122],
4971 "lightseagreen": [32, 178, 170],
4972 "lightskyblue": [135, 206, 250],
4973 "lightslategray": [119, 136, 153],
4974 "lightslategrey": [119, 136, 153],
4975 "lightsteelblue": [176, 196, 222],
4976 "lightyellow": [255, 255, 224],
4977 "lime": [0, 255, 0],
4978 "limegreen": [50, 205, 50],
4979 "linen": [250, 240, 230],
4980 "magenta": [255, 0, 255],
4981 "maroon": [128, 0, 0],
4982 "mediumaquamarine": [102, 205, 170],
4983 "mediumblue": [0, 0, 205],
4984 "mediumorchid": [186, 85, 211],
4985 "mediumpurple": [147, 112, 219],
4986 "mediumseagreen": [60, 179, 113],
4987 "mediumslateblue": [123, 104, 238],
4988 "mediumspringgreen": [0, 250, 154],
4989 "mediumturquoise": [72, 209, 204],
4990 "mediumvioletred": [199, 21, 133],
4991 "midnightblue": [25, 25, 112],
4992 "mintcream": [245, 255, 250],
4993 "mistyrose": [255, 228, 225],
4994 "moccasin": [255, 228, 181],
4995 "navajowhite": [255, 222, 173],
4996 "navy": [0, 0, 128],
4997 "oldlace": [253, 245, 230],
4998 "olive": [128, 128, 0],
4999 "olivedrab": [107, 142, 35],
5000 "orange": [255, 165, 0],
5001 "orangered": [255, 69, 0],
5002 "orchid": [218, 112, 214],
5003 "palegoldenrod": [238, 232, 170],
5004 "palegreen": [152, 251, 152],
5005 "paleturquoise": [175, 238, 238],
5006 "palevioletred": [219, 112, 147],
5007 "papayawhip": [255, 239, 213],
5008 "peachpuff": [255, 218, 185],
5009 "peru": [205, 133, 63],
5010 "pink": [255, 192, 203],
5011 "plum": [221, 160, 221],
5012 "powderblue": [176, 224, 230],
5013 "purple": [128, 0, 128],
5014 "rebeccapurple": [102, 51, 153],
5015 "red": [255, 0, 0],
5016 "rosybrown": [188, 143, 143],
5017 "royalblue": [65, 105, 225],
5018 "saddlebrown": [139, 69, 19],
5019 "salmon": [250, 128, 114],
5020 "sandybrown": [244, 164, 96],
5021 "seagreen": [46, 139, 87],
5022 "seashell": [255, 245, 238],
5023 "sienna": [160, 82, 45],
5024 "silver": [192, 192, 192],
5025 "skyblue": [135, 206, 235],
5026 "slateblue": [106, 90, 205],
5027 "slategray": [112, 128, 144],
5028 "slategrey": [112, 128, 144],
5029 "snow": [255, 250, 250],
5030 "springgreen": [0, 255, 127],
5031 "steelblue": [70, 130, 180],
5032 "tan": [210, 180, 140],
5033 "teal": [0, 128, 128],
5034 "thistle": [216, 191, 216],
5035 "tomato": [255, 99, 71],
5036 "turquoise": [64, 224, 208],
5037 "violet": [238, 130, 238],
5038 "wheat": [245, 222, 179],
5039 "white": [255, 255, 255],
5040 "whitesmoke": [245, 245, 245],
5041 "yellow": [255, 255, 0],
5042 "yellowgreen": [154, 205, 50]
5043};
5044
5045
5046/***/ }),
5047
5048/***/ "./node_modules/colors/lib/colors.js":
5049/*!*******************************************!*\
5050 !*** ./node_modules/colors/lib/colors.js ***!
5051 \*******************************************/
5052/*! no static exports found */
5053/***/ (function(module, exports, __webpack_require__) {
5054
5055/*
5056
5057The MIT License (MIT)
5058
5059Original Library
5060 - Copyright (c) Marak Squires
5061
5062Additional functionality
5063 - Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
5064
5065Permission is hereby granted, free of charge, to any person obtaining a copy
5066of this software and associated documentation files (the "Software"), to deal
5067in the Software without restriction, including without limitation the rights
5068to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
5069copies of the Software, and to permit persons to whom the Software is
5070furnished to do so, subject to the following conditions:
5071
5072The above copyright notice and this permission notice shall be included in
5073all copies or substantial portions of the Software.
5074
5075THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
5076IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
5077FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
5078AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
5079LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
5080OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
5081THE SOFTWARE.
5082
5083*/
5084
5085var colors = {};
5086module['exports'] = colors;
5087
5088colors.themes = {};
5089
5090var util = __webpack_require__(/*! util */ "util");
5091var ansiStyles = colors.styles = __webpack_require__(/*! ./styles */ "./node_modules/colors/lib/styles.js");
5092var defineProps = Object.defineProperties;
5093var newLineRegex = new RegExp(/[\r\n]+/g);
5094
5095colors.supportsColor = __webpack_require__(/*! ./system/supports-colors */ "./node_modules/colors/lib/system/supports-colors.js").supportsColor;
5096
5097if (typeof colors.enabled === 'undefined') {
5098 colors.enabled = colors.supportsColor() !== false;
5099}
5100
5101colors.enable = function() {
5102 colors.enabled = true;
5103};
5104
5105colors.disable = function() {
5106 colors.enabled = false;
5107};
5108
5109colors.stripColors = colors.strip = function(str) {
5110 return ('' + str).replace(/\x1B\[\d+m/g, '');
5111};
5112
5113// eslint-disable-next-line no-unused-vars
5114var stylize = colors.stylize = function stylize(str, style) {
5115 if (!colors.enabled) {
5116 return str+'';
5117 }
5118
5119 return ansiStyles[style].open + str + ansiStyles[style].close;
5120};
5121
5122var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
5123var escapeStringRegexp = function(str) {
5124 if (typeof str !== 'string') {
5125 throw new TypeError('Expected a string');
5126 }
5127 return str.replace(matchOperatorsRe, '\\$&');
5128};
5129
5130function build(_styles) {
5131 var builder = function builder() {
5132 return applyStyle.apply(builder, arguments);
5133 };
5134 builder._styles = _styles;
5135 // __proto__ is used because we must return a function, but there is
5136 // no way to create a function with a different prototype.
5137 builder.__proto__ = proto;
5138 return builder;
5139}
5140
5141var styles = (function() {
5142 var ret = {};
5143 ansiStyles.grey = ansiStyles.gray;
5144 Object.keys(ansiStyles).forEach(function(key) {
5145 ansiStyles[key].closeRe =
5146 new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
5147 ret[key] = {
5148 get: function() {
5149 return build(this._styles.concat(key));
5150 },
5151 };
5152 });
5153 return ret;
5154})();
5155
5156var proto = defineProps(function colors() {}, styles);
5157
5158function applyStyle() {
5159 var args = Array.prototype.slice.call(arguments);
5160
5161 var str = args.map(function(arg) {
5162 if (arg != undefined && arg.constructor === String) {
5163 return arg;
5164 } else {
5165 return util.inspect(arg);
5166 }
5167 }).join(' ');
5168
5169 if (!colors.enabled || !str) {
5170 return str;
5171 }
5172
5173 var newLinesPresent = str.indexOf('\n') != -1;
5174
5175 var nestedStyles = this._styles;
5176
5177 var i = nestedStyles.length;
5178 while (i--) {
5179 var code = ansiStyles[nestedStyles[i]];
5180 str = code.open + str.replace(code.closeRe, code.open) + code.close;
5181 if (newLinesPresent) {
5182 str = str.replace(newLineRegex, function(match) {
5183 return code.close + match + code.open;
5184 });
5185 }
5186 }
5187
5188 return str;
5189}
5190
5191colors.setTheme = function(theme) {
5192 if (typeof theme === 'string') {
5193 console.log('colors.setTheme now only accepts an object, not a string. ' +
5194 'If you are trying to set a theme from a file, it is now your (the ' +
5195 'caller\'s) responsibility to require the file. The old syntax ' +
5196 'looked like colors.setTheme(__dirname + ' +
5197 '\'/../themes/generic-logging.js\'); The new syntax looks like '+
5198 'colors.setTheme(require(__dirname + ' +
5199 '\'/../themes/generic-logging.js\'));');
5200 return;
5201 }
5202 for (var style in theme) {
5203 (function(style) {
5204 colors[style] = function(str) {
5205 if (typeof theme[style] === 'object') {
5206 var out = str;
5207 for (var i in theme[style]) {
5208 out = colors[theme[style][i]](out);
5209 }
5210 return out;
5211 }
5212 return colors[theme[style]](str);
5213 };
5214 })(style);
5215 }
5216};
5217
5218function init() {
5219 var ret = {};
5220 Object.keys(styles).forEach(function(name) {
5221 ret[name] = {
5222 get: function() {
5223 return build([name]);
5224 },
5225 };
5226 });
5227 return ret;
5228}
5229
5230var sequencer = function sequencer(map, str) {
5231 var exploded = str.split('');
5232 exploded = exploded.map(map);
5233 return exploded.join('');
5234};
5235
5236// custom formatter methods
5237colors.trap = __webpack_require__(/*! ./custom/trap */ "./node_modules/colors/lib/custom/trap.js");
5238colors.zalgo = __webpack_require__(/*! ./custom/zalgo */ "./node_modules/colors/lib/custom/zalgo.js");
5239
5240// maps
5241colors.maps = {};
5242colors.maps.america = __webpack_require__(/*! ./maps/america */ "./node_modules/colors/lib/maps/america.js")(colors);
5243colors.maps.zebra = __webpack_require__(/*! ./maps/zebra */ "./node_modules/colors/lib/maps/zebra.js")(colors);
5244colors.maps.rainbow = __webpack_require__(/*! ./maps/rainbow */ "./node_modules/colors/lib/maps/rainbow.js")(colors);
5245colors.maps.random = __webpack_require__(/*! ./maps/random */ "./node_modules/colors/lib/maps/random.js")(colors);
5246
5247for (var map in colors.maps) {
5248 (function(map) {
5249 colors[map] = function(str) {
5250 return sequencer(colors.maps[map], str);
5251 };
5252 })(map);
5253}
5254
5255defineProps(colors, init());
5256
5257
5258/***/ }),
5259
5260/***/ "./node_modules/colors/lib/custom/trap.js":
5261/*!************************************************!*\
5262 !*** ./node_modules/colors/lib/custom/trap.js ***!
5263 \************************************************/
5264/*! no static exports found */
5265/***/ (function(module, exports) {
5266
5267module['exports'] = function runTheTrap(text, options) {
5268 var result = '';
5269 text = text || 'Run the trap, drop the bass';
5270 text = text.split('');
5271 var trap = {
5272 a: ['\u0040', '\u0104', '\u023a', '\u0245', '\u0394', '\u039b', '\u0414'],
5273 b: ['\u00df', '\u0181', '\u0243', '\u026e', '\u03b2', '\u0e3f'],
5274 c: ['\u00a9', '\u023b', '\u03fe'],
5275 d: ['\u00d0', '\u018a', '\u0500', '\u0501', '\u0502', '\u0503'],
5276 e: ['\u00cb', '\u0115', '\u018e', '\u0258', '\u03a3', '\u03be', '\u04bc',
5277 '\u0a6c'],
5278 f: ['\u04fa'],
5279 g: ['\u0262'],
5280 h: ['\u0126', '\u0195', '\u04a2', '\u04ba', '\u04c7', '\u050a'],
5281 i: ['\u0f0f'],
5282 j: ['\u0134'],
5283 k: ['\u0138', '\u04a0', '\u04c3', '\u051e'],
5284 l: ['\u0139'],
5285 m: ['\u028d', '\u04cd', '\u04ce', '\u0520', '\u0521', '\u0d69'],
5286 n: ['\u00d1', '\u014b', '\u019d', '\u0376', '\u03a0', '\u048a'],
5287 o: ['\u00d8', '\u00f5', '\u00f8', '\u01fe', '\u0298', '\u047a', '\u05dd',
5288 '\u06dd', '\u0e4f'],
5289 p: ['\u01f7', '\u048e'],
5290 q: ['\u09cd'],
5291 r: ['\u00ae', '\u01a6', '\u0210', '\u024c', '\u0280', '\u042f'],
5292 s: ['\u00a7', '\u03de', '\u03df', '\u03e8'],
5293 t: ['\u0141', '\u0166', '\u0373'],
5294 u: ['\u01b1', '\u054d'],
5295 v: ['\u05d8'],
5296 w: ['\u0428', '\u0460', '\u047c', '\u0d70'],
5297 x: ['\u04b2', '\u04fe', '\u04fc', '\u04fd'],
5298 y: ['\u00a5', '\u04b0', '\u04cb'],
5299 z: ['\u01b5', '\u0240'],
5300 };
5301 text.forEach(function(c) {
5302 c = c.toLowerCase();
5303 var chars = trap[c] || [' '];
5304 var rand = Math.floor(Math.random() * chars.length);
5305 if (typeof trap[c] !== 'undefined') {
5306 result += trap[c][rand];
5307 } else {
5308 result += c;
5309 }
5310 });
5311 return result;
5312};
5313
5314
5315/***/ }),
5316
5317/***/ "./node_modules/colors/lib/custom/zalgo.js":
5318/*!*************************************************!*\
5319 !*** ./node_modules/colors/lib/custom/zalgo.js ***!
5320 \*************************************************/
5321/*! no static exports found */
5322/***/ (function(module, exports) {
5323
5324// please no
5325module['exports'] = function zalgo(text, options) {
5326 text = text || ' he is here ';
5327 var soul = {
5328 'up': [
5329 '̍', '̎', '̄', '̅',
5330 '̿', '̑', '̆', '̐',
5331 '͒', '͗', '͑', '̇',
5332 '̈', '̊', '͂', '̓',
5333 '̈', '͊', '͋', '͌',
5334 '̃', '̂', '̌', '͐',
5335 '̀', '́', '̋', '̏',
5336 '̒', '̓', '̔', '̽',
5337 '̉', 'ͣ', 'ͤ', 'ͥ',
5338 'ͦ', 'ͧ', 'ͨ', 'ͩ',
5339 'ͪ', 'ͫ', 'ͬ', 'ͭ',
5340 'ͮ', 'ͯ', '̾', '͛',
5341 '͆', '̚',
5342 ],
5343 'down': [
5344 '̖', '̗', '̘', '̙',
5345 '̜', '̝', '̞', '̟',
5346 '̠', '̤', '̥', '̦',
5347 '̩', '̪', '̫', '̬',
5348 '̭', '̮', '̯', '̰',
5349 '̱', '̲', '̳', '̹',
5350 '̺', '̻', '̼', 'ͅ',
5351 '͇', '͈', '͉', '͍',
5352 '͎', '͓', '͔', '͕',
5353 '͖', '͙', '͚', '̣',
5354 ],
5355 'mid': [
5356 '̕', '̛', '̀', '́',
5357 '͘', '̡', '̢', '̧',
5358 '̨', '̴', '̵', '̶',
5359 '͜', '͝', '͞',
5360 '͟', '͠', '͢', '̸',
5361 '̷', '͡', ' ҉',
5362 ],
5363 };
5364 var all = [].concat(soul.up, soul.down, soul.mid);
5365
5366 function randomNumber(range) {
5367 var r = Math.floor(Math.random() * range);
5368 return r;
5369 }
5370
5371 function isChar(character) {
5372 var bool = false;
5373 all.filter(function(i) {
5374 bool = (i === character);
5375 });
5376 return bool;
5377 }
5378
5379
5380 function heComes(text, options) {
5381 var result = '';
5382 var counts;
5383 var l;
5384 options = options || {};
5385 options['up'] =
5386 typeof options['up'] !== 'undefined' ? options['up'] : true;
5387 options['mid'] =
5388 typeof options['mid'] !== 'undefined' ? options['mid'] : true;
5389 options['down'] =
5390 typeof options['down'] !== 'undefined' ? options['down'] : true;
5391 options['size'] =
5392 typeof options['size'] !== 'undefined' ? options['size'] : 'maxi';
5393 text = text.split('');
5394 for (l in text) {
5395 if (isChar(l)) {
5396 continue;
5397 }
5398 result = result + text[l];
5399 counts = {'up': 0, 'down': 0, 'mid': 0};
5400 switch (options.size) {
5401 case 'mini':
5402 counts.up = randomNumber(8);
5403 counts.mid = randomNumber(2);
5404 counts.down = randomNumber(8);
5405 break;
5406 case 'maxi':
5407 counts.up = randomNumber(16) + 3;
5408 counts.mid = randomNumber(4) + 1;
5409 counts.down = randomNumber(64) + 3;
5410 break;
5411 default:
5412 counts.up = randomNumber(8) + 1;
5413 counts.mid = randomNumber(6) / 2;
5414 counts.down = randomNumber(8) + 1;
5415 break;
5416 }
5417
5418 var arr = ['up', 'mid', 'down'];
5419 for (var d in arr) {
5420 var index = arr[d];
5421 for (var i = 0; i <= counts[index]; i++) {
5422 if (options[index]) {
5423 result = result + soul[index][randomNumber(soul[index].length)];
5424 }
5425 }
5426 }
5427 }
5428 return result;
5429 }
5430 // don't summon him
5431 return heComes(text, options);
5432};
5433
5434
5435
5436/***/ }),
5437
5438/***/ "./node_modules/colors/lib/extendStringPrototype.js":
5439/*!**********************************************************!*\
5440 !*** ./node_modules/colors/lib/extendStringPrototype.js ***!
5441 \**********************************************************/
5442/*! no static exports found */
5443/***/ (function(module, exports, __webpack_require__) {
5444
5445var colors = __webpack_require__(/*! ./colors */ "./node_modules/colors/lib/colors.js");
5446
5447module['exports'] = function() {
5448 //
5449 // Extends prototype of native string object to allow for "foo".red syntax
5450 //
5451 var addProperty = function(color, func) {
5452 String.prototype.__defineGetter__(color, func);
5453 };
5454
5455 addProperty('strip', function() {
5456 return colors.strip(this);
5457 });
5458
5459 addProperty('stripColors', function() {
5460 return colors.strip(this);
5461 });
5462
5463 addProperty('trap', function() {
5464 return colors.trap(this);
5465 });
5466
5467 addProperty('zalgo', function() {
5468 return colors.zalgo(this);
5469 });
5470
5471 addProperty('zebra', function() {
5472 return colors.zebra(this);
5473 });
5474
5475 addProperty('rainbow', function() {
5476 return colors.rainbow(this);
5477 });
5478
5479 addProperty('random', function() {
5480 return colors.random(this);
5481 });
5482
5483 addProperty('america', function() {
5484 return colors.america(this);
5485 });
5486
5487 //
5488 // Iterate through all default styles and colors
5489 //
5490 var x = Object.keys(colors.styles);
5491 x.forEach(function(style) {
5492 addProperty(style, function() {
5493 return colors.stylize(this, style);
5494 });
5495 });
5496
5497 function applyTheme(theme) {
5498 //
5499 // Remark: This is a list of methods that exist
5500 // on String that you should not overwrite.
5501 //
5502 var stringPrototypeBlacklist = [
5503 '__defineGetter__', '__defineSetter__', '__lookupGetter__',
5504 '__lookupSetter__', 'charAt', 'constructor', 'hasOwnProperty',
5505 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString',
5506 'valueOf', 'charCodeAt', 'indexOf', 'lastIndexOf', 'length',
5507 'localeCompare', 'match', 'repeat', 'replace', 'search', 'slice',
5508 'split', 'substring', 'toLocaleLowerCase', 'toLocaleUpperCase',
5509 'toLowerCase', 'toUpperCase', 'trim', 'trimLeft', 'trimRight',
5510 ];
5511
5512 Object.keys(theme).forEach(function(prop) {
5513 if (stringPrototypeBlacklist.indexOf(prop) !== -1) {
5514 console.log('warn: '.red + ('String.prototype' + prop).magenta +
5515 ' is probably something you don\'t want to override. ' +
5516 'Ignoring style name');
5517 } else {
5518 if (typeof(theme[prop]) === 'string') {
5519 colors[prop] = colors[theme[prop]];
5520 } else {
5521 var tmp = colors[theme[prop][0]];
5522 for (var t = 1; t < theme[prop].length; t++) {
5523 tmp = tmp[theme[prop][t]];
5524 }
5525 colors[prop] = tmp;
5526 }
5527 addProperty(prop, function() {
5528 return colors[prop](this);
5529 });
5530 }
5531 });
5532 }
5533
5534 colors.setTheme = function(theme) {
5535 if (typeof theme === 'string') {
5536 console.log('colors.setTheme now only accepts an object, not a string. ' +
5537 'If you are trying to set a theme from a file, it is now your (the ' +
5538 'caller\'s) responsibility to require the file. The old syntax ' +
5539 'looked like colors.setTheme(__dirname + ' +
5540 '\'/../themes/generic-logging.js\'); The new syntax looks like '+
5541 'colors.setTheme(require(__dirname + ' +
5542 '\'/../themes/generic-logging.js\'));');
5543 return;
5544 } else {
5545 applyTheme(theme);
5546 }
5547 };
5548};
5549
5550
5551/***/ }),
5552
5553/***/ "./node_modules/colors/lib/index.js":
5554/*!******************************************!*\
5555 !*** ./node_modules/colors/lib/index.js ***!
5556 \******************************************/
5557/*! no static exports found */
5558/***/ (function(module, exports, __webpack_require__) {
5559
5560var colors = __webpack_require__(/*! ./colors */ "./node_modules/colors/lib/colors.js");
5561module['exports'] = colors;
5562
5563// Remark: By default, colors will add style properties to String.prototype.
5564//
5565// If you don't wish to extend String.prototype, you can do this instead and
5566// native String will not be touched:
5567//
5568// var colors = require('colors/safe);
5569// colors.red("foo")
5570//
5571//
5572__webpack_require__(/*! ./extendStringPrototype */ "./node_modules/colors/lib/extendStringPrototype.js")();
5573
5574
5575/***/ }),
5576
5577/***/ "./node_modules/colors/lib/maps/america.js":
5578/*!*************************************************!*\
5579 !*** ./node_modules/colors/lib/maps/america.js ***!
5580 \*************************************************/
5581/*! no static exports found */
5582/***/ (function(module, exports) {
5583
5584module['exports'] = function(colors) {
5585 return function(letter, i, exploded) {
5586 if (letter === ' ') return letter;
5587 switch (i%3) {
5588 case 0: return colors.red(letter);
5589 case 1: return colors.white(letter);
5590 case 2: return colors.blue(letter);
5591 }
5592 };
5593};
5594
5595
5596/***/ }),
5597
5598/***/ "./node_modules/colors/lib/maps/rainbow.js":
5599/*!*************************************************!*\
5600 !*** ./node_modules/colors/lib/maps/rainbow.js ***!
5601 \*************************************************/
5602/*! no static exports found */
5603/***/ (function(module, exports) {
5604
5605module['exports'] = function(colors) {
5606 // RoY G BiV
5607 var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta'];
5608 return function(letter, i, exploded) {
5609 if (letter === ' ') {
5610 return letter;
5611 } else {
5612 return colors[rainbowColors[i++ % rainbowColors.length]](letter);
5613 }
5614 };
5615};
5616
5617
5618
5619/***/ }),
5620
5621/***/ "./node_modules/colors/lib/maps/random.js":
5622/*!************************************************!*\
5623 !*** ./node_modules/colors/lib/maps/random.js ***!
5624 \************************************************/
5625/*! no static exports found */
5626/***/ (function(module, exports) {
5627
5628module['exports'] = function(colors) {
5629 var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green',
5630 'blue', 'white', 'cyan', 'magenta'];
5631 return function(letter, i, exploded) {
5632 return letter === ' ' ? letter :
5633 colors[
5634 available[Math.round(Math.random() * (available.length - 2))]
5635 ](letter);
5636 };
5637};
5638
5639
5640/***/ }),
5641
5642/***/ "./node_modules/colors/lib/maps/zebra.js":
5643/*!***********************************************!*\
5644 !*** ./node_modules/colors/lib/maps/zebra.js ***!
5645 \***********************************************/
5646/*! no static exports found */
5647/***/ (function(module, exports) {
5648
5649module['exports'] = function(colors) {
5650 return function(letter, i, exploded) {
5651 return i % 2 === 0 ? letter : colors.inverse(letter);
5652 };
5653};
5654
5655
5656/***/ }),
5657
5658/***/ "./node_modules/colors/lib/styles.js":
5659/*!*******************************************!*\
5660 !*** ./node_modules/colors/lib/styles.js ***!
5661 \*******************************************/
5662/*! no static exports found */
5663/***/ (function(module, exports) {
5664
5665/*
5666The MIT License (MIT)
5667
5668Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
5669
5670Permission is hereby granted, free of charge, to any person obtaining a copy
5671of this software and associated documentation files (the "Software"), to deal
5672in the Software without restriction, including without limitation the rights
5673to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
5674copies of the Software, and to permit persons to whom the Software is
5675furnished to do so, subject to the following conditions:
5676
5677The above copyright notice and this permission notice shall be included in
5678all copies or substantial portions of the Software.
5679
5680THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
5681IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
5682FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
5683AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
5684LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
5685OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
5686THE SOFTWARE.
5687
5688*/
5689
5690var styles = {};
5691module['exports'] = styles;
5692
5693var codes = {
5694 reset: [0, 0],
5695
5696 bold: [1, 22],
5697 dim: [2, 22],
5698 italic: [3, 23],
5699 underline: [4, 24],
5700 inverse: [7, 27],
5701 hidden: [8, 28],
5702 strikethrough: [9, 29],
5703
5704 black: [30, 39],
5705 red: [31, 39],
5706 green: [32, 39],
5707 yellow: [33, 39],
5708 blue: [34, 39],
5709 magenta: [35, 39],
5710 cyan: [36, 39],
5711 white: [37, 39],
5712 gray: [90, 39],
5713 grey: [90, 39],
5714
5715 bgBlack: [40, 49],
5716 bgRed: [41, 49],
5717 bgGreen: [42, 49],
5718 bgYellow: [43, 49],
5719 bgBlue: [44, 49],
5720 bgMagenta: [45, 49],
5721 bgCyan: [46, 49],
5722 bgWhite: [47, 49],
5723
5724 // legacy styles for colors pre v1.0.0
5725 blackBG: [40, 49],
5726 redBG: [41, 49],
5727 greenBG: [42, 49],
5728 yellowBG: [43, 49],
5729 blueBG: [44, 49],
5730 magentaBG: [45, 49],
5731 cyanBG: [46, 49],
5732 whiteBG: [47, 49],
5733
5734};
5735
5736Object.keys(codes).forEach(function(key) {
5737 var val = codes[key];
5738 var style = styles[key] = [];
5739 style.open = '\u001b[' + val[0] + 'm';
5740 style.close = '\u001b[' + val[1] + 'm';
5741});
5742
5743
5744/***/ }),
5745
5746/***/ "./node_modules/colors/lib/system/has-flag.js":
5747/*!****************************************************!*\
5748 !*** ./node_modules/colors/lib/system/has-flag.js ***!
5749 \****************************************************/
5750/*! no static exports found */
5751/***/ (function(module, exports, __webpack_require__) {
5752
5753"use strict";
5754/*
5755MIT License
5756
5757Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
5758
5759Permission is hereby granted, free of charge, to any person obtaining a copy of
5760this software and associated documentation files (the "Software"), to deal in
5761the Software without restriction, including without limitation the rights to
5762use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
5763of the Software, and to permit persons to whom the Software is furnished to do
5764so, subject to the following conditions:
5765
5766The above copyright notice and this permission notice shall be included in all
5767copies or substantial portions of the Software.
5768
5769THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
5770IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
5771FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
5772AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
5773LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
5774OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
5775SOFTWARE.
5776*/
5777
5778
5779
5780module.exports = function(flag, argv) {
5781 argv = argv || process.argv;
5782
5783 var terminatorPos = argv.indexOf('--');
5784 var prefix = /^-{1,2}/.test(flag) ? '' : '--';
5785 var pos = argv.indexOf(prefix + flag);
5786
5787 return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
5788};
5789
5790
5791/***/ }),
5792
5793/***/ "./node_modules/colors/lib/system/supports-colors.js":
5794/*!***********************************************************!*\
5795 !*** ./node_modules/colors/lib/system/supports-colors.js ***!
5796 \***********************************************************/
5797/*! no static exports found */
5798/***/ (function(module, exports, __webpack_require__) {
5799
5800"use strict";
5801/*
5802The MIT License (MIT)
5803
5804Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
5805
5806Permission is hereby granted, free of charge, to any person obtaining a copy
5807of this software and associated documentation files (the "Software"), to deal
5808in the Software without restriction, including without limitation the rights
5809to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
5810copies of the Software, and to permit persons to whom the Software is
5811furnished to do so, subject to the following conditions:
5812
5813The above copyright notice and this permission notice shall be included in
5814all copies or substantial portions of the Software.
5815
5816THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
5817IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
5818FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
5819AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
5820LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
5821OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
5822THE SOFTWARE.
5823
5824*/
5825
5826
5827
5828var os = __webpack_require__(/*! os */ "os");
5829var hasFlag = __webpack_require__(/*! ./has-flag.js */ "./node_modules/colors/lib/system/has-flag.js");
5830
5831var env = process.env;
5832
5833var forceColor = void 0;
5834if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) {
5835 forceColor = false;
5836} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true')
5837 || hasFlag('color=always')) {
5838 forceColor = true;
5839}
5840if ('FORCE_COLOR' in env) {
5841 forceColor = env.FORCE_COLOR.length === 0
5842 || parseInt(env.FORCE_COLOR, 10) !== 0;
5843}
5844
5845function translateLevel(level) {
5846 if (level === 0) {
5847 return false;
5848 }
5849
5850 return {
5851 level: level,
5852 hasBasic: true,
5853 has256: level >= 2,
5854 has16m: level >= 3,
5855 };
5856}
5857
5858function supportsColor(stream) {
5859 if (forceColor === false) {
5860 return 0;
5861 }
5862
5863 if (hasFlag('color=16m') || hasFlag('color=full')
5864 || hasFlag('color=truecolor')) {
5865 return 3;
5866 }
5867
5868 if (hasFlag('color=256')) {
5869 return 2;
5870 }
5871
5872 if (stream && !stream.isTTY && forceColor !== true) {
5873 return 0;
5874 }
5875
5876 var min = forceColor ? 1 : 0;
5877
5878 if (process.platform === 'win32') {
5879 // Node.js 7.5.0 is the first version of Node.js to include a patch to
5880 // libuv that enables 256 color output on Windows. Anything earlier and it
5881 // won't work. However, here we target Node.js 8 at minimum as it is an LTS
5882 // release, and Node.js 7 is not. Windows 10 build 10586 is the first
5883 // Windows release that supports 256 colors. Windows 10 build 14931 is the
5884 // first release that supports 16m/TrueColor.
5885 var osRelease = os.release().split('.');
5886 if (Number(process.versions.node.split('.')[0]) >= 8
5887 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
5888 return Number(osRelease[2]) >= 14931 ? 3 : 2;
5889 }
5890
5891 return 1;
5892 }
5893
5894 if ('CI' in env) {
5895 if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) {
5896 return sign in env;
5897 }) || env.CI_NAME === 'codeship') {
5898 return 1;
5899 }
5900
5901 return min;
5902 }
5903
5904 if ('TEAMCITY_VERSION' in env) {
5905 return (/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0
5906 );
5907 }
5908
5909 if ('TERM_PROGRAM' in env) {
5910 var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
5911
5912 switch (env.TERM_PROGRAM) {
5913 case 'iTerm.app':
5914 return version >= 3 ? 3 : 2;
5915 case 'Hyper':
5916 return 3;
5917 case 'Apple_Terminal':
5918 return 2;
5919 // No default
5920 }
5921 }
5922
5923 if (/-256(color)?$/i.test(env.TERM)) {
5924 return 2;
5925 }
5926
5927 if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
5928 return 1;
5929 }
5930
5931 if ('COLORTERM' in env) {
5932 return 1;
5933 }
5934
5935 if (env.TERM === 'dumb') {
5936 return min;
5937 }
5938
5939 return min;
5940}
5941
5942function getSupportLevel(stream) {
5943 var level = supportsColor(stream);
5944 return translateLevel(level);
5945}
5946
5947module.exports = {
5948 supportsColor: getSupportLevel,
5949 stdout: getSupportLevel(process.stdout),
5950 stderr: getSupportLevel(process.stderr),
5951};
5952
5953
5954/***/ }),
5955
5956/***/ "./node_modules/commander/index.js":
5957/*!*****************************************!*\
5958 !*** ./node_modules/commander/index.js ***!
5959 \*****************************************/
5960/*! no static exports found */
5961/***/ (function(module, exports, __webpack_require__) {
5962
5963/**
5964 * Module dependencies.
5965 */
5966
5967var EventEmitter = __webpack_require__(/*! events */ "events").EventEmitter;
5968var spawn = __webpack_require__(/*! child_process */ "child_process").spawn;
5969var path = __webpack_require__(/*! path */ "path");
5970var dirname = path.dirname;
5971var basename = path.basename;
5972var fs = __webpack_require__(/*! fs */ "fs");
5973
5974/**
5975 * Inherit `Command` from `EventEmitter.prototype`.
5976 */
5977
5978__webpack_require__(/*! util */ "util").inherits(Command, EventEmitter);
5979
5980/**
5981 * Expose the root command.
5982 */
5983
5984exports = module.exports = new Command();
5985
5986/**
5987 * Expose `Command`.
5988 */
5989
5990exports.Command = Command;
5991
5992/**
5993 * Expose `Option`.
5994 */
5995
5996exports.Option = Option;
5997
5998/**
5999 * Initialize a new `Option` with the given `flags` and `description`.
6000 *
6001 * @param {String} flags
6002 * @param {String} description
6003 * @api public
6004 */
6005
6006function Option(flags, description) {
6007 this.flags = flags;
6008 this.required = flags.indexOf('<') >= 0;
6009 this.optional = flags.indexOf('[') >= 0;
6010 this.bool = flags.indexOf('-no-') === -1;
6011 flags = flags.split(/[ ,|]+/);
6012 if (flags.length > 1 && !/^[[<]/.test(flags[1])) this.short = flags.shift();
6013 this.long = flags.shift();
6014 this.description = description || '';
6015}
6016
6017/**
6018 * Return option name.
6019 *
6020 * @return {String}
6021 * @api private
6022 */
6023
6024Option.prototype.name = function() {
6025 return this.long
6026 .replace('--', '')
6027 .replace('no-', '');
6028};
6029
6030/**
6031 * Return option name, in a camelcase format that can be used
6032 * as a object attribute key.
6033 *
6034 * @return {String}
6035 * @api private
6036 */
6037
6038Option.prototype.attributeName = function() {
6039 return camelcase(this.name());
6040};
6041
6042/**
6043 * Check if `arg` matches the short or long flag.
6044 *
6045 * @param {String} arg
6046 * @return {Boolean}
6047 * @api private
6048 */
6049
6050Option.prototype.is = function(arg) {
6051 return this.short === arg || this.long === arg;
6052};
6053
6054/**
6055 * Initialize a new `Command`.
6056 *
6057 * @param {String} name
6058 * @api public
6059 */
6060
6061function Command(name) {
6062 this.commands = [];
6063 this.options = [];
6064 this._execs = {};
6065 this._allowUnknownOption = false;
6066 this._args = [];
6067 this._name = name || '';
6068}
6069
6070/**
6071 * Add command `name`.
6072 *
6073 * The `.action()` callback is invoked when the
6074 * command `name` is specified via __ARGV__,
6075 * and the remaining arguments are applied to the
6076 * function for access.
6077 *
6078 * When the `name` is "*" an un-matched command
6079 * will be passed as the first arg, followed by
6080 * the rest of __ARGV__ remaining.
6081 *
6082 * Examples:
6083 *
6084 * program
6085 * .version('0.0.1')
6086 * .option('-C, --chdir <path>', 'change the working directory')
6087 * .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
6088 * .option('-T, --no-tests', 'ignore test hook')
6089 *
6090 * program
6091 * .command('setup')
6092 * .description('run remote setup commands')
6093 * .action(function() {
6094 * console.log('setup');
6095 * });
6096 *
6097 * program
6098 * .command('exec <cmd>')
6099 * .description('run the given remote command')
6100 * .action(function(cmd) {
6101 * console.log('exec "%s"', cmd);
6102 * });
6103 *
6104 * program
6105 * .command('teardown <dir> [otherDirs...]')
6106 * .description('run teardown commands')
6107 * .action(function(dir, otherDirs) {
6108 * console.log('dir "%s"', dir);
6109 * if (otherDirs) {
6110 * otherDirs.forEach(function (oDir) {
6111 * console.log('dir "%s"', oDir);
6112 * });
6113 * }
6114 * });
6115 *
6116 * program
6117 * .command('*')
6118 * .description('deploy the given env')
6119 * .action(function(env) {
6120 * console.log('deploying "%s"', env);
6121 * });
6122 *
6123 * program.parse(process.argv);
6124 *
6125 * @param {String} name
6126 * @param {String} [desc] for git-style sub-commands
6127 * @return {Command} the new command
6128 * @api public
6129 */
6130
6131Command.prototype.command = function(name, desc, opts) {
6132 if (typeof desc === 'object' && desc !== null) {
6133 opts = desc;
6134 desc = null;
6135 }
6136 opts = opts || {};
6137 var args = name.split(/ +/);
6138 var cmd = new Command(args.shift());
6139
6140 if (desc) {
6141 cmd.description(desc);
6142 this.executables = true;
6143 this._execs[cmd._name] = true;
6144 if (opts.isDefault) this.defaultExecutable = cmd._name;
6145 }
6146 cmd._noHelp = !!opts.noHelp;
6147 this.commands.push(cmd);
6148 cmd.parseExpectedArgs(args);
6149 cmd.parent = this;
6150
6151 if (desc) return this;
6152 return cmd;
6153};
6154
6155/**
6156 * Define argument syntax for the top-level command.
6157 *
6158 * @api public
6159 */
6160
6161Command.prototype.arguments = function(desc) {
6162 return this.parseExpectedArgs(desc.split(/ +/));
6163};
6164
6165/**
6166 * Add an implicit `help [cmd]` subcommand
6167 * which invokes `--help` for the given command.
6168 *
6169 * @api private
6170 */
6171
6172Command.prototype.addImplicitHelpCommand = function() {
6173 this.command('help [cmd]', 'display help for [cmd]');
6174};
6175
6176/**
6177 * Parse expected `args`.
6178 *
6179 * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
6180 *
6181 * @param {Array} args
6182 * @return {Command} for chaining
6183 * @api public
6184 */
6185
6186Command.prototype.parseExpectedArgs = function(args) {
6187 if (!args.length) return;
6188 var self = this;
6189 args.forEach(function(arg) {
6190 var argDetails = {
6191 required: false,
6192 name: '',
6193 variadic: false
6194 };
6195
6196 switch (arg[0]) {
6197 case '<':
6198 argDetails.required = true;
6199 argDetails.name = arg.slice(1, -1);
6200 break;
6201 case '[':
6202 argDetails.name = arg.slice(1, -1);
6203 break;
6204 }
6205
6206 if (argDetails.name.length > 3 && argDetails.name.slice(-3) === '...') {
6207 argDetails.variadic = true;
6208 argDetails.name = argDetails.name.slice(0, -3);
6209 }
6210 if (argDetails.name) {
6211 self._args.push(argDetails);
6212 }
6213 });
6214 return this;
6215};
6216
6217/**
6218 * Register callback `fn` for the command.
6219 *
6220 * Examples:
6221 *
6222 * program
6223 * .command('help')
6224 * .description('display verbose help')
6225 * .action(function() {
6226 * // output help here
6227 * });
6228 *
6229 * @param {Function} fn
6230 * @return {Command} for chaining
6231 * @api public
6232 */
6233
6234Command.prototype.action = function(fn) {
6235 var self = this;
6236 var listener = function(args, unknown) {
6237 // Parse any so-far unknown options
6238 args = args || [];
6239 unknown = unknown || [];
6240
6241 var parsed = self.parseOptions(unknown);
6242
6243 // Output help if necessary
6244 outputHelpIfNecessary(self, parsed.unknown);
6245
6246 // If there are still any unknown options, then we simply
6247 // die, unless someone asked for help, in which case we give it
6248 // to them, and then we die.
6249 if (parsed.unknown.length > 0) {
6250 self.unknownOption(parsed.unknown[0]);
6251 }
6252
6253 // Leftover arguments need to be pushed back. Fixes issue #56
6254 if (parsed.args.length) args = parsed.args.concat(args);
6255
6256 self._args.forEach(function(arg, i) {
6257 if (arg.required && args[i] == null) {
6258 self.missingArgument(arg.name);
6259 } else if (arg.variadic) {
6260 if (i !== self._args.length - 1) {
6261 self.variadicArgNotLast(arg.name);
6262 }
6263
6264 args[i] = args.splice(i);
6265 }
6266 });
6267
6268 // Always append ourselves to the end of the arguments,
6269 // to make sure we match the number of arguments the user
6270 // expects
6271 if (self._args.length) {
6272 args[self._args.length] = self;
6273 } else {
6274 args.push(self);
6275 }
6276
6277 fn.apply(self, args);
6278 };
6279 var parent = this.parent || this;
6280 var name = parent === this ? '*' : this._name;
6281 parent.on('command:' + name, listener);
6282 if (this._alias) parent.on('command:' + this._alias, listener);
6283 return this;
6284};
6285
6286/**
6287 * Define option with `flags`, `description` and optional
6288 * coercion `fn`.
6289 *
6290 * The `flags` string should contain both the short and long flags,
6291 * separated by comma, a pipe or space. The following are all valid
6292 * all will output this way when `--help` is used.
6293 *
6294 * "-p, --pepper"
6295 * "-p|--pepper"
6296 * "-p --pepper"
6297 *
6298 * Examples:
6299 *
6300 * // simple boolean defaulting to false
6301 * program.option('-p, --pepper', 'add pepper');
6302 *
6303 * --pepper
6304 * program.pepper
6305 * // => Boolean
6306 *
6307 * // simple boolean defaulting to true
6308 * program.option('-C, --no-cheese', 'remove cheese');
6309 *
6310 * program.cheese
6311 * // => true
6312 *
6313 * --no-cheese
6314 * program.cheese
6315 * // => false
6316 *
6317 * // required argument
6318 * program.option('-C, --chdir <path>', 'change the working directory');
6319 *
6320 * --chdir /tmp
6321 * program.chdir
6322 * // => "/tmp"
6323 *
6324 * // optional argument
6325 * program.option('-c, --cheese [type]', 'add cheese [marble]');
6326 *
6327 * @param {String} flags
6328 * @param {String} description
6329 * @param {Function|*} [fn] or default
6330 * @param {*} [defaultValue]
6331 * @return {Command} for chaining
6332 * @api public
6333 */
6334
6335Command.prototype.option = function(flags, description, fn, defaultValue) {
6336 var self = this,
6337 option = new Option(flags, description),
6338 oname = option.name(),
6339 name = option.attributeName();
6340
6341 // default as 3rd arg
6342 if (typeof fn !== 'function') {
6343 if (fn instanceof RegExp) {
6344 var regex = fn;
6345 fn = function(val, def) {
6346 var m = regex.exec(val);
6347 return m ? m[0] : def;
6348 };
6349 } else {
6350 defaultValue = fn;
6351 fn = null;
6352 }
6353 }
6354
6355 // preassign default value only for --no-*, [optional], or <required>
6356 if (!option.bool || option.optional || option.required) {
6357 // when --no-* we make sure default is true
6358 if (!option.bool) defaultValue = true;
6359 // preassign only if we have a default
6360 if (defaultValue !== undefined) {
6361 self[name] = defaultValue;
6362 option.defaultValue = defaultValue;
6363 }
6364 }
6365
6366 // register the option
6367 this.options.push(option);
6368
6369 // when it's passed assign the value
6370 // and conditionally invoke the callback
6371 this.on('option:' + oname, function(val) {
6372 // coercion
6373 if (val !== null && fn) {
6374 val = fn(val, self[name] === undefined ? defaultValue : self[name]);
6375 }
6376
6377 // unassigned or bool
6378 if (typeof self[name] === 'boolean' || typeof self[name] === 'undefined') {
6379 // if no value, bool true, and we have a default, then use it!
6380 if (val == null) {
6381 self[name] = option.bool
6382 ? defaultValue || true
6383 : false;
6384 } else {
6385 self[name] = val;
6386 }
6387 } else if (val !== null) {
6388 // reassign
6389 self[name] = val;
6390 }
6391 });
6392
6393 return this;
6394};
6395
6396/**
6397 * Allow unknown options on the command line.
6398 *
6399 * @param {Boolean} arg if `true` or omitted, no error will be thrown
6400 * for unknown options.
6401 * @api public
6402 */
6403Command.prototype.allowUnknownOption = function(arg) {
6404 this._allowUnknownOption = arguments.length === 0 || arg;
6405 return this;
6406};
6407
6408/**
6409 * Parse `argv`, settings options and invoking commands when defined.
6410 *
6411 * @param {Array} argv
6412 * @return {Command} for chaining
6413 * @api public
6414 */
6415
6416Command.prototype.parse = function(argv) {
6417 // implicit help
6418 if (this.executables) this.addImplicitHelpCommand();
6419
6420 // store raw args
6421 this.rawArgs = argv;
6422
6423 // guess name
6424 this._name = this._name || basename(argv[1], '.js');
6425
6426 // github-style sub-commands with no sub-command
6427 if (this.executables && argv.length < 3 && !this.defaultExecutable) {
6428 // this user needs help
6429 argv.push('--help');
6430 }
6431
6432 // process argv
6433 var parsed = this.parseOptions(this.normalize(argv.slice(2)));
6434 var args = this.args = parsed.args;
6435
6436 var result = this.parseArgs(this.args, parsed.unknown);
6437
6438 // executable sub-commands
6439 var name = result.args[0];
6440
6441 var aliasCommand = null;
6442 // check alias of sub commands
6443 if (name) {
6444 aliasCommand = this.commands.filter(function(command) {
6445 return command.alias() === name;
6446 })[0];
6447 }
6448
6449 if (this._execs[name] && typeof this._execs[name] !== 'function') {
6450 return this.executeSubCommand(argv, args, parsed.unknown);
6451 } else if (aliasCommand) {
6452 // is alias of a subCommand
6453 args[0] = aliasCommand._name;
6454 return this.executeSubCommand(argv, args, parsed.unknown);
6455 } else if (this.defaultExecutable) {
6456 // use the default subcommand
6457 args.unshift(this.defaultExecutable);
6458 return this.executeSubCommand(argv, args, parsed.unknown);
6459 }
6460
6461 return result;
6462};
6463
6464/**
6465 * Execute a sub-command executable.
6466 *
6467 * @param {Array} argv
6468 * @param {Array} args
6469 * @param {Array} unknown
6470 * @api private
6471 */
6472
6473Command.prototype.executeSubCommand = function(argv, args, unknown) {
6474 args = args.concat(unknown);
6475
6476 if (!args.length) this.help();
6477 if (args[0] === 'help' && args.length === 1) this.help();
6478
6479 // <cmd> --help
6480 if (args[0] === 'help') {
6481 args[0] = args[1];
6482 args[1] = '--help';
6483 }
6484
6485 // executable
6486 var f = argv[1];
6487 // name of the subcommand, link `pm-install`
6488 var bin = basename(f, path.extname(f)) + '-' + args[0];
6489
6490 // In case of globally installed, get the base dir where executable
6491 // subcommand file should be located at
6492 var baseDir,
6493 link = fs.lstatSync(f).isSymbolicLink() ? fs.readlinkSync(f) : f;
6494
6495 // when symbolink is relative path
6496 if (link !== f && link.charAt(0) !== '/') {
6497 link = path.join(dirname(f), link);
6498 }
6499 baseDir = dirname(link);
6500
6501 // prefer local `./<bin>` to bin in the $PATH
6502 var localBin = path.join(baseDir, bin);
6503
6504 // whether bin file is a js script with explicit `.js` or `.ts` extension
6505 var isExplicitJS = false;
6506 if (exists(localBin + '.js')) {
6507 bin = localBin + '.js';
6508 isExplicitJS = true;
6509 } else if (exists(localBin + '.ts')) {
6510 bin = localBin + '.ts';
6511 isExplicitJS = true;
6512 } else if (exists(localBin)) {
6513 bin = localBin;
6514 }
6515
6516 args = args.slice(1);
6517
6518 var proc;
6519 if (process.platform !== 'win32') {
6520 if (isExplicitJS) {
6521 args.unshift(bin);
6522 // add executable arguments to spawn
6523 args = (process.execArgv || []).concat(args);
6524
6525 proc = spawn(process.argv[0], args, { stdio: 'inherit', customFds: [0, 1, 2] });
6526 } else {
6527 proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] });
6528 }
6529 } else {
6530 args.unshift(bin);
6531 proc = spawn(process.execPath, args, { stdio: 'inherit' });
6532 }
6533
6534 var signals = ['SIGUSR1', 'SIGUSR2', 'SIGTERM', 'SIGINT', 'SIGHUP'];
6535 signals.forEach(function(signal) {
6536 process.on(signal, function() {
6537 if (proc.killed === false && proc.exitCode === null) {
6538 proc.kill(signal);
6539 }
6540 });
6541 });
6542 proc.on('close', process.exit.bind(process));
6543 proc.on('error', function(err) {
6544 if (err.code === 'ENOENT') {
6545 console.error('error: %s(1) does not exist, try --help', bin);
6546 } else if (err.code === 'EACCES') {
6547 console.error('error: %s(1) not executable. try chmod or run with root', bin);
6548 }
6549 process.exit(1);
6550 });
6551
6552 // Store the reference to the child process
6553 this.runningCommand = proc;
6554};
6555
6556/**
6557 * Normalize `args`, splitting joined short flags. For example
6558 * the arg "-abc" is equivalent to "-a -b -c".
6559 * This also normalizes equal sign and splits "--abc=def" into "--abc def".
6560 *
6561 * @param {Array} args
6562 * @return {Array}
6563 * @api private
6564 */
6565
6566Command.prototype.normalize = function(args) {
6567 var ret = [],
6568 arg,
6569 lastOpt,
6570 index;
6571
6572 for (var i = 0, len = args.length; i < len; ++i) {
6573 arg = args[i];
6574 if (i > 0) {
6575 lastOpt = this.optionFor(args[i - 1]);
6576 }
6577
6578 if (arg === '--') {
6579 // Honor option terminator
6580 ret = ret.concat(args.slice(i));
6581 break;
6582 } else if (lastOpt && lastOpt.required) {
6583 ret.push(arg);
6584 } else if (arg.length > 1 && arg[0] === '-' && arg[1] !== '-') {
6585 arg.slice(1).split('').forEach(function(c) {
6586 ret.push('-' + c);
6587 });
6588 } else if (/^--/.test(arg) && ~(index = arg.indexOf('='))) {
6589 ret.push(arg.slice(0, index), arg.slice(index + 1));
6590 } else {
6591 ret.push(arg);
6592 }
6593 }
6594
6595 return ret;
6596};
6597
6598/**
6599 * Parse command `args`.
6600 *
6601 * When listener(s) are available those
6602 * callbacks are invoked, otherwise the "*"
6603 * event is emitted and those actions are invoked.
6604 *
6605 * @param {Array} args
6606 * @return {Command} for chaining
6607 * @api private
6608 */
6609
6610Command.prototype.parseArgs = function(args, unknown) {
6611 var name;
6612
6613 if (args.length) {
6614 name = args[0];
6615 if (this.listeners('command:' + name).length) {
6616 this.emit('command:' + args.shift(), args, unknown);
6617 } else {
6618 this.emit('command:*', args);
6619 }
6620 } else {
6621 outputHelpIfNecessary(this, unknown);
6622
6623 // If there were no args and we have unknown options,
6624 // then they are extraneous and we need to error.
6625 if (unknown.length > 0) {
6626 this.unknownOption(unknown[0]);
6627 }
6628 if (this.commands.length === 0 &&
6629 this._args.filter(function(a) { return a.required }).length === 0) {
6630 this.emit('command:*');
6631 }
6632 }
6633
6634 return this;
6635};
6636
6637/**
6638 * Return an option matching `arg` if any.
6639 *
6640 * @param {String} arg
6641 * @return {Option}
6642 * @api private
6643 */
6644
6645Command.prototype.optionFor = function(arg) {
6646 for (var i = 0, len = this.options.length; i < len; ++i) {
6647 if (this.options[i].is(arg)) {
6648 return this.options[i];
6649 }
6650 }
6651};
6652
6653/**
6654 * Parse options from `argv` returning `argv`
6655 * void of these options.
6656 *
6657 * @param {Array} argv
6658 * @return {Array}
6659 * @api public
6660 */
6661
6662Command.prototype.parseOptions = function(argv) {
6663 var args = [],
6664 len = argv.length,
6665 literal,
6666 option,
6667 arg;
6668
6669 var unknownOptions = [];
6670
6671 // parse options
6672 for (var i = 0; i < len; ++i) {
6673 arg = argv[i];
6674
6675 // literal args after --
6676 if (literal) {
6677 args.push(arg);
6678 continue;
6679 }
6680
6681 if (arg === '--') {
6682 literal = true;
6683 continue;
6684 }
6685
6686 // find matching Option
6687 option = this.optionFor(arg);
6688
6689 // option is defined
6690 if (option) {
6691 // requires arg
6692 if (option.required) {
6693 arg = argv[++i];
6694 if (arg == null) return this.optionMissingArgument(option);
6695 this.emit('option:' + option.name(), arg);
6696 // optional arg
6697 } else if (option.optional) {
6698 arg = argv[i + 1];
6699 if (arg == null || (arg[0] === '-' && arg !== '-')) {
6700 arg = null;
6701 } else {
6702 ++i;
6703 }
6704 this.emit('option:' + option.name(), arg);
6705 // bool
6706 } else {
6707 this.emit('option:' + option.name());
6708 }
6709 continue;
6710 }
6711
6712 // looks like an option
6713 if (arg.length > 1 && arg[0] === '-') {
6714 unknownOptions.push(arg);
6715
6716 // If the next argument looks like it might be
6717 // an argument for this option, we pass it on.
6718 // If it isn't, then it'll simply be ignored
6719 if ((i + 1) < argv.length && argv[i + 1][0] !== '-') {
6720 unknownOptions.push(argv[++i]);
6721 }
6722 continue;
6723 }
6724
6725 // arg
6726 args.push(arg);
6727 }
6728
6729 return { args: args, unknown: unknownOptions };
6730};
6731
6732/**
6733 * Return an object containing options as key-value pairs
6734 *
6735 * @return {Object}
6736 * @api public
6737 */
6738Command.prototype.opts = function() {
6739 var result = {},
6740 len = this.options.length;
6741
6742 for (var i = 0; i < len; i++) {
6743 var key = this.options[i].attributeName();
6744 result[key] = key === this._versionOptionName ? this._version : this[key];
6745 }
6746 return result;
6747};
6748
6749/**
6750 * Argument `name` is missing.
6751 *
6752 * @param {String} name
6753 * @api private
6754 */
6755
6756Command.prototype.missingArgument = function(name) {
6757 console.error("error: missing required argument `%s'", name);
6758 process.exit(1);
6759};
6760
6761/**
6762 * `Option` is missing an argument, but received `flag` or nothing.
6763 *
6764 * @param {String} option
6765 * @param {String} flag
6766 * @api private
6767 */
6768
6769Command.prototype.optionMissingArgument = function(option, flag) {
6770 if (flag) {
6771 console.error("error: option `%s' argument missing, got `%s'", option.flags, flag);
6772 } else {
6773 console.error("error: option `%s' argument missing", option.flags);
6774 }
6775 process.exit(1);
6776};
6777
6778/**
6779 * Unknown option `flag`.
6780 *
6781 * @param {String} flag
6782 * @api private
6783 */
6784
6785Command.prototype.unknownOption = function(flag) {
6786 if (this._allowUnknownOption) return;
6787 console.error("error: unknown option `%s'", flag);
6788 process.exit(1);
6789};
6790
6791/**
6792 * Variadic argument with `name` is not the last argument as required.
6793 *
6794 * @param {String} name
6795 * @api private
6796 */
6797
6798Command.prototype.variadicArgNotLast = function(name) {
6799 console.error("error: variadic arguments must be last `%s'", name);
6800 process.exit(1);
6801};
6802
6803/**
6804 * Set the program version to `str`.
6805 *
6806 * This method auto-registers the "-V, --version" flag
6807 * which will print the version number when passed.
6808 *
6809 * @param {String} str
6810 * @param {String} [flags]
6811 * @return {Command} for chaining
6812 * @api public
6813 */
6814
6815Command.prototype.version = function(str, flags) {
6816 if (arguments.length === 0) return this._version;
6817 this._version = str;
6818 flags = flags || '-V, --version';
6819 var versionOption = new Option(flags, 'output the version number');
6820 this._versionOptionName = versionOption.long.substr(2) || 'version';
6821 this.options.push(versionOption);
6822 this.on('option:' + this._versionOptionName, function() {
6823 process.stdout.write(str + '\n');
6824 process.exit(0);
6825 });
6826 return this;
6827};
6828
6829/**
6830 * Set the description to `str`.
6831 *
6832 * @param {String} str
6833 * @param {Object} argsDescription
6834 * @return {String|Command}
6835 * @api public
6836 */
6837
6838Command.prototype.description = function(str, argsDescription) {
6839 if (arguments.length === 0) return this._description;
6840 this._description = str;
6841 this._argsDescription = argsDescription;
6842 return this;
6843};
6844
6845/**
6846 * Set an alias for the command
6847 *
6848 * @param {String} alias
6849 * @return {String|Command}
6850 * @api public
6851 */
6852
6853Command.prototype.alias = function(alias) {
6854 var command = this;
6855 if (this.commands.length !== 0) {
6856 command = this.commands[this.commands.length - 1];
6857 }
6858
6859 if (arguments.length === 0) return command._alias;
6860
6861 if (alias === command._name) throw new Error('Command alias can\'t be the same as its name');
6862
6863 command._alias = alias;
6864 return this;
6865};
6866
6867/**
6868 * Set / get the command usage `str`.
6869 *
6870 * @param {String} str
6871 * @return {String|Command}
6872 * @api public
6873 */
6874
6875Command.prototype.usage = function(str) {
6876 var args = this._args.map(function(arg) {
6877 return humanReadableArgName(arg);
6878 });
6879
6880 var usage = '[options]' +
6881 (this.commands.length ? ' [command]' : '') +
6882 (this._args.length ? ' ' + args.join(' ') : '');
6883
6884 if (arguments.length === 0) return this._usage || usage;
6885 this._usage = str;
6886
6887 return this;
6888};
6889
6890/**
6891 * Get or set the name of the command
6892 *
6893 * @param {String} str
6894 * @return {String|Command}
6895 * @api public
6896 */
6897
6898Command.prototype.name = function(str) {
6899 if (arguments.length === 0) return this._name;
6900 this._name = str;
6901 return this;
6902};
6903
6904/**
6905 * Return prepared commands.
6906 *
6907 * @return {Array}
6908 * @api private
6909 */
6910
6911Command.prototype.prepareCommands = function() {
6912 return this.commands.filter(function(cmd) {
6913 return !cmd._noHelp;
6914 }).map(function(cmd) {
6915 var args = cmd._args.map(function(arg) {
6916 return humanReadableArgName(arg);
6917 }).join(' ');
6918
6919 return [
6920 cmd._name +
6921 (cmd._alias ? '|' + cmd._alias : '') +
6922 (cmd.options.length ? ' [options]' : '') +
6923 (args ? ' ' + args : ''),
6924 cmd._description
6925 ];
6926 });
6927};
6928
6929/**
6930 * Return the largest command length.
6931 *
6932 * @return {Number}
6933 * @api private
6934 */
6935
6936Command.prototype.largestCommandLength = function() {
6937 var commands = this.prepareCommands();
6938 return commands.reduce(function(max, command) {
6939 return Math.max(max, command[0].length);
6940 }, 0);
6941};
6942
6943/**
6944 * Return the largest option length.
6945 *
6946 * @return {Number}
6947 * @api private
6948 */
6949
6950Command.prototype.largestOptionLength = function() {
6951 var options = [].slice.call(this.options);
6952 options.push({
6953 flags: '-h, --help'
6954 });
6955 return options.reduce(function(max, option) {
6956 return Math.max(max, option.flags.length);
6957 }, 0);
6958};
6959
6960/**
6961 * Return the largest arg length.
6962 *
6963 * @return {Number}
6964 * @api private
6965 */
6966
6967Command.prototype.largestArgLength = function() {
6968 return this._args.reduce(function(max, arg) {
6969 return Math.max(max, arg.name.length);
6970 }, 0);
6971};
6972
6973/**
6974 * Return the pad width.
6975 *
6976 * @return {Number}
6977 * @api private
6978 */
6979
6980Command.prototype.padWidth = function() {
6981 var width = this.largestOptionLength();
6982 if (this._argsDescription && this._args.length) {
6983 if (this.largestArgLength() > width) {
6984 width = this.largestArgLength();
6985 }
6986 }
6987
6988 if (this.commands && this.commands.length) {
6989 if (this.largestCommandLength() > width) {
6990 width = this.largestCommandLength();
6991 }
6992 }
6993
6994 return width;
6995};
6996
6997/**
6998 * Return help for options.
6999 *
7000 * @return {String}
7001 * @api private
7002 */
7003
7004Command.prototype.optionHelp = function() {
7005 var width = this.padWidth();
7006
7007 // Append the help information
7008 return this.options.map(function(option) {
7009 return pad(option.flags, width) + ' ' + option.description +
7010 ((option.bool && option.defaultValue !== undefined) ? ' (default: ' + JSON.stringify(option.defaultValue) + ')' : '');
7011 }).concat([pad('-h, --help', width) + ' ' + 'output usage information'])
7012 .join('\n');
7013};
7014
7015/**
7016 * Return command help documentation.
7017 *
7018 * @return {String}
7019 * @api private
7020 */
7021
7022Command.prototype.commandHelp = function() {
7023 if (!this.commands.length) return '';
7024
7025 var commands = this.prepareCommands();
7026 var width = this.padWidth();
7027
7028 return [
7029 'Commands:',
7030 commands.map(function(cmd) {
7031 var desc = cmd[1] ? ' ' + cmd[1] : '';
7032 return (desc ? pad(cmd[0], width) : cmd[0]) + desc;
7033 }).join('\n').replace(/^/gm, ' '),
7034 ''
7035 ].join('\n');
7036};
7037
7038/**
7039 * Return program help documentation.
7040 *
7041 * @return {String}
7042 * @api private
7043 */
7044
7045Command.prototype.helpInformation = function() {
7046 var desc = [];
7047 if (this._description) {
7048 desc = [
7049 this._description,
7050 ''
7051 ];
7052
7053 var argsDescription = this._argsDescription;
7054 if (argsDescription && this._args.length) {
7055 var width = this.padWidth();
7056 desc.push('Arguments:');
7057 desc.push('');
7058 this._args.forEach(function(arg) {
7059 desc.push(' ' + pad(arg.name, width) + ' ' + argsDescription[arg.name]);
7060 });
7061 desc.push('');
7062 }
7063 }
7064
7065 var cmdName = this._name;
7066 if (this._alias) {
7067 cmdName = cmdName + '|' + this._alias;
7068 }
7069 var usage = [
7070 'Usage: ' + cmdName + ' ' + this.usage(),
7071 ''
7072 ];
7073
7074 var cmds = [];
7075 var commandHelp = this.commandHelp();
7076 if (commandHelp) cmds = [commandHelp];
7077
7078 var options = [
7079 'Options:',
7080 '' + this.optionHelp().replace(/^/gm, ' '),
7081 ''
7082 ];
7083
7084 return usage
7085 .concat(desc)
7086 .concat(options)
7087 .concat(cmds)
7088 .join('\n');
7089};
7090
7091/**
7092 * Output help information for this command
7093 *
7094 * @api public
7095 */
7096
7097Command.prototype.outputHelp = function(cb) {
7098 if (!cb) {
7099 cb = function(passthru) {
7100 return passthru;
7101 };
7102 }
7103 process.stdout.write(cb(this.helpInformation()));
7104 this.emit('--help');
7105};
7106
7107/**
7108 * Output help information and exit.
7109 *
7110 * @api public
7111 */
7112
7113Command.prototype.help = function(cb) {
7114 this.outputHelp(cb);
7115 process.exit();
7116};
7117
7118/**
7119 * Camel-case the given `flag`
7120 *
7121 * @param {String} flag
7122 * @return {String}
7123 * @api private
7124 */
7125
7126function camelcase(flag) {
7127 return flag.split('-').reduce(function(str, word) {
7128 return str + word[0].toUpperCase() + word.slice(1);
7129 });
7130}
7131
7132/**
7133 * Pad `str` to `width`.
7134 *
7135 * @param {String} str
7136 * @param {Number} width
7137 * @return {String}
7138 * @api private
7139 */
7140
7141function pad(str, width) {
7142 var len = Math.max(0, width - str.length);
7143 return str + Array(len + 1).join(' ');
7144}
7145
7146/**
7147 * Output help information if necessary
7148 *
7149 * @param {Command} command to output help for
7150 * @param {Array} array of options to search for -h or --help
7151 * @api private
7152 */
7153
7154function outputHelpIfNecessary(cmd, options) {
7155 options = options || [];
7156 for (var i = 0; i < options.length; i++) {
7157 if (options[i] === '--help' || options[i] === '-h') {
7158 cmd.outputHelp();
7159 process.exit(0);
7160 }
7161 }
7162}
7163
7164/**
7165 * Takes an argument an returns its human readable equivalent for help usage.
7166 *
7167 * @param {Object} arg
7168 * @return {String}
7169 * @api private
7170 */
7171
7172function humanReadableArgName(arg) {
7173 var nameOutput = arg.name + (arg.variadic === true ? '...' : '');
7174
7175 return arg.required
7176 ? '<' + nameOutput + '>'
7177 : '[' + nameOutput + ']';
7178}
7179
7180// for versions before node v0.8 when there weren't `fs.existsSync`
7181function exists(file) {
7182 try {
7183 if (fs.statSync(file).isFile()) {
7184 return true;
7185 }
7186 } catch (e) {
7187 return false;
7188 }
7189}
7190
7191
7192/***/ }),
7193
7194/***/ "./node_modules/concat-map/index.js":
7195/*!******************************************!*\
7196 !*** ./node_modules/concat-map/index.js ***!
7197 \******************************************/
7198/*! no static exports found */
7199/***/ (function(module, exports) {
7200
7201module.exports = function (xs, fn) {
7202 var res = [];
7203 for (var i = 0; i < xs.length; i++) {
7204 var x = fn(xs[i], i);
7205 if (isArray(x)) res.push.apply(res, x);
7206 else res.push(x);
7207 }
7208 return res;
7209};
7210
7211var isArray = Array.isArray || function (xs) {
7212 return Object.prototype.toString.call(xs) === '[object Array]';
7213};
7214
7215
7216/***/ }),
7217
7218/***/ "./node_modules/escape-string-regexp/index.js":
7219/*!****************************************************!*\
7220 !*** ./node_modules/escape-string-regexp/index.js ***!
7221 \****************************************************/
7222/*! no static exports found */
7223/***/ (function(module, exports, __webpack_require__) {
7224
7225"use strict";
7226
7227
7228var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
7229
7230module.exports = function (str) {
7231 if (typeof str !== 'string') {
7232 throw new TypeError('Expected a string');
7233 }
7234
7235 return str.replace(matchOperatorsRe, '\\$&');
7236};
7237
7238
7239/***/ }),
7240
7241/***/ "./node_modules/external-editor/main/errors/CreateFileError.js":
7242/*!*********************************************************************!*\
7243 !*** ./node_modules/external-editor/main/errors/CreateFileError.js ***!
7244 \*********************************************************************/
7245/*! no static exports found */
7246/***/ (function(module, exports, __webpack_require__) {
7247
7248"use strict";
7249
7250/***
7251 * Node External Editor
7252 *
7253 * Kevin Gravier <kevin@mrkmg.com>
7254 * MIT 2018
7255 */
7256var __extends = (this && this.__extends) || (function () {
7257 var extendStatics = function (d, b) {
7258 extendStatics = Object.setPrototypeOf ||
7259 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
7260 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7261 return extendStatics(d, b);
7262 }
7263 return function (d, b) {
7264 extendStatics(d, b);
7265 function __() { this.constructor = d; }
7266 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
7267 };
7268})();
7269Object.defineProperty(exports, "__esModule", { value: true });
7270var CreateFileError = /** @class */ (function (_super) {
7271 __extends(CreateFileError, _super);
7272 function CreateFileError(originalError) {
7273 var _newTarget = this.constructor;
7274 var _this = _super.call(this, "Failed to create temporary file for editor") || this;
7275 _this.originalError = originalError;
7276 var proto = _newTarget.prototype;
7277 if (Object.setPrototypeOf) {
7278 Object.setPrototypeOf(_this, proto);
7279 }
7280 else {
7281 _this.__proto__ = _newTarget.prototype;
7282 }
7283 return _this;
7284 }
7285 return CreateFileError;
7286}(Error));
7287exports.CreateFileError = CreateFileError;
7288
7289
7290/***/ }),
7291
7292/***/ "./node_modules/external-editor/main/errors/LaunchEditorError.js":
7293/*!***********************************************************************!*\
7294 !*** ./node_modules/external-editor/main/errors/LaunchEditorError.js ***!
7295 \***********************************************************************/
7296/*! no static exports found */
7297/***/ (function(module, exports, __webpack_require__) {
7298
7299"use strict";
7300
7301/***
7302 * Node External Editor
7303 *
7304 * Kevin Gravier <kevin@mrkmg.com>
7305 * MIT 2018
7306 */
7307var __extends = (this && this.__extends) || (function () {
7308 var extendStatics = function (d, b) {
7309 extendStatics = Object.setPrototypeOf ||
7310 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
7311 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7312 return extendStatics(d, b);
7313 }
7314 return function (d, b) {
7315 extendStatics(d, b);
7316 function __() { this.constructor = d; }
7317 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
7318 };
7319})();
7320Object.defineProperty(exports, "__esModule", { value: true });
7321var LaunchEditorError = /** @class */ (function (_super) {
7322 __extends(LaunchEditorError, _super);
7323 function LaunchEditorError(originalError) {
7324 var _newTarget = this.constructor;
7325 var _this = _super.call(this, "Failed launch editor") || this;
7326 _this.originalError = originalError;
7327 var proto = _newTarget.prototype;
7328 if (Object.setPrototypeOf) {
7329 Object.setPrototypeOf(_this, proto);
7330 }
7331 else {
7332 _this.__proto__ = _newTarget.prototype;
7333 }
7334 return _this;
7335 }
7336 return LaunchEditorError;
7337}(Error));
7338exports.LaunchEditorError = LaunchEditorError;
7339
7340
7341/***/ }),
7342
7343/***/ "./node_modules/external-editor/main/errors/ReadFileError.js":
7344/*!*******************************************************************!*\
7345 !*** ./node_modules/external-editor/main/errors/ReadFileError.js ***!
7346 \*******************************************************************/
7347/*! no static exports found */
7348/***/ (function(module, exports, __webpack_require__) {
7349
7350"use strict";
7351
7352/***
7353 * Node External Editor
7354 *
7355 * Kevin Gravier <kevin@mrkmg.com>
7356 * MIT 2018
7357 */
7358var __extends = (this && this.__extends) || (function () {
7359 var extendStatics = function (d, b) {
7360 extendStatics = Object.setPrototypeOf ||
7361 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
7362 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7363 return extendStatics(d, b);
7364 }
7365 return function (d, b) {
7366 extendStatics(d, b);
7367 function __() { this.constructor = d; }
7368 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
7369 };
7370})();
7371Object.defineProperty(exports, "__esModule", { value: true });
7372var ReadFileError = /** @class */ (function (_super) {
7373 __extends(ReadFileError, _super);
7374 function ReadFileError(originalError) {
7375 var _newTarget = this.constructor;
7376 var _this = _super.call(this, "Failed to read temporary file") || this;
7377 _this.originalError = originalError;
7378 var proto = _newTarget.prototype;
7379 if (Object.setPrototypeOf) {
7380 Object.setPrototypeOf(_this, proto);
7381 }
7382 else {
7383 _this.__proto__ = _newTarget.prototype;
7384 }
7385 return _this;
7386 }
7387 return ReadFileError;
7388}(Error));
7389exports.ReadFileError = ReadFileError;
7390
7391
7392/***/ }),
7393
7394/***/ "./node_modules/external-editor/main/errors/RemoveFileError.js":
7395/*!*********************************************************************!*\
7396 !*** ./node_modules/external-editor/main/errors/RemoveFileError.js ***!
7397 \*********************************************************************/
7398/*! no static exports found */
7399/***/ (function(module, exports, __webpack_require__) {
7400
7401"use strict";
7402
7403/***
7404 * Node External Editor
7405 *
7406 * Kevin Gravier <kevin@mrkmg.com>
7407 * MIT 2018
7408 */
7409var __extends = (this && this.__extends) || (function () {
7410 var extendStatics = function (d, b) {
7411 extendStatics = Object.setPrototypeOf ||
7412 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
7413 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7414 return extendStatics(d, b);
7415 }
7416 return function (d, b) {
7417 extendStatics(d, b);
7418 function __() { this.constructor = d; }
7419 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
7420 };
7421})();
7422Object.defineProperty(exports, "__esModule", { value: true });
7423var RemoveFileError = /** @class */ (function (_super) {
7424 __extends(RemoveFileError, _super);
7425 function RemoveFileError(originalError) {
7426 var _newTarget = this.constructor;
7427 var _this = _super.call(this, "Failed to cleanup temporary file") || this;
7428 _this.originalError = originalError;
7429 var proto = _newTarget.prototype;
7430 if (Object.setPrototypeOf) {
7431 Object.setPrototypeOf(_this, proto);
7432 }
7433 else {
7434 _this.__proto__ = _newTarget.prototype;
7435 }
7436 return _this;
7437 }
7438 return RemoveFileError;
7439}(Error));
7440exports.RemoveFileError = RemoveFileError;
7441
7442
7443/***/ }),
7444
7445/***/ "./node_modules/external-editor/main/index.js":
7446/*!****************************************************!*\
7447 !*** ./node_modules/external-editor/main/index.js ***!
7448 \****************************************************/
7449/*! no static exports found */
7450/***/ (function(module, exports, __webpack_require__) {
7451
7452"use strict";
7453
7454/***
7455 * Node External Editor
7456 *
7457 * Kevin Gravier <kevin@mrkmg.com>
7458 * MIT 2018
7459 */
7460Object.defineProperty(exports, "__esModule", { value: true });
7461var chardet_1 = __webpack_require__(/*! chardet */ "./node_modules/chardet/index.js");
7462var child_process_1 = __webpack_require__(/*! child_process */ "child_process");
7463var fs_1 = __webpack_require__(/*! fs */ "fs");
7464var iconv_lite_1 = __webpack_require__(/*! iconv-lite */ "./node_modules/iconv-lite/lib/index.js");
7465var tmp_1 = __webpack_require__(/*! tmp */ "./node_modules/tmp/lib/tmp.js");
7466var CreateFileError_1 = __webpack_require__(/*! ./errors/CreateFileError */ "./node_modules/external-editor/main/errors/CreateFileError.js");
7467exports.CreateFileError = CreateFileError_1.CreateFileError;
7468var LaunchEditorError_1 = __webpack_require__(/*! ./errors/LaunchEditorError */ "./node_modules/external-editor/main/errors/LaunchEditorError.js");
7469exports.LaunchEditorError = LaunchEditorError_1.LaunchEditorError;
7470var ReadFileError_1 = __webpack_require__(/*! ./errors/ReadFileError */ "./node_modules/external-editor/main/errors/ReadFileError.js");
7471exports.ReadFileError = ReadFileError_1.ReadFileError;
7472var RemoveFileError_1 = __webpack_require__(/*! ./errors/RemoveFileError */ "./node_modules/external-editor/main/errors/RemoveFileError.js");
7473exports.RemoveFileError = RemoveFileError_1.RemoveFileError;
7474function edit(text) {
7475 if (text === void 0) { text = ""; }
7476 var editor = new ExternalEditor(text);
7477 editor.run();
7478 editor.cleanup();
7479 return editor.text;
7480}
7481exports.edit = edit;
7482function editAsync(text, callback) {
7483 if (text === void 0) { text = ""; }
7484 var editor = new ExternalEditor(text);
7485 editor.runAsync(function (err, result) {
7486 if (err) {
7487 setImmediate(callback, err, null);
7488 }
7489 else {
7490 try {
7491 editor.cleanup();
7492 setImmediate(callback, null, result);
7493 }
7494 catch (cleanupError) {
7495 setImmediate(callback, cleanupError, null);
7496 }
7497 }
7498 });
7499}
7500exports.editAsync = editAsync;
7501var ExternalEditor = /** @class */ (function () {
7502 function ExternalEditor(text) {
7503 if (text === void 0) { text = ""; }
7504 this.text = "";
7505 this.text = text;
7506 this.determineEditor();
7507 this.createTemporaryFile();
7508 }
7509 ExternalEditor.splitStringBySpace = function (str) {
7510 var pieces = [];
7511 var currentString = "";
7512 for (var strIndex = 0; strIndex < str.length; strIndex++) {
7513 var currentLetter = str[strIndex];
7514 if (strIndex > 0 && currentLetter === " " && str[strIndex - 1] !== "\\" && currentString.length > 0) {
7515 pieces.push(currentString);
7516 currentString = "";
7517 }
7518 else {
7519 currentString += currentLetter;
7520 }
7521 }
7522 if (currentString.length > 0) {
7523 pieces.push(currentString);
7524 }
7525 return pieces;
7526 };
7527 Object.defineProperty(ExternalEditor.prototype, "temp_file", {
7528 get: function () {
7529 console.log("DEPRECATED: temp_file. Use tempFile moving forward.");
7530 return this.tempFile;
7531 },
7532 enumerable: true,
7533 configurable: true
7534 });
7535 Object.defineProperty(ExternalEditor.prototype, "last_exit_status", {
7536 get: function () {
7537 console.log("DEPRECATED: last_exit_status. Use lastExitStatus moving forward.");
7538 return this.lastExitStatus;
7539 },
7540 enumerable: true,
7541 configurable: true
7542 });
7543 ExternalEditor.prototype.run = function () {
7544 this.launchEditor();
7545 this.readTemporaryFile();
7546 return this.text;
7547 };
7548 ExternalEditor.prototype.runAsync = function (callback) {
7549 var _this = this;
7550 try {
7551 this.launchEditorAsync(function () {
7552 try {
7553 _this.readTemporaryFile();
7554 setImmediate(callback, null, _this.text);
7555 }
7556 catch (readError) {
7557 setImmediate(callback, readError, null);
7558 }
7559 });
7560 }
7561 catch (launchError) {
7562 setImmediate(callback, launchError, null);
7563 }
7564 };
7565 ExternalEditor.prototype.cleanup = function () {
7566 this.removeTemporaryFile();
7567 };
7568 ExternalEditor.prototype.determineEditor = function () {
7569 var editor = process.env.VISUAL ? process.env.VISUAL :
7570 process.env.EDITOR ? process.env.EDITOR :
7571 /^win/.test(process.platform) ? "notepad" :
7572 "vim";
7573 var editorOpts = ExternalEditor.splitStringBySpace(editor).map(function (piece) { return piece.replace("\\ ", " "); });
7574 var bin = editorOpts.shift();
7575 this.editor = { args: editorOpts, bin: bin };
7576 };
7577 ExternalEditor.prototype.createTemporaryFile = function () {
7578 try {
7579 this.tempFile = tmp_1.tmpNameSync({});
7580 fs_1.writeFileSync(this.tempFile, this.text, { encoding: "utf8" });
7581 }
7582 catch (createFileError) {
7583 throw new CreateFileError_1.CreateFileError(createFileError);
7584 }
7585 };
7586 ExternalEditor.prototype.readTemporaryFile = function () {
7587 try {
7588 var tempFileBuffer = fs_1.readFileSync(this.tempFile);
7589 if (tempFileBuffer.length === 0) {
7590 this.text = "";
7591 }
7592 else {
7593 var encoding = chardet_1.detect(tempFileBuffer).toString();
7594 if (!iconv_lite_1.encodingExists(encoding)) {
7595 // Probably a bad idea, but will at least prevent crashing
7596 encoding = "utf8";
7597 }
7598 this.text = iconv_lite_1.decode(tempFileBuffer, encoding);
7599 }
7600 }
7601 catch (readFileError) {
7602 throw new ReadFileError_1.ReadFileError(readFileError);
7603 }
7604 };
7605 ExternalEditor.prototype.removeTemporaryFile = function () {
7606 try {
7607 fs_1.unlinkSync(this.tempFile);
7608 }
7609 catch (removeFileError) {
7610 throw new RemoveFileError_1.RemoveFileError(removeFileError);
7611 }
7612 };
7613 ExternalEditor.prototype.launchEditor = function () {
7614 try {
7615 var editorProcess = child_process_1.spawnSync(this.editor.bin, this.editor.args.concat([this.tempFile]), { stdio: "inherit" });
7616 this.lastExitStatus = editorProcess.status;
7617 }
7618 catch (launchError) {
7619 throw new LaunchEditorError_1.LaunchEditorError(launchError);
7620 }
7621 };
7622 ExternalEditor.prototype.launchEditorAsync = function (callback) {
7623 var _this = this;
7624 try {
7625 var editorProcess = child_process_1.spawn(this.editor.bin, this.editor.args.concat([this.tempFile]), { stdio: "inherit" });
7626 editorProcess.on("exit", function (code) {
7627 _this.lastExitStatus = code;
7628 setImmediate(callback);
7629 });
7630 }
7631 catch (launchError) {
7632 throw new LaunchEditorError_1.LaunchEditorError(launchError);
7633 }
7634 };
7635 return ExternalEditor;
7636}());
7637exports.ExternalEditor = ExternalEditor;
7638
7639
7640/***/ }),
7641
7642/***/ "./node_modules/figures/index.js":
7643/*!***************************************!*\
7644 !*** ./node_modules/figures/index.js ***!
7645 \***************************************/
7646/*! no static exports found */
7647/***/ (function(module, exports, __webpack_require__) {
7648
7649"use strict";
7650
7651const escapeStringRegexp = __webpack_require__(/*! escape-string-regexp */ "./node_modules/escape-string-regexp/index.js");
7652
7653const platform = process.platform;
7654
7655const main = {
7656 tick: '✔',
7657 cross: '✖',
7658 star: '★',
7659 square: '▇',
7660 squareSmall: '◻',
7661 squareSmallFilled: '◼',
7662 play: '▶',
7663 circle: '◯',
7664 circleFilled: '◉',
7665 circleDotted: '◌',
7666 circleDouble: '◎',
7667 circleCircle: 'ⓞ',
7668 circleCross: 'ⓧ',
7669 circlePipe: 'Ⓘ',
7670 circleQuestionMark: '?⃝',
7671 bullet: '●',
7672 dot: '․',
7673 line: '─',
7674 ellipsis: '…',
7675 pointer: '❯',
7676 pointerSmall: '›',
7677 info: 'ℹ',
7678 warning: '⚠',
7679 hamburger: '☰',
7680 smiley: '㋡',
7681 mustache: '෴',
7682 heart: '♥',
7683 arrowUp: '↑',
7684 arrowDown: '↓',
7685 arrowLeft: '←',
7686 arrowRight: '→',
7687 radioOn: '◉',
7688 radioOff: '◯',
7689 checkboxOn: '☒',
7690 checkboxOff: '☐',
7691 checkboxCircleOn: 'ⓧ',
7692 checkboxCircleOff: 'Ⓘ',
7693 questionMarkPrefix: '?⃝',
7694 oneHalf: '½',
7695 oneThird: '⅓',
7696 oneQuarter: '¼',
7697 oneFifth: '⅕',
7698 oneSixth: '⅙',
7699 oneSeventh: '⅐',
7700 oneEighth: '⅛',
7701 oneNinth: '⅑',
7702 oneTenth: '⅒',
7703 twoThirds: '⅔',
7704 twoFifths: '⅖',
7705 threeQuarters: '¾',
7706 threeFifths: '⅗',
7707 threeEighths: '⅜',
7708 fourFifths: '⅘',
7709 fiveSixths: '⅚',
7710 fiveEighths: '⅝',
7711 sevenEighths: '⅞'
7712};
7713
7714const win = {
7715 tick: '√',
7716 cross: '×',
7717 star: '*',
7718 square: '█',
7719 squareSmall: '[ ]',
7720 squareSmallFilled: '[█]',
7721 play: '►',
7722 circle: '( )',
7723 circleFilled: '(*)',
7724 circleDotted: '( )',
7725 circleDouble: '( )',
7726 circleCircle: '(○)',
7727 circleCross: '(×)',
7728 circlePipe: '(│)',
7729 circleQuestionMark: '(?)',
7730 bullet: '*',
7731 dot: '.',
7732 line: '─',
7733 ellipsis: '...',
7734 pointer: '>',
7735 pointerSmall: '»',
7736 info: 'i',
7737 warning: '‼',
7738 hamburger: '≡',
7739 smiley: '☺',
7740 mustache: '┌─┐',
7741 heart: main.heart,
7742 arrowUp: main.arrowUp,
7743 arrowDown: main.arrowDown,
7744 arrowLeft: main.arrowLeft,
7745 arrowRight: main.arrowRight,
7746 radioOn: '(*)',
7747 radioOff: '( )',
7748 checkboxOn: '[×]',
7749 checkboxOff: '[ ]',
7750 checkboxCircleOn: '(×)',
7751 checkboxCircleOff: '( )',
7752 questionMarkPrefix: '?',
7753 oneHalf: '1/2',
7754 oneThird: '1/3',
7755 oneQuarter: '1/4',
7756 oneFifth: '1/5',
7757 oneSixth: '1/6',
7758 oneSeventh: '1/7',
7759 oneEighth: '1/8',
7760 oneNinth: '1/9',
7761 oneTenth: '1/10',
7762 twoThirds: '2/3',
7763 twoFifths: '2/5',
7764 threeQuarters: '3/4',
7765 threeFifths: '3/5',
7766 threeEighths: '3/8',
7767 fourFifths: '4/5',
7768 fiveSixths: '5/6',
7769 fiveEighths: '5/8',
7770 sevenEighths: '7/8'
7771};
7772
7773if (platform === 'linux') {
7774 // the main one doesn't look that good on Ubuntu
7775 main.questionMarkPrefix = '?';
7776}
7777
7778const figures = platform === 'win32' ? win : main;
7779
7780const fn = str => {
7781 if (figures === main) {
7782 return str;
7783 }
7784
7785 Object.keys(main).forEach(key => {
7786 if (main[key] === figures[key]) {
7787 return;
7788 }
7789
7790 str = str.replace(new RegExp(escapeStringRegexp(main[key]), 'g'), figures[key]);
7791 });
7792
7793 return str;
7794};
7795
7796module.exports = Object.assign(fn, figures);
7797
7798
7799/***/ }),
7800
7801/***/ "./node_modules/fs-extra/lib/copy-sync/copy-sync.js":
7802/*!**********************************************************!*\
7803 !*** ./node_modules/fs-extra/lib/copy-sync/copy-sync.js ***!
7804 \**********************************************************/
7805/*! no static exports found */
7806/***/ (function(module, exports, __webpack_require__) {
7807
7808"use strict";
7809
7810
7811const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
7812const path = __webpack_require__(/*! path */ "path")
7813const mkdirpSync = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js").mkdirsSync
7814const utimesSync = __webpack_require__(/*! ../util/utimes.js */ "./node_modules/fs-extra/lib/util/utimes.js").utimesMillisSync
7815
7816const notExist = Symbol('notExist')
7817
7818function copySync (src, dest, opts) {
7819 if (typeof opts === 'function') {
7820 opts = {filter: opts}
7821 }
7822
7823 opts = opts || {}
7824 opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now
7825 opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber
7826
7827 // Warn about using preserveTimestamps on 32-bit node
7828 if (opts.preserveTimestamps && process.arch === 'ia32') {
7829 console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n
7830 see https://github.com/jprichardson/node-fs-extra/issues/269`)
7831 }
7832
7833 const destStat = checkPaths(src, dest)
7834
7835 if (opts.filter && !opts.filter(src, dest)) return
7836
7837 const destParent = path.dirname(dest)
7838 if (!fs.existsSync(destParent)) mkdirpSync(destParent)
7839 return startCopy(destStat, src, dest, opts)
7840}
7841
7842function startCopy (destStat, src, dest, opts) {
7843 if (opts.filter && !opts.filter(src, dest)) return
7844 return getStats(destStat, src, dest, opts)
7845}
7846
7847function getStats (destStat, src, dest, opts) {
7848 const statSync = opts.dereference ? fs.statSync : fs.lstatSync
7849 const srcStat = statSync(src)
7850
7851 if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts)
7852 else if (srcStat.isFile() ||
7853 srcStat.isCharacterDevice() ||
7854 srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts)
7855 else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts)
7856}
7857
7858function onFile (srcStat, destStat, src, dest, opts) {
7859 if (destStat === notExist) return copyFile(srcStat, src, dest, opts)
7860 return mayCopyFile(srcStat, src, dest, opts)
7861}
7862
7863function mayCopyFile (srcStat, src, dest, opts) {
7864 if (opts.overwrite) {
7865 fs.unlinkSync(dest)
7866 return copyFile(srcStat, src, dest, opts)
7867 } else if (opts.errorOnExist) {
7868 throw new Error(`'${dest}' already exists`)
7869 }
7870}
7871
7872function copyFile (srcStat, src, dest, opts) {
7873 if (typeof fs.copyFileSync === 'function') {
7874 fs.copyFileSync(src, dest)
7875 fs.chmodSync(dest, srcStat.mode)
7876 if (opts.preserveTimestamps) {
7877 return utimesSync(dest, srcStat.atime, srcStat.mtime)
7878 }
7879 return
7880 }
7881 return copyFileFallback(srcStat, src, dest, opts)
7882}
7883
7884function copyFileFallback (srcStat, src, dest, opts) {
7885 const BUF_LENGTH = 64 * 1024
7886 const _buff = __webpack_require__(/*! ../util/buffer */ "./node_modules/fs-extra/lib/util/buffer.js")(BUF_LENGTH)
7887
7888 const fdr = fs.openSync(src, 'r')
7889 const fdw = fs.openSync(dest, 'w', srcStat.mode)
7890 let pos = 0
7891
7892 while (pos < srcStat.size) {
7893 const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)
7894 fs.writeSync(fdw, _buff, 0, bytesRead)
7895 pos += bytesRead
7896 }
7897
7898 if (opts.preserveTimestamps) fs.futimesSync(fdw, srcStat.atime, srcStat.mtime)
7899
7900 fs.closeSync(fdr)
7901 fs.closeSync(fdw)
7902}
7903
7904function onDir (srcStat, destStat, src, dest, opts) {
7905 if (destStat === notExist) return mkDirAndCopy(srcStat, src, dest, opts)
7906 if (destStat && !destStat.isDirectory()) {
7907 throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)
7908 }
7909 return copyDir(src, dest, opts)
7910}
7911
7912function mkDirAndCopy (srcStat, src, dest, opts) {
7913 fs.mkdirSync(dest)
7914 copyDir(src, dest, opts)
7915 return fs.chmodSync(dest, srcStat.mode)
7916}
7917
7918function copyDir (src, dest, opts) {
7919 fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts))
7920}
7921
7922function copyDirItem (item, src, dest, opts) {
7923 const srcItem = path.join(src, item)
7924 const destItem = path.join(dest, item)
7925 const destStat = checkPaths(srcItem, destItem)
7926 return startCopy(destStat, srcItem, destItem, opts)
7927}
7928
7929function onLink (destStat, src, dest, opts) {
7930 let resolvedSrc = fs.readlinkSync(src)
7931
7932 if (opts.dereference) {
7933 resolvedSrc = path.resolve(process.cwd(), resolvedSrc)
7934 }
7935
7936 if (destStat === notExist) {
7937 return fs.symlinkSync(resolvedSrc, dest)
7938 } else {
7939 let resolvedDest
7940 try {
7941 resolvedDest = fs.readlinkSync(dest)
7942 } catch (err) {
7943 // dest exists and is a regular file or directory,
7944 // Windows may throw UNKNOWN error. If dest already exists,
7945 // fs throws error anyway, so no need to guard against it here.
7946 if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest)
7947 throw err
7948 }
7949 if (opts.dereference) {
7950 resolvedDest = path.resolve(process.cwd(), resolvedDest)
7951 }
7952 if (isSrcSubdir(resolvedSrc, resolvedDest)) {
7953 throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)
7954 }
7955
7956 // prevent copy if src is a subdir of dest since unlinking
7957 // dest in this case would result in removing src contents
7958 // and therefore a broken symlink would be created.
7959 if (fs.statSync(dest).isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {
7960 throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)
7961 }
7962 return copyLink(resolvedSrc, dest)
7963 }
7964}
7965
7966function copyLink (resolvedSrc, dest) {
7967 fs.unlinkSync(dest)
7968 return fs.symlinkSync(resolvedSrc, dest)
7969}
7970
7971// return true if dest is a subdir of src, otherwise false.
7972function isSrcSubdir (src, dest) {
7973 const srcArray = path.resolve(src).split(path.sep)
7974 const destArray = path.resolve(dest).split(path.sep)
7975 return srcArray.reduce((acc, current, i) => acc && destArray[i] === current, true)
7976}
7977
7978function checkStats (src, dest) {
7979 const srcStat = fs.statSync(src)
7980 let destStat
7981 try {
7982 destStat = fs.statSync(dest)
7983 } catch (err) {
7984 if (err.code === 'ENOENT') return {srcStat, destStat: notExist}
7985 throw err
7986 }
7987 return {srcStat, destStat}
7988}
7989
7990function checkPaths (src, dest) {
7991 const {srcStat, destStat} = checkStats(src, dest)
7992 if (destStat.ino && destStat.ino === srcStat.ino) {
7993 throw new Error('Source and destination must not be the same.')
7994 }
7995 if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
7996 throw new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`)
7997 }
7998 return destStat
7999}
8000
8001module.exports = copySync
8002
8003
8004/***/ }),
8005
8006/***/ "./node_modules/fs-extra/lib/copy-sync/index.js":
8007/*!******************************************************!*\
8008 !*** ./node_modules/fs-extra/lib/copy-sync/index.js ***!
8009 \******************************************************/
8010/*! no static exports found */
8011/***/ (function(module, exports, __webpack_require__) {
8012
8013"use strict";
8014
8015
8016module.exports = {
8017 copySync: __webpack_require__(/*! ./copy-sync */ "./node_modules/fs-extra/lib/copy-sync/copy-sync.js")
8018}
8019
8020
8021/***/ }),
8022
8023/***/ "./node_modules/fs-extra/lib/copy/copy.js":
8024/*!************************************************!*\
8025 !*** ./node_modules/fs-extra/lib/copy/copy.js ***!
8026 \************************************************/
8027/*! no static exports found */
8028/***/ (function(module, exports, __webpack_require__) {
8029
8030"use strict";
8031
8032
8033const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
8034const path = __webpack_require__(/*! path */ "path")
8035const mkdirp = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js").mkdirs
8036const pathExists = __webpack_require__(/*! ../path-exists */ "./node_modules/fs-extra/lib/path-exists/index.js").pathExists
8037const utimes = __webpack_require__(/*! ../util/utimes */ "./node_modules/fs-extra/lib/util/utimes.js").utimesMillis
8038
8039const notExist = Symbol('notExist')
8040
8041function copy (src, dest, opts, cb) {
8042 if (typeof opts === 'function' && !cb) {
8043 cb = opts
8044 opts = {}
8045 } else if (typeof opts === 'function') {
8046 opts = {filter: opts}
8047 }
8048
8049 cb = cb || function () {}
8050 opts = opts || {}
8051
8052 opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now
8053 opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber
8054
8055 // Warn about using preserveTimestamps on 32-bit node
8056 if (opts.preserveTimestamps && process.arch === 'ia32') {
8057 console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n
8058 see https://github.com/jprichardson/node-fs-extra/issues/269`)
8059 }
8060
8061 checkPaths(src, dest, (err, destStat) => {
8062 if (err) return cb(err)
8063 if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb)
8064 return checkParentDir(destStat, src, dest, opts, cb)
8065 })
8066}
8067
8068function checkParentDir (destStat, src, dest, opts, cb) {
8069 const destParent = path.dirname(dest)
8070 pathExists(destParent, (err, dirExists) => {
8071 if (err) return cb(err)
8072 if (dirExists) return startCopy(destStat, src, dest, opts, cb)
8073 mkdirp(destParent, err => {
8074 if (err) return cb(err)
8075 return startCopy(destStat, src, dest, opts, cb)
8076 })
8077 })
8078}
8079
8080function handleFilter (onInclude, destStat, src, dest, opts, cb) {
8081 Promise.resolve(opts.filter(src, dest)).then(include => {
8082 if (include) {
8083 if (destStat) return onInclude(destStat, src, dest, opts, cb)
8084 return onInclude(src, dest, opts, cb)
8085 }
8086 return cb()
8087 }, error => cb(error))
8088}
8089
8090function startCopy (destStat, src, dest, opts, cb) {
8091 if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb)
8092 return getStats(destStat, src, dest, opts, cb)
8093}
8094
8095function getStats (destStat, src, dest, opts, cb) {
8096 const stat = opts.dereference ? fs.stat : fs.lstat
8097 stat(src, (err, srcStat) => {
8098 if (err) return cb(err)
8099
8100 if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb)
8101 else if (srcStat.isFile() ||
8102 srcStat.isCharacterDevice() ||
8103 srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb)
8104 else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb)
8105 })
8106}
8107
8108function onFile (srcStat, destStat, src, dest, opts, cb) {
8109 if (destStat === notExist) return copyFile(srcStat, src, dest, opts, cb)
8110 return mayCopyFile(srcStat, src, dest, opts, cb)
8111}
8112
8113function mayCopyFile (srcStat, src, dest, opts, cb) {
8114 if (opts.overwrite) {
8115 fs.unlink(dest, err => {
8116 if (err) return cb(err)
8117 return copyFile(srcStat, src, dest, opts, cb)
8118 })
8119 } else if (opts.errorOnExist) {
8120 return cb(new Error(`'${dest}' already exists`))
8121 } else return cb()
8122}
8123
8124function copyFile (srcStat, src, dest, opts, cb) {
8125 if (typeof fs.copyFile === 'function') {
8126 return fs.copyFile(src, dest, err => {
8127 if (err) return cb(err)
8128 return setDestModeAndTimestamps(srcStat, dest, opts, cb)
8129 })
8130 }
8131 return copyFileFallback(srcStat, src, dest, opts, cb)
8132}
8133
8134function copyFileFallback (srcStat, src, dest, opts, cb) {
8135 const rs = fs.createReadStream(src)
8136 rs.on('error', err => cb(err)).once('open', () => {
8137 const ws = fs.createWriteStream(dest, { mode: srcStat.mode })
8138 ws.on('error', err => cb(err))
8139 .on('open', () => rs.pipe(ws))
8140 .once('close', () => setDestModeAndTimestamps(srcStat, dest, opts, cb))
8141 })
8142}
8143
8144function setDestModeAndTimestamps (srcStat, dest, opts, cb) {
8145 fs.chmod(dest, srcStat.mode, err => {
8146 if (err) return cb(err)
8147 if (opts.preserveTimestamps) {
8148 return utimes(dest, srcStat.atime, srcStat.mtime, cb)
8149 }
8150 return cb()
8151 })
8152}
8153
8154function onDir (srcStat, destStat, src, dest, opts, cb) {
8155 if (destStat === notExist) return mkDirAndCopy(srcStat, src, dest, opts, cb)
8156 if (destStat && !destStat.isDirectory()) {
8157 return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`))
8158 }
8159 return copyDir(src, dest, opts, cb)
8160}
8161
8162function mkDirAndCopy (srcStat, src, dest, opts, cb) {
8163 fs.mkdir(dest, err => {
8164 if (err) return cb(err)
8165 copyDir(src, dest, opts, err => {
8166 if (err) return cb(err)
8167 return fs.chmod(dest, srcStat.mode, cb)
8168 })
8169 })
8170}
8171
8172function copyDir (src, dest, opts, cb) {
8173 fs.readdir(src, (err, items) => {
8174 if (err) return cb(err)
8175 return copyDirItems(items, src, dest, opts, cb)
8176 })
8177}
8178
8179function copyDirItems (items, src, dest, opts, cb) {
8180 const item = items.pop()
8181 if (!item) return cb()
8182 return copyDirItem(items, item, src, dest, opts, cb)
8183}
8184
8185function copyDirItem (items, item, src, dest, opts, cb) {
8186 const srcItem = path.join(src, item)
8187 const destItem = path.join(dest, item)
8188 checkPaths(srcItem, destItem, (err, destStat) => {
8189 if (err) return cb(err)
8190 startCopy(destStat, srcItem, destItem, opts, err => {
8191 if (err) return cb(err)
8192 return copyDirItems(items, src, dest, opts, cb)
8193 })
8194 })
8195}
8196
8197function onLink (destStat, src, dest, opts, cb) {
8198 fs.readlink(src, (err, resolvedSrc) => {
8199 if (err) return cb(err)
8200
8201 if (opts.dereference) {
8202 resolvedSrc = path.resolve(process.cwd(), resolvedSrc)
8203 }
8204
8205 if (destStat === notExist) {
8206 return fs.symlink(resolvedSrc, dest, cb)
8207 } else {
8208 fs.readlink(dest, (err, resolvedDest) => {
8209 if (err) {
8210 // dest exists and is a regular file or directory,
8211 // Windows may throw UNKNOWN error. If dest already exists,
8212 // fs throws error anyway, so no need to guard against it here.
8213 if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest, cb)
8214 return cb(err)
8215 }
8216 if (opts.dereference) {
8217 resolvedDest = path.resolve(process.cwd(), resolvedDest)
8218 }
8219 if (isSrcSubdir(resolvedSrc, resolvedDest)) {
8220 return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`))
8221 }
8222
8223 // do not copy if src is a subdir of dest since unlinking
8224 // dest in this case would result in removing src contents
8225 // and therefore a broken symlink would be created.
8226 if (destStat.isDirectory() && isSrcSubdir(resolvedDest, resolvedSrc)) {
8227 return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`))
8228 }
8229 return copyLink(resolvedSrc, dest, cb)
8230 })
8231 }
8232 })
8233}
8234
8235function copyLink (resolvedSrc, dest, cb) {
8236 fs.unlink(dest, err => {
8237 if (err) return cb(err)
8238 return fs.symlink(resolvedSrc, dest, cb)
8239 })
8240}
8241
8242// return true if dest is a subdir of src, otherwise false.
8243function isSrcSubdir (src, dest) {
8244 const srcArray = path.resolve(src).split(path.sep)
8245 const destArray = path.resolve(dest).split(path.sep)
8246 return srcArray.reduce((acc, current, i) => acc && destArray[i] === current, true)
8247}
8248
8249function checkStats (src, dest, cb) {
8250 fs.stat(src, (err, srcStat) => {
8251 if (err) return cb(err)
8252 fs.stat(dest, (err, destStat) => {
8253 if (err) {
8254 if (err.code === 'ENOENT') return cb(null, {srcStat, destStat: notExist})
8255 return cb(err)
8256 }
8257 return cb(null, {srcStat, destStat})
8258 })
8259 })
8260}
8261
8262function checkPaths (src, dest, cb) {
8263 checkStats(src, dest, (err, stats) => {
8264 if (err) return cb(err)
8265 const {srcStat, destStat} = stats
8266 if (destStat.ino && destStat.ino === srcStat.ino) {
8267 return cb(new Error('Source and destination must not be the same.'))
8268 }
8269 if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
8270 return cb(new Error(`Cannot copy '${src}' to a subdirectory of itself, '${dest}'.`))
8271 }
8272 return cb(null, destStat)
8273 })
8274}
8275
8276module.exports = copy
8277
8278
8279/***/ }),
8280
8281/***/ "./node_modules/fs-extra/lib/copy/index.js":
8282/*!*************************************************!*\
8283 !*** ./node_modules/fs-extra/lib/copy/index.js ***!
8284 \*************************************************/
8285/*! no static exports found */
8286/***/ (function(module, exports, __webpack_require__) {
8287
8288"use strict";
8289
8290
8291const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
8292module.exports = {
8293 copy: u(__webpack_require__(/*! ./copy */ "./node_modules/fs-extra/lib/copy/copy.js"))
8294}
8295
8296
8297/***/ }),
8298
8299/***/ "./node_modules/fs-extra/lib/empty/index.js":
8300/*!**************************************************!*\
8301 !*** ./node_modules/fs-extra/lib/empty/index.js ***!
8302 \**************************************************/
8303/*! no static exports found */
8304/***/ (function(module, exports, __webpack_require__) {
8305
8306"use strict";
8307
8308
8309const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
8310const fs = __webpack_require__(/*! fs */ "fs")
8311const path = __webpack_require__(/*! path */ "path")
8312const mkdir = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js")
8313const remove = __webpack_require__(/*! ../remove */ "./node_modules/fs-extra/lib/remove/index.js")
8314
8315const emptyDir = u(function emptyDir (dir, callback) {
8316 callback = callback || function () {}
8317 fs.readdir(dir, (err, items) => {
8318 if (err) return mkdir.mkdirs(dir, callback)
8319
8320 items = items.map(item => path.join(dir, item))
8321
8322 deleteItem()
8323
8324 function deleteItem () {
8325 const item = items.pop()
8326 if (!item) return callback()
8327 remove.remove(item, err => {
8328 if (err) return callback(err)
8329 deleteItem()
8330 })
8331 }
8332 })
8333})
8334
8335function emptyDirSync (dir) {
8336 let items
8337 try {
8338 items = fs.readdirSync(dir)
8339 } catch (err) {
8340 return mkdir.mkdirsSync(dir)
8341 }
8342
8343 items.forEach(item => {
8344 item = path.join(dir, item)
8345 remove.removeSync(item)
8346 })
8347}
8348
8349module.exports = {
8350 emptyDirSync,
8351 emptydirSync: emptyDirSync,
8352 emptyDir,
8353 emptydir: emptyDir
8354}
8355
8356
8357/***/ }),
8358
8359/***/ "./node_modules/fs-extra/lib/ensure/file.js":
8360/*!**************************************************!*\
8361 !*** ./node_modules/fs-extra/lib/ensure/file.js ***!
8362 \**************************************************/
8363/*! no static exports found */
8364/***/ (function(module, exports, __webpack_require__) {
8365
8366"use strict";
8367
8368
8369const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
8370const path = __webpack_require__(/*! path */ "path")
8371const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
8372const mkdir = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js")
8373const pathExists = __webpack_require__(/*! ../path-exists */ "./node_modules/fs-extra/lib/path-exists/index.js").pathExists
8374
8375function createFile (file, callback) {
8376 function makeFile () {
8377 fs.writeFile(file, '', err => {
8378 if (err) return callback(err)
8379 callback()
8380 })
8381 }
8382
8383 fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err
8384 if (!err && stats.isFile()) return callback()
8385 const dir = path.dirname(file)
8386 pathExists(dir, (err, dirExists) => {
8387 if (err) return callback(err)
8388 if (dirExists) return makeFile()
8389 mkdir.mkdirs(dir, err => {
8390 if (err) return callback(err)
8391 makeFile()
8392 })
8393 })
8394 })
8395}
8396
8397function createFileSync (file) {
8398 let stats
8399 try {
8400 stats = fs.statSync(file)
8401 } catch (e) {}
8402 if (stats && stats.isFile()) return
8403
8404 const dir = path.dirname(file)
8405 if (!fs.existsSync(dir)) {
8406 mkdir.mkdirsSync(dir)
8407 }
8408
8409 fs.writeFileSync(file, '')
8410}
8411
8412module.exports = {
8413 createFile: u(createFile),
8414 createFileSync
8415}
8416
8417
8418/***/ }),
8419
8420/***/ "./node_modules/fs-extra/lib/ensure/index.js":
8421/*!***************************************************!*\
8422 !*** ./node_modules/fs-extra/lib/ensure/index.js ***!
8423 \***************************************************/
8424/*! no static exports found */
8425/***/ (function(module, exports, __webpack_require__) {
8426
8427"use strict";
8428
8429
8430const file = __webpack_require__(/*! ./file */ "./node_modules/fs-extra/lib/ensure/file.js")
8431const link = __webpack_require__(/*! ./link */ "./node_modules/fs-extra/lib/ensure/link.js")
8432const symlink = __webpack_require__(/*! ./symlink */ "./node_modules/fs-extra/lib/ensure/symlink.js")
8433
8434module.exports = {
8435 // file
8436 createFile: file.createFile,
8437 createFileSync: file.createFileSync,
8438 ensureFile: file.createFile,
8439 ensureFileSync: file.createFileSync,
8440 // link
8441 createLink: link.createLink,
8442 createLinkSync: link.createLinkSync,
8443 ensureLink: link.createLink,
8444 ensureLinkSync: link.createLinkSync,
8445 // symlink
8446 createSymlink: symlink.createSymlink,
8447 createSymlinkSync: symlink.createSymlinkSync,
8448 ensureSymlink: symlink.createSymlink,
8449 ensureSymlinkSync: symlink.createSymlinkSync
8450}
8451
8452
8453/***/ }),
8454
8455/***/ "./node_modules/fs-extra/lib/ensure/link.js":
8456/*!**************************************************!*\
8457 !*** ./node_modules/fs-extra/lib/ensure/link.js ***!
8458 \**************************************************/
8459/*! no static exports found */
8460/***/ (function(module, exports, __webpack_require__) {
8461
8462"use strict";
8463
8464
8465const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
8466const path = __webpack_require__(/*! path */ "path")
8467const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
8468const mkdir = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js")
8469const pathExists = __webpack_require__(/*! ../path-exists */ "./node_modules/fs-extra/lib/path-exists/index.js").pathExists
8470
8471function createLink (srcpath, dstpath, callback) {
8472 function makeLink (srcpath, dstpath) {
8473 fs.link(srcpath, dstpath, err => {
8474 if (err) return callback(err)
8475 callback(null)
8476 })
8477 }
8478
8479 pathExists(dstpath, (err, destinationExists) => {
8480 if (err) return callback(err)
8481 if (destinationExists) return callback(null)
8482 fs.lstat(srcpath, (err) => {
8483 if (err) {
8484 err.message = err.message.replace('lstat', 'ensureLink')
8485 return callback(err)
8486 }
8487
8488 const dir = path.dirname(dstpath)
8489 pathExists(dir, (err, dirExists) => {
8490 if (err) return callback(err)
8491 if (dirExists) return makeLink(srcpath, dstpath)
8492 mkdir.mkdirs(dir, err => {
8493 if (err) return callback(err)
8494 makeLink(srcpath, dstpath)
8495 })
8496 })
8497 })
8498 })
8499}
8500
8501function createLinkSync (srcpath, dstpath) {
8502 const destinationExists = fs.existsSync(dstpath)
8503 if (destinationExists) return undefined
8504
8505 try {
8506 fs.lstatSync(srcpath)
8507 } catch (err) {
8508 err.message = err.message.replace('lstat', 'ensureLink')
8509 throw err
8510 }
8511
8512 const dir = path.dirname(dstpath)
8513 const dirExists = fs.existsSync(dir)
8514 if (dirExists) return fs.linkSync(srcpath, dstpath)
8515 mkdir.mkdirsSync(dir)
8516
8517 return fs.linkSync(srcpath, dstpath)
8518}
8519
8520module.exports = {
8521 createLink: u(createLink),
8522 createLinkSync
8523}
8524
8525
8526/***/ }),
8527
8528/***/ "./node_modules/fs-extra/lib/ensure/symlink-paths.js":
8529/*!***********************************************************!*\
8530 !*** ./node_modules/fs-extra/lib/ensure/symlink-paths.js ***!
8531 \***********************************************************/
8532/*! no static exports found */
8533/***/ (function(module, exports, __webpack_require__) {
8534
8535"use strict";
8536
8537
8538const path = __webpack_require__(/*! path */ "path")
8539const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
8540const pathExists = __webpack_require__(/*! ../path-exists */ "./node_modules/fs-extra/lib/path-exists/index.js").pathExists
8541
8542/**
8543 * Function that returns two types of paths, one relative to symlink, and one
8544 * relative to the current working directory. Checks if path is absolute or
8545 * relative. If the path is relative, this function checks if the path is
8546 * relative to symlink or relative to current working directory. This is an
8547 * initiative to find a smarter `srcpath` to supply when building symlinks.
8548 * This allows you to determine which path to use out of one of three possible
8549 * types of source paths. The first is an absolute path. This is detected by
8550 * `path.isAbsolute()`. When an absolute path is provided, it is checked to
8551 * see if it exists. If it does it's used, if not an error is returned
8552 * (callback)/ thrown (sync). The other two options for `srcpath` are a
8553 * relative url. By default Node's `fs.symlink` works by creating a symlink
8554 * using `dstpath` and expects the `srcpath` to be relative to the newly
8555 * created symlink. If you provide a `srcpath` that does not exist on the file
8556 * system it results in a broken symlink. To minimize this, the function
8557 * checks to see if the 'relative to symlink' source file exists, and if it
8558 * does it will use it. If it does not, it checks if there's a file that
8559 * exists that is relative to the current working directory, if does its used.
8560 * This preserves the expectations of the original fs.symlink spec and adds
8561 * the ability to pass in `relative to current working direcotry` paths.
8562 */
8563
8564function symlinkPaths (srcpath, dstpath, callback) {
8565 if (path.isAbsolute(srcpath)) {
8566 return fs.lstat(srcpath, (err) => {
8567 if (err) {
8568 err.message = err.message.replace('lstat', 'ensureSymlink')
8569 return callback(err)
8570 }
8571 return callback(null, {
8572 'toCwd': srcpath,
8573 'toDst': srcpath
8574 })
8575 })
8576 } else {
8577 const dstdir = path.dirname(dstpath)
8578 const relativeToDst = path.join(dstdir, srcpath)
8579 return pathExists(relativeToDst, (err, exists) => {
8580 if (err) return callback(err)
8581 if (exists) {
8582 return callback(null, {
8583 'toCwd': relativeToDst,
8584 'toDst': srcpath
8585 })
8586 } else {
8587 return fs.lstat(srcpath, (err) => {
8588 if (err) {
8589 err.message = err.message.replace('lstat', 'ensureSymlink')
8590 return callback(err)
8591 }
8592 return callback(null, {
8593 'toCwd': srcpath,
8594 'toDst': path.relative(dstdir, srcpath)
8595 })
8596 })
8597 }
8598 })
8599 }
8600}
8601
8602function symlinkPathsSync (srcpath, dstpath) {
8603 let exists
8604 if (path.isAbsolute(srcpath)) {
8605 exists = fs.existsSync(srcpath)
8606 if (!exists) throw new Error('absolute srcpath does not exist')
8607 return {
8608 'toCwd': srcpath,
8609 'toDst': srcpath
8610 }
8611 } else {
8612 const dstdir = path.dirname(dstpath)
8613 const relativeToDst = path.join(dstdir, srcpath)
8614 exists = fs.existsSync(relativeToDst)
8615 if (exists) {
8616 return {
8617 'toCwd': relativeToDst,
8618 'toDst': srcpath
8619 }
8620 } else {
8621 exists = fs.existsSync(srcpath)
8622 if (!exists) throw new Error('relative srcpath does not exist')
8623 return {
8624 'toCwd': srcpath,
8625 'toDst': path.relative(dstdir, srcpath)
8626 }
8627 }
8628 }
8629}
8630
8631module.exports = {
8632 symlinkPaths,
8633 symlinkPathsSync
8634}
8635
8636
8637/***/ }),
8638
8639/***/ "./node_modules/fs-extra/lib/ensure/symlink-type.js":
8640/*!**********************************************************!*\
8641 !*** ./node_modules/fs-extra/lib/ensure/symlink-type.js ***!
8642 \**********************************************************/
8643/*! no static exports found */
8644/***/ (function(module, exports, __webpack_require__) {
8645
8646"use strict";
8647
8648
8649const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
8650
8651function symlinkType (srcpath, type, callback) {
8652 callback = (typeof type === 'function') ? type : callback
8653 type = (typeof type === 'function') ? false : type
8654 if (type) return callback(null, type)
8655 fs.lstat(srcpath, (err, stats) => {
8656 if (err) return callback(null, 'file')
8657 type = (stats && stats.isDirectory()) ? 'dir' : 'file'
8658 callback(null, type)
8659 })
8660}
8661
8662function symlinkTypeSync (srcpath, type) {
8663 let stats
8664
8665 if (type) return type
8666 try {
8667 stats = fs.lstatSync(srcpath)
8668 } catch (e) {
8669 return 'file'
8670 }
8671 return (stats && stats.isDirectory()) ? 'dir' : 'file'
8672}
8673
8674module.exports = {
8675 symlinkType,
8676 symlinkTypeSync
8677}
8678
8679
8680/***/ }),
8681
8682/***/ "./node_modules/fs-extra/lib/ensure/symlink.js":
8683/*!*****************************************************!*\
8684 !*** ./node_modules/fs-extra/lib/ensure/symlink.js ***!
8685 \*****************************************************/
8686/*! no static exports found */
8687/***/ (function(module, exports, __webpack_require__) {
8688
8689"use strict";
8690
8691
8692const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
8693const path = __webpack_require__(/*! path */ "path")
8694const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
8695const _mkdirs = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js")
8696const mkdirs = _mkdirs.mkdirs
8697const mkdirsSync = _mkdirs.mkdirsSync
8698
8699const _symlinkPaths = __webpack_require__(/*! ./symlink-paths */ "./node_modules/fs-extra/lib/ensure/symlink-paths.js")
8700const symlinkPaths = _symlinkPaths.symlinkPaths
8701const symlinkPathsSync = _symlinkPaths.symlinkPathsSync
8702
8703const _symlinkType = __webpack_require__(/*! ./symlink-type */ "./node_modules/fs-extra/lib/ensure/symlink-type.js")
8704const symlinkType = _symlinkType.symlinkType
8705const symlinkTypeSync = _symlinkType.symlinkTypeSync
8706
8707const pathExists = __webpack_require__(/*! ../path-exists */ "./node_modules/fs-extra/lib/path-exists/index.js").pathExists
8708
8709function createSymlink (srcpath, dstpath, type, callback) {
8710 callback = (typeof type === 'function') ? type : callback
8711 type = (typeof type === 'function') ? false : type
8712
8713 pathExists(dstpath, (err, destinationExists) => {
8714 if (err) return callback(err)
8715 if (destinationExists) return callback(null)
8716 symlinkPaths(srcpath, dstpath, (err, relative) => {
8717 if (err) return callback(err)
8718 srcpath = relative.toDst
8719 symlinkType(relative.toCwd, type, (err, type) => {
8720 if (err) return callback(err)
8721 const dir = path.dirname(dstpath)
8722 pathExists(dir, (err, dirExists) => {
8723 if (err) return callback(err)
8724 if (dirExists) return fs.symlink(srcpath, dstpath, type, callback)
8725 mkdirs(dir, err => {
8726 if (err) return callback(err)
8727 fs.symlink(srcpath, dstpath, type, callback)
8728 })
8729 })
8730 })
8731 })
8732 })
8733}
8734
8735function createSymlinkSync (srcpath, dstpath, type) {
8736 const destinationExists = fs.existsSync(dstpath)
8737 if (destinationExists) return undefined
8738
8739 const relative = symlinkPathsSync(srcpath, dstpath)
8740 srcpath = relative.toDst
8741 type = symlinkTypeSync(relative.toCwd, type)
8742 const dir = path.dirname(dstpath)
8743 const exists = fs.existsSync(dir)
8744 if (exists) return fs.symlinkSync(srcpath, dstpath, type)
8745 mkdirsSync(dir)
8746 return fs.symlinkSync(srcpath, dstpath, type)
8747}
8748
8749module.exports = {
8750 createSymlink: u(createSymlink),
8751 createSymlinkSync
8752}
8753
8754
8755/***/ }),
8756
8757/***/ "./node_modules/fs-extra/lib/fs/index.js":
8758/*!***********************************************!*\
8759 !*** ./node_modules/fs-extra/lib/fs/index.js ***!
8760 \***********************************************/
8761/*! no static exports found */
8762/***/ (function(module, exports, __webpack_require__) {
8763
8764"use strict";
8765
8766// This is adapted from https://github.com/normalize/mz
8767// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors
8768const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
8769const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
8770
8771const api = [
8772 'access',
8773 'appendFile',
8774 'chmod',
8775 'chown',
8776 'close',
8777 'copyFile',
8778 'fchmod',
8779 'fchown',
8780 'fdatasync',
8781 'fstat',
8782 'fsync',
8783 'ftruncate',
8784 'futimes',
8785 'lchown',
8786 'lchmod',
8787 'link',
8788 'lstat',
8789 'mkdir',
8790 'mkdtemp',
8791 'open',
8792 'readFile',
8793 'readdir',
8794 'readlink',
8795 'realpath',
8796 'rename',
8797 'rmdir',
8798 'stat',
8799 'symlink',
8800 'truncate',
8801 'unlink',
8802 'utimes',
8803 'writeFile'
8804].filter(key => {
8805 // Some commands are not available on some systems. Ex:
8806 // fs.copyFile was added in Node.js v8.5.0
8807 // fs.mkdtemp was added in Node.js v5.10.0
8808 // fs.lchown is not available on at least some Linux
8809 return typeof fs[key] === 'function'
8810})
8811
8812// Export all keys:
8813Object.keys(fs).forEach(key => {
8814 if (key === 'promises') {
8815 // fs.promises is a getter property that triggers ExperimentalWarning
8816 // Don't re-export it here, the getter is defined in "lib/index.js"
8817 return
8818 }
8819 exports[key] = fs[key]
8820})
8821
8822// Universalify async methods:
8823api.forEach(method => {
8824 exports[method] = u(fs[method])
8825})
8826
8827// We differ from mz/fs in that we still ship the old, broken, fs.exists()
8828// since we are a drop-in replacement for the native module
8829exports.exists = function (filename, callback) {
8830 if (typeof callback === 'function') {
8831 return fs.exists(filename, callback)
8832 }
8833 return new Promise(resolve => {
8834 return fs.exists(filename, resolve)
8835 })
8836}
8837
8838// fs.read() & fs.write need special treatment due to multiple callback args
8839
8840exports.read = function (fd, buffer, offset, length, position, callback) {
8841 if (typeof callback === 'function') {
8842 return fs.read(fd, buffer, offset, length, position, callback)
8843 }
8844 return new Promise((resolve, reject) => {
8845 fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => {
8846 if (err) return reject(err)
8847 resolve({ bytesRead, buffer })
8848 })
8849 })
8850}
8851
8852// Function signature can be
8853// fs.write(fd, buffer[, offset[, length[, position]]], callback)
8854// OR
8855// fs.write(fd, string[, position[, encoding]], callback)
8856// We need to handle both cases, so we use ...args
8857exports.write = function (fd, buffer, ...args) {
8858 if (typeof args[args.length - 1] === 'function') {
8859 return fs.write(fd, buffer, ...args)
8860 }
8861
8862 return new Promise((resolve, reject) => {
8863 fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => {
8864 if (err) return reject(err)
8865 resolve({ bytesWritten, buffer })
8866 })
8867 })
8868}
8869
8870
8871/***/ }),
8872
8873/***/ "./node_modules/fs-extra/lib/index.js":
8874/*!********************************************!*\
8875 !*** ./node_modules/fs-extra/lib/index.js ***!
8876 \********************************************/
8877/*! no static exports found */
8878/***/ (function(module, exports, __webpack_require__) {
8879
8880"use strict";
8881
8882
8883module.exports = Object.assign(
8884 {},
8885 // Export promiseified graceful-fs:
8886 __webpack_require__(/*! ./fs */ "./node_modules/fs-extra/lib/fs/index.js"),
8887 // Export extra methods:
8888 __webpack_require__(/*! ./copy-sync */ "./node_modules/fs-extra/lib/copy-sync/index.js"),
8889 __webpack_require__(/*! ./copy */ "./node_modules/fs-extra/lib/copy/index.js"),
8890 __webpack_require__(/*! ./empty */ "./node_modules/fs-extra/lib/empty/index.js"),
8891 __webpack_require__(/*! ./ensure */ "./node_modules/fs-extra/lib/ensure/index.js"),
8892 __webpack_require__(/*! ./json */ "./node_modules/fs-extra/lib/json/index.js"),
8893 __webpack_require__(/*! ./mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js"),
8894 __webpack_require__(/*! ./move-sync */ "./node_modules/fs-extra/lib/move-sync/index.js"),
8895 __webpack_require__(/*! ./move */ "./node_modules/fs-extra/lib/move/index.js"),
8896 __webpack_require__(/*! ./output */ "./node_modules/fs-extra/lib/output/index.js"),
8897 __webpack_require__(/*! ./path-exists */ "./node_modules/fs-extra/lib/path-exists/index.js"),
8898 __webpack_require__(/*! ./remove */ "./node_modules/fs-extra/lib/remove/index.js")
8899)
8900
8901// Export fs.promises as a getter property so that we don't trigger
8902// ExperimentalWarning before fs.promises is actually accessed.
8903const fs = __webpack_require__(/*! fs */ "fs")
8904if (Object.getOwnPropertyDescriptor(fs, 'promises')) {
8905 Object.defineProperty(module.exports, 'promises', {
8906 get () { return fs.promises }
8907 })
8908}
8909
8910
8911/***/ }),
8912
8913/***/ "./node_modules/fs-extra/lib/json/index.js":
8914/*!*************************************************!*\
8915 !*** ./node_modules/fs-extra/lib/json/index.js ***!
8916 \*************************************************/
8917/*! no static exports found */
8918/***/ (function(module, exports, __webpack_require__) {
8919
8920"use strict";
8921
8922
8923const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
8924const jsonFile = __webpack_require__(/*! ./jsonfile */ "./node_modules/fs-extra/lib/json/jsonfile.js")
8925
8926jsonFile.outputJson = u(__webpack_require__(/*! ./output-json */ "./node_modules/fs-extra/lib/json/output-json.js"))
8927jsonFile.outputJsonSync = __webpack_require__(/*! ./output-json-sync */ "./node_modules/fs-extra/lib/json/output-json-sync.js")
8928// aliases
8929jsonFile.outputJSON = jsonFile.outputJson
8930jsonFile.outputJSONSync = jsonFile.outputJsonSync
8931jsonFile.writeJSON = jsonFile.writeJson
8932jsonFile.writeJSONSync = jsonFile.writeJsonSync
8933jsonFile.readJSON = jsonFile.readJson
8934jsonFile.readJSONSync = jsonFile.readJsonSync
8935
8936module.exports = jsonFile
8937
8938
8939/***/ }),
8940
8941/***/ "./node_modules/fs-extra/lib/json/jsonfile.js":
8942/*!****************************************************!*\
8943 !*** ./node_modules/fs-extra/lib/json/jsonfile.js ***!
8944 \****************************************************/
8945/*! no static exports found */
8946/***/ (function(module, exports, __webpack_require__) {
8947
8948"use strict";
8949
8950
8951const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
8952const jsonFile = __webpack_require__(/*! jsonfile */ "./node_modules/jsonfile/index.js")
8953
8954module.exports = {
8955 // jsonfile exports
8956 readJson: u(jsonFile.readFile),
8957 readJsonSync: jsonFile.readFileSync,
8958 writeJson: u(jsonFile.writeFile),
8959 writeJsonSync: jsonFile.writeFileSync
8960}
8961
8962
8963/***/ }),
8964
8965/***/ "./node_modules/fs-extra/lib/json/output-json-sync.js":
8966/*!************************************************************!*\
8967 !*** ./node_modules/fs-extra/lib/json/output-json-sync.js ***!
8968 \************************************************************/
8969/*! no static exports found */
8970/***/ (function(module, exports, __webpack_require__) {
8971
8972"use strict";
8973
8974
8975const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
8976const path = __webpack_require__(/*! path */ "path")
8977const mkdir = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js")
8978const jsonFile = __webpack_require__(/*! ./jsonfile */ "./node_modules/fs-extra/lib/json/jsonfile.js")
8979
8980function outputJsonSync (file, data, options) {
8981 const dir = path.dirname(file)
8982
8983 if (!fs.existsSync(dir)) {
8984 mkdir.mkdirsSync(dir)
8985 }
8986
8987 jsonFile.writeJsonSync(file, data, options)
8988}
8989
8990module.exports = outputJsonSync
8991
8992
8993/***/ }),
8994
8995/***/ "./node_modules/fs-extra/lib/json/output-json.js":
8996/*!*******************************************************!*\
8997 !*** ./node_modules/fs-extra/lib/json/output-json.js ***!
8998 \*******************************************************/
8999/*! no static exports found */
9000/***/ (function(module, exports, __webpack_require__) {
9001
9002"use strict";
9003
9004
9005const path = __webpack_require__(/*! path */ "path")
9006const mkdir = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js")
9007const pathExists = __webpack_require__(/*! ../path-exists */ "./node_modules/fs-extra/lib/path-exists/index.js").pathExists
9008const jsonFile = __webpack_require__(/*! ./jsonfile */ "./node_modules/fs-extra/lib/json/jsonfile.js")
9009
9010function outputJson (file, data, options, callback) {
9011 if (typeof options === 'function') {
9012 callback = options
9013 options = {}
9014 }
9015
9016 const dir = path.dirname(file)
9017
9018 pathExists(dir, (err, itDoes) => {
9019 if (err) return callback(err)
9020 if (itDoes) return jsonFile.writeJson(file, data, options, callback)
9021
9022 mkdir.mkdirs(dir, err => {
9023 if (err) return callback(err)
9024 jsonFile.writeJson(file, data, options, callback)
9025 })
9026 })
9027}
9028
9029module.exports = outputJson
9030
9031
9032/***/ }),
9033
9034/***/ "./node_modules/fs-extra/lib/mkdirs/index.js":
9035/*!***************************************************!*\
9036 !*** ./node_modules/fs-extra/lib/mkdirs/index.js ***!
9037 \***************************************************/
9038/*! no static exports found */
9039/***/ (function(module, exports, __webpack_require__) {
9040
9041"use strict";
9042
9043const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
9044const mkdirs = u(__webpack_require__(/*! ./mkdirs */ "./node_modules/fs-extra/lib/mkdirs/mkdirs.js"))
9045const mkdirsSync = __webpack_require__(/*! ./mkdirs-sync */ "./node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js")
9046
9047module.exports = {
9048 mkdirs,
9049 mkdirsSync,
9050 // alias
9051 mkdirp: mkdirs,
9052 mkdirpSync: mkdirsSync,
9053 ensureDir: mkdirs,
9054 ensureDirSync: mkdirsSync
9055}
9056
9057
9058/***/ }),
9059
9060/***/ "./node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js":
9061/*!*********************************************************!*\
9062 !*** ./node_modules/fs-extra/lib/mkdirs/mkdirs-sync.js ***!
9063 \*********************************************************/
9064/*! no static exports found */
9065/***/ (function(module, exports, __webpack_require__) {
9066
9067"use strict";
9068
9069
9070const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
9071const path = __webpack_require__(/*! path */ "path")
9072const invalidWin32Path = __webpack_require__(/*! ./win32 */ "./node_modules/fs-extra/lib/mkdirs/win32.js").invalidWin32Path
9073
9074const o777 = parseInt('0777', 8)
9075
9076function mkdirsSync (p, opts, made) {
9077 if (!opts || typeof opts !== 'object') {
9078 opts = { mode: opts }
9079 }
9080
9081 let mode = opts.mode
9082 const xfs = opts.fs || fs
9083
9084 if (process.platform === 'win32' && invalidWin32Path(p)) {
9085 const errInval = new Error(p + ' contains invalid WIN32 path characters.')
9086 errInval.code = 'EINVAL'
9087 throw errInval
9088 }
9089
9090 if (mode === undefined) {
9091 mode = o777 & (~process.umask())
9092 }
9093 if (!made) made = null
9094
9095 p = path.resolve(p)
9096
9097 try {
9098 xfs.mkdirSync(p, mode)
9099 made = made || p
9100 } catch (err0) {
9101 if (err0.code === 'ENOENT') {
9102 if (path.dirname(p) === p) throw err0
9103 made = mkdirsSync(path.dirname(p), opts, made)
9104 mkdirsSync(p, opts, made)
9105 } else {
9106 // In the case of any other error, just see if there's a dir there
9107 // already. If so, then hooray! If not, then something is borked.
9108 let stat
9109 try {
9110 stat = xfs.statSync(p)
9111 } catch (err1) {
9112 throw err0
9113 }
9114 if (!stat.isDirectory()) throw err0
9115 }
9116 }
9117
9118 return made
9119}
9120
9121module.exports = mkdirsSync
9122
9123
9124/***/ }),
9125
9126/***/ "./node_modules/fs-extra/lib/mkdirs/mkdirs.js":
9127/*!****************************************************!*\
9128 !*** ./node_modules/fs-extra/lib/mkdirs/mkdirs.js ***!
9129 \****************************************************/
9130/*! no static exports found */
9131/***/ (function(module, exports, __webpack_require__) {
9132
9133"use strict";
9134
9135
9136const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
9137const path = __webpack_require__(/*! path */ "path")
9138const invalidWin32Path = __webpack_require__(/*! ./win32 */ "./node_modules/fs-extra/lib/mkdirs/win32.js").invalidWin32Path
9139
9140const o777 = parseInt('0777', 8)
9141
9142function mkdirs (p, opts, callback, made) {
9143 if (typeof opts === 'function') {
9144 callback = opts
9145 opts = {}
9146 } else if (!opts || typeof opts !== 'object') {
9147 opts = { mode: opts }
9148 }
9149
9150 if (process.platform === 'win32' && invalidWin32Path(p)) {
9151 const errInval = new Error(p + ' contains invalid WIN32 path characters.')
9152 errInval.code = 'EINVAL'
9153 return callback(errInval)
9154 }
9155
9156 let mode = opts.mode
9157 const xfs = opts.fs || fs
9158
9159 if (mode === undefined) {
9160 mode = o777 & (~process.umask())
9161 }
9162 if (!made) made = null
9163
9164 callback = callback || function () {}
9165 p = path.resolve(p)
9166
9167 xfs.mkdir(p, mode, er => {
9168 if (!er) {
9169 made = made || p
9170 return callback(null, made)
9171 }
9172 switch (er.code) {
9173 case 'ENOENT':
9174 if (path.dirname(p) === p) return callback(er)
9175 mkdirs(path.dirname(p), opts, (er, made) => {
9176 if (er) callback(er, made)
9177 else mkdirs(p, opts, callback, made)
9178 })
9179 break
9180
9181 // In the case of any other error, just see if there's a dir
9182 // there already. If so, then hooray! If not, then something
9183 // is borked.
9184 default:
9185 xfs.stat(p, (er2, stat) => {
9186 // if the stat fails, then that's super weird.
9187 // let the original error be the failure reason.
9188 if (er2 || !stat.isDirectory()) callback(er, made)
9189 else callback(null, made)
9190 })
9191 break
9192 }
9193 })
9194}
9195
9196module.exports = mkdirs
9197
9198
9199/***/ }),
9200
9201/***/ "./node_modules/fs-extra/lib/mkdirs/win32.js":
9202/*!***************************************************!*\
9203 !*** ./node_modules/fs-extra/lib/mkdirs/win32.js ***!
9204 \***************************************************/
9205/*! no static exports found */
9206/***/ (function(module, exports, __webpack_require__) {
9207
9208"use strict";
9209
9210
9211const path = __webpack_require__(/*! path */ "path")
9212
9213// get drive on windows
9214function getRootPath (p) {
9215 p = path.normalize(path.resolve(p)).split(path.sep)
9216 if (p.length > 0) return p[0]
9217 return null
9218}
9219
9220// http://stackoverflow.com/a/62888/10333 contains more accurate
9221// TODO: expand to include the rest
9222const INVALID_PATH_CHARS = /[<>:"|?*]/
9223
9224function invalidWin32Path (p) {
9225 const rp = getRootPath(p)
9226 p = p.replace(rp, '')
9227 return INVALID_PATH_CHARS.test(p)
9228}
9229
9230module.exports = {
9231 getRootPath,
9232 invalidWin32Path
9233}
9234
9235
9236/***/ }),
9237
9238/***/ "./node_modules/fs-extra/lib/move-sync/index.js":
9239/*!******************************************************!*\
9240 !*** ./node_modules/fs-extra/lib/move-sync/index.js ***!
9241 \******************************************************/
9242/*! no static exports found */
9243/***/ (function(module, exports, __webpack_require__) {
9244
9245"use strict";
9246
9247
9248const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
9249const path = __webpack_require__(/*! path */ "path")
9250const copySync = __webpack_require__(/*! ../copy-sync */ "./node_modules/fs-extra/lib/copy-sync/index.js").copySync
9251const removeSync = __webpack_require__(/*! ../remove */ "./node_modules/fs-extra/lib/remove/index.js").removeSync
9252const mkdirpSync = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js").mkdirsSync
9253const buffer = __webpack_require__(/*! ../util/buffer */ "./node_modules/fs-extra/lib/util/buffer.js")
9254
9255function moveSync (src, dest, options) {
9256 options = options || {}
9257 const overwrite = options.overwrite || options.clobber || false
9258
9259 src = path.resolve(src)
9260 dest = path.resolve(dest)
9261
9262 if (src === dest) return fs.accessSync(src)
9263
9264 if (isSrcSubdir(src, dest)) throw new Error(`Cannot move '${src}' into itself '${dest}'.`)
9265
9266 mkdirpSync(path.dirname(dest))
9267 tryRenameSync()
9268
9269 function tryRenameSync () {
9270 if (overwrite) {
9271 try {
9272 return fs.renameSync(src, dest)
9273 } catch (err) {
9274 if (err.code === 'ENOTEMPTY' || err.code === 'EEXIST' || err.code === 'EPERM') {
9275 removeSync(dest)
9276 options.overwrite = false // just overwriteed it, no need to do it again
9277 return moveSync(src, dest, options)
9278 }
9279
9280 if (err.code !== 'EXDEV') throw err
9281 return moveSyncAcrossDevice(src, dest, overwrite)
9282 }
9283 } else {
9284 try {
9285 fs.linkSync(src, dest)
9286 return fs.unlinkSync(src)
9287 } catch (err) {
9288 if (err.code === 'EXDEV' || err.code === 'EISDIR' || err.code === 'EPERM' || err.code === 'ENOTSUP') {
9289 return moveSyncAcrossDevice(src, dest, overwrite)
9290 }
9291 throw err
9292 }
9293 }
9294 }
9295}
9296
9297function moveSyncAcrossDevice (src, dest, overwrite) {
9298 const stat = fs.statSync(src)
9299
9300 if (stat.isDirectory()) {
9301 return moveDirSyncAcrossDevice(src, dest, overwrite)
9302 } else {
9303 return moveFileSyncAcrossDevice(src, dest, overwrite)
9304 }
9305}
9306
9307function moveFileSyncAcrossDevice (src, dest, overwrite) {
9308 const BUF_LENGTH = 64 * 1024
9309 const _buff = buffer(BUF_LENGTH)
9310
9311 const flags = overwrite ? 'w' : 'wx'
9312
9313 const fdr = fs.openSync(src, 'r')
9314 const stat = fs.fstatSync(fdr)
9315 const fdw = fs.openSync(dest, flags, stat.mode)
9316 let pos = 0
9317
9318 while (pos < stat.size) {
9319 const bytesRead = fs.readSync(fdr, _buff, 0, BUF_LENGTH, pos)
9320 fs.writeSync(fdw, _buff, 0, bytesRead)
9321 pos += bytesRead
9322 }
9323
9324 fs.closeSync(fdr)
9325 fs.closeSync(fdw)
9326 return fs.unlinkSync(src)
9327}
9328
9329function moveDirSyncAcrossDevice (src, dest, overwrite) {
9330 const options = {
9331 overwrite: false
9332 }
9333
9334 if (overwrite) {
9335 removeSync(dest)
9336 tryCopySync()
9337 } else {
9338 tryCopySync()
9339 }
9340
9341 function tryCopySync () {
9342 copySync(src, dest, options)
9343 return removeSync(src)
9344 }
9345}
9346
9347// return true if dest is a subdir of src, otherwise false.
9348// extract dest base dir and check if that is the same as src basename
9349function isSrcSubdir (src, dest) {
9350 try {
9351 return fs.statSync(src).isDirectory() &&
9352 src !== dest &&
9353 dest.indexOf(src) > -1 &&
9354 dest.split(path.dirname(src) + path.sep)[1].split(path.sep)[0] === path.basename(src)
9355 } catch (e) {
9356 return false
9357 }
9358}
9359
9360module.exports = {
9361 moveSync
9362}
9363
9364
9365/***/ }),
9366
9367/***/ "./node_modules/fs-extra/lib/move/index.js":
9368/*!*************************************************!*\
9369 !*** ./node_modules/fs-extra/lib/move/index.js ***!
9370 \*************************************************/
9371/*! no static exports found */
9372/***/ (function(module, exports, __webpack_require__) {
9373
9374"use strict";
9375
9376
9377const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
9378const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
9379const path = __webpack_require__(/*! path */ "path")
9380const copy = __webpack_require__(/*! ../copy */ "./node_modules/fs-extra/lib/copy/index.js").copy
9381const remove = __webpack_require__(/*! ../remove */ "./node_modules/fs-extra/lib/remove/index.js").remove
9382const mkdirp = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js").mkdirp
9383const pathExists = __webpack_require__(/*! ../path-exists */ "./node_modules/fs-extra/lib/path-exists/index.js").pathExists
9384
9385function move (src, dest, opts, cb) {
9386 if (typeof opts === 'function') {
9387 cb = opts
9388 opts = {}
9389 }
9390
9391 const overwrite = opts.overwrite || opts.clobber || false
9392
9393 src = path.resolve(src)
9394 dest = path.resolve(dest)
9395
9396 if (src === dest) return fs.access(src, cb)
9397
9398 fs.stat(src, (err, st) => {
9399 if (err) return cb(err)
9400
9401 if (st.isDirectory() && isSrcSubdir(src, dest)) {
9402 return cb(new Error(`Cannot move '${src}' to a subdirectory of itself, '${dest}'.`))
9403 }
9404 mkdirp(path.dirname(dest), err => {
9405 if (err) return cb(err)
9406 return doRename(src, dest, overwrite, cb)
9407 })
9408 })
9409}
9410
9411function doRename (src, dest, overwrite, cb) {
9412 if (overwrite) {
9413 return remove(dest, err => {
9414 if (err) return cb(err)
9415 return rename(src, dest, overwrite, cb)
9416 })
9417 }
9418 pathExists(dest, (err, destExists) => {
9419 if (err) return cb(err)
9420 if (destExists) return cb(new Error('dest already exists.'))
9421 return rename(src, dest, overwrite, cb)
9422 })
9423}
9424
9425function rename (src, dest, overwrite, cb) {
9426 fs.rename(src, dest, err => {
9427 if (!err) return cb()
9428 if (err.code !== 'EXDEV') return cb(err)
9429 return moveAcrossDevice(src, dest, overwrite, cb)
9430 })
9431}
9432
9433function moveAcrossDevice (src, dest, overwrite, cb) {
9434 const opts = {
9435 overwrite,
9436 errorOnExist: true
9437 }
9438
9439 copy(src, dest, opts, err => {
9440 if (err) return cb(err)
9441 return remove(src, cb)
9442 })
9443}
9444
9445function isSrcSubdir (src, dest) {
9446 const srcArray = src.split(path.sep)
9447 const destArray = dest.split(path.sep)
9448
9449 return srcArray.reduce((acc, current, i) => {
9450 return acc && destArray[i] === current
9451 }, true)
9452}
9453
9454module.exports = {
9455 move: u(move)
9456}
9457
9458
9459/***/ }),
9460
9461/***/ "./node_modules/fs-extra/lib/output/index.js":
9462/*!***************************************************!*\
9463 !*** ./node_modules/fs-extra/lib/output/index.js ***!
9464 \***************************************************/
9465/*! no static exports found */
9466/***/ (function(module, exports, __webpack_require__) {
9467
9468"use strict";
9469
9470
9471const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
9472const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
9473const path = __webpack_require__(/*! path */ "path")
9474const mkdir = __webpack_require__(/*! ../mkdirs */ "./node_modules/fs-extra/lib/mkdirs/index.js")
9475const pathExists = __webpack_require__(/*! ../path-exists */ "./node_modules/fs-extra/lib/path-exists/index.js").pathExists
9476
9477function outputFile (file, data, encoding, callback) {
9478 if (typeof encoding === 'function') {
9479 callback = encoding
9480 encoding = 'utf8'
9481 }
9482
9483 const dir = path.dirname(file)
9484 pathExists(dir, (err, itDoes) => {
9485 if (err) return callback(err)
9486 if (itDoes) return fs.writeFile(file, data, encoding, callback)
9487
9488 mkdir.mkdirs(dir, err => {
9489 if (err) return callback(err)
9490
9491 fs.writeFile(file, data, encoding, callback)
9492 })
9493 })
9494}
9495
9496function outputFileSync (file, ...args) {
9497 const dir = path.dirname(file)
9498 if (fs.existsSync(dir)) {
9499 return fs.writeFileSync(file, ...args)
9500 }
9501 mkdir.mkdirsSync(dir)
9502 fs.writeFileSync(file, ...args)
9503}
9504
9505module.exports = {
9506 outputFile: u(outputFile),
9507 outputFileSync
9508}
9509
9510
9511/***/ }),
9512
9513/***/ "./node_modules/fs-extra/lib/path-exists/index.js":
9514/*!********************************************************!*\
9515 !*** ./node_modules/fs-extra/lib/path-exists/index.js ***!
9516 \********************************************************/
9517/*! no static exports found */
9518/***/ (function(module, exports, __webpack_require__) {
9519
9520"use strict";
9521
9522const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromPromise
9523const fs = __webpack_require__(/*! ../fs */ "./node_modules/fs-extra/lib/fs/index.js")
9524
9525function pathExists (path) {
9526 return fs.access(path).then(() => true).catch(() => false)
9527}
9528
9529module.exports = {
9530 pathExists: u(pathExists),
9531 pathExistsSync: fs.existsSync
9532}
9533
9534
9535/***/ }),
9536
9537/***/ "./node_modules/fs-extra/lib/remove/index.js":
9538/*!***************************************************!*\
9539 !*** ./node_modules/fs-extra/lib/remove/index.js ***!
9540 \***************************************************/
9541/*! no static exports found */
9542/***/ (function(module, exports, __webpack_require__) {
9543
9544"use strict";
9545
9546
9547const u = __webpack_require__(/*! universalify */ "./node_modules/universalify/index.js").fromCallback
9548const rimraf = __webpack_require__(/*! ./rimraf */ "./node_modules/fs-extra/lib/remove/rimraf.js")
9549
9550module.exports = {
9551 remove: u(rimraf),
9552 removeSync: rimraf.sync
9553}
9554
9555
9556/***/ }),
9557
9558/***/ "./node_modules/fs-extra/lib/remove/rimraf.js":
9559/*!****************************************************!*\
9560 !*** ./node_modules/fs-extra/lib/remove/rimraf.js ***!
9561 \****************************************************/
9562/*! no static exports found */
9563/***/ (function(module, exports, __webpack_require__) {
9564
9565"use strict";
9566
9567
9568const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
9569const path = __webpack_require__(/*! path */ "path")
9570const assert = __webpack_require__(/*! assert */ "assert")
9571
9572const isWindows = (process.platform === 'win32')
9573
9574function defaults (options) {
9575 const methods = [
9576 'unlink',
9577 'chmod',
9578 'stat',
9579 'lstat',
9580 'rmdir',
9581 'readdir'
9582 ]
9583 methods.forEach(m => {
9584 options[m] = options[m] || fs[m]
9585 m = m + 'Sync'
9586 options[m] = options[m] || fs[m]
9587 })
9588
9589 options.maxBusyTries = options.maxBusyTries || 3
9590}
9591
9592function rimraf (p, options, cb) {
9593 let busyTries = 0
9594
9595 if (typeof options === 'function') {
9596 cb = options
9597 options = {}
9598 }
9599
9600 assert(p, 'rimraf: missing path')
9601 assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
9602 assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required')
9603 assert(options, 'rimraf: invalid options argument provided')
9604 assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')
9605
9606 defaults(options)
9607
9608 rimraf_(p, options, function CB (er) {
9609 if (er) {
9610 if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') &&
9611 busyTries < options.maxBusyTries) {
9612 busyTries++
9613 const time = busyTries * 100
9614 // try again, with the same exact callback as this one.
9615 return setTimeout(() => rimraf_(p, options, CB), time)
9616 }
9617
9618 // already gone
9619 if (er.code === 'ENOENT') er = null
9620 }
9621
9622 cb(er)
9623 })
9624}
9625
9626// Two possible strategies.
9627// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR
9628// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR
9629//
9630// Both result in an extra syscall when you guess wrong. However, there
9631// are likely far more normal files in the world than directories. This
9632// is based on the assumption that a the average number of files per
9633// directory is >= 1.
9634//
9635// If anyone ever complains about this, then I guess the strategy could
9636// be made configurable somehow. But until then, YAGNI.
9637function rimraf_ (p, options, cb) {
9638 assert(p)
9639 assert(options)
9640 assert(typeof cb === 'function')
9641
9642 // sunos lets the root user unlink directories, which is... weird.
9643 // so we have to lstat here and make sure it's not a dir.
9644 options.lstat(p, (er, st) => {
9645 if (er && er.code === 'ENOENT') {
9646 return cb(null)
9647 }
9648
9649 // Windows can EPERM on stat. Life is suffering.
9650 if (er && er.code === 'EPERM' && isWindows) {
9651 return fixWinEPERM(p, options, er, cb)
9652 }
9653
9654 if (st && st.isDirectory()) {
9655 return rmdir(p, options, er, cb)
9656 }
9657
9658 options.unlink(p, er => {
9659 if (er) {
9660 if (er.code === 'ENOENT') {
9661 return cb(null)
9662 }
9663 if (er.code === 'EPERM') {
9664 return (isWindows)
9665 ? fixWinEPERM(p, options, er, cb)
9666 : rmdir(p, options, er, cb)
9667 }
9668 if (er.code === 'EISDIR') {
9669 return rmdir(p, options, er, cb)
9670 }
9671 }
9672 return cb(er)
9673 })
9674 })
9675}
9676
9677function fixWinEPERM (p, options, er, cb) {
9678 assert(p)
9679 assert(options)
9680 assert(typeof cb === 'function')
9681 if (er) {
9682 assert(er instanceof Error)
9683 }
9684
9685 options.chmod(p, 0o666, er2 => {
9686 if (er2) {
9687 cb(er2.code === 'ENOENT' ? null : er)
9688 } else {
9689 options.stat(p, (er3, stats) => {
9690 if (er3) {
9691 cb(er3.code === 'ENOENT' ? null : er)
9692 } else if (stats.isDirectory()) {
9693 rmdir(p, options, er, cb)
9694 } else {
9695 options.unlink(p, cb)
9696 }
9697 })
9698 }
9699 })
9700}
9701
9702function fixWinEPERMSync (p, options, er) {
9703 let stats
9704
9705 assert(p)
9706 assert(options)
9707 if (er) {
9708 assert(er instanceof Error)
9709 }
9710
9711 try {
9712 options.chmodSync(p, 0o666)
9713 } catch (er2) {
9714 if (er2.code === 'ENOENT') {
9715 return
9716 } else {
9717 throw er
9718 }
9719 }
9720
9721 try {
9722 stats = options.statSync(p)
9723 } catch (er3) {
9724 if (er3.code === 'ENOENT') {
9725 return
9726 } else {
9727 throw er
9728 }
9729 }
9730
9731 if (stats.isDirectory()) {
9732 rmdirSync(p, options, er)
9733 } else {
9734 options.unlinkSync(p)
9735 }
9736}
9737
9738function rmdir (p, options, originalEr, cb) {
9739 assert(p)
9740 assert(options)
9741 if (originalEr) {
9742 assert(originalEr instanceof Error)
9743 }
9744 assert(typeof cb === 'function')
9745
9746 // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
9747 // if we guessed wrong, and it's not a directory, then
9748 // raise the original error.
9749 options.rmdir(p, er => {
9750 if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) {
9751 rmkids(p, options, cb)
9752 } else if (er && er.code === 'ENOTDIR') {
9753 cb(originalEr)
9754 } else {
9755 cb(er)
9756 }
9757 })
9758}
9759
9760function rmkids (p, options, cb) {
9761 assert(p)
9762 assert(options)
9763 assert(typeof cb === 'function')
9764
9765 options.readdir(p, (er, files) => {
9766 if (er) return cb(er)
9767
9768 let n = files.length
9769 let errState
9770
9771 if (n === 0) return options.rmdir(p, cb)
9772
9773 files.forEach(f => {
9774 rimraf(path.join(p, f), options, er => {
9775 if (errState) {
9776 return
9777 }
9778 if (er) return cb(errState = er)
9779 if (--n === 0) {
9780 options.rmdir(p, cb)
9781 }
9782 })
9783 })
9784 })
9785}
9786
9787// this looks simpler, and is strictly *faster*, but will
9788// tie up the JavaScript thread and fail on excessively
9789// deep directory trees.
9790function rimrafSync (p, options) {
9791 let st
9792
9793 options = options || {}
9794 defaults(options)
9795
9796 assert(p, 'rimraf: missing path')
9797 assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string')
9798 assert(options, 'rimraf: missing options')
9799 assert.strictEqual(typeof options, 'object', 'rimraf: options should be object')
9800
9801 try {
9802 st = options.lstatSync(p)
9803 } catch (er) {
9804 if (er.code === 'ENOENT') {
9805 return
9806 }
9807
9808 // Windows can EPERM on stat. Life is suffering.
9809 if (er.code === 'EPERM' && isWindows) {
9810 fixWinEPERMSync(p, options, er)
9811 }
9812 }
9813
9814 try {
9815 // sunos lets the root user unlink directories, which is... weird.
9816 if (st && st.isDirectory()) {
9817 rmdirSync(p, options, null)
9818 } else {
9819 options.unlinkSync(p)
9820 }
9821 } catch (er) {
9822 if (er.code === 'ENOENT') {
9823 return
9824 } else if (er.code === 'EPERM') {
9825 return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
9826 } else if (er.code !== 'EISDIR') {
9827 throw er
9828 }
9829 rmdirSync(p, options, er)
9830 }
9831}
9832
9833function rmdirSync (p, options, originalEr) {
9834 assert(p)
9835 assert(options)
9836 if (originalEr) {
9837 assert(originalEr instanceof Error)
9838 }
9839
9840 try {
9841 options.rmdirSync(p)
9842 } catch (er) {
9843 if (er.code === 'ENOTDIR') {
9844 throw originalEr
9845 } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') {
9846 rmkidsSync(p, options)
9847 } else if (er.code !== 'ENOENT') {
9848 throw er
9849 }
9850 }
9851}
9852
9853function rmkidsSync (p, options) {
9854 assert(p)
9855 assert(options)
9856 options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))
9857
9858 if (isWindows) {
9859 // We only end up here once we got ENOTEMPTY at least once, and
9860 // at this point, we are guaranteed to have removed all the kids.
9861 // So, we know that it won't be ENOENT or ENOTDIR or anything else.
9862 // try really hard to delete stuff on windows, because it has a
9863 // PROFOUNDLY annoying habit of not closing handles promptly when
9864 // files are deleted, resulting in spurious ENOTEMPTY errors.
9865 const startTime = Date.now()
9866 do {
9867 try {
9868 const ret = options.rmdirSync(p, options)
9869 return ret
9870 } catch (er) { }
9871 } while (Date.now() - startTime < 500) // give up after 500ms
9872 } else {
9873 const ret = options.rmdirSync(p, options)
9874 return ret
9875 }
9876}
9877
9878module.exports = rimraf
9879rimraf.sync = rimrafSync
9880
9881
9882/***/ }),
9883
9884/***/ "./node_modules/fs-extra/lib/util/buffer.js":
9885/*!**************************************************!*\
9886 !*** ./node_modules/fs-extra/lib/util/buffer.js ***!
9887 \**************************************************/
9888/*! no static exports found */
9889/***/ (function(module, exports, __webpack_require__) {
9890
9891"use strict";
9892
9893/* eslint-disable node/no-deprecated-api */
9894module.exports = function (size) {
9895 if (typeof Buffer.allocUnsafe === 'function') {
9896 try {
9897 return Buffer.allocUnsafe(size)
9898 } catch (e) {
9899 return new Buffer(size)
9900 }
9901 }
9902 return new Buffer(size)
9903}
9904
9905
9906/***/ }),
9907
9908/***/ "./node_modules/fs-extra/lib/util/utimes.js":
9909/*!**************************************************!*\
9910 !*** ./node_modules/fs-extra/lib/util/utimes.js ***!
9911 \**************************************************/
9912/*! no static exports found */
9913/***/ (function(module, exports, __webpack_require__) {
9914
9915"use strict";
9916
9917
9918const fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
9919const os = __webpack_require__(/*! os */ "os")
9920const path = __webpack_require__(/*! path */ "path")
9921
9922// HFS, ext{2,3}, FAT do not, Node.js v0.10 does not
9923function hasMillisResSync () {
9924 let tmpfile = path.join('millis-test-sync' + Date.now().toString() + Math.random().toString().slice(2))
9925 tmpfile = path.join(os.tmpdir(), tmpfile)
9926
9927 // 550 millis past UNIX epoch
9928 const d = new Date(1435410243862)
9929 fs.writeFileSync(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141')
9930 const fd = fs.openSync(tmpfile, 'r+')
9931 fs.futimesSync(fd, d, d)
9932 fs.closeSync(fd)
9933 return fs.statSync(tmpfile).mtime > 1435410243000
9934}
9935
9936function hasMillisRes (callback) {
9937 let tmpfile = path.join('millis-test' + Date.now().toString() + Math.random().toString().slice(2))
9938 tmpfile = path.join(os.tmpdir(), tmpfile)
9939
9940 // 550 millis past UNIX epoch
9941 const d = new Date(1435410243862)
9942 fs.writeFile(tmpfile, 'https://github.com/jprichardson/node-fs-extra/pull/141', err => {
9943 if (err) return callback(err)
9944 fs.open(tmpfile, 'r+', (err, fd) => {
9945 if (err) return callback(err)
9946 fs.futimes(fd, d, d, err => {
9947 if (err) return callback(err)
9948 fs.close(fd, err => {
9949 if (err) return callback(err)
9950 fs.stat(tmpfile, (err, stats) => {
9951 if (err) return callback(err)
9952 callback(null, stats.mtime > 1435410243000)
9953 })
9954 })
9955 })
9956 })
9957 })
9958}
9959
9960function timeRemoveMillis (timestamp) {
9961 if (typeof timestamp === 'number') {
9962 return Math.floor(timestamp / 1000) * 1000
9963 } else if (timestamp instanceof Date) {
9964 return new Date(Math.floor(timestamp.getTime() / 1000) * 1000)
9965 } else {
9966 throw new Error('fs-extra: timeRemoveMillis() unknown parameter type')
9967 }
9968}
9969
9970function utimesMillis (path, atime, mtime, callback) {
9971 // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback)
9972 fs.open(path, 'r+', (err, fd) => {
9973 if (err) return callback(err)
9974 fs.futimes(fd, atime, mtime, futimesErr => {
9975 fs.close(fd, closeErr => {
9976 if (callback) callback(futimesErr || closeErr)
9977 })
9978 })
9979 })
9980}
9981
9982function utimesMillisSync (path, atime, mtime) {
9983 const fd = fs.openSync(path, 'r+')
9984 fs.futimesSync(fd, atime, mtime)
9985 return fs.closeSync(fd)
9986}
9987
9988module.exports = {
9989 hasMillisRes,
9990 hasMillisResSync,
9991 timeRemoveMillis,
9992 utimesMillis,
9993 utimesMillisSync
9994}
9995
9996
9997/***/ }),
9998
9999/***/ "./node_modules/fs.realpath/index.js":
10000/*!*******************************************!*\
10001 !*** ./node_modules/fs.realpath/index.js ***!
10002 \*******************************************/
10003/*! no static exports found */
10004/***/ (function(module, exports, __webpack_require__) {
10005
10006module.exports = realpath
10007realpath.realpath = realpath
10008realpath.sync = realpathSync
10009realpath.realpathSync = realpathSync
10010realpath.monkeypatch = monkeypatch
10011realpath.unmonkeypatch = unmonkeypatch
10012
10013var fs = __webpack_require__(/*! fs */ "fs")
10014var origRealpath = fs.realpath
10015var origRealpathSync = fs.realpathSync
10016
10017var version = process.version
10018var ok = /^v[0-5]\./.test(version)
10019var old = __webpack_require__(/*! ./old.js */ "./node_modules/fs.realpath/old.js")
10020
10021function newError (er) {
10022 return er && er.syscall === 'realpath' && (
10023 er.code === 'ELOOP' ||
10024 er.code === 'ENOMEM' ||
10025 er.code === 'ENAMETOOLONG'
10026 )
10027}
10028
10029function realpath (p, cache, cb) {
10030 if (ok) {
10031 return origRealpath(p, cache, cb)
10032 }
10033
10034 if (typeof cache === 'function') {
10035 cb = cache
10036 cache = null
10037 }
10038 origRealpath(p, cache, function (er, result) {
10039 if (newError(er)) {
10040 old.realpath(p, cache, cb)
10041 } else {
10042 cb(er, result)
10043 }
10044 })
10045}
10046
10047function realpathSync (p, cache) {
10048 if (ok) {
10049 return origRealpathSync(p, cache)
10050 }
10051
10052 try {
10053 return origRealpathSync(p, cache)
10054 } catch (er) {
10055 if (newError(er)) {
10056 return old.realpathSync(p, cache)
10057 } else {
10058 throw er
10059 }
10060 }
10061}
10062
10063function monkeypatch () {
10064 fs.realpath = realpath
10065 fs.realpathSync = realpathSync
10066}
10067
10068function unmonkeypatch () {
10069 fs.realpath = origRealpath
10070 fs.realpathSync = origRealpathSync
10071}
10072
10073
10074/***/ }),
10075
10076/***/ "./node_modules/fs.realpath/old.js":
10077/*!*****************************************!*\
10078 !*** ./node_modules/fs.realpath/old.js ***!
10079 \*****************************************/
10080/*! no static exports found */
10081/***/ (function(module, exports, __webpack_require__) {
10082
10083// Copyright Joyent, Inc. and other Node contributors.
10084//
10085// Permission is hereby granted, free of charge, to any person obtaining a
10086// copy of this software and associated documentation files (the
10087// "Software"), to deal in the Software without restriction, including
10088// without limitation the rights to use, copy, modify, merge, publish,
10089// distribute, sublicense, and/or sell copies of the Software, and to permit
10090// persons to whom the Software is furnished to do so, subject to the
10091// following conditions:
10092//
10093// The above copyright notice and this permission notice shall be included
10094// in all copies or substantial portions of the Software.
10095//
10096// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10097// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10098// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10099// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10100// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10101// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10102// USE OR OTHER DEALINGS IN THE SOFTWARE.
10103
10104var pathModule = __webpack_require__(/*! path */ "path");
10105var isWindows = process.platform === 'win32';
10106var fs = __webpack_require__(/*! fs */ "fs");
10107
10108// JavaScript implementation of realpath, ported from node pre-v6
10109
10110var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);
10111
10112function rethrow() {
10113 // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and
10114 // is fairly slow to generate.
10115 var callback;
10116 if (DEBUG) {
10117 var backtrace = new Error;
10118 callback = debugCallback;
10119 } else
10120 callback = missingCallback;
10121
10122 return callback;
10123
10124 function debugCallback(err) {
10125 if (err) {
10126 backtrace.message = err.message;
10127 err = backtrace;
10128 missingCallback(err);
10129 }
10130 }
10131
10132 function missingCallback(err) {
10133 if (err) {
10134 if (process.throwDeprecation)
10135 throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs
10136 else if (!process.noDeprecation) {
10137 var msg = 'fs: missing callback ' + (err.stack || err.message);
10138 if (process.traceDeprecation)
10139 console.trace(msg);
10140 else
10141 console.error(msg);
10142 }
10143 }
10144 }
10145}
10146
10147function maybeCallback(cb) {
10148 return typeof cb === 'function' ? cb : rethrow();
10149}
10150
10151var normalize = pathModule.normalize;
10152
10153// Regexp that finds the next partion of a (partial) path
10154// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']
10155if (isWindows) {
10156 var nextPartRe = /(.*?)(?:[\/\\]+|$)/g;
10157} else {
10158 var nextPartRe = /(.*?)(?:[\/]+|$)/g;
10159}
10160
10161// Regex to find the device root, including trailing slash. E.g. 'c:\\'.
10162if (isWindows) {
10163 var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;
10164} else {
10165 var splitRootRe = /^[\/]*/;
10166}
10167
10168exports.realpathSync = function realpathSync(p, cache) {
10169 // make p is absolute
10170 p = pathModule.resolve(p);
10171
10172 if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
10173 return cache[p];
10174 }
10175
10176 var original = p,
10177 seenLinks = {},
10178 knownHard = {};
10179
10180 // current character position in p
10181 var pos;
10182 // the partial path so far, including a trailing slash if any
10183 var current;
10184 // the partial path without a trailing slash (except when pointing at a root)
10185 var base;
10186 // the partial path scanned in the previous round, with slash
10187 var previous;
10188
10189 start();
10190
10191 function start() {
10192 // Skip over roots
10193 var m = splitRootRe.exec(p);
10194 pos = m[0].length;
10195 current = m[0];
10196 base = m[0];
10197 previous = '';
10198
10199 // On windows, check that the root exists. On unix there is no need.
10200 if (isWindows && !knownHard[base]) {
10201 fs.lstatSync(base);
10202 knownHard[base] = true;
10203 }
10204 }
10205
10206 // walk down the path, swapping out linked pathparts for their real
10207 // values
10208 // NB: p.length changes.
10209 while (pos < p.length) {
10210 // find the next part
10211 nextPartRe.lastIndex = pos;
10212 var result = nextPartRe.exec(p);
10213 previous = current;
10214 current += result[0];
10215 base = previous + result[1];
10216 pos = nextPartRe.lastIndex;
10217
10218 // continue if not a symlink
10219 if (knownHard[base] || (cache && cache[base] === base)) {
10220 continue;
10221 }
10222
10223 var resolvedLink;
10224 if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
10225 // some known symbolic link. no need to stat again.
10226 resolvedLink = cache[base];
10227 } else {
10228 var stat = fs.lstatSync(base);
10229 if (!stat.isSymbolicLink()) {
10230 knownHard[base] = true;
10231 if (cache) cache[base] = base;
10232 continue;
10233 }
10234
10235 // read the link if it wasn't read before
10236 // dev/ino always return 0 on windows, so skip the check.
10237 var linkTarget = null;
10238 if (!isWindows) {
10239 var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
10240 if (seenLinks.hasOwnProperty(id)) {
10241 linkTarget = seenLinks[id];
10242 }
10243 }
10244 if (linkTarget === null) {
10245 fs.statSync(base);
10246 linkTarget = fs.readlinkSync(base);
10247 }
10248 resolvedLink = pathModule.resolve(previous, linkTarget);
10249 // track this, if given a cache.
10250 if (cache) cache[base] = resolvedLink;
10251 if (!isWindows) seenLinks[id] = linkTarget;
10252 }
10253
10254 // resolve the link, then start over
10255 p = pathModule.resolve(resolvedLink, p.slice(pos));
10256 start();
10257 }
10258
10259 if (cache) cache[original] = p;
10260
10261 return p;
10262};
10263
10264
10265exports.realpath = function realpath(p, cache, cb) {
10266 if (typeof cb !== 'function') {
10267 cb = maybeCallback(cache);
10268 cache = null;
10269 }
10270
10271 // make p is absolute
10272 p = pathModule.resolve(p);
10273
10274 if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
10275 return process.nextTick(cb.bind(null, null, cache[p]));
10276 }
10277
10278 var original = p,
10279 seenLinks = {},
10280 knownHard = {};
10281
10282 // current character position in p
10283 var pos;
10284 // the partial path so far, including a trailing slash if any
10285 var current;
10286 // the partial path without a trailing slash (except when pointing at a root)
10287 var base;
10288 // the partial path scanned in the previous round, with slash
10289 var previous;
10290
10291 start();
10292
10293 function start() {
10294 // Skip over roots
10295 var m = splitRootRe.exec(p);
10296 pos = m[0].length;
10297 current = m[0];
10298 base = m[0];
10299 previous = '';
10300
10301 // On windows, check that the root exists. On unix there is no need.
10302 if (isWindows && !knownHard[base]) {
10303 fs.lstat(base, function(err) {
10304 if (err) return cb(err);
10305 knownHard[base] = true;
10306 LOOP();
10307 });
10308 } else {
10309 process.nextTick(LOOP);
10310 }
10311 }
10312
10313 // walk down the path, swapping out linked pathparts for their real
10314 // values
10315 function LOOP() {
10316 // stop if scanned past end of path
10317 if (pos >= p.length) {
10318 if (cache) cache[original] = p;
10319 return cb(null, p);
10320 }
10321
10322 // find the next part
10323 nextPartRe.lastIndex = pos;
10324 var result = nextPartRe.exec(p);
10325 previous = current;
10326 current += result[0];
10327 base = previous + result[1];
10328 pos = nextPartRe.lastIndex;
10329
10330 // continue if not a symlink
10331 if (knownHard[base] || (cache && cache[base] === base)) {
10332 return process.nextTick(LOOP);
10333 }
10334
10335 if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
10336 // known symbolic link. no need to stat again.
10337 return gotResolvedLink(cache[base]);
10338 }
10339
10340 return fs.lstat(base, gotStat);
10341 }
10342
10343 function gotStat(err, stat) {
10344 if (err) return cb(err);
10345
10346 // if not a symlink, skip to the next path part
10347 if (!stat.isSymbolicLink()) {
10348 knownHard[base] = true;
10349 if (cache) cache[base] = base;
10350 return process.nextTick(LOOP);
10351 }
10352
10353 // stat & read the link if not read before
10354 // call gotTarget as soon as the link target is known
10355 // dev/ino always return 0 on windows, so skip the check.
10356 if (!isWindows) {
10357 var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
10358 if (seenLinks.hasOwnProperty(id)) {
10359 return gotTarget(null, seenLinks[id], base);
10360 }
10361 }
10362 fs.stat(base, function(err) {
10363 if (err) return cb(err);
10364
10365 fs.readlink(base, function(err, target) {
10366 if (!isWindows) seenLinks[id] = target;
10367 gotTarget(err, target);
10368 });
10369 });
10370 }
10371
10372 function gotTarget(err, target, base) {
10373 if (err) return cb(err);
10374
10375 var resolvedLink = pathModule.resolve(previous, target);
10376 if (cache) cache[base] = resolvedLink;
10377 gotResolvedLink(resolvedLink);
10378 }
10379
10380 function gotResolvedLink(resolvedLink) {
10381 // resolve the link, then start over
10382 p = pathModule.resolve(resolvedLink, p.slice(pos));
10383 start();
10384 }
10385};
10386
10387
10388/***/ }),
10389
10390/***/ "./node_modules/glob/common.js":
10391/*!*************************************!*\
10392 !*** ./node_modules/glob/common.js ***!
10393 \*************************************/
10394/*! no static exports found */
10395/***/ (function(module, exports, __webpack_require__) {
10396
10397exports.alphasort = alphasort
10398exports.alphasorti = alphasorti
10399exports.setopts = setopts
10400exports.ownProp = ownProp
10401exports.makeAbs = makeAbs
10402exports.finish = finish
10403exports.mark = mark
10404exports.isIgnored = isIgnored
10405exports.childrenIgnored = childrenIgnored
10406
10407function ownProp (obj, field) {
10408 return Object.prototype.hasOwnProperty.call(obj, field)
10409}
10410
10411var path = __webpack_require__(/*! path */ "path")
10412var minimatch = __webpack_require__(/*! minimatch */ "./node_modules/minimatch/minimatch.js")
10413var isAbsolute = __webpack_require__(/*! path-is-absolute */ "./node_modules/path-is-absolute/index.js")
10414var Minimatch = minimatch.Minimatch
10415
10416function alphasorti (a, b) {
10417 return a.toLowerCase().localeCompare(b.toLowerCase())
10418}
10419
10420function alphasort (a, b) {
10421 return a.localeCompare(b)
10422}
10423
10424function setupIgnores (self, options) {
10425 self.ignore = options.ignore || []
10426
10427 if (!Array.isArray(self.ignore))
10428 self.ignore = [self.ignore]
10429
10430 if (self.ignore.length) {
10431 self.ignore = self.ignore.map(ignoreMap)
10432 }
10433}
10434
10435// ignore patterns are always in dot:true mode.
10436function ignoreMap (pattern) {
10437 var gmatcher = null
10438 if (pattern.slice(-3) === '/**') {
10439 var gpattern = pattern.replace(/(\/\*\*)+$/, '')
10440 gmatcher = new Minimatch(gpattern, { dot: true })
10441 }
10442
10443 return {
10444 matcher: new Minimatch(pattern, { dot: true }),
10445 gmatcher: gmatcher
10446 }
10447}
10448
10449function setopts (self, pattern, options) {
10450 if (!options)
10451 options = {}
10452
10453 // base-matching: just use globstar for that.
10454 if (options.matchBase && -1 === pattern.indexOf("/")) {
10455 if (options.noglobstar) {
10456 throw new Error("base matching requires globstar")
10457 }
10458 pattern = "**/" + pattern
10459 }
10460
10461 self.silent = !!options.silent
10462 self.pattern = pattern
10463 self.strict = options.strict !== false
10464 self.realpath = !!options.realpath
10465 self.realpathCache = options.realpathCache || Object.create(null)
10466 self.follow = !!options.follow
10467 self.dot = !!options.dot
10468 self.mark = !!options.mark
10469 self.nodir = !!options.nodir
10470 if (self.nodir)
10471 self.mark = true
10472 self.sync = !!options.sync
10473 self.nounique = !!options.nounique
10474 self.nonull = !!options.nonull
10475 self.nosort = !!options.nosort
10476 self.nocase = !!options.nocase
10477 self.stat = !!options.stat
10478 self.noprocess = !!options.noprocess
10479 self.absolute = !!options.absolute
10480
10481 self.maxLength = options.maxLength || Infinity
10482 self.cache = options.cache || Object.create(null)
10483 self.statCache = options.statCache || Object.create(null)
10484 self.symlinks = options.symlinks || Object.create(null)
10485
10486 setupIgnores(self, options)
10487
10488 self.changedCwd = false
10489 var cwd = process.cwd()
10490 if (!ownProp(options, "cwd"))
10491 self.cwd = cwd
10492 else {
10493 self.cwd = path.resolve(options.cwd)
10494 self.changedCwd = self.cwd !== cwd
10495 }
10496
10497 self.root = options.root || path.resolve(self.cwd, "/")
10498 self.root = path.resolve(self.root)
10499 if (process.platform === "win32")
10500 self.root = self.root.replace(/\\/g, "/")
10501
10502 // TODO: is an absolute `cwd` supposed to be resolved against `root`?
10503 // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')
10504 self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)
10505 if (process.platform === "win32")
10506 self.cwdAbs = self.cwdAbs.replace(/\\/g, "/")
10507 self.nomount = !!options.nomount
10508
10509 // disable comments and negation in Minimatch.
10510 // Note that they are not supported in Glob itself anyway.
10511 options.nonegate = true
10512 options.nocomment = true
10513
10514 self.minimatch = new Minimatch(pattern, options)
10515 self.options = self.minimatch.options
10516}
10517
10518function finish (self) {
10519 var nou = self.nounique
10520 var all = nou ? [] : Object.create(null)
10521
10522 for (var i = 0, l = self.matches.length; i < l; i ++) {
10523 var matches = self.matches[i]
10524 if (!matches || Object.keys(matches).length === 0) {
10525 if (self.nonull) {
10526 // do like the shell, and spit out the literal glob
10527 var literal = self.minimatch.globSet[i]
10528 if (nou)
10529 all.push(literal)
10530 else
10531 all[literal] = true
10532 }
10533 } else {
10534 // had matches
10535 var m = Object.keys(matches)
10536 if (nou)
10537 all.push.apply(all, m)
10538 else
10539 m.forEach(function (m) {
10540 all[m] = true
10541 })
10542 }
10543 }
10544
10545 if (!nou)
10546 all = Object.keys(all)
10547
10548 if (!self.nosort)
10549 all = all.sort(self.nocase ? alphasorti : alphasort)
10550
10551 // at *some* point we statted all of these
10552 if (self.mark) {
10553 for (var i = 0; i < all.length; i++) {
10554 all[i] = self._mark(all[i])
10555 }
10556 if (self.nodir) {
10557 all = all.filter(function (e) {
10558 var notDir = !(/\/$/.test(e))
10559 var c = self.cache[e] || self.cache[makeAbs(self, e)]
10560 if (notDir && c)
10561 notDir = c !== 'DIR' && !Array.isArray(c)
10562 return notDir
10563 })
10564 }
10565 }
10566
10567 if (self.ignore.length)
10568 all = all.filter(function(m) {
10569 return !isIgnored(self, m)
10570 })
10571
10572 self.found = all
10573}
10574
10575function mark (self, p) {
10576 var abs = makeAbs(self, p)
10577 var c = self.cache[abs]
10578 var m = p
10579 if (c) {
10580 var isDir = c === 'DIR' || Array.isArray(c)
10581 var slash = p.slice(-1) === '/'
10582
10583 if (isDir && !slash)
10584 m += '/'
10585 else if (!isDir && slash)
10586 m = m.slice(0, -1)
10587
10588 if (m !== p) {
10589 var mabs = makeAbs(self, m)
10590 self.statCache[mabs] = self.statCache[abs]
10591 self.cache[mabs] = self.cache[abs]
10592 }
10593 }
10594
10595 return m
10596}
10597
10598// lotta situps...
10599function makeAbs (self, f) {
10600 var abs = f
10601 if (f.charAt(0) === '/') {
10602 abs = path.join(self.root, f)
10603 } else if (isAbsolute(f) || f === '') {
10604 abs = f
10605 } else if (self.changedCwd) {
10606 abs = path.resolve(self.cwd, f)
10607 } else {
10608 abs = path.resolve(f)
10609 }
10610
10611 if (process.platform === 'win32')
10612 abs = abs.replace(/\\/g, '/')
10613
10614 return abs
10615}
10616
10617
10618// Return true, if pattern ends with globstar '**', for the accompanying parent directory.
10619// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents
10620function isIgnored (self, path) {
10621 if (!self.ignore.length)
10622 return false
10623
10624 return self.ignore.some(function(item) {
10625 return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))
10626 })
10627}
10628
10629function childrenIgnored (self, path) {
10630 if (!self.ignore.length)
10631 return false
10632
10633 return self.ignore.some(function(item) {
10634 return !!(item.gmatcher && item.gmatcher.match(path))
10635 })
10636}
10637
10638
10639/***/ }),
10640
10641/***/ "./node_modules/glob/glob.js":
10642/*!***********************************!*\
10643 !*** ./node_modules/glob/glob.js ***!
10644 \***********************************/
10645/*! no static exports found */
10646/***/ (function(module, exports, __webpack_require__) {
10647
10648// Approach:
10649//
10650// 1. Get the minimatch set
10651// 2. For each pattern in the set, PROCESS(pattern, false)
10652// 3. Store matches per-set, then uniq them
10653//
10654// PROCESS(pattern, inGlobStar)
10655// Get the first [n] items from pattern that are all strings
10656// Join these together. This is PREFIX.
10657// If there is no more remaining, then stat(PREFIX) and
10658// add to matches if it succeeds. END.
10659//
10660// If inGlobStar and PREFIX is symlink and points to dir
10661// set ENTRIES = []
10662// else readdir(PREFIX) as ENTRIES
10663// If fail, END
10664//
10665// with ENTRIES
10666// If pattern[n] is GLOBSTAR
10667// // handle the case where the globstar match is empty
10668// // by pruning it out, and testing the resulting pattern
10669// PROCESS(pattern[0..n] + pattern[n+1 .. $], false)
10670// // handle other cases.
10671// for ENTRY in ENTRIES (not dotfiles)
10672// // attach globstar + tail onto the entry
10673// // Mark that this entry is a globstar match
10674// PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)
10675//
10676// else // not globstar
10677// for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)
10678// Test ENTRY against pattern[n]
10679// If fails, continue
10680// If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])
10681//
10682// Caveat:
10683// Cache all stats and readdirs results to minimize syscall. Since all
10684// we ever care about is existence and directory-ness, we can just keep
10685// `true` for files, and [children,...] for directories, or `false` for
10686// things that don't exist.
10687
10688module.exports = glob
10689
10690var fs = __webpack_require__(/*! fs */ "fs")
10691var rp = __webpack_require__(/*! fs.realpath */ "./node_modules/fs.realpath/index.js")
10692var minimatch = __webpack_require__(/*! minimatch */ "./node_modules/minimatch/minimatch.js")
10693var Minimatch = minimatch.Minimatch
10694var inherits = __webpack_require__(/*! inherits */ "./node_modules/inherits/inherits.js")
10695var EE = __webpack_require__(/*! events */ "events").EventEmitter
10696var path = __webpack_require__(/*! path */ "path")
10697var assert = __webpack_require__(/*! assert */ "assert")
10698var isAbsolute = __webpack_require__(/*! path-is-absolute */ "./node_modules/path-is-absolute/index.js")
10699var globSync = __webpack_require__(/*! ./sync.js */ "./node_modules/glob/sync.js")
10700var common = __webpack_require__(/*! ./common.js */ "./node_modules/glob/common.js")
10701var alphasort = common.alphasort
10702var alphasorti = common.alphasorti
10703var setopts = common.setopts
10704var ownProp = common.ownProp
10705var inflight = __webpack_require__(/*! inflight */ "./node_modules/inflight/inflight.js")
10706var util = __webpack_require__(/*! util */ "util")
10707var childrenIgnored = common.childrenIgnored
10708var isIgnored = common.isIgnored
10709
10710var once = __webpack_require__(/*! once */ "./node_modules/once/once.js")
10711
10712function glob (pattern, options, cb) {
10713 if (typeof options === 'function') cb = options, options = {}
10714 if (!options) options = {}
10715
10716 if (options.sync) {
10717 if (cb)
10718 throw new TypeError('callback provided to sync glob')
10719 return globSync(pattern, options)
10720 }
10721
10722 return new Glob(pattern, options, cb)
10723}
10724
10725glob.sync = globSync
10726var GlobSync = glob.GlobSync = globSync.GlobSync
10727
10728// old api surface
10729glob.glob = glob
10730
10731function extend (origin, add) {
10732 if (add === null || typeof add !== 'object') {
10733 return origin
10734 }
10735
10736 var keys = Object.keys(add)
10737 var i = keys.length
10738 while (i--) {
10739 origin[keys[i]] = add[keys[i]]
10740 }
10741 return origin
10742}
10743
10744glob.hasMagic = function (pattern, options_) {
10745 var options = extend({}, options_)
10746 options.noprocess = true
10747
10748 var g = new Glob(pattern, options)
10749 var set = g.minimatch.set
10750
10751 if (!pattern)
10752 return false
10753
10754 if (set.length > 1)
10755 return true
10756
10757 for (var j = 0; j < set[0].length; j++) {
10758 if (typeof set[0][j] !== 'string')
10759 return true
10760 }
10761
10762 return false
10763}
10764
10765glob.Glob = Glob
10766inherits(Glob, EE)
10767function Glob (pattern, options, cb) {
10768 if (typeof options === 'function') {
10769 cb = options
10770 options = null
10771 }
10772
10773 if (options && options.sync) {
10774 if (cb)
10775 throw new TypeError('callback provided to sync glob')
10776 return new GlobSync(pattern, options)
10777 }
10778
10779 if (!(this instanceof Glob))
10780 return new Glob(pattern, options, cb)
10781
10782 setopts(this, pattern, options)
10783 this._didRealPath = false
10784
10785 // process each pattern in the minimatch set
10786 var n = this.minimatch.set.length
10787
10788 // The matches are stored as {<filename>: true,...} so that
10789 // duplicates are automagically pruned.
10790 // Later, we do an Object.keys() on these.
10791 // Keep them as a list so we can fill in when nonull is set.
10792 this.matches = new Array(n)
10793
10794 if (typeof cb === 'function') {
10795 cb = once(cb)
10796 this.on('error', cb)
10797 this.on('end', function (matches) {
10798 cb(null, matches)
10799 })
10800 }
10801
10802 var self = this
10803 this._processing = 0
10804
10805 this._emitQueue = []
10806 this._processQueue = []
10807 this.paused = false
10808
10809 if (this.noprocess)
10810 return this
10811
10812 if (n === 0)
10813 return done()
10814
10815 var sync = true
10816 for (var i = 0; i < n; i ++) {
10817 this._process(this.minimatch.set[i], i, false, done)
10818 }
10819 sync = false
10820
10821 function done () {
10822 --self._processing
10823 if (self._processing <= 0) {
10824 if (sync) {
10825 process.nextTick(function () {
10826 self._finish()
10827 })
10828 } else {
10829 self._finish()
10830 }
10831 }
10832 }
10833}
10834
10835Glob.prototype._finish = function () {
10836 assert(this instanceof Glob)
10837 if (this.aborted)
10838 return
10839
10840 if (this.realpath && !this._didRealpath)
10841 return this._realpath()
10842
10843 common.finish(this)
10844 this.emit('end', this.found)
10845}
10846
10847Glob.prototype._realpath = function () {
10848 if (this._didRealpath)
10849 return
10850
10851 this._didRealpath = true
10852
10853 var n = this.matches.length
10854 if (n === 0)
10855 return this._finish()
10856
10857 var self = this
10858 for (var i = 0; i < this.matches.length; i++)
10859 this._realpathSet(i, next)
10860
10861 function next () {
10862 if (--n === 0)
10863 self._finish()
10864 }
10865}
10866
10867Glob.prototype._realpathSet = function (index, cb) {
10868 var matchset = this.matches[index]
10869 if (!matchset)
10870 return cb()
10871
10872 var found = Object.keys(matchset)
10873 var self = this
10874 var n = found.length
10875
10876 if (n === 0)
10877 return cb()
10878
10879 var set = this.matches[index] = Object.create(null)
10880 found.forEach(function (p, i) {
10881 // If there's a problem with the stat, then it means that
10882 // one or more of the links in the realpath couldn't be
10883 // resolved. just return the abs value in that case.
10884 p = self._makeAbs(p)
10885 rp.realpath(p, self.realpathCache, function (er, real) {
10886 if (!er)
10887 set[real] = true
10888 else if (er.syscall === 'stat')
10889 set[p] = true
10890 else
10891 self.emit('error', er) // srsly wtf right here
10892
10893 if (--n === 0) {
10894 self.matches[index] = set
10895 cb()
10896 }
10897 })
10898 })
10899}
10900
10901Glob.prototype._mark = function (p) {
10902 return common.mark(this, p)
10903}
10904
10905Glob.prototype._makeAbs = function (f) {
10906 return common.makeAbs(this, f)
10907}
10908
10909Glob.prototype.abort = function () {
10910 this.aborted = true
10911 this.emit('abort')
10912}
10913
10914Glob.prototype.pause = function () {
10915 if (!this.paused) {
10916 this.paused = true
10917 this.emit('pause')
10918 }
10919}
10920
10921Glob.prototype.resume = function () {
10922 if (this.paused) {
10923 this.emit('resume')
10924 this.paused = false
10925 if (this._emitQueue.length) {
10926 var eq = this._emitQueue.slice(0)
10927 this._emitQueue.length = 0
10928 for (var i = 0; i < eq.length; i ++) {
10929 var e = eq[i]
10930 this._emitMatch(e[0], e[1])
10931 }
10932 }
10933 if (this._processQueue.length) {
10934 var pq = this._processQueue.slice(0)
10935 this._processQueue.length = 0
10936 for (var i = 0; i < pq.length; i ++) {
10937 var p = pq[i]
10938 this._processing--
10939 this._process(p[0], p[1], p[2], p[3])
10940 }
10941 }
10942 }
10943}
10944
10945Glob.prototype._process = function (pattern, index, inGlobStar, cb) {
10946 assert(this instanceof Glob)
10947 assert(typeof cb === 'function')
10948
10949 if (this.aborted)
10950 return
10951
10952 this._processing++
10953 if (this.paused) {
10954 this._processQueue.push([pattern, index, inGlobStar, cb])
10955 return
10956 }
10957
10958 //console.error('PROCESS %d', this._processing, pattern)
10959
10960 // Get the first [n] parts of pattern that are all strings.
10961 var n = 0
10962 while (typeof pattern[n] === 'string') {
10963 n ++
10964 }
10965 // now n is the index of the first one that is *not* a string.
10966
10967 // see if there's anything else
10968 var prefix
10969 switch (n) {
10970 // if not, then this is rather simple
10971 case pattern.length:
10972 this._processSimple(pattern.join('/'), index, cb)
10973 return
10974
10975 case 0:
10976 // pattern *starts* with some non-trivial item.
10977 // going to readdir(cwd), but not include the prefix in matches.
10978 prefix = null
10979 break
10980
10981 default:
10982 // pattern has some string bits in the front.
10983 // whatever it starts with, whether that's 'absolute' like /foo/bar,
10984 // or 'relative' like '../baz'
10985 prefix = pattern.slice(0, n).join('/')
10986 break
10987 }
10988
10989 var remain = pattern.slice(n)
10990
10991 // get the list of entries.
10992 var read
10993 if (prefix === null)
10994 read = '.'
10995 else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
10996 if (!prefix || !isAbsolute(prefix))
10997 prefix = '/' + prefix
10998 read = prefix
10999 } else
11000 read = prefix
11001
11002 var abs = this._makeAbs(read)
11003
11004 //if ignored, skip _processing
11005 if (childrenIgnored(this, read))
11006 return cb()
11007
11008 var isGlobStar = remain[0] === minimatch.GLOBSTAR
11009 if (isGlobStar)
11010 this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)
11011 else
11012 this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)
11013}
11014
11015Glob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {
11016 var self = this
11017 this._readdir(abs, inGlobStar, function (er, entries) {
11018 return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
11019 })
11020}
11021
11022Glob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
11023
11024 // if the abs isn't a dir, then nothing can match!
11025 if (!entries)
11026 return cb()
11027
11028 // It will only match dot entries if it starts with a dot, or if
11029 // dot is set. Stuff like @(.foo|.bar) isn't allowed.
11030 var pn = remain[0]
11031 var negate = !!this.minimatch.negate
11032 var rawGlob = pn._glob
11033 var dotOk = this.dot || rawGlob.charAt(0) === '.'
11034
11035 var matchedEntries = []
11036 for (var i = 0; i < entries.length; i++) {
11037 var e = entries[i]
11038 if (e.charAt(0) !== '.' || dotOk) {
11039 var m
11040 if (negate && !prefix) {
11041 m = !e.match(pn)
11042 } else {
11043 m = e.match(pn)
11044 }
11045 if (m)
11046 matchedEntries.push(e)
11047 }
11048 }
11049
11050 //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)
11051
11052 var len = matchedEntries.length
11053 // If there are no matched entries, then nothing matches.
11054 if (len === 0)
11055 return cb()
11056
11057 // if this is the last remaining pattern bit, then no need for
11058 // an additional stat *unless* the user has specified mark or
11059 // stat explicitly. We know they exist, since readdir returned
11060 // them.
11061
11062 if (remain.length === 1 && !this.mark && !this.stat) {
11063 if (!this.matches[index])
11064 this.matches[index] = Object.create(null)
11065
11066 for (var i = 0; i < len; i ++) {
11067 var e = matchedEntries[i]
11068 if (prefix) {
11069 if (prefix !== '/')
11070 e = prefix + '/' + e
11071 else
11072 e = prefix + e
11073 }
11074
11075 if (e.charAt(0) === '/' && !this.nomount) {
11076 e = path.join(this.root, e)
11077 }
11078 this._emitMatch(index, e)
11079 }
11080 // This was the last one, and no stats were needed
11081 return cb()
11082 }
11083
11084 // now test all matched entries as stand-ins for that part
11085 // of the pattern.
11086 remain.shift()
11087 for (var i = 0; i < len; i ++) {
11088 var e = matchedEntries[i]
11089 var newPattern
11090 if (prefix) {
11091 if (prefix !== '/')
11092 e = prefix + '/' + e
11093 else
11094 e = prefix + e
11095 }
11096 this._process([e].concat(remain), index, inGlobStar, cb)
11097 }
11098 cb()
11099}
11100
11101Glob.prototype._emitMatch = function (index, e) {
11102 if (this.aborted)
11103 return
11104
11105 if (isIgnored(this, e))
11106 return
11107
11108 if (this.paused) {
11109 this._emitQueue.push([index, e])
11110 return
11111 }
11112
11113 var abs = isAbsolute(e) ? e : this._makeAbs(e)
11114
11115 if (this.mark)
11116 e = this._mark(e)
11117
11118 if (this.absolute)
11119 e = abs
11120
11121 if (this.matches[index][e])
11122 return
11123
11124 if (this.nodir) {
11125 var c = this.cache[abs]
11126 if (c === 'DIR' || Array.isArray(c))
11127 return
11128 }
11129
11130 this.matches[index][e] = true
11131
11132 var st = this.statCache[abs]
11133 if (st)
11134 this.emit('stat', e, st)
11135
11136 this.emit('match', e)
11137}
11138
11139Glob.prototype._readdirInGlobStar = function (abs, cb) {
11140 if (this.aborted)
11141 return
11142
11143 // follow all symlinked directories forever
11144 // just proceed as if this is a non-globstar situation
11145 if (this.follow)
11146 return this._readdir(abs, false, cb)
11147
11148 var lstatkey = 'lstat\0' + abs
11149 var self = this
11150 var lstatcb = inflight(lstatkey, lstatcb_)
11151
11152 if (lstatcb)
11153 fs.lstat(abs, lstatcb)
11154
11155 function lstatcb_ (er, lstat) {
11156 if (er && er.code === 'ENOENT')
11157 return cb()
11158
11159 var isSym = lstat && lstat.isSymbolicLink()
11160 self.symlinks[abs] = isSym
11161
11162 // If it's not a symlink or a dir, then it's definitely a regular file.
11163 // don't bother doing a readdir in that case.
11164 if (!isSym && lstat && !lstat.isDirectory()) {
11165 self.cache[abs] = 'FILE'
11166 cb()
11167 } else
11168 self._readdir(abs, false, cb)
11169 }
11170}
11171
11172Glob.prototype._readdir = function (abs, inGlobStar, cb) {
11173 if (this.aborted)
11174 return
11175
11176 cb = inflight('readdir\0'+abs+'\0'+inGlobStar, cb)
11177 if (!cb)
11178 return
11179
11180 //console.error('RD %j %j', +inGlobStar, abs)
11181 if (inGlobStar && !ownProp(this.symlinks, abs))
11182 return this._readdirInGlobStar(abs, cb)
11183
11184 if (ownProp(this.cache, abs)) {
11185 var c = this.cache[abs]
11186 if (!c || c === 'FILE')
11187 return cb()
11188
11189 if (Array.isArray(c))
11190 return cb(null, c)
11191 }
11192
11193 var self = this
11194 fs.readdir(abs, readdirCb(this, abs, cb))
11195}
11196
11197function readdirCb (self, abs, cb) {
11198 return function (er, entries) {
11199 if (er)
11200 self._readdirError(abs, er, cb)
11201 else
11202 self._readdirEntries(abs, entries, cb)
11203 }
11204}
11205
11206Glob.prototype._readdirEntries = function (abs, entries, cb) {
11207 if (this.aborted)
11208 return
11209
11210 // if we haven't asked to stat everything, then just
11211 // assume that everything in there exists, so we can avoid
11212 // having to stat it a second time.
11213 if (!this.mark && !this.stat) {
11214 for (var i = 0; i < entries.length; i ++) {
11215 var e = entries[i]
11216 if (abs === '/')
11217 e = abs + e
11218 else
11219 e = abs + '/' + e
11220 this.cache[e] = true
11221 }
11222 }
11223
11224 this.cache[abs] = entries
11225 return cb(null, entries)
11226}
11227
11228Glob.prototype._readdirError = function (f, er, cb) {
11229 if (this.aborted)
11230 return
11231
11232 // handle errors, and cache the information
11233 switch (er.code) {
11234 case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
11235 case 'ENOTDIR': // totally normal. means it *does* exist.
11236 var abs = this._makeAbs(f)
11237 this.cache[abs] = 'FILE'
11238 if (abs === this.cwdAbs) {
11239 var error = new Error(er.code + ' invalid cwd ' + this.cwd)
11240 error.path = this.cwd
11241 error.code = er.code
11242 this.emit('error', error)
11243 this.abort()
11244 }
11245 break
11246
11247 case 'ENOENT': // not terribly unusual
11248 case 'ELOOP':
11249 case 'ENAMETOOLONG':
11250 case 'UNKNOWN':
11251 this.cache[this._makeAbs(f)] = false
11252 break
11253
11254 default: // some unusual error. Treat as failure.
11255 this.cache[this._makeAbs(f)] = false
11256 if (this.strict) {
11257 this.emit('error', er)
11258 // If the error is handled, then we abort
11259 // if not, we threw out of here
11260 this.abort()
11261 }
11262 if (!this.silent)
11263 console.error('glob error', er)
11264 break
11265 }
11266
11267 return cb()
11268}
11269
11270Glob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {
11271 var self = this
11272 this._readdir(abs, inGlobStar, function (er, entries) {
11273 self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)
11274 })
11275}
11276
11277
11278Glob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {
11279 //console.error('pgs2', prefix, remain[0], entries)
11280
11281 // no entries means not a dir, so it can never have matches
11282 // foo.txt/** doesn't match foo.txt
11283 if (!entries)
11284 return cb()
11285
11286 // test without the globstar, and with every child both below
11287 // and replacing the globstar.
11288 var remainWithoutGlobStar = remain.slice(1)
11289 var gspref = prefix ? [ prefix ] : []
11290 var noGlobStar = gspref.concat(remainWithoutGlobStar)
11291
11292 // the noGlobStar pattern exits the inGlobStar state
11293 this._process(noGlobStar, index, false, cb)
11294
11295 var isSym = this.symlinks[abs]
11296 var len = entries.length
11297
11298 // If it's a symlink, and we're in a globstar, then stop
11299 if (isSym && inGlobStar)
11300 return cb()
11301
11302 for (var i = 0; i < len; i++) {
11303 var e = entries[i]
11304 if (e.charAt(0) === '.' && !this.dot)
11305 continue
11306
11307 // these two cases enter the inGlobStar state
11308 var instead = gspref.concat(entries[i], remainWithoutGlobStar)
11309 this._process(instead, index, true, cb)
11310
11311 var below = gspref.concat(entries[i], remain)
11312 this._process(below, index, true, cb)
11313 }
11314
11315 cb()
11316}
11317
11318Glob.prototype._processSimple = function (prefix, index, cb) {
11319 // XXX review this. Shouldn't it be doing the mounting etc
11320 // before doing stat? kinda weird?
11321 var self = this
11322 this._stat(prefix, function (er, exists) {
11323 self._processSimple2(prefix, index, er, exists, cb)
11324 })
11325}
11326Glob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {
11327
11328 //console.error('ps2', prefix, exists)
11329
11330 if (!this.matches[index])
11331 this.matches[index] = Object.create(null)
11332
11333 // If it doesn't exist, then just mark the lack of results
11334 if (!exists)
11335 return cb()
11336
11337 if (prefix && isAbsolute(prefix) && !this.nomount) {
11338 var trail = /[\/\\]$/.test(prefix)
11339 if (prefix.charAt(0) === '/') {
11340 prefix = path.join(this.root, prefix)
11341 } else {
11342 prefix = path.resolve(this.root, prefix)
11343 if (trail)
11344 prefix += '/'
11345 }
11346 }
11347
11348 if (process.platform === 'win32')
11349 prefix = prefix.replace(/\\/g, '/')
11350
11351 // Mark this as a match
11352 this._emitMatch(index, prefix)
11353 cb()
11354}
11355
11356// Returns either 'DIR', 'FILE', or false
11357Glob.prototype._stat = function (f, cb) {
11358 var abs = this._makeAbs(f)
11359 var needDir = f.slice(-1) === '/'
11360
11361 if (f.length > this.maxLength)
11362 return cb()
11363
11364 if (!this.stat && ownProp(this.cache, abs)) {
11365 var c = this.cache[abs]
11366
11367 if (Array.isArray(c))
11368 c = 'DIR'
11369
11370 // It exists, but maybe not how we need it
11371 if (!needDir || c === 'DIR')
11372 return cb(null, c)
11373
11374 if (needDir && c === 'FILE')
11375 return cb()
11376
11377 // otherwise we have to stat, because maybe c=true
11378 // if we know it exists, but not what it is.
11379 }
11380
11381 var exists
11382 var stat = this.statCache[abs]
11383 if (stat !== undefined) {
11384 if (stat === false)
11385 return cb(null, stat)
11386 else {
11387 var type = stat.isDirectory() ? 'DIR' : 'FILE'
11388 if (needDir && type === 'FILE')
11389 return cb()
11390 else
11391 return cb(null, type, stat)
11392 }
11393 }
11394
11395 var self = this
11396 var statcb = inflight('stat\0' + abs, lstatcb_)
11397 if (statcb)
11398 fs.lstat(abs, statcb)
11399
11400 function lstatcb_ (er, lstat) {
11401 if (lstat && lstat.isSymbolicLink()) {
11402 // If it's a symlink, then treat it as the target, unless
11403 // the target does not exist, then treat it as a file.
11404 return fs.stat(abs, function (er, stat) {
11405 if (er)
11406 self._stat2(f, abs, null, lstat, cb)
11407 else
11408 self._stat2(f, abs, er, stat, cb)
11409 })
11410 } else {
11411 self._stat2(f, abs, er, lstat, cb)
11412 }
11413 }
11414}
11415
11416Glob.prototype._stat2 = function (f, abs, er, stat, cb) {
11417 if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
11418 this.statCache[abs] = false
11419 return cb()
11420 }
11421
11422 var needDir = f.slice(-1) === '/'
11423 this.statCache[abs] = stat
11424
11425 if (abs.slice(-1) === '/' && stat && !stat.isDirectory())
11426 return cb(null, false, stat)
11427
11428 var c = true
11429 if (stat)
11430 c = stat.isDirectory() ? 'DIR' : 'FILE'
11431 this.cache[abs] = this.cache[abs] || c
11432
11433 if (needDir && c === 'FILE')
11434 return cb()
11435
11436 return cb(null, c, stat)
11437}
11438
11439
11440/***/ }),
11441
11442/***/ "./node_modules/glob/sync.js":
11443/*!***********************************!*\
11444 !*** ./node_modules/glob/sync.js ***!
11445 \***********************************/
11446/*! no static exports found */
11447/***/ (function(module, exports, __webpack_require__) {
11448
11449module.exports = globSync
11450globSync.GlobSync = GlobSync
11451
11452var fs = __webpack_require__(/*! fs */ "fs")
11453var rp = __webpack_require__(/*! fs.realpath */ "./node_modules/fs.realpath/index.js")
11454var minimatch = __webpack_require__(/*! minimatch */ "./node_modules/minimatch/minimatch.js")
11455var Minimatch = minimatch.Minimatch
11456var Glob = __webpack_require__(/*! ./glob.js */ "./node_modules/glob/glob.js").Glob
11457var util = __webpack_require__(/*! util */ "util")
11458var path = __webpack_require__(/*! path */ "path")
11459var assert = __webpack_require__(/*! assert */ "assert")
11460var isAbsolute = __webpack_require__(/*! path-is-absolute */ "./node_modules/path-is-absolute/index.js")
11461var common = __webpack_require__(/*! ./common.js */ "./node_modules/glob/common.js")
11462var alphasort = common.alphasort
11463var alphasorti = common.alphasorti
11464var setopts = common.setopts
11465var ownProp = common.ownProp
11466var childrenIgnored = common.childrenIgnored
11467var isIgnored = common.isIgnored
11468
11469function globSync (pattern, options) {
11470 if (typeof options === 'function' || arguments.length === 3)
11471 throw new TypeError('callback provided to sync glob\n'+
11472 'See: https://github.com/isaacs/node-glob/issues/167')
11473
11474 return new GlobSync(pattern, options).found
11475}
11476
11477function GlobSync (pattern, options) {
11478 if (!pattern)
11479 throw new Error('must provide pattern')
11480
11481 if (typeof options === 'function' || arguments.length === 3)
11482 throw new TypeError('callback provided to sync glob\n'+
11483 'See: https://github.com/isaacs/node-glob/issues/167')
11484
11485 if (!(this instanceof GlobSync))
11486 return new GlobSync(pattern, options)
11487
11488 setopts(this, pattern, options)
11489
11490 if (this.noprocess)
11491 return this
11492
11493 var n = this.minimatch.set.length
11494 this.matches = new Array(n)
11495 for (var i = 0; i < n; i ++) {
11496 this._process(this.minimatch.set[i], i, false)
11497 }
11498 this._finish()
11499}
11500
11501GlobSync.prototype._finish = function () {
11502 assert(this instanceof GlobSync)
11503 if (this.realpath) {
11504 var self = this
11505 this.matches.forEach(function (matchset, index) {
11506 var set = self.matches[index] = Object.create(null)
11507 for (var p in matchset) {
11508 try {
11509 p = self._makeAbs(p)
11510 var real = rp.realpathSync(p, self.realpathCache)
11511 set[real] = true
11512 } catch (er) {
11513 if (er.syscall === 'stat')
11514 set[self._makeAbs(p)] = true
11515 else
11516 throw er
11517 }
11518 }
11519 })
11520 }
11521 common.finish(this)
11522}
11523
11524
11525GlobSync.prototype._process = function (pattern, index, inGlobStar) {
11526 assert(this instanceof GlobSync)
11527
11528 // Get the first [n] parts of pattern that are all strings.
11529 var n = 0
11530 while (typeof pattern[n] === 'string') {
11531 n ++
11532 }
11533 // now n is the index of the first one that is *not* a string.
11534
11535 // See if there's anything else
11536 var prefix
11537 switch (n) {
11538 // if not, then this is rather simple
11539 case pattern.length:
11540 this._processSimple(pattern.join('/'), index)
11541 return
11542
11543 case 0:
11544 // pattern *starts* with some non-trivial item.
11545 // going to readdir(cwd), but not include the prefix in matches.
11546 prefix = null
11547 break
11548
11549 default:
11550 // pattern has some string bits in the front.
11551 // whatever it starts with, whether that's 'absolute' like /foo/bar,
11552 // or 'relative' like '../baz'
11553 prefix = pattern.slice(0, n).join('/')
11554 break
11555 }
11556
11557 var remain = pattern.slice(n)
11558
11559 // get the list of entries.
11560 var read
11561 if (prefix === null)
11562 read = '.'
11563 else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) {
11564 if (!prefix || !isAbsolute(prefix))
11565 prefix = '/' + prefix
11566 read = prefix
11567 } else
11568 read = prefix
11569
11570 var abs = this._makeAbs(read)
11571
11572 //if ignored, skip processing
11573 if (childrenIgnored(this, read))
11574 return
11575
11576 var isGlobStar = remain[0] === minimatch.GLOBSTAR
11577 if (isGlobStar)
11578 this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)
11579 else
11580 this._processReaddir(prefix, read, abs, remain, index, inGlobStar)
11581}
11582
11583
11584GlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {
11585 var entries = this._readdir(abs, inGlobStar)
11586
11587 // if the abs isn't a dir, then nothing can match!
11588 if (!entries)
11589 return
11590
11591 // It will only match dot entries if it starts with a dot, or if
11592 // dot is set. Stuff like @(.foo|.bar) isn't allowed.
11593 var pn = remain[0]
11594 var negate = !!this.minimatch.negate
11595 var rawGlob = pn._glob
11596 var dotOk = this.dot || rawGlob.charAt(0) === '.'
11597
11598 var matchedEntries = []
11599 for (var i = 0; i < entries.length; i++) {
11600 var e = entries[i]
11601 if (e.charAt(0) !== '.' || dotOk) {
11602 var m
11603 if (negate && !prefix) {
11604 m = !e.match(pn)
11605 } else {
11606 m = e.match(pn)
11607 }
11608 if (m)
11609 matchedEntries.push(e)
11610 }
11611 }
11612
11613 var len = matchedEntries.length
11614 // If there are no matched entries, then nothing matches.
11615 if (len === 0)
11616 return
11617
11618 // if this is the last remaining pattern bit, then no need for
11619 // an additional stat *unless* the user has specified mark or
11620 // stat explicitly. We know they exist, since readdir returned
11621 // them.
11622
11623 if (remain.length === 1 && !this.mark && !this.stat) {
11624 if (!this.matches[index])
11625 this.matches[index] = Object.create(null)
11626
11627 for (var i = 0; i < len; i ++) {
11628 var e = matchedEntries[i]
11629 if (prefix) {
11630 if (prefix.slice(-1) !== '/')
11631 e = prefix + '/' + e
11632 else
11633 e = prefix + e
11634 }
11635
11636 if (e.charAt(0) === '/' && !this.nomount) {
11637 e = path.join(this.root, e)
11638 }
11639 this._emitMatch(index, e)
11640 }
11641 // This was the last one, and no stats were needed
11642 return
11643 }
11644
11645 // now test all matched entries as stand-ins for that part
11646 // of the pattern.
11647 remain.shift()
11648 for (var i = 0; i < len; i ++) {
11649 var e = matchedEntries[i]
11650 var newPattern
11651 if (prefix)
11652 newPattern = [prefix, e]
11653 else
11654 newPattern = [e]
11655 this._process(newPattern.concat(remain), index, inGlobStar)
11656 }
11657}
11658
11659
11660GlobSync.prototype._emitMatch = function (index, e) {
11661 if (isIgnored(this, e))
11662 return
11663
11664 var abs = this._makeAbs(e)
11665
11666 if (this.mark)
11667 e = this._mark(e)
11668
11669 if (this.absolute) {
11670 e = abs
11671 }
11672
11673 if (this.matches[index][e])
11674 return
11675
11676 if (this.nodir) {
11677 var c = this.cache[abs]
11678 if (c === 'DIR' || Array.isArray(c))
11679 return
11680 }
11681
11682 this.matches[index][e] = true
11683
11684 if (this.stat)
11685 this._stat(e)
11686}
11687
11688
11689GlobSync.prototype._readdirInGlobStar = function (abs) {
11690 // follow all symlinked directories forever
11691 // just proceed as if this is a non-globstar situation
11692 if (this.follow)
11693 return this._readdir(abs, false)
11694
11695 var entries
11696 var lstat
11697 var stat
11698 try {
11699 lstat = fs.lstatSync(abs)
11700 } catch (er) {
11701 if (er.code === 'ENOENT') {
11702 // lstat failed, doesn't exist
11703 return null
11704 }
11705 }
11706
11707 var isSym = lstat && lstat.isSymbolicLink()
11708 this.symlinks[abs] = isSym
11709
11710 // If it's not a symlink or a dir, then it's definitely a regular file.
11711 // don't bother doing a readdir in that case.
11712 if (!isSym && lstat && !lstat.isDirectory())
11713 this.cache[abs] = 'FILE'
11714 else
11715 entries = this._readdir(abs, false)
11716
11717 return entries
11718}
11719
11720GlobSync.prototype._readdir = function (abs, inGlobStar) {
11721 var entries
11722
11723 if (inGlobStar && !ownProp(this.symlinks, abs))
11724 return this._readdirInGlobStar(abs)
11725
11726 if (ownProp(this.cache, abs)) {
11727 var c = this.cache[abs]
11728 if (!c || c === 'FILE')
11729 return null
11730
11731 if (Array.isArray(c))
11732 return c
11733 }
11734
11735 try {
11736 return this._readdirEntries(abs, fs.readdirSync(abs))
11737 } catch (er) {
11738 this._readdirError(abs, er)
11739 return null
11740 }
11741}
11742
11743GlobSync.prototype._readdirEntries = function (abs, entries) {
11744 // if we haven't asked to stat everything, then just
11745 // assume that everything in there exists, so we can avoid
11746 // having to stat it a second time.
11747 if (!this.mark && !this.stat) {
11748 for (var i = 0; i < entries.length; i ++) {
11749 var e = entries[i]
11750 if (abs === '/')
11751 e = abs + e
11752 else
11753 e = abs + '/' + e
11754 this.cache[e] = true
11755 }
11756 }
11757
11758 this.cache[abs] = entries
11759
11760 // mark and cache dir-ness
11761 return entries
11762}
11763
11764GlobSync.prototype._readdirError = function (f, er) {
11765 // handle errors, and cache the information
11766 switch (er.code) {
11767 case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205
11768 case 'ENOTDIR': // totally normal. means it *does* exist.
11769 var abs = this._makeAbs(f)
11770 this.cache[abs] = 'FILE'
11771 if (abs === this.cwdAbs) {
11772 var error = new Error(er.code + ' invalid cwd ' + this.cwd)
11773 error.path = this.cwd
11774 error.code = er.code
11775 throw error
11776 }
11777 break
11778
11779 case 'ENOENT': // not terribly unusual
11780 case 'ELOOP':
11781 case 'ENAMETOOLONG':
11782 case 'UNKNOWN':
11783 this.cache[this._makeAbs(f)] = false
11784 break
11785
11786 default: // some unusual error. Treat as failure.
11787 this.cache[this._makeAbs(f)] = false
11788 if (this.strict)
11789 throw er
11790 if (!this.silent)
11791 console.error('glob error', er)
11792 break
11793 }
11794}
11795
11796GlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {
11797
11798 var entries = this._readdir(abs, inGlobStar)
11799
11800 // no entries means not a dir, so it can never have matches
11801 // foo.txt/** doesn't match foo.txt
11802 if (!entries)
11803 return
11804
11805 // test without the globstar, and with every child both below
11806 // and replacing the globstar.
11807 var remainWithoutGlobStar = remain.slice(1)
11808 var gspref = prefix ? [ prefix ] : []
11809 var noGlobStar = gspref.concat(remainWithoutGlobStar)
11810
11811 // the noGlobStar pattern exits the inGlobStar state
11812 this._process(noGlobStar, index, false)
11813
11814 var len = entries.length
11815 var isSym = this.symlinks[abs]
11816
11817 // If it's a symlink, and we're in a globstar, then stop
11818 if (isSym && inGlobStar)
11819 return
11820
11821 for (var i = 0; i < len; i++) {
11822 var e = entries[i]
11823 if (e.charAt(0) === '.' && !this.dot)
11824 continue
11825
11826 // these two cases enter the inGlobStar state
11827 var instead = gspref.concat(entries[i], remainWithoutGlobStar)
11828 this._process(instead, index, true)
11829
11830 var below = gspref.concat(entries[i], remain)
11831 this._process(below, index, true)
11832 }
11833}
11834
11835GlobSync.prototype._processSimple = function (prefix, index) {
11836 // XXX review this. Shouldn't it be doing the mounting etc
11837 // before doing stat? kinda weird?
11838 var exists = this._stat(prefix)
11839
11840 if (!this.matches[index])
11841 this.matches[index] = Object.create(null)
11842
11843 // If it doesn't exist, then just mark the lack of results
11844 if (!exists)
11845 return
11846
11847 if (prefix && isAbsolute(prefix) && !this.nomount) {
11848 var trail = /[\/\\]$/.test(prefix)
11849 if (prefix.charAt(0) === '/') {
11850 prefix = path.join(this.root, prefix)
11851 } else {
11852 prefix = path.resolve(this.root, prefix)
11853 if (trail)
11854 prefix += '/'
11855 }
11856 }
11857
11858 if (process.platform === 'win32')
11859 prefix = prefix.replace(/\\/g, '/')
11860
11861 // Mark this as a match
11862 this._emitMatch(index, prefix)
11863}
11864
11865// Returns either 'DIR', 'FILE', or false
11866GlobSync.prototype._stat = function (f) {
11867 var abs = this._makeAbs(f)
11868 var needDir = f.slice(-1) === '/'
11869
11870 if (f.length > this.maxLength)
11871 return false
11872
11873 if (!this.stat && ownProp(this.cache, abs)) {
11874 var c = this.cache[abs]
11875
11876 if (Array.isArray(c))
11877 c = 'DIR'
11878
11879 // It exists, but maybe not how we need it
11880 if (!needDir || c === 'DIR')
11881 return c
11882
11883 if (needDir && c === 'FILE')
11884 return false
11885
11886 // otherwise we have to stat, because maybe c=true
11887 // if we know it exists, but not what it is.
11888 }
11889
11890 var exists
11891 var stat = this.statCache[abs]
11892 if (!stat) {
11893 var lstat
11894 try {
11895 lstat = fs.lstatSync(abs)
11896 } catch (er) {
11897 if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {
11898 this.statCache[abs] = false
11899 return false
11900 }
11901 }
11902
11903 if (lstat && lstat.isSymbolicLink()) {
11904 try {
11905 stat = fs.statSync(abs)
11906 } catch (er) {
11907 stat = lstat
11908 }
11909 } else {
11910 stat = lstat
11911 }
11912 }
11913
11914 this.statCache[abs] = stat
11915
11916 var c = true
11917 if (stat)
11918 c = stat.isDirectory() ? 'DIR' : 'FILE'
11919
11920 this.cache[abs] = this.cache[abs] || c
11921
11922 if (needDir && c === 'FILE')
11923 return false
11924
11925 return c
11926}
11927
11928GlobSync.prototype._mark = function (p) {
11929 return common.mark(this, p)
11930}
11931
11932GlobSync.prototype._makeAbs = function (f) {
11933 return common.makeAbs(this, f)
11934}
11935
11936
11937/***/ }),
11938
11939/***/ "./node_modules/graceful-fs/clone.js":
11940/*!*******************************************!*\
11941 !*** ./node_modules/graceful-fs/clone.js ***!
11942 \*******************************************/
11943/*! no static exports found */
11944/***/ (function(module, exports, __webpack_require__) {
11945
11946"use strict";
11947
11948
11949module.exports = clone
11950
11951function clone (obj) {
11952 if (obj === null || typeof obj !== 'object')
11953 return obj
11954
11955 if (obj instanceof Object)
11956 var copy = { __proto__: obj.__proto__ }
11957 else
11958 var copy = Object.create(null)
11959
11960 Object.getOwnPropertyNames(obj).forEach(function (key) {
11961 Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))
11962 })
11963
11964 return copy
11965}
11966
11967
11968/***/ }),
11969
11970/***/ "./node_modules/graceful-fs/graceful-fs.js":
11971/*!*************************************************!*\
11972 !*** ./node_modules/graceful-fs/graceful-fs.js ***!
11973 \*************************************************/
11974/*! no static exports found */
11975/***/ (function(module, exports, __webpack_require__) {
11976
11977var fs = __webpack_require__(/*! fs */ "fs")
11978var polyfills = __webpack_require__(/*! ./polyfills.js */ "./node_modules/graceful-fs/polyfills.js")
11979var legacy = __webpack_require__(/*! ./legacy-streams.js */ "./node_modules/graceful-fs/legacy-streams.js")
11980var clone = __webpack_require__(/*! ./clone.js */ "./node_modules/graceful-fs/clone.js")
11981
11982var queue = []
11983
11984var util = __webpack_require__(/*! util */ "util")
11985
11986function noop () {}
11987
11988var debug = noop
11989if (util.debuglog)
11990 debug = util.debuglog('gfs4')
11991else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || ''))
11992 debug = function() {
11993 var m = util.format.apply(util, arguments)
11994 m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ')
11995 console.error(m)
11996 }
11997
11998if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) {
11999 process.on('exit', function() {
12000 debug(queue)
12001 __webpack_require__(/*! assert */ "assert").equal(queue.length, 0)
12002 })
12003}
12004
12005module.exports = patch(clone(fs))
12006if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) {
12007 module.exports = patch(fs)
12008 fs.__patched = true;
12009}
12010
12011// Always patch fs.close/closeSync, because we want to
12012// retry() whenever a close happens *anywhere* in the program.
12013// This is essential when multiple graceful-fs instances are
12014// in play at the same time.
12015module.exports.close = (function (fs$close) { return function (fd, cb) {
12016 return fs$close.call(fs, fd, function (err) {
12017 if (!err)
12018 retry()
12019
12020 if (typeof cb === 'function')
12021 cb.apply(this, arguments)
12022 })
12023}})(fs.close)
12024
12025module.exports.closeSync = (function (fs$closeSync) { return function (fd) {
12026 // Note that graceful-fs also retries when fs.closeSync() fails.
12027 // Looks like a bug to me, although it's probably a harmless one.
12028 var rval = fs$closeSync.apply(fs, arguments)
12029 retry()
12030 return rval
12031}})(fs.closeSync)
12032
12033// Only patch fs once, otherwise we'll run into a memory leak if
12034// graceful-fs is loaded multiple times, such as in test environments that
12035// reset the loaded modules between tests.
12036// We look for the string `graceful-fs` from the comment above. This
12037// way we are not adding any extra properties and it will detect if older
12038// versions of graceful-fs are installed.
12039if (!/\bgraceful-fs\b/.test(fs.closeSync.toString())) {
12040 fs.closeSync = module.exports.closeSync;
12041 fs.close = module.exports.close;
12042}
12043
12044function patch (fs) {
12045 // Everything that references the open() function needs to be in here
12046 polyfills(fs)
12047 fs.gracefulify = patch
12048 fs.FileReadStream = ReadStream; // Legacy name.
12049 fs.FileWriteStream = WriteStream; // Legacy name.
12050 fs.createReadStream = createReadStream
12051 fs.createWriteStream = createWriteStream
12052 var fs$readFile = fs.readFile
12053 fs.readFile = readFile
12054 function readFile (path, options, cb) {
12055 if (typeof options === 'function')
12056 cb = options, options = null
12057
12058 return go$readFile(path, options, cb)
12059
12060 function go$readFile (path, options, cb) {
12061 return fs$readFile(path, options, function (err) {
12062 if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
12063 enqueue([go$readFile, [path, options, cb]])
12064 else {
12065 if (typeof cb === 'function')
12066 cb.apply(this, arguments)
12067 retry()
12068 }
12069 })
12070 }
12071 }
12072
12073 var fs$writeFile = fs.writeFile
12074 fs.writeFile = writeFile
12075 function writeFile (path, data, options, cb) {
12076 if (typeof options === 'function')
12077 cb = options, options = null
12078
12079 return go$writeFile(path, data, options, cb)
12080
12081 function go$writeFile (path, data, options, cb) {
12082 return fs$writeFile(path, data, options, function (err) {
12083 if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
12084 enqueue([go$writeFile, [path, data, options, cb]])
12085 else {
12086 if (typeof cb === 'function')
12087 cb.apply(this, arguments)
12088 retry()
12089 }
12090 })
12091 }
12092 }
12093
12094 var fs$appendFile = fs.appendFile
12095 if (fs$appendFile)
12096 fs.appendFile = appendFile
12097 function appendFile (path, data, options, cb) {
12098 if (typeof options === 'function')
12099 cb = options, options = null
12100
12101 return go$appendFile(path, data, options, cb)
12102
12103 function go$appendFile (path, data, options, cb) {
12104 return fs$appendFile(path, data, options, function (err) {
12105 if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
12106 enqueue([go$appendFile, [path, data, options, cb]])
12107 else {
12108 if (typeof cb === 'function')
12109 cb.apply(this, arguments)
12110 retry()
12111 }
12112 })
12113 }
12114 }
12115
12116 var fs$readdir = fs.readdir
12117 fs.readdir = readdir
12118 function readdir (path, options, cb) {
12119 var args = [path]
12120 if (typeof options !== 'function') {
12121 args.push(options)
12122 } else {
12123 cb = options
12124 }
12125 args.push(go$readdir$cb)
12126
12127 return go$readdir(args)
12128
12129 function go$readdir$cb (err, files) {
12130 if (files && files.sort)
12131 files.sort()
12132
12133 if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
12134 enqueue([go$readdir, [args]])
12135
12136 else {
12137 if (typeof cb === 'function')
12138 cb.apply(this, arguments)
12139 retry()
12140 }
12141 }
12142 }
12143
12144 function go$readdir (args) {
12145 return fs$readdir.apply(fs, args)
12146 }
12147
12148 if (process.version.substr(0, 4) === 'v0.8') {
12149 var legStreams = legacy(fs)
12150 ReadStream = legStreams.ReadStream
12151 WriteStream = legStreams.WriteStream
12152 }
12153
12154 var fs$ReadStream = fs.ReadStream
12155 if (fs$ReadStream) {
12156 ReadStream.prototype = Object.create(fs$ReadStream.prototype)
12157 ReadStream.prototype.open = ReadStream$open
12158 }
12159
12160 var fs$WriteStream = fs.WriteStream
12161 if (fs$WriteStream) {
12162 WriteStream.prototype = Object.create(fs$WriteStream.prototype)
12163 WriteStream.prototype.open = WriteStream$open
12164 }
12165
12166 fs.ReadStream = ReadStream
12167 fs.WriteStream = WriteStream
12168
12169 function ReadStream (path, options) {
12170 if (this instanceof ReadStream)
12171 return fs$ReadStream.apply(this, arguments), this
12172 else
12173 return ReadStream.apply(Object.create(ReadStream.prototype), arguments)
12174 }
12175
12176 function ReadStream$open () {
12177 var that = this
12178 open(that.path, that.flags, that.mode, function (err, fd) {
12179 if (err) {
12180 if (that.autoClose)
12181 that.destroy()
12182
12183 that.emit('error', err)
12184 } else {
12185 that.fd = fd
12186 that.emit('open', fd)
12187 that.read()
12188 }
12189 })
12190 }
12191
12192 function WriteStream (path, options) {
12193 if (this instanceof WriteStream)
12194 return fs$WriteStream.apply(this, arguments), this
12195 else
12196 return WriteStream.apply(Object.create(WriteStream.prototype), arguments)
12197 }
12198
12199 function WriteStream$open () {
12200 var that = this
12201 open(that.path, that.flags, that.mode, function (err, fd) {
12202 if (err) {
12203 that.destroy()
12204 that.emit('error', err)
12205 } else {
12206 that.fd = fd
12207 that.emit('open', fd)
12208 }
12209 })
12210 }
12211
12212 function createReadStream (path, options) {
12213 return new ReadStream(path, options)
12214 }
12215
12216 function createWriteStream (path, options) {
12217 return new WriteStream(path, options)
12218 }
12219
12220 var fs$open = fs.open
12221 fs.open = open
12222 function open (path, flags, mode, cb) {
12223 if (typeof mode === 'function')
12224 cb = mode, mode = null
12225
12226 return go$open(path, flags, mode, cb)
12227
12228 function go$open (path, flags, mode, cb) {
12229 return fs$open(path, flags, mode, function (err, fd) {
12230 if (err && (err.code === 'EMFILE' || err.code === 'ENFILE'))
12231 enqueue([go$open, [path, flags, mode, cb]])
12232 else {
12233 if (typeof cb === 'function')
12234 cb.apply(this, arguments)
12235 retry()
12236 }
12237 })
12238 }
12239 }
12240
12241 return fs
12242}
12243
12244function enqueue (elem) {
12245 debug('ENQUEUE', elem[0].name, elem[1])
12246 queue.push(elem)
12247}
12248
12249function retry () {
12250 var elem = queue.shift()
12251 if (elem) {
12252 debug('RETRY', elem[0].name, elem[1])
12253 elem[0].apply(null, elem[1])
12254 }
12255}
12256
12257
12258/***/ }),
12259
12260/***/ "./node_modules/graceful-fs/legacy-streams.js":
12261/*!****************************************************!*\
12262 !*** ./node_modules/graceful-fs/legacy-streams.js ***!
12263 \****************************************************/
12264/*! no static exports found */
12265/***/ (function(module, exports, __webpack_require__) {
12266
12267var Stream = __webpack_require__(/*! stream */ "stream").Stream
12268
12269module.exports = legacy
12270
12271function legacy (fs) {
12272 return {
12273 ReadStream: ReadStream,
12274 WriteStream: WriteStream
12275 }
12276
12277 function ReadStream (path, options) {
12278 if (!(this instanceof ReadStream)) return new ReadStream(path, options);
12279
12280 Stream.call(this);
12281
12282 var self = this;
12283
12284 this.path = path;
12285 this.fd = null;
12286 this.readable = true;
12287 this.paused = false;
12288
12289 this.flags = 'r';
12290 this.mode = 438; /*=0666*/
12291 this.bufferSize = 64 * 1024;
12292
12293 options = options || {};
12294
12295 // Mixin options into this
12296 var keys = Object.keys(options);
12297 for (var index = 0, length = keys.length; index < length; index++) {
12298 var key = keys[index];
12299 this[key] = options[key];
12300 }
12301
12302 if (this.encoding) this.setEncoding(this.encoding);
12303
12304 if (this.start !== undefined) {
12305 if ('number' !== typeof this.start) {
12306 throw TypeError('start must be a Number');
12307 }
12308 if (this.end === undefined) {
12309 this.end = Infinity;
12310 } else if ('number' !== typeof this.end) {
12311 throw TypeError('end must be a Number');
12312 }
12313
12314 if (this.start > this.end) {
12315 throw new Error('start must be <= end');
12316 }
12317
12318 this.pos = this.start;
12319 }
12320
12321 if (this.fd !== null) {
12322 process.nextTick(function() {
12323 self._read();
12324 });
12325 return;
12326 }
12327
12328 fs.open(this.path, this.flags, this.mode, function (err, fd) {
12329 if (err) {
12330 self.emit('error', err);
12331 self.readable = false;
12332 return;
12333 }
12334
12335 self.fd = fd;
12336 self.emit('open', fd);
12337 self._read();
12338 })
12339 }
12340
12341 function WriteStream (path, options) {
12342 if (!(this instanceof WriteStream)) return new WriteStream(path, options);
12343
12344 Stream.call(this);
12345
12346 this.path = path;
12347 this.fd = null;
12348 this.writable = true;
12349
12350 this.flags = 'w';
12351 this.encoding = 'binary';
12352 this.mode = 438; /*=0666*/
12353 this.bytesWritten = 0;
12354
12355 options = options || {};
12356
12357 // Mixin options into this
12358 var keys = Object.keys(options);
12359 for (var index = 0, length = keys.length; index < length; index++) {
12360 var key = keys[index];
12361 this[key] = options[key];
12362 }
12363
12364 if (this.start !== undefined) {
12365 if ('number' !== typeof this.start) {
12366 throw TypeError('start must be a Number');
12367 }
12368 if (this.start < 0) {
12369 throw new Error('start must be >= zero');
12370 }
12371
12372 this.pos = this.start;
12373 }
12374
12375 this.busy = false;
12376 this._queue = [];
12377
12378 if (this.fd === null) {
12379 this._open = fs.open;
12380 this._queue.push([this._open, this.path, this.flags, this.mode, undefined]);
12381 this.flush();
12382 }
12383 }
12384}
12385
12386
12387/***/ }),
12388
12389/***/ "./node_modules/graceful-fs/polyfills.js":
12390/*!***********************************************!*\
12391 !*** ./node_modules/graceful-fs/polyfills.js ***!
12392 \***********************************************/
12393/*! no static exports found */
12394/***/ (function(module, exports, __webpack_require__) {
12395
12396var constants = __webpack_require__(/*! constants */ "constants")
12397
12398var origCwd = process.cwd
12399var cwd = null
12400
12401var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform
12402
12403process.cwd = function() {
12404 if (!cwd)
12405 cwd = origCwd.call(process)
12406 return cwd
12407}
12408try {
12409 process.cwd()
12410} catch (er) {}
12411
12412var chdir = process.chdir
12413process.chdir = function(d) {
12414 cwd = null
12415 chdir.call(process, d)
12416}
12417
12418module.exports = patch
12419
12420function patch (fs) {
12421 // (re-)implement some things that are known busted or missing.
12422
12423 // lchmod, broken prior to 0.6.2
12424 // back-port the fix here.
12425 if (constants.hasOwnProperty('O_SYMLINK') &&
12426 process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) {
12427 patchLchmod(fs)
12428 }
12429
12430 // lutimes implementation, or no-op
12431 if (!fs.lutimes) {
12432 patchLutimes(fs)
12433 }
12434
12435 // https://github.com/isaacs/node-graceful-fs/issues/4
12436 // Chown should not fail on einval or eperm if non-root.
12437 // It should not fail on enosys ever, as this just indicates
12438 // that a fs doesn't support the intended operation.
12439
12440 fs.chown = chownFix(fs.chown)
12441 fs.fchown = chownFix(fs.fchown)
12442 fs.lchown = chownFix(fs.lchown)
12443
12444 fs.chmod = chmodFix(fs.chmod)
12445 fs.fchmod = chmodFix(fs.fchmod)
12446 fs.lchmod = chmodFix(fs.lchmod)
12447
12448 fs.chownSync = chownFixSync(fs.chownSync)
12449 fs.fchownSync = chownFixSync(fs.fchownSync)
12450 fs.lchownSync = chownFixSync(fs.lchownSync)
12451
12452 fs.chmodSync = chmodFixSync(fs.chmodSync)
12453 fs.fchmodSync = chmodFixSync(fs.fchmodSync)
12454 fs.lchmodSync = chmodFixSync(fs.lchmodSync)
12455
12456 fs.stat = statFix(fs.stat)
12457 fs.fstat = statFix(fs.fstat)
12458 fs.lstat = statFix(fs.lstat)
12459
12460 fs.statSync = statFixSync(fs.statSync)
12461 fs.fstatSync = statFixSync(fs.fstatSync)
12462 fs.lstatSync = statFixSync(fs.lstatSync)
12463
12464 // if lchmod/lchown do not exist, then make them no-ops
12465 if (!fs.lchmod) {
12466 fs.lchmod = function (path, mode, cb) {
12467 if (cb) process.nextTick(cb)
12468 }
12469 fs.lchmodSync = function () {}
12470 }
12471 if (!fs.lchown) {
12472 fs.lchown = function (path, uid, gid, cb) {
12473 if (cb) process.nextTick(cb)
12474 }
12475 fs.lchownSync = function () {}
12476 }
12477
12478 // on Windows, A/V software can lock the directory, causing this
12479 // to fail with an EACCES or EPERM if the directory contains newly
12480 // created files. Try again on failure, for up to 60 seconds.
12481
12482 // Set the timeout this long because some Windows Anti-Virus, such as Parity
12483 // bit9, may lock files for up to a minute, causing npm package install
12484 // failures. Also, take care to yield the scheduler. Windows scheduling gives
12485 // CPU to a busy looping process, which can cause the program causing the lock
12486 // contention to be starved of CPU by node, so the contention doesn't resolve.
12487 if (platform === "win32") {
12488 fs.rename = (function (fs$rename) { return function (from, to, cb) {
12489 var start = Date.now()
12490 var backoff = 0;
12491 fs$rename(from, to, function CB (er) {
12492 if (er
12493 && (er.code === "EACCES" || er.code === "EPERM")
12494 && Date.now() - start < 60000) {
12495 setTimeout(function() {
12496 fs.stat(to, function (stater, st) {
12497 if (stater && stater.code === "ENOENT")
12498 fs$rename(from, to, CB);
12499 else
12500 cb(er)
12501 })
12502 }, backoff)
12503 if (backoff < 100)
12504 backoff += 10;
12505 return;
12506 }
12507 if (cb) cb(er)
12508 })
12509 }})(fs.rename)
12510 }
12511
12512 // if read() returns EAGAIN, then just try it again.
12513 fs.read = (function (fs$read) { return function (fd, buffer, offset, length, position, callback_) {
12514 var callback
12515 if (callback_ && typeof callback_ === 'function') {
12516 var eagCounter = 0
12517 callback = function (er, _, __) {
12518 if (er && er.code === 'EAGAIN' && eagCounter < 10) {
12519 eagCounter ++
12520 return fs$read.call(fs, fd, buffer, offset, length, position, callback)
12521 }
12522 callback_.apply(this, arguments)
12523 }
12524 }
12525 return fs$read.call(fs, fd, buffer, offset, length, position, callback)
12526 }})(fs.read)
12527
12528 fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) {
12529 var eagCounter = 0
12530 while (true) {
12531 try {
12532 return fs$readSync.call(fs, fd, buffer, offset, length, position)
12533 } catch (er) {
12534 if (er.code === 'EAGAIN' && eagCounter < 10) {
12535 eagCounter ++
12536 continue
12537 }
12538 throw er
12539 }
12540 }
12541 }})(fs.readSync)
12542
12543 function patchLchmod (fs) {
12544 fs.lchmod = function (path, mode, callback) {
12545 fs.open( path
12546 , constants.O_WRONLY | constants.O_SYMLINK
12547 , mode
12548 , function (err, fd) {
12549 if (err) {
12550 if (callback) callback(err)
12551 return
12552 }
12553 // prefer to return the chmod error, if one occurs,
12554 // but still try to close, and report closing errors if they occur.
12555 fs.fchmod(fd, mode, function (err) {
12556 fs.close(fd, function(err2) {
12557 if (callback) callback(err || err2)
12558 })
12559 })
12560 })
12561 }
12562
12563 fs.lchmodSync = function (path, mode) {
12564 var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode)
12565
12566 // prefer to return the chmod error, if one occurs,
12567 // but still try to close, and report closing errors if they occur.
12568 var threw = true
12569 var ret
12570 try {
12571 ret = fs.fchmodSync(fd, mode)
12572 threw = false
12573 } finally {
12574 if (threw) {
12575 try {
12576 fs.closeSync(fd)
12577 } catch (er) {}
12578 } else {
12579 fs.closeSync(fd)
12580 }
12581 }
12582 return ret
12583 }
12584 }
12585
12586 function patchLutimes (fs) {
12587 if (constants.hasOwnProperty("O_SYMLINK")) {
12588 fs.lutimes = function (path, at, mt, cb) {
12589 fs.open(path, constants.O_SYMLINK, function (er, fd) {
12590 if (er) {
12591 if (cb) cb(er)
12592 return
12593 }
12594 fs.futimes(fd, at, mt, function (er) {
12595 fs.close(fd, function (er2) {
12596 if (cb) cb(er || er2)
12597 })
12598 })
12599 })
12600 }
12601
12602 fs.lutimesSync = function (path, at, mt) {
12603 var fd = fs.openSync(path, constants.O_SYMLINK)
12604 var ret
12605 var threw = true
12606 try {
12607 ret = fs.futimesSync(fd, at, mt)
12608 threw = false
12609 } finally {
12610 if (threw) {
12611 try {
12612 fs.closeSync(fd)
12613 } catch (er) {}
12614 } else {
12615 fs.closeSync(fd)
12616 }
12617 }
12618 return ret
12619 }
12620
12621 } else {
12622 fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) }
12623 fs.lutimesSync = function () {}
12624 }
12625 }
12626
12627 function chmodFix (orig) {
12628 if (!orig) return orig
12629 return function (target, mode, cb) {
12630 return orig.call(fs, target, mode, function (er) {
12631 if (chownErOk(er)) er = null
12632 if (cb) cb.apply(this, arguments)
12633 })
12634 }
12635 }
12636
12637 function chmodFixSync (orig) {
12638 if (!orig) return orig
12639 return function (target, mode) {
12640 try {
12641 return orig.call(fs, target, mode)
12642 } catch (er) {
12643 if (!chownErOk(er)) throw er
12644 }
12645 }
12646 }
12647
12648
12649 function chownFix (orig) {
12650 if (!orig) return orig
12651 return function (target, uid, gid, cb) {
12652 return orig.call(fs, target, uid, gid, function (er) {
12653 if (chownErOk(er)) er = null
12654 if (cb) cb.apply(this, arguments)
12655 })
12656 }
12657 }
12658
12659 function chownFixSync (orig) {
12660 if (!orig) return orig
12661 return function (target, uid, gid) {
12662 try {
12663 return orig.call(fs, target, uid, gid)
12664 } catch (er) {
12665 if (!chownErOk(er)) throw er
12666 }
12667 }
12668 }
12669
12670
12671 function statFix (orig) {
12672 if (!orig) return orig
12673 // Older versions of Node erroneously returned signed integers for
12674 // uid + gid.
12675 return function (target, cb) {
12676 return orig.call(fs, target, function (er, stats) {
12677 if (!stats) return cb.apply(this, arguments)
12678 if (stats.uid < 0) stats.uid += 0x100000000
12679 if (stats.gid < 0) stats.gid += 0x100000000
12680 if (cb) cb.apply(this, arguments)
12681 })
12682 }
12683 }
12684
12685 function statFixSync (orig) {
12686 if (!orig) return orig
12687 // Older versions of Node erroneously returned signed integers for
12688 // uid + gid.
12689 return function (target) {
12690 var stats = orig.call(fs, target)
12691 if (stats.uid < 0) stats.uid += 0x100000000
12692 if (stats.gid < 0) stats.gid += 0x100000000
12693 return stats;
12694 }
12695 }
12696
12697 // ENOSYS means that the fs doesn't support the op. Just ignore
12698 // that, because it doesn't matter.
12699 //
12700 // if there's no getuid, or if getuid() is something other
12701 // than 0, and the error is EINVAL or EPERM, then just ignore
12702 // it.
12703 //
12704 // This specific case is a silent failure in cp, install, tar,
12705 // and most other unix tools that manage permissions.
12706 //
12707 // When running as root, or if other types of errors are
12708 // encountered, then it's strict.
12709 function chownErOk (er) {
12710 if (!er)
12711 return true
12712
12713 if (er.code === "ENOSYS")
12714 return true
12715
12716 var nonroot = !process.getuid || process.getuid() !== 0
12717 if (nonroot) {
12718 if (er.code === "EINVAL" || er.code === "EPERM")
12719 return true
12720 }
12721
12722 return false
12723 }
12724}
12725
12726
12727/***/ }),
12728
12729/***/ "./node_modules/has-flag/index.js":
12730/*!****************************************!*\
12731 !*** ./node_modules/has-flag/index.js ***!
12732 \****************************************/
12733/*! no static exports found */
12734/***/ (function(module, exports, __webpack_require__) {
12735
12736"use strict";
12737
12738module.exports = (flag, argv) => {
12739 argv = argv || process.argv;
12740 const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
12741 const pos = argv.indexOf(prefix + flag);
12742 const terminatorPos = argv.indexOf('--');
12743 return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
12744};
12745
12746
12747/***/ }),
12748
12749/***/ "./node_modules/iconv-lite/encodings/dbcs-codec.js":
12750/*!*********************************************************!*\
12751 !*** ./node_modules/iconv-lite/encodings/dbcs-codec.js ***!
12752 \*********************************************************/
12753/*! no static exports found */
12754/***/ (function(module, exports, __webpack_require__) {
12755
12756"use strict";
12757
12758var Buffer = __webpack_require__(/*! safer-buffer */ "./node_modules/safer-buffer/safer.js").Buffer;
12759
12760// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.
12761// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.
12762// To save memory and loading time, we read table files only when requested.
12763
12764exports._dbcs = DBCSCodec;
12765
12766var UNASSIGNED = -1,
12767 GB18030_CODE = -2,
12768 SEQ_START = -10,
12769 NODE_START = -1000,
12770 UNASSIGNED_NODE = new Array(0x100),
12771 DEF_CHAR = -1;
12772
12773for (var i = 0; i < 0x100; i++)
12774 UNASSIGNED_NODE[i] = UNASSIGNED;
12775
12776
12777// Class DBCSCodec reads and initializes mapping tables.
12778function DBCSCodec(codecOptions, iconv) {
12779 this.encodingName = codecOptions.encodingName;
12780 if (!codecOptions)
12781 throw new Error("DBCS codec is called without the data.")
12782 if (!codecOptions.table)
12783 throw new Error("Encoding '" + this.encodingName + "' has no data.");
12784
12785 // Load tables.
12786 var mappingTable = codecOptions.table();
12787
12788
12789 // Decode tables: MBCS -> Unicode.
12790
12791 // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.
12792 // Trie root is decodeTables[0].
12793 // Values: >= 0 -> unicode character code. can be > 0xFFFF
12794 // == UNASSIGNED -> unknown/unassigned sequence.
12795 // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.
12796 // <= NODE_START -> index of the next node in our trie to process next byte.
12797 // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq.
12798 this.decodeTables = [];
12799 this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node.
12800
12801 // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here.
12802 this.decodeTableSeq = [];
12803
12804 // Actual mapping tables consist of chunks. Use them to fill up decode tables.
12805 for (var i = 0; i < mappingTable.length; i++)
12806 this._addDecodeChunk(mappingTable[i]);
12807
12808 this.defaultCharUnicode = iconv.defaultCharUnicode;
12809
12810
12811 // Encode tables: Unicode -> DBCS.
12812
12813 // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.
12814 // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.
12815 // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).
12816 // == UNASSIGNED -> no conversion found. Output a default char.
12817 // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence.
12818 this.encodeTable = [];
12819
12820 // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of
12821 // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key
12822 // means end of sequence (needed when one sequence is a strict subsequence of another).
12823 // Objects are kept separately from encodeTable to increase performance.
12824 this.encodeTableSeq = [];
12825
12826 // Some chars can be decoded, but need not be encoded.
12827 var skipEncodeChars = {};
12828 if (codecOptions.encodeSkipVals)
12829 for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {
12830 var val = codecOptions.encodeSkipVals[i];
12831 if (typeof val === 'number')
12832 skipEncodeChars[val] = true;
12833 else
12834 for (var j = val.from; j <= val.to; j++)
12835 skipEncodeChars[j] = true;
12836 }
12837
12838 // Use decode trie to recursively fill out encode tables.
12839 this._fillEncodeTable(0, 0, skipEncodeChars);
12840
12841 // Add more encoding pairs when needed.
12842 if (codecOptions.encodeAdd) {
12843 for (var uChar in codecOptions.encodeAdd)
12844 if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
12845 this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
12846 }
12847
12848 this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
12849 if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?'];
12850 if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
12851
12852
12853 // Load & create GB18030 tables when needed.
12854 if (typeof codecOptions.gb18030 === 'function') {
12855 this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges.
12856
12857 // Add GB18030 decode tables.
12858 var thirdByteNodeIdx = this.decodeTables.length;
12859 var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0);
12860
12861 var fourthByteNodeIdx = this.decodeTables.length;
12862 var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0);
12863
12864 for (var i = 0x81; i <= 0xFE; i++) {
12865 var secondByteNodeIdx = NODE_START - this.decodeTables[0][i];
12866 var secondByteNode = this.decodeTables[secondByteNodeIdx];
12867 for (var j = 0x30; j <= 0x39; j++)
12868 secondByteNode[j] = NODE_START - thirdByteNodeIdx;
12869 }
12870 for (var i = 0x81; i <= 0xFE; i++)
12871 thirdByteNode[i] = NODE_START - fourthByteNodeIdx;
12872 for (var i = 0x30; i <= 0x39; i++)
12873 fourthByteNode[i] = GB18030_CODE
12874 }
12875}
12876
12877DBCSCodec.prototype.encoder = DBCSEncoder;
12878DBCSCodec.prototype.decoder = DBCSDecoder;
12879
12880// Decoder helpers
12881DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
12882 var bytes = [];
12883 for (; addr > 0; addr >>= 8)
12884 bytes.push(addr & 0xFF);
12885 if (bytes.length == 0)
12886 bytes.push(0);
12887
12888 var node = this.decodeTables[0];
12889 for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie.
12890 var val = node[bytes[i]];
12891
12892 if (val == UNASSIGNED) { // Create new node.
12893 node[bytes[i]] = NODE_START - this.decodeTables.length;
12894 this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
12895 }
12896 else if (val <= NODE_START) { // Existing node.
12897 node = this.decodeTables[NODE_START - val];
12898 }
12899 else
12900 throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
12901 }
12902 return node;
12903}
12904
12905
12906DBCSCodec.prototype._addDecodeChunk = function(chunk) {
12907 // First element of chunk is the hex mbcs code where we start.
12908 var curAddr = parseInt(chunk[0], 16);
12909
12910 // Choose the decoding node where we'll write our chars.
12911 var writeTable = this._getDecodeTrieNode(curAddr);
12912 curAddr = curAddr & 0xFF;
12913
12914 // Write all other elements of the chunk to the table.
12915 for (var k = 1; k < chunk.length; k++) {
12916 var part = chunk[k];
12917 if (typeof part === "string") { // String, write as-is.
12918 for (var l = 0; l < part.length;) {
12919 var code = part.charCodeAt(l++);
12920 if (0xD800 <= code && code < 0xDC00) { // Decode surrogate
12921 var codeTrail = part.charCodeAt(l++);
12922 if (0xDC00 <= codeTrail && codeTrail < 0xE000)
12923 writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00);
12924 else
12925 throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]);
12926 }
12927 else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used)
12928 var len = 0xFFF - code + 2;
12929 var seq = [];
12930 for (var m = 0; m < len; m++)
12931 seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq.
12932
12933 writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
12934 this.decodeTableSeq.push(seq);
12935 }
12936 else
12937 writeTable[curAddr++] = code; // Basic char
12938 }
12939 }
12940 else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character.
12941 var charCode = writeTable[curAddr - 1] + 1;
12942 for (var l = 0; l < part; l++)
12943 writeTable[curAddr++] = charCode++;
12944 }
12945 else
12946 throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]);
12947 }
12948 if (curAddr > 0xFF)
12949 throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
12950}
12951
12952// Encoder helpers
12953DBCSCodec.prototype._getEncodeBucket = function(uCode) {
12954 var high = uCode >> 8; // This could be > 0xFF because of astral characters.
12955 if (this.encodeTable[high] === undefined)
12956 this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand.
12957 return this.encodeTable[high];
12958}
12959
12960DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
12961 var bucket = this._getEncodeBucket(uCode);
12962 var low = uCode & 0xFF;
12963 if (bucket[low] <= SEQ_START)
12964 this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it.
12965 else if (bucket[low] == UNASSIGNED)
12966 bucket[low] = dbcsCode;
12967}
12968
12969DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
12970
12971 // Get the root of character tree according to first character of the sequence.
12972 var uCode = seq[0];
12973 var bucket = this._getEncodeBucket(uCode);
12974 var low = uCode & 0xFF;
12975
12976 var node;
12977 if (bucket[low] <= SEQ_START) {
12978 // There's already a sequence with - use it.
12979 node = this.encodeTableSeq[SEQ_START-bucket[low]];
12980 }
12981 else {
12982 // There was no sequence object - allocate a new one.
12983 node = {};
12984 if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence.
12985 bucket[low] = SEQ_START - this.encodeTableSeq.length;
12986 this.encodeTableSeq.push(node);
12987 }
12988
12989 // Traverse the character tree, allocating new nodes as needed.
12990 for (var j = 1; j < seq.length-1; j++) {
12991 var oldVal = node[uCode];
12992 if (typeof oldVal === 'object')
12993 node = oldVal;
12994 else {
12995 node = node[uCode] = {}
12996 if (oldVal !== undefined)
12997 node[DEF_CHAR] = oldVal
12998 }
12999 }
13000
13001 // Set the leaf to given dbcsCode.
13002 uCode = seq[seq.length-1];
13003 node[uCode] = dbcsCode;
13004}
13005
13006DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
13007 var node = this.decodeTables[nodeIdx];
13008 for (var i = 0; i < 0x100; i++) {
13009 var uCode = node[i];
13010 var mbCode = prefix + i;
13011 if (skipEncodeChars[mbCode])
13012 continue;
13013
13014 if (uCode >= 0)
13015 this._setEncodeChar(uCode, mbCode);
13016 else if (uCode <= NODE_START)
13017 this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars);
13018 else if (uCode <= SEQ_START)
13019 this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
13020 }
13021}
13022
13023
13024
13025// == Encoder ==================================================================
13026
13027function DBCSEncoder(options, codec) {
13028 // Encoder state
13029 this.leadSurrogate = -1;
13030 this.seqObj = undefined;
13031
13032 // Static data
13033 this.encodeTable = codec.encodeTable;
13034 this.encodeTableSeq = codec.encodeTableSeq;
13035 this.defaultCharSingleByte = codec.defCharSB;
13036 this.gb18030 = codec.gb18030;
13037}
13038
13039DBCSEncoder.prototype.write = function(str) {
13040 var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3)),
13041 leadSurrogate = this.leadSurrogate,
13042 seqObj = this.seqObj, nextChar = -1,
13043 i = 0, j = 0;
13044
13045 while (true) {
13046 // 0. Get next character.
13047 if (nextChar === -1) {
13048 if (i == str.length) break;
13049 var uCode = str.charCodeAt(i++);
13050 }
13051 else {
13052 var uCode = nextChar;
13053 nextChar = -1;
13054 }
13055
13056 // 1. Handle surrogates.
13057 if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates.
13058 if (uCode < 0xDC00) { // We've got lead surrogate.
13059 if (leadSurrogate === -1) {
13060 leadSurrogate = uCode;
13061 continue;
13062 } else {
13063 leadSurrogate = uCode;
13064 // Double lead surrogate found.
13065 uCode = UNASSIGNED;
13066 }
13067 } else { // We've got trail surrogate.
13068 if (leadSurrogate !== -1) {
13069 uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00);
13070 leadSurrogate = -1;
13071 } else {
13072 // Incomplete surrogate pair - only trail surrogate found.
13073 uCode = UNASSIGNED;
13074 }
13075
13076 }
13077 }
13078 else if (leadSurrogate !== -1) {
13079 // Incomplete surrogate pair - only lead surrogate found.
13080 nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char.
13081 leadSurrogate = -1;
13082 }
13083
13084 // 2. Convert uCode character.
13085 var dbcsCode = UNASSIGNED;
13086 if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence
13087 var resCode = seqObj[uCode];
13088 if (typeof resCode === 'object') { // Sequence continues.
13089 seqObj = resCode;
13090 continue;
13091
13092 } else if (typeof resCode == 'number') { // Sequence finished. Write it.
13093 dbcsCode = resCode;
13094
13095 } else if (resCode == undefined) { // Current character is not part of the sequence.
13096
13097 // Try default character for this sequence
13098 resCode = seqObj[DEF_CHAR];
13099 if (resCode !== undefined) {
13100 dbcsCode = resCode; // Found. Write it.
13101 nextChar = uCode; // Current character will be written too in the next iteration.
13102
13103 } else {
13104 // TODO: What if we have no default? (resCode == undefined)
13105 // Then, we should write first char of the sequence as-is and try the rest recursively.
13106 // Didn't do it for now because no encoding has this situation yet.
13107 // Currently, just skip the sequence and write current char.
13108 }
13109 }
13110 seqObj = undefined;
13111 }
13112 else if (uCode >= 0) { // Regular character
13113 var subtable = this.encodeTable[uCode >> 8];
13114 if (subtable !== undefined)
13115 dbcsCode = subtable[uCode & 0xFF];
13116
13117 if (dbcsCode <= SEQ_START) { // Sequence start
13118 seqObj = this.encodeTableSeq[SEQ_START-dbcsCode];
13119 continue;
13120 }
13121
13122 if (dbcsCode == UNASSIGNED && this.gb18030) {
13123 // Use GB18030 algorithm to find character(s) to write.
13124 var idx = findIdx(this.gb18030.uChars, uCode);
13125 if (idx != -1) {
13126 var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
13127 newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600;
13128 newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260;
13129 newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10;
13130 newBuf[j++] = 0x30 + dbcsCode;
13131 continue;
13132 }
13133 }
13134 }
13135
13136 // 3. Write dbcsCode character.
13137 if (dbcsCode === UNASSIGNED)
13138 dbcsCode = this.defaultCharSingleByte;
13139
13140 if (dbcsCode < 0x100) {
13141 newBuf[j++] = dbcsCode;
13142 }
13143 else if (dbcsCode < 0x10000) {
13144 newBuf[j++] = dbcsCode >> 8; // high byte
13145 newBuf[j++] = dbcsCode & 0xFF; // low byte
13146 }
13147 else {
13148 newBuf[j++] = dbcsCode >> 16;
13149 newBuf[j++] = (dbcsCode >> 8) & 0xFF;
13150 newBuf[j++] = dbcsCode & 0xFF;
13151 }
13152 }
13153
13154 this.seqObj = seqObj;
13155 this.leadSurrogate = leadSurrogate;
13156 return newBuf.slice(0, j);
13157}
13158
13159DBCSEncoder.prototype.end = function() {
13160 if (this.leadSurrogate === -1 && this.seqObj === undefined)
13161 return; // All clean. Most often case.
13162
13163 var newBuf = Buffer.alloc(10), j = 0;
13164
13165 if (this.seqObj) { // We're in the sequence.
13166 var dbcsCode = this.seqObj[DEF_CHAR];
13167 if (dbcsCode !== undefined) { // Write beginning of the sequence.
13168 if (dbcsCode < 0x100) {
13169 newBuf[j++] = dbcsCode;
13170 }
13171 else {
13172 newBuf[j++] = dbcsCode >> 8; // high byte
13173 newBuf[j++] = dbcsCode & 0xFF; // low byte
13174 }
13175 } else {
13176 // See todo above.
13177 }
13178 this.seqObj = undefined;
13179 }
13180
13181 if (this.leadSurrogate !== -1) {
13182 // Incomplete surrogate pair - only lead surrogate found.
13183 newBuf[j++] = this.defaultCharSingleByte;
13184 this.leadSurrogate = -1;
13185 }
13186
13187 return newBuf.slice(0, j);
13188}
13189
13190// Export for testing
13191DBCSEncoder.prototype.findIdx = findIdx;
13192
13193
13194// == Decoder ==================================================================
13195
13196function DBCSDecoder(options, codec) {
13197 // Decoder state
13198 this.nodeIdx = 0;
13199 this.prevBuf = Buffer.alloc(0);
13200
13201 // Static data
13202 this.decodeTables = codec.decodeTables;
13203 this.decodeTableSeq = codec.decodeTableSeq;
13204 this.defaultCharUnicode = codec.defaultCharUnicode;
13205 this.gb18030 = codec.gb18030;
13206}
13207
13208DBCSDecoder.prototype.write = function(buf) {
13209 var newBuf = Buffer.alloc(buf.length*2),
13210 nodeIdx = this.nodeIdx,
13211 prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length,
13212 seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence.
13213 uCode;
13214
13215 if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later.
13216 prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]);
13217
13218 for (var i = 0, j = 0; i < buf.length; i++) {
13219 var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset];
13220
13221 // Lookup in current trie node.
13222 var uCode = this.decodeTables[nodeIdx][curByte];
13223
13224 if (uCode >= 0) {
13225 // Normal character, just use it.
13226 }
13227 else if (uCode === UNASSIGNED) { // Unknown char.
13228 // TODO: Callback with seq.
13229 //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
13230 i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle).
13231 uCode = this.defaultCharUnicode.charCodeAt(0);
13232 }
13233 else if (uCode === GB18030_CODE) {
13234 var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
13235 var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30);
13236 var idx = findIdx(this.gb18030.gbChars, ptr);
13237 uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
13238 }
13239 else if (uCode <= NODE_START) { // Go to next trie node.
13240 nodeIdx = NODE_START - uCode;
13241 continue;
13242 }
13243 else if (uCode <= SEQ_START) { // Output a sequence of chars.
13244 var seq = this.decodeTableSeq[SEQ_START - uCode];
13245 for (var k = 0; k < seq.length - 1; k++) {
13246 uCode = seq[k];
13247 newBuf[j++] = uCode & 0xFF;
13248 newBuf[j++] = uCode >> 8;
13249 }
13250 uCode = seq[seq.length-1];
13251 }
13252 else
13253 throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
13254
13255 // Write the character to buffer, handling higher planes using surrogate pair.
13256 if (uCode > 0xFFFF) {
13257 uCode -= 0x10000;
13258 var uCodeLead = 0xD800 + Math.floor(uCode / 0x400);
13259 newBuf[j++] = uCodeLead & 0xFF;
13260 newBuf[j++] = uCodeLead >> 8;
13261
13262 uCode = 0xDC00 + uCode % 0x400;
13263 }
13264 newBuf[j++] = uCode & 0xFF;
13265 newBuf[j++] = uCode >> 8;
13266
13267 // Reset trie node.
13268 nodeIdx = 0; seqStart = i+1;
13269 }
13270
13271 this.nodeIdx = nodeIdx;
13272 this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset);
13273 return newBuf.slice(0, j).toString('ucs2');
13274}
13275
13276DBCSDecoder.prototype.end = function() {
13277 var ret = '';
13278
13279 // Try to parse all remaining chars.
13280 while (this.prevBuf.length > 0) {
13281 // Skip 1 character in the buffer.
13282 ret += this.defaultCharUnicode;
13283 var buf = this.prevBuf.slice(1);
13284
13285 // Parse remaining as usual.
13286 this.prevBuf = Buffer.alloc(0);
13287 this.nodeIdx = 0;
13288 if (buf.length > 0)
13289 ret += this.write(buf);
13290 }
13291
13292 this.nodeIdx = 0;
13293 return ret;
13294}
13295
13296// Binary search for GB18030. Returns largest i such that table[i] <= val.
13297function findIdx(table, val) {
13298 if (table[0] > val)
13299 return -1;
13300
13301 var l = 0, r = table.length;
13302 while (l < r-1) { // always table[l] <= val < table[r]
13303 var mid = l + Math.floor((r-l+1)/2);
13304 if (table[mid] <= val)
13305 l = mid;
13306 else
13307 r = mid;
13308 }
13309 return l;
13310}
13311
13312
13313
13314/***/ }),
13315
13316/***/ "./node_modules/iconv-lite/encodings/dbcs-data.js":
13317/*!********************************************************!*\
13318 !*** ./node_modules/iconv-lite/encodings/dbcs-data.js ***!
13319 \********************************************************/
13320/*! no static exports found */
13321/***/ (function(module, exports, __webpack_require__) {
13322
13323"use strict";
13324
13325
13326// Description of supported double byte encodings and aliases.
13327// Tables are not require()-d until they are needed to speed up library load.
13328// require()-s are direct to support Browserify.
13329
13330module.exports = {
13331
13332 // == Japanese/ShiftJIS ====================================================
13333 // All japanese encodings are based on JIS X set of standards:
13334 // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
13335 // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.
13336 // Has several variations in 1978, 1983, 1990 and 1997.
13337 // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
13338 // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
13339 // 2 planes, first is superset of 0208, second - revised 0212.
13340 // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
13341
13342 // Byte encodings are:
13343 // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
13344 // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
13345 // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
13346 // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.
13347 // 0x00-0x7F - lower part of 0201
13348 // 0x8E, 0xA1-0xDF - upper part of 0201
13349 // (0xA1-0xFE)x2 - 0208 plane (94x94).
13350 // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
13351 // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
13352 // Used as-is in ISO2022 family.
13353 // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,
13354 // 0201-1976 Roman, 0208-1978, 0208-1983.
13355 // * ISO2022-JP-1: Adds esc seq for 0212-1990.
13356 // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
13357 // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
13358 // * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
13359 //
13360 // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
13361 //
13362 // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
13363
13364 'shiftjis': {
13365 type: '_dbcs',
13366 table: function() { return __webpack_require__(/*! ./tables/shiftjis.json */ "./node_modules/iconv-lite/encodings/tables/shiftjis.json") },
13367 encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E},
13368 encodeSkipVals: [{from: 0xED40, to: 0xF940}],
13369 },
13370 'csshiftjis': 'shiftjis',
13371 'mskanji': 'shiftjis',
13372 'sjis': 'shiftjis',
13373 'windows31j': 'shiftjis',
13374 'ms31j': 'shiftjis',
13375 'xsjis': 'shiftjis',
13376 'windows932': 'shiftjis',
13377 'ms932': 'shiftjis',
13378 '932': 'shiftjis',
13379 'cp932': 'shiftjis',
13380
13381 'eucjp': {
13382 type: '_dbcs',
13383 table: function() { return __webpack_require__(/*! ./tables/eucjp.json */ "./node_modules/iconv-lite/encodings/tables/eucjp.json") },
13384 encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E},
13385 },
13386
13387 // TODO: KDDI extension to Shift_JIS
13388 // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
13389 // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
13390
13391
13392 // == Chinese/GBK ==========================================================
13393 // http://en.wikipedia.org/wiki/GBK
13394 // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
13395
13396 // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
13397 'gb2312': 'cp936',
13398 'gb231280': 'cp936',
13399 'gb23121980': 'cp936',
13400 'csgb2312': 'cp936',
13401 'csiso58gb231280': 'cp936',
13402 'euccn': 'cp936',
13403
13404 // Microsoft's CP936 is a subset and approximation of GBK.
13405 'windows936': 'cp936',
13406 'ms936': 'cp936',
13407 '936': 'cp936',
13408 'cp936': {
13409 type: '_dbcs',
13410 table: function() { return __webpack_require__(/*! ./tables/cp936.json */ "./node_modules/iconv-lite/encodings/tables/cp936.json") },
13411 },
13412
13413 // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
13414 'gbk': {
13415 type: '_dbcs',
13416 table: function() { return __webpack_require__(/*! ./tables/cp936.json */ "./node_modules/iconv-lite/encodings/tables/cp936.json").concat(__webpack_require__(/*! ./tables/gbk-added.json */ "./node_modules/iconv-lite/encodings/tables/gbk-added.json")) },
13417 },
13418 'xgbk': 'gbk',
13419 'isoir58': 'gbk',
13420
13421 // GB18030 is an algorithmic extension of GBK.
13422 // Main source: https://www.w3.org/TR/encoding/#gbk-encoder
13423 // http://icu-project.org/docs/papers/gb18030.html
13424 // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
13425 // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
13426 'gb18030': {
13427 type: '_dbcs',
13428 table: function() { return __webpack_require__(/*! ./tables/cp936.json */ "./node_modules/iconv-lite/encodings/tables/cp936.json").concat(__webpack_require__(/*! ./tables/gbk-added.json */ "./node_modules/iconv-lite/encodings/tables/gbk-added.json")) },
13429 gb18030: function() { return __webpack_require__(/*! ./tables/gb18030-ranges.json */ "./node_modules/iconv-lite/encodings/tables/gb18030-ranges.json") },
13430 encodeSkipVals: [0x80],
13431 encodeAdd: {'€': 0xA2E3},
13432 },
13433
13434 'chinese': 'gb18030',
13435
13436
13437 // == Korean ===============================================================
13438 // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
13439 'windows949': 'cp949',
13440 'ms949': 'cp949',
13441 '949': 'cp949',
13442 'cp949': {
13443 type: '_dbcs',
13444 table: function() { return __webpack_require__(/*! ./tables/cp949.json */ "./node_modules/iconv-lite/encodings/tables/cp949.json") },
13445 },
13446
13447 'cseuckr': 'cp949',
13448 'csksc56011987': 'cp949',
13449 'euckr': 'cp949',
13450 'isoir149': 'cp949',
13451 'korean': 'cp949',
13452 'ksc56011987': 'cp949',
13453 'ksc56011989': 'cp949',
13454 'ksc5601': 'cp949',
13455
13456
13457 // == Big5/Taiwan/Hong Kong ================================================
13458 // There are lots of tables for Big5 and cp950. Please see the following links for history:
13459 // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
13460 // Variations, in roughly number of defined chars:
13461 // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
13462 // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
13463 // * Big5-2003 (Taiwan standard) almost superset of cp950.
13464 // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
13465 // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.
13466 // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
13467 // Plus, it has 4 combining sequences.
13468 // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
13469 // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
13470 // Implementations are not consistent within browsers; sometimes labeled as just big5.
13471 // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
13472 // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
13473 // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
13474 // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
13475 // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
13476 //
13477 // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
13478 // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
13479
13480 'windows950': 'cp950',
13481 'ms950': 'cp950',
13482 '950': 'cp950',
13483 'cp950': {
13484 type: '_dbcs',
13485 table: function() { return __webpack_require__(/*! ./tables/cp950.json */ "./node_modules/iconv-lite/encodings/tables/cp950.json") },
13486 },
13487
13488 // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
13489 'big5': 'big5hkscs',
13490 'big5hkscs': {
13491 type: '_dbcs',
13492 table: function() { return __webpack_require__(/*! ./tables/cp950.json */ "./node_modules/iconv-lite/encodings/tables/cp950.json").concat(__webpack_require__(/*! ./tables/big5-added.json */ "./node_modules/iconv-lite/encodings/tables/big5-added.json")) },
13493 encodeSkipVals: [0xa2cc],
13494 },
13495
13496 'cnbig5': 'big5hkscs',
13497 'csbig5': 'big5hkscs',
13498 'xxbig5': 'big5hkscs',
13499};
13500
13501
13502/***/ }),
13503
13504/***/ "./node_modules/iconv-lite/encodings/index.js":
13505/*!****************************************************!*\
13506 !*** ./node_modules/iconv-lite/encodings/index.js ***!
13507 \****************************************************/
13508/*! no static exports found */
13509/***/ (function(module, exports, __webpack_require__) {
13510
13511"use strict";
13512
13513
13514// Update this array if you add/rename/remove files in this directory.
13515// We support Browserify by skipping automatic module discovery and requiring modules directly.
13516var modules = [
13517 __webpack_require__(/*! ./internal */ "./node_modules/iconv-lite/encodings/internal.js"),
13518 __webpack_require__(/*! ./utf16 */ "./node_modules/iconv-lite/encodings/utf16.js"),
13519 __webpack_require__(/*! ./utf7 */ "./node_modules/iconv-lite/encodings/utf7.js"),
13520 __webpack_require__(/*! ./sbcs-codec */ "./node_modules/iconv-lite/encodings/sbcs-codec.js"),
13521 __webpack_require__(/*! ./sbcs-data */ "./node_modules/iconv-lite/encodings/sbcs-data.js"),
13522 __webpack_require__(/*! ./sbcs-data-generated */ "./node_modules/iconv-lite/encodings/sbcs-data-generated.js"),
13523 __webpack_require__(/*! ./dbcs-codec */ "./node_modules/iconv-lite/encodings/dbcs-codec.js"),
13524 __webpack_require__(/*! ./dbcs-data */ "./node_modules/iconv-lite/encodings/dbcs-data.js"),
13525];
13526
13527// Put all encoding/alias/codec definitions to single object and export it.
13528for (var i = 0; i < modules.length; i++) {
13529 var module = modules[i];
13530 for (var enc in module)
13531 if (Object.prototype.hasOwnProperty.call(module, enc))
13532 exports[enc] = module[enc];
13533}
13534
13535
13536/***/ }),
13537
13538/***/ "./node_modules/iconv-lite/encodings/internal.js":
13539/*!*******************************************************!*\
13540 !*** ./node_modules/iconv-lite/encodings/internal.js ***!
13541 \*******************************************************/
13542/*! no static exports found */
13543/***/ (function(module, exports, __webpack_require__) {
13544
13545"use strict";
13546
13547var Buffer = __webpack_require__(/*! safer-buffer */ "./node_modules/safer-buffer/safer.js").Buffer;
13548
13549// Export Node.js internal encodings.
13550
13551module.exports = {
13552 // Encodings
13553 utf8: { type: "_internal", bomAware: true},
13554 cesu8: { type: "_internal", bomAware: true},
13555 unicode11utf8: "utf8",
13556
13557 ucs2: { type: "_internal", bomAware: true},
13558 utf16le: "ucs2",
13559
13560 binary: { type: "_internal" },
13561 base64: { type: "_internal" },
13562 hex: { type: "_internal" },
13563
13564 // Codec.
13565 _internal: InternalCodec,
13566};
13567
13568//------------------------------------------------------------------------------
13569
13570function InternalCodec(codecOptions, iconv) {
13571 this.enc = codecOptions.encodingName;
13572 this.bomAware = codecOptions.bomAware;
13573
13574 if (this.enc === "base64")
13575 this.encoder = InternalEncoderBase64;
13576 else if (this.enc === "cesu8") {
13577 this.enc = "utf8"; // Use utf8 for decoding.
13578 this.encoder = InternalEncoderCesu8;
13579
13580 // Add decoder for versions of Node not supporting CESU-8
13581 if (Buffer.from('eda0bdedb2a9', 'hex').toString() !== '💩') {
13582 this.decoder = InternalDecoderCesu8;
13583 this.defaultCharUnicode = iconv.defaultCharUnicode;
13584 }
13585 }
13586}
13587
13588InternalCodec.prototype.encoder = InternalEncoder;
13589InternalCodec.prototype.decoder = InternalDecoder;
13590
13591//------------------------------------------------------------------------------
13592
13593// We use node.js internal decoder. Its signature is the same as ours.
13594var StringDecoder = __webpack_require__(/*! string_decoder */ "string_decoder").StringDecoder;
13595
13596if (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method.
13597 StringDecoder.prototype.end = function() {};
13598
13599
13600function InternalDecoder(options, codec) {
13601 StringDecoder.call(this, codec.enc);
13602}
13603
13604InternalDecoder.prototype = StringDecoder.prototype;
13605
13606
13607//------------------------------------------------------------------------------
13608// Encoder is mostly trivial
13609
13610function InternalEncoder(options, codec) {
13611 this.enc = codec.enc;
13612}
13613
13614InternalEncoder.prototype.write = function(str) {
13615 return Buffer.from(str, this.enc);
13616}
13617
13618InternalEncoder.prototype.end = function() {
13619}
13620
13621
13622//------------------------------------------------------------------------------
13623// Except base64 encoder, which must keep its state.
13624
13625function InternalEncoderBase64(options, codec) {
13626 this.prevStr = '';
13627}
13628
13629InternalEncoderBase64.prototype.write = function(str) {
13630 str = this.prevStr + str;
13631 var completeQuads = str.length - (str.length % 4);
13632 this.prevStr = str.slice(completeQuads);
13633 str = str.slice(0, completeQuads);
13634
13635 return Buffer.from(str, "base64");
13636}
13637
13638InternalEncoderBase64.prototype.end = function() {
13639 return Buffer.from(this.prevStr, "base64");
13640}
13641
13642
13643//------------------------------------------------------------------------------
13644// CESU-8 encoder is also special.
13645
13646function InternalEncoderCesu8(options, codec) {
13647}
13648
13649InternalEncoderCesu8.prototype.write = function(str) {
13650 var buf = Buffer.alloc(str.length * 3), bufIdx = 0;
13651 for (var i = 0; i < str.length; i++) {
13652 var charCode = str.charCodeAt(i);
13653 // Naive implementation, but it works because CESU-8 is especially easy
13654 // to convert from UTF-16 (which all JS strings are encoded in).
13655 if (charCode < 0x80)
13656 buf[bufIdx++] = charCode;
13657 else if (charCode < 0x800) {
13658 buf[bufIdx++] = 0xC0 + (charCode >>> 6);
13659 buf[bufIdx++] = 0x80 + (charCode & 0x3f);
13660 }
13661 else { // charCode will always be < 0x10000 in javascript.
13662 buf[bufIdx++] = 0xE0 + (charCode >>> 12);
13663 buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f);
13664 buf[bufIdx++] = 0x80 + (charCode & 0x3f);
13665 }
13666 }
13667 return buf.slice(0, bufIdx);
13668}
13669
13670InternalEncoderCesu8.prototype.end = function() {
13671}
13672
13673//------------------------------------------------------------------------------
13674// CESU-8 decoder is not implemented in Node v4.0+
13675
13676function InternalDecoderCesu8(options, codec) {
13677 this.acc = 0;
13678 this.contBytes = 0;
13679 this.accBytes = 0;
13680 this.defaultCharUnicode = codec.defaultCharUnicode;
13681}
13682
13683InternalDecoderCesu8.prototype.write = function(buf) {
13684 var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes,
13685 res = '';
13686 for (var i = 0; i < buf.length; i++) {
13687 var curByte = buf[i];
13688 if ((curByte & 0xC0) !== 0x80) { // Leading byte
13689 if (contBytes > 0) { // Previous code is invalid
13690 res += this.defaultCharUnicode;
13691 contBytes = 0;
13692 }
13693
13694 if (curByte < 0x80) { // Single-byte code
13695 res += String.fromCharCode(curByte);
13696 } else if (curByte < 0xE0) { // Two-byte code
13697 acc = curByte & 0x1F;
13698 contBytes = 1; accBytes = 1;
13699 } else if (curByte < 0xF0) { // Three-byte code
13700 acc = curByte & 0x0F;
13701 contBytes = 2; accBytes = 1;
13702 } else { // Four or more are not supported for CESU-8.
13703 res += this.defaultCharUnicode;
13704 }
13705 } else { // Continuation byte
13706 if (contBytes > 0) { // We're waiting for it.
13707 acc = (acc << 6) | (curByte & 0x3f);
13708 contBytes--; accBytes++;
13709 if (contBytes === 0) {
13710 // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)
13711 if (accBytes === 2 && acc < 0x80 && acc > 0)
13712 res += this.defaultCharUnicode;
13713 else if (accBytes === 3 && acc < 0x800)
13714 res += this.defaultCharUnicode;
13715 else
13716 // Actually add character.
13717 res += String.fromCharCode(acc);
13718 }
13719 } else { // Unexpected continuation byte
13720 res += this.defaultCharUnicode;
13721 }
13722 }
13723 }
13724 this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes;
13725 return res;
13726}
13727
13728InternalDecoderCesu8.prototype.end = function() {
13729 var res = 0;
13730 if (this.contBytes > 0)
13731 res += this.defaultCharUnicode;
13732 return res;
13733}
13734
13735
13736/***/ }),
13737
13738/***/ "./node_modules/iconv-lite/encodings/sbcs-codec.js":
13739/*!*********************************************************!*\
13740 !*** ./node_modules/iconv-lite/encodings/sbcs-codec.js ***!
13741 \*********************************************************/
13742/*! no static exports found */
13743/***/ (function(module, exports, __webpack_require__) {
13744
13745"use strict";
13746
13747var Buffer = __webpack_require__(/*! safer-buffer */ "./node_modules/safer-buffer/safer.js").Buffer;
13748
13749// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that
13750// correspond to encoded bytes (if 128 - then lower half is ASCII).
13751
13752exports._sbcs = SBCSCodec;
13753function SBCSCodec(codecOptions, iconv) {
13754 if (!codecOptions)
13755 throw new Error("SBCS codec is called without the data.")
13756
13757 // Prepare char buffer for decoding.
13758 if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256))
13759 throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)");
13760
13761 if (codecOptions.chars.length === 128) {
13762 var asciiString = "";
13763 for (var i = 0; i < 128; i++)
13764 asciiString += String.fromCharCode(i);
13765 codecOptions.chars = asciiString + codecOptions.chars;
13766 }
13767
13768 this.decodeBuf = Buffer.from(codecOptions.chars, 'ucs2');
13769
13770 // Encoding buffer.
13771 var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
13772
13773 for (var i = 0; i < codecOptions.chars.length; i++)
13774 encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
13775
13776 this.encodeBuf = encodeBuf;
13777}
13778
13779SBCSCodec.prototype.encoder = SBCSEncoder;
13780SBCSCodec.prototype.decoder = SBCSDecoder;
13781
13782
13783function SBCSEncoder(options, codec) {
13784 this.encodeBuf = codec.encodeBuf;
13785}
13786
13787SBCSEncoder.prototype.write = function(str) {
13788 var buf = Buffer.alloc(str.length);
13789 for (var i = 0; i < str.length; i++)
13790 buf[i] = this.encodeBuf[str.charCodeAt(i)];
13791
13792 return buf;
13793}
13794
13795SBCSEncoder.prototype.end = function() {
13796}
13797
13798
13799function SBCSDecoder(options, codec) {
13800 this.decodeBuf = codec.decodeBuf;
13801}
13802
13803SBCSDecoder.prototype.write = function(buf) {
13804 // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.
13805 var decodeBuf = this.decodeBuf;
13806 var newBuf = Buffer.alloc(buf.length*2);
13807 var idx1 = 0, idx2 = 0;
13808 for (var i = 0; i < buf.length; i++) {
13809 idx1 = buf[i]*2; idx2 = i*2;
13810 newBuf[idx2] = decodeBuf[idx1];
13811 newBuf[idx2+1] = decodeBuf[idx1+1];
13812 }
13813 return newBuf.toString('ucs2');
13814}
13815
13816SBCSDecoder.prototype.end = function() {
13817}
13818
13819
13820/***/ }),
13821
13822/***/ "./node_modules/iconv-lite/encodings/sbcs-data-generated.js":
13823/*!******************************************************************!*\
13824 !*** ./node_modules/iconv-lite/encodings/sbcs-data-generated.js ***!
13825 \******************************************************************/
13826/*! no static exports found */
13827/***/ (function(module, exports, __webpack_require__) {
13828
13829"use strict";
13830
13831
13832// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script.
13833module.exports = {
13834 "437": "cp437",
13835 "737": "cp737",
13836 "775": "cp775",
13837 "850": "cp850",
13838 "852": "cp852",
13839 "855": "cp855",
13840 "856": "cp856",
13841 "857": "cp857",
13842 "858": "cp858",
13843 "860": "cp860",
13844 "861": "cp861",
13845 "862": "cp862",
13846 "863": "cp863",
13847 "864": "cp864",
13848 "865": "cp865",
13849 "866": "cp866",
13850 "869": "cp869",
13851 "874": "windows874",
13852 "922": "cp922",
13853 "1046": "cp1046",
13854 "1124": "cp1124",
13855 "1125": "cp1125",
13856 "1129": "cp1129",
13857 "1133": "cp1133",
13858 "1161": "cp1161",
13859 "1162": "cp1162",
13860 "1163": "cp1163",
13861 "1250": "windows1250",
13862 "1251": "windows1251",
13863 "1252": "windows1252",
13864 "1253": "windows1253",
13865 "1254": "windows1254",
13866 "1255": "windows1255",
13867 "1256": "windows1256",
13868 "1257": "windows1257",
13869 "1258": "windows1258",
13870 "28591": "iso88591",
13871 "28592": "iso88592",
13872 "28593": "iso88593",
13873 "28594": "iso88594",
13874 "28595": "iso88595",
13875 "28596": "iso88596",
13876 "28597": "iso88597",
13877 "28598": "iso88598",
13878 "28599": "iso88599",
13879 "28600": "iso885910",
13880 "28601": "iso885911",
13881 "28603": "iso885913",
13882 "28604": "iso885914",
13883 "28605": "iso885915",
13884 "28606": "iso885916",
13885 "windows874": {
13886 "type": "_sbcs",
13887 "chars": "€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
13888 },
13889 "win874": "windows874",
13890 "cp874": "windows874",
13891 "windows1250": {
13892 "type": "_sbcs",
13893 "chars": "€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
13894 },
13895 "win1250": "windows1250",
13896 "cp1250": "windows1250",
13897 "windows1251": {
13898 "type": "_sbcs",
13899 "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
13900 },
13901 "win1251": "windows1251",
13902 "cp1251": "windows1251",
13903 "windows1252": {
13904 "type": "_sbcs",
13905 "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
13906 },
13907 "win1252": "windows1252",
13908 "cp1252": "windows1252",
13909 "windows1253": {
13910 "type": "_sbcs",
13911 "chars": "€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
13912 },
13913 "win1253": "windows1253",
13914 "cp1253": "windows1253",
13915 "windows1254": {
13916 "type": "_sbcs",
13917 "chars": "€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
13918 },
13919 "win1254": "windows1254",
13920 "cp1254": "windows1254",
13921 "windows1255": {
13922 "type": "_sbcs",
13923 "chars": "€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"
13924 },
13925 "win1255": "windows1255",
13926 "cp1255": "windows1255",
13927 "windows1256": {
13928 "type": "_sbcs",
13929 "chars": "€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے"
13930 },
13931 "win1256": "windows1256",
13932 "cp1256": "windows1256",
13933 "windows1257": {
13934 "type": "_sbcs",
13935 "chars": "€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙"
13936 },
13937 "win1257": "windows1257",
13938 "cp1257": "windows1257",
13939 "windows1258": {
13940 "type": "_sbcs",
13941 "chars": "€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
13942 },
13943 "win1258": "windows1258",
13944 "cp1258": "windows1258",
13945 "iso88591": {
13946 "type": "_sbcs",
13947 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
13948 },
13949 "cp28591": "iso88591",
13950 "iso88592": {
13951 "type": "_sbcs",
13952 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"
13953 },
13954 "cp28592": "iso88592",
13955 "iso88593": {
13956 "type": "_sbcs",
13957 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ħ˘£¤�Ĥ§¨İŞĞĴ­�Ż°ħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙"
13958 },
13959 "cp28593": "iso88593",
13960 "iso88594": {
13961 "type": "_sbcs",
13962 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤ĨĻ§¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩļˇ¸šēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖ×ØŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙"
13963 },
13964 "cp28594": "iso88594",
13965 "iso88595": {
13966 "type": "_sbcs",
13967 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ"
13968 },
13969 "cp28595": "iso88595",
13970 "iso88596": {
13971 "type": "_sbcs",
13972 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������"
13973 },
13974 "cp28596": "iso88596",
13975 "iso88597": {
13976 "type": "_sbcs",
13977 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"
13978 },
13979 "cp28597": "iso88597",
13980 "iso88598": {
13981 "type": "_sbcs",
13982 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"
13983 },
13984 "cp28598": "iso88598",
13985 "iso88599": {
13986 "type": "_sbcs",
13987 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"
13988 },
13989 "cp28599": "iso88599",
13990 "iso885910": {
13991 "type": "_sbcs",
13992 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨĶ§ĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ"
13993 },
13994 "cp28600": "iso885910",
13995 "iso885911": {
13996 "type": "_sbcs",
13997 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
13998 },
13999 "cp28601": "iso885911",
14000 "iso885913": {
14001 "type": "_sbcs",
14002 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’"
14003 },
14004 "cp28603": "iso885913",
14005 "iso885914": {
14006 "type": "_sbcs",
14007 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ"
14008 },
14009 "cp28604": "iso885914",
14010 "iso885915": {
14011 "type": "_sbcs",
14012 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
14013 },
14014 "cp28605": "iso885915",
14015 "iso885916": {
14016 "type": "_sbcs",
14017 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄąŁ€„Š§š©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ"
14018 },
14019 "cp28606": "iso885916",
14020 "cp437": {
14021 "type": "_sbcs",
14022 "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
14023 },
14024 "ibm437": "cp437",
14025 "csibm437": "cp437",
14026 "cp737": {
14027 "type": "_sbcs",
14028 "chars": "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ "
14029 },
14030 "ibm737": "cp737",
14031 "csibm737": "cp737",
14032 "cp775": {
14033 "type": "_sbcs",
14034 "chars": "ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£ØפĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ "
14035 },
14036 "ibm775": "cp775",
14037 "csibm775": "cp775",
14038 "cp850": {
14039 "type": "_sbcs",
14040 "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ "
14041 },
14042 "ibm850": "cp850",
14043 "csibm850": "cp850",
14044 "cp852": {
14045 "type": "_sbcs",
14046 "chars": "ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ "
14047 },
14048 "ibm852": "cp852",
14049 "csibm852": "cp852",
14050 "cp855": {
14051 "type": "_sbcs",
14052 "chars": "ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ "
14053 },
14054 "ibm855": "cp855",
14055 "csibm855": "cp855",
14056 "cp856": {
14057 "type": "_sbcs",
14058 "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ "
14059 },
14060 "ibm856": "cp856",
14061 "csibm856": "cp856",
14062 "cp857": {
14063 "type": "_sbcs",
14064 "chars": "ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ "
14065 },
14066 "ibm857": "cp857",
14067 "csibm857": "cp857",
14068 "cp858": {
14069 "type": "_sbcs",
14070 "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ "
14071 },
14072 "ibm858": "cp858",
14073 "csibm858": "cp858",
14074 "cp860": {
14075 "type": "_sbcs",
14076 "chars": "ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
14077 },
14078 "ibm860": "cp860",
14079 "csibm860": "cp860",
14080 "cp861": {
14081 "type": "_sbcs",
14082 "chars": "ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
14083 },
14084 "ibm861": "cp861",
14085 "csibm861": "cp861",
14086 "cp862": {
14087 "type": "_sbcs",
14088 "chars": "אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
14089 },
14090 "ibm862": "cp862",
14091 "csibm862": "cp862",
14092 "cp863": {
14093 "type": "_sbcs",
14094 "chars": "ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
14095 },
14096 "ibm863": "cp863",
14097 "csibm863": "cp863",
14098 "cp864": {
14099 "type": "_sbcs",
14100 "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�"
14101 },
14102 "ibm864": "cp864",
14103 "csibm864": "cp864",
14104 "cp865": {
14105 "type": "_sbcs",
14106 "chars": "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
14107 },
14108 "ibm865": "cp865",
14109 "csibm865": "cp865",
14110 "cp866": {
14111 "type": "_sbcs",
14112 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "
14113 },
14114 "ibm866": "cp866",
14115 "csibm866": "cp866",
14116 "cp869": {
14117 "type": "_sbcs",
14118 "chars": "������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ "
14119 },
14120 "ibm869": "cp869",
14121 "csibm869": "cp869",
14122 "cp922": {
14123 "type": "_sbcs",
14124 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖ×ØÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ"
14125 },
14126 "ibm922": "cp922",
14127 "csibm922": "cp922",
14128 "cp1046": {
14129 "type": "_sbcs",
14130 "chars": "ﺈ×÷ﹱˆ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�"
14131 },
14132 "ibm1046": "cp1046",
14133 "csibm1046": "cp1046",
14134 "cp1124": {
14135 "type": "_sbcs",
14136 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ"
14137 },
14138 "ibm1124": "cp1124",
14139 "csibm1124": "cp1124",
14140 "cp1125": {
14141 "type": "_sbcs",
14142 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ "
14143 },
14144 "ibm1125": "cp1125",
14145 "csibm1125": "cp1125",
14146 "cp1129": {
14147 "type": "_sbcs",
14148 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
14149 },
14150 "ibm1129": "cp1129",
14151 "csibm1129": "cp1129",
14152 "cp1133": {
14153 "type": "_sbcs",
14154 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�"
14155 },
14156 "ibm1133": "cp1133",
14157 "csibm1133": "cp1133",
14158 "cp1161": {
14159 "type": "_sbcs",
14160 "chars": "��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ "
14161 },
14162 "ibm1161": "cp1161",
14163 "csibm1161": "cp1161",
14164 "cp1162": {
14165 "type": "_sbcs",
14166 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
14167 },
14168 "ibm1162": "cp1162",
14169 "csibm1162": "cp1162",
14170 "cp1163": {
14171 "type": "_sbcs",
14172 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"
14173 },
14174 "ibm1163": "cp1163",
14175 "csibm1163": "cp1163",
14176 "maccroatian": {
14177 "type": "_sbcs",
14178 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈Ć«Č… ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ"
14179 },
14180 "maccyrillic": {
14181 "type": "_sbcs",
14182 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
14183 },
14184 "macgreek": {
14185 "type": "_sbcs",
14186 "chars": "Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"
14187 },
14188 "maciceland": {
14189 "type": "_sbcs",
14190 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
14191 },
14192 "macroman": {
14193 "type": "_sbcs",
14194 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
14195 },
14196 "macromania": {
14197 "type": "_sbcs",
14198 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
14199 },
14200 "macthai": {
14201 "type": "_sbcs",
14202 "chars": "«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����"
14203 },
14204 "macturkish": {
14205 "type": "_sbcs",
14206 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"
14207 },
14208 "macukraine": {
14209 "type": "_sbcs",
14210 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"
14211 },
14212 "koi8r": {
14213 "type": "_sbcs",
14214 "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
14215 },
14216 "koi8u": {
14217 "type": "_sbcs",
14218 "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
14219 },
14220 "koi8ru": {
14221 "type": "_sbcs",
14222 "chars": "─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
14223 },
14224 "koi8t": {
14225 "type": "_sbcs",
14226 "chars": "қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"
14227 },
14228 "armscii8": {
14229 "type": "_sbcs",
14230 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�"
14231 },
14232 "rk1048": {
14233 "type": "_sbcs",
14234 "chars": "ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
14235 },
14236 "tcvn": {
14237 "type": "_sbcs",
14238 "chars": "\u0000ÚỤ\u0003ỪỬỮ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010ỨỰỲỶỸÝỴ\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ"
14239 },
14240 "georgianacademy": {
14241 "type": "_sbcs",
14242 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
14243 },
14244 "georgianps": {
14245 "type": "_sbcs",
14246 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
14247 },
14248 "pt154": {
14249 "type": "_sbcs",
14250 "chars": "ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"
14251 },
14252 "viscii": {
14253 "type": "_sbcs",
14254 "chars": "\u0000\u0001Ẳ\u0003\u0004ẴẪ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013Ỷ\u0015\u0016\u0017\u0018Ỹ\u001a\u001b\u001c\u001dỴ\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ"
14255 },
14256 "iso646cn": {
14257 "type": "_sbcs",
14258 "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"
14259 },
14260 "iso646jp": {
14261 "type": "_sbcs",
14262 "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"
14263 },
14264 "hproman8": {
14265 "type": "_sbcs",
14266 "chars": "€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�"
14267 },
14268 "macintosh": {
14269 "type": "_sbcs",
14270 "chars": "ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"
14271 },
14272 "ascii": {
14273 "type": "_sbcs",
14274 "chars": "��������������������������������������������������������������������������������������������������������������������������������"
14275 },
14276 "tis620": {
14277 "type": "_sbcs",
14278 "chars": "���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"
14279 }
14280}
14281
14282/***/ }),
14283
14284/***/ "./node_modules/iconv-lite/encodings/sbcs-data.js":
14285/*!********************************************************!*\
14286 !*** ./node_modules/iconv-lite/encodings/sbcs-data.js ***!
14287 \********************************************************/
14288/*! no static exports found */
14289/***/ (function(module, exports, __webpack_require__) {
14290
14291"use strict";
14292
14293
14294// Manually added data to be used by sbcs codec in addition to generated one.
14295
14296module.exports = {
14297 // Not supported by iconv, not sure why.
14298 "10029": "maccenteuro",
14299 "maccenteuro": {
14300 "type": "_sbcs",
14301 "chars": "ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ"
14302 },
14303
14304 "808": "cp808",
14305 "ibm808": "cp808",
14306 "cp808": {
14307 "type": "_sbcs",
14308 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ "
14309 },
14310
14311 "mik": {
14312 "type": "_sbcs",
14313 "chars": "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
14314 },
14315
14316 // Aliases of generated encodings.
14317 "ascii8bit": "ascii",
14318 "usascii": "ascii",
14319 "ansix34": "ascii",
14320 "ansix341968": "ascii",
14321 "ansix341986": "ascii",
14322 "csascii": "ascii",
14323 "cp367": "ascii",
14324 "ibm367": "ascii",
14325 "isoir6": "ascii",
14326 "iso646us": "ascii",
14327 "iso646irv": "ascii",
14328 "us": "ascii",
14329
14330 "latin1": "iso88591",
14331 "latin2": "iso88592",
14332 "latin3": "iso88593",
14333 "latin4": "iso88594",
14334 "latin5": "iso88599",
14335 "latin6": "iso885910",
14336 "latin7": "iso885913",
14337 "latin8": "iso885914",
14338 "latin9": "iso885915",
14339 "latin10": "iso885916",
14340
14341 "csisolatin1": "iso88591",
14342 "csisolatin2": "iso88592",
14343 "csisolatin3": "iso88593",
14344 "csisolatin4": "iso88594",
14345 "csisolatincyrillic": "iso88595",
14346 "csisolatinarabic": "iso88596",
14347 "csisolatingreek" : "iso88597",
14348 "csisolatinhebrew": "iso88598",
14349 "csisolatin5": "iso88599",
14350 "csisolatin6": "iso885910",
14351
14352 "l1": "iso88591",
14353 "l2": "iso88592",
14354 "l3": "iso88593",
14355 "l4": "iso88594",
14356 "l5": "iso88599",
14357 "l6": "iso885910",
14358 "l7": "iso885913",
14359 "l8": "iso885914",
14360 "l9": "iso885915",
14361 "l10": "iso885916",
14362
14363 "isoir14": "iso646jp",
14364 "isoir57": "iso646cn",
14365 "isoir100": "iso88591",
14366 "isoir101": "iso88592",
14367 "isoir109": "iso88593",
14368 "isoir110": "iso88594",
14369 "isoir144": "iso88595",
14370 "isoir127": "iso88596",
14371 "isoir126": "iso88597",
14372 "isoir138": "iso88598",
14373 "isoir148": "iso88599",
14374 "isoir157": "iso885910",
14375 "isoir166": "tis620",
14376 "isoir179": "iso885913",
14377 "isoir199": "iso885914",
14378 "isoir203": "iso885915",
14379 "isoir226": "iso885916",
14380
14381 "cp819": "iso88591",
14382 "ibm819": "iso88591",
14383
14384 "cyrillic": "iso88595",
14385
14386 "arabic": "iso88596",
14387 "arabic8": "iso88596",
14388 "ecma114": "iso88596",
14389 "asmo708": "iso88596",
14390
14391 "greek" : "iso88597",
14392 "greek8" : "iso88597",
14393 "ecma118" : "iso88597",
14394 "elot928" : "iso88597",
14395
14396 "hebrew": "iso88598",
14397 "hebrew8": "iso88598",
14398
14399 "turkish": "iso88599",
14400 "turkish8": "iso88599",
14401
14402 "thai": "iso885911",
14403 "thai8": "iso885911",
14404
14405 "celtic": "iso885914",
14406 "celtic8": "iso885914",
14407 "isoceltic": "iso885914",
14408
14409 "tis6200": "tis620",
14410 "tis62025291": "tis620",
14411 "tis62025330": "tis620",
14412
14413 "10000": "macroman",
14414 "10006": "macgreek",
14415 "10007": "maccyrillic",
14416 "10079": "maciceland",
14417 "10081": "macturkish",
14418
14419 "cspc8codepage437": "cp437",
14420 "cspc775baltic": "cp775",
14421 "cspc850multilingual": "cp850",
14422 "cspcp852": "cp852",
14423 "cspc862latinhebrew": "cp862",
14424 "cpgr": "cp869",
14425
14426 "msee": "cp1250",
14427 "mscyrl": "cp1251",
14428 "msansi": "cp1252",
14429 "msgreek": "cp1253",
14430 "msturk": "cp1254",
14431 "mshebr": "cp1255",
14432 "msarab": "cp1256",
14433 "winbaltrim": "cp1257",
14434
14435 "cp20866": "koi8r",
14436 "20866": "koi8r",
14437 "ibm878": "koi8r",
14438 "cskoi8r": "koi8r",
14439
14440 "cp21866": "koi8u",
14441 "21866": "koi8u",
14442 "ibm1168": "koi8u",
14443
14444 "strk10482002": "rk1048",
14445
14446 "tcvn5712": "tcvn",
14447 "tcvn57121": "tcvn",
14448
14449 "gb198880": "iso646cn",
14450 "cn": "iso646cn",
14451
14452 "csiso14jisc6220ro": "iso646jp",
14453 "jisc62201969ro": "iso646jp",
14454 "jp": "iso646jp",
14455
14456 "cshproman8": "hproman8",
14457 "r8": "hproman8",
14458 "roman8": "hproman8",
14459 "xroman8": "hproman8",
14460 "ibm1051": "hproman8",
14461
14462 "mac": "macintosh",
14463 "csmacintosh": "macintosh",
14464};
14465
14466
14467
14468/***/ }),
14469
14470/***/ "./node_modules/iconv-lite/encodings/tables/big5-added.json":
14471/*!******************************************************************!*\
14472 !*** ./node_modules/iconv-lite/encodings/tables/big5-added.json ***!
14473 \******************************************************************/
14474/*! exports provided: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, default */
14475/***/ (function(module) {
14476
14477module.exports = [["8740","䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻"],["8767","綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬"],["87a1","𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋"],["8840","㇀",4,"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ"],["88a1","ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛"],["8940","𪎩𡅅"],["8943","攊"],["8946","丽滝鵎釟"],["894c","𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮"],["89a1","琑糼緍楆竉刧"],["89ab","醌碸酞肼"],["89b0","贋胶𠧧"],["89b5","肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁"],["89c1","溚舾甙"],["89c5","䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅"],["8a40","𧶄唥"],["8a43","𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓"],["8a64","𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕"],["8a76","䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯"],["8aa1","𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱"],["8aac","䠋𠆩㿺塳𢶍"],["8ab2","𤗈𠓼𦂗𠽌𠶖啹䂻䎺"],["8abb","䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃"],["8ac9","𪘁𠸉𢫏𢳉"],["8ace","𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻"],["8adf","𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌"],["8af6","𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭"],["8b40","𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹"],["8b55","𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑"],["8ba1","𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁"],["8bde","𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢"],["8c40","倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋"],["8ca1","𣏹椙橃𣱣泿"],["8ca7","爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚"],["8cc9","顨杫䉶圽"],["8cce","藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶"],["8ce6","峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻"],["8d40","𠮟"],["8d42","𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱"],["8da1","㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘"],["8e40","𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎"],["8ea1","繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛"],["8f40","蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖"],["8fa1","𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起"],["9040","趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛"],["90a1","𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜"],["9140","𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈"],["91a1","鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨"],["9240","𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘"],["92a1","働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃"],["9340","媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍"],["93a1","摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋"],["9440","銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻"],["94a1","㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡"],["9540","𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂"],["95a1","衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰"],["9640","桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸"],["96a1","𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉"],["9740","愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫"],["97a1","𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎"],["9840","𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦"],["98a1","咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃"],["9940","䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚"],["99a1","䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿"],["9a40","鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺"],["9aa1","黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪"],["9b40","𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌"],["9b62","𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎"],["9ba1","椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊"],["9c40","嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶"],["9ca1","㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏"],["9d40","𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁"],["9da1","辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢"],["9e40","𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺"],["9ea1","鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭"],["9ead","𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹"],["9ec5","㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲"],["9ef5","噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼"],["9f40","籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱"],["9f4f","凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰"],["9fa1","椬叚鰊鴂䰻陁榀傦畆𡝭駚剳"],["9fae","酙隁酜"],["9fb2","酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽"],["9fc1","𤤙盖鮝个𠳔莾衂"],["9fc9","届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳"],["9fdb","歒酼龥鮗頮颴骺麨麄煺笔"],["9fe7","毺蠘罸"],["9feb","嘠𪙊蹷齓"],["9ff0","跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇"],["a040","𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷"],["a055","𡠻𦸅"],["a058","詾𢔛"],["a05b","惽癧髗鵄鍮鮏蟵"],["a063","蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽"],["a073","坟慯抦戹拎㩜懢厪𣏵捤栂㗒"],["a0a1","嵗𨯂迚𨸹"],["a0a6","僙𡵆礆匲阸𠼻䁥"],["a0ae","矾"],["a0b0","糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦"],["a0d4","覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷"],["a0e2","罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫"],["a3c0","␀",31,"␡"],["c6a1","①",9,"⑴",9,"ⅰ",9,"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー[]✽ぁ",23],["c740","す",58,"ァアィイ"],["c7a1","ゥ",81,"А",5,"ЁЖ",4],["c840","Л",26,"ёж",25,"⇧↸↹㇏𠃌乚𠂊刂䒑"],["c8a1","龰冈龱𧘇"],["c8cd","¬¦'"㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣"],["c8f5","ʃɐɛɔɵœøŋʊɪ"],["f9fe","■"],["fa40","𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸"],["faa1","鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍"],["fb40","𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙"],["fba1","𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂"],["fc40","廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷"],["fca1","𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝"],["fd40","𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀"],["fda1","𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎"],["fe40","鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌"],["fea1","𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔"]];
14478
14479/***/ }),
14480
14481/***/ "./node_modules/iconv-lite/encodings/tables/cp936.json":
14482/*!*************************************************************!*\
14483 !*** ./node_modules/iconv-lite/encodings/tables/cp936.json ***!
14484 \*************************************************************/
14485/*! exports provided: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, default */
14486/***/ (function(module) {
14487
14488module.exports = [["0","\u0000",127,"€"],["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"],["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"],["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11],["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"],["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"],["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5],["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"],["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"],["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"],["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"],["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"],["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"],["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4],["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6],["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"],["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7],["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"],["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"],["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"],["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5],["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"],["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6],["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"],["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4],["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4],["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"],["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"],["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6],["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"],["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"],["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"],["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6],["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"],["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"],["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"],["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"],["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"],["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"],["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8],["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"],["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"],["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"],["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"],["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5],["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"],["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"],["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"],["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"],["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5],["9980","檧檨檪檭",114,"欥欦欨",6],["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"],["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"],["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"],["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"],["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"],["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5],["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"],["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"],["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6],["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"],["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"],["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4],["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19],["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"],["a1a1"," 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"],["a2a1","ⅰ",9],["a2b1","⒈",19,"⑴",19,"①",9],["a2e5","㈠",9],["a2f1","Ⅰ",11],["a3a1","!"#¥%",88," ̄"],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"],["a6ee","︻︼︷︸︱"],["a6f4","︳︴"],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6],["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"],["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"],["a8bd","ńň"],["a8c0","ɡ"],["a8c5","ㄅ",36],["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦"],["a959","℡㈱"],["a95c","‐"],["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8],["a980","﹢",4,"﹨﹩﹪﹫"],["a996","〇"],["a9a4","─",75],["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8],["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"],["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4],["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4],["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11],["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"],["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12],["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"],["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"],["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"],["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"],["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"],["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"],["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"],["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"],["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"],["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4],["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"],["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"],["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"],["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9],["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"],["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"],["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"],["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"],["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"],["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16],["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"],["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"],["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"],["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"],["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"],["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"],["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"],["bb40","籃",9,"籎",36,"籵",5,"籾",9],["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"],["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5],["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"],["bd40","紷",54,"絯",7],["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"],["be40","継",12,"綧",6,"綯",42],["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"],["bf40","緻",62],["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"],["c040","繞",35,"纃",23,"纜纝纞"],["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"],["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"],["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"],["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"],["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"],["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"],["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"],["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"],["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"],["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"],["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"],["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"],["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"],["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"],["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"],["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"],["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"],["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"],["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"],["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10],["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"],["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"],["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"],["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"],["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"],["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"],["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"],["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"],["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"],["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9],["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"],["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"],["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"],["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5],["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"],["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"],["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"],["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6],["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"],["d440","訞",31,"訿",8,"詉",21],["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"],["d540","誁",7,"誋",7,"誔",46],["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"],["d640","諤",34,"謈",27],["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"],["d740","譆",31,"譧",4,"譭",25],["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"],["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"],["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"],["d940","貮",62],["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"],["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"],["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"],["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"],["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"],["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7],["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"],["dd40","軥",62],["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"],["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"],["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"],["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"],["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"],["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"],["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"],["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"],["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"],["e240","釦",62],["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"],["e340","鉆",45,"鉵",16],["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"],["e440","銨",5,"銯",24,"鋉",31],["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"],["e540","錊",51,"錿",10],["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"],["e640","鍬",34,"鎐",27],["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"],["e740","鏎",7,"鏗",54],["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"],["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"],["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"],["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42],["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"],["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"],["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"],["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"],["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"],["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7],["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"],["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46],["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"],["ee40","頏",62],["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"],["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4],["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"],["f040","餈",4,"餎餏餑",28,"餯",26],["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"],["f140","馌馎馚",10,"馦馧馩",47],["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"],["f240","駺",62],["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"],["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"],["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"],["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5],["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"],["f540","魼",62],["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"],["f640","鯜",62],["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"],["f740","鰼",62],["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"],["f840","鳣",62],["f880","鴢",32],["f940","鵃",62],["f980","鶂",32],["fa40","鶣",62],["fa80","鷢",32],["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"],["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"],["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6],["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"],["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38],["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"],["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"]];
14489
14490/***/ }),
14491
14492/***/ "./node_modules/iconv-lite/encodings/tables/cp949.json":
14493/*!*************************************************************!*\
14494 !*** ./node_modules/iconv-lite/encodings/tables/cp949.json ***!
14495 \*************************************************************/
14496/*! exports provided: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, default */
14497/***/ (function(module) {
14498
14499module.exports = [["0","\u0000",127],["8141","갂갃갅갆갋",4,"갘갞갟갡갢갣갥",6,"갮갲갳갴"],["8161","갵갶갷갺갻갽갾갿걁",9,"걌걎",5,"걕"],["8181","걖걗걙걚걛걝",18,"걲걳걵걶걹걻",4,"겂겇겈겍겎겏겑겒겓겕",6,"겞겢",5,"겫겭겮겱",6,"겺겾겿곀곂곃곅곆곇곉곊곋곍",7,"곖곘",7,"곢곣곥곦곩곫곭곮곲곴곷",4,"곾곿괁괂괃괅괇",4,"괎괐괒괓"],["8241","괔괕괖괗괙괚괛괝괞괟괡",7,"괪괫괮",5],["8261","괶괷괹괺괻괽",6,"굆굈굊",5,"굑굒굓굕굖굗"],["8281","굙",7,"굢굤",7,"굮굯굱굲굷굸굹굺굾궀궃",4,"궊궋궍궎궏궑",10,"궞",5,"궥",17,"궸",7,"귂귃귅귆귇귉",6,"귒귔",7,"귝귞귟귡귢귣귥",18],["8341","귺귻귽귾긂",5,"긊긌긎",5,"긕",7],["8361","긝",18,"긲긳긵긶긹긻긼"],["8381","긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗",4,"깞깢깣깤깦깧깪깫깭깮깯깱",6,"깺깾",5,"꺆",5,"꺍",46,"꺿껁껂껃껅",6,"껎껒",5,"껚껛껝",8],["8441","껦껧껩껪껬껮",5,"껵껶껷껹껺껻껽",8],["8461","꼆꼉꼊꼋꼌꼎꼏꼑",18],["8481","꼤",7,"꼮꼯꼱꼳꼵",6,"꼾꽀꽄꽅꽆꽇꽊",5,"꽑",10,"꽞",5,"꽦",18,"꽺",5,"꾁꾂꾃꾅꾆꾇꾉",6,"꾒꾓꾔꾖",5,"꾝",26,"꾺꾻꾽꾾"],["8541","꾿꿁",5,"꿊꿌꿏",4,"꿕",6,"꿝",4],["8561","꿢",5,"꿪",5,"꿲꿳꿵꿶꿷꿹",6,"뀂뀃"],["8581","뀅",6,"뀍뀎뀏뀑뀒뀓뀕",6,"뀞",9,"뀩",26,"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞",29,"끾끿낁낂낃낅",6,"낎낐낒",5,"낛낝낞낣낤"],["8641","낥낦낧낪낰낲낶낷낹낺낻낽",6,"냆냊",5,"냒"],["8661","냓냕냖냗냙",6,"냡냢냣냤냦",10],["8681","냱",22,"넊넍넎넏넑넔넕넖넗넚넞",4,"넦넧넩넪넫넭",6,"넶넺",5,"녂녃녅녆녇녉",6,"녒녓녖녗녙녚녛녝녞녟녡",22,"녺녻녽녾녿놁놃",4,"놊놌놎놏놐놑놕놖놗놙놚놛놝"],["8741","놞",9,"놩",15],["8761","놹",18,"뇍뇎뇏뇑뇒뇓뇕"],["8781","뇖",5,"뇞뇠",7,"뇪뇫뇭뇮뇯뇱",7,"뇺뇼뇾",5,"눆눇눉눊눍",6,"눖눘눚",5,"눡",18,"눵",6,"눽",26,"뉙뉚뉛뉝뉞뉟뉡",6,"뉪",4],["8841","뉯",4,"뉶",5,"뉽",6,"늆늇늈늊",4],["8861","늏늒늓늕늖늗늛",4,"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷"],["8881","늸",15,"닊닋닍닎닏닑닓",4,"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉",6,"댒댖",5,"댝",54,"덗덙덚덝덠덡덢덣"],["8941","덦덨덪덬덭덯덲덳덵덶덷덹",6,"뎂뎆",5,"뎍"],["8961","뎎뎏뎑뎒뎓뎕",10,"뎢",5,"뎩뎪뎫뎭"],["8981","뎮",21,"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩",18,"돽",18,"됑",6,"됙됚됛됝됞됟됡",6,"됪됬",7,"됵",15],["8a41","둅",10,"둒둓둕둖둗둙",6,"둢둤둦"],["8a61","둧",4,"둭",18,"뒁뒂"],["8a81","뒃",4,"뒉",19,"뒞",5,"뒥뒦뒧뒩뒪뒫뒭",7,"뒶뒸뒺",5,"듁듂듃듅듆듇듉",6,"듑듒듓듔듖",5,"듞듟듡듢듥듧",4,"듮듰듲",5,"듹",26,"딖딗딙딚딝"],["8b41","딞",5,"딦딫",4,"딲딳딵딶딷딹",6,"땂땆"],["8b61","땇땈땉땊땎땏땑땒땓땕",6,"땞땢",8],["8b81","땫",52,"떢떣떥떦떧떩떬떭떮떯떲떶",4,"떾떿뗁뗂뗃뗅",6,"뗎뗒",5,"뗙",18,"뗭",18],["8c41","똀",15,"똒똓똕똖똗똙",4],["8c61","똞",6,"똦",5,"똭",6,"똵",5],["8c81","똻",12,"뙉",26,"뙥뙦뙧뙩",50,"뚞뚟뚡뚢뚣뚥",5,"뚭뚮뚯뚰뚲",16],["8d41","뛃",16,"뛕",8],["8d61","뛞",17,"뛱뛲뛳뛵뛶뛷뛹뛺"],["8d81","뛻",4,"뜂뜃뜄뜆",33,"뜪뜫뜭뜮뜱",6,"뜺뜼",7,"띅띆띇띉띊띋띍",6,"띖",9,"띡띢띣띥띦띧띩",6,"띲띴띶",5,"띾띿랁랂랃랅",6,"랎랓랔랕랚랛랝랞"],["8e41","랟랡",6,"랪랮",5,"랶랷랹",8],["8e61","럂",4,"럈럊",19],["8e81","럞",13,"럮럯럱럲럳럵",6,"럾렂",4,"렊렋렍렎렏렑",6,"렚렜렞",5,"렦렧렩렪렫렭",6,"렶렺",5,"롁롂롃롅",11,"롒롔",7,"롞롟롡롢롣롥",6,"롮롰롲",5,"롹롺롻롽",7],["8f41","뢅",7,"뢎",17],["8f61","뢠",7,"뢩",6,"뢱뢲뢳뢵뢶뢷뢹",4],["8f81","뢾뢿룂룄룆",5,"룍룎룏룑룒룓룕",7,"룞룠룢",5,"룪룫룭룮룯룱",6,"룺룼룾",5,"뤅",18,"뤙",6,"뤡",26,"뤾뤿륁륂륃륅",6,"륍륎륐륒",5],["9041","륚륛륝륞륟륡",6,"륪륬륮",5,"륶륷륹륺륻륽"],["9061","륾",5,"릆릈릋릌릏",15],["9081","릟",12,"릮릯릱릲릳릵",6,"릾맀맂",5,"맊맋맍맓",4,"맚맜맟맠맢맦맧맩맪맫맭",6,"맶맻",4,"먂",5,"먉",11,"먖",33,"먺먻먽먾먿멁멃멄멅멆"],["9141","멇멊멌멏멐멑멒멖멗멙멚멛멝",6,"멦멪",5],["9161","멲멳멵멶멷멹",9,"몆몈몉몊몋몍",5],["9181","몓",20,"몪몭몮몯몱몳",4,"몺몼몾",5,"뫅뫆뫇뫉",14,"뫚",33,"뫽뫾뫿묁묂묃묅",7,"묎묐묒",5,"묙묚묛묝묞묟묡",6],["9241","묨묪묬",7,"묷묹묺묿",4,"뭆뭈뭊뭋뭌뭎뭑뭒"],["9261","뭓뭕뭖뭗뭙",7,"뭢뭤",7,"뭭",4],["9281","뭲",21,"뮉뮊뮋뮍뮎뮏뮑",18,"뮥뮦뮧뮩뮪뮫뮭",6,"뮵뮶뮸",7,"믁믂믃믅믆믇믉",6,"믑믒믔",35,"믺믻믽믾밁"],["9341","밃",4,"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵"],["9361","밶밷밹",6,"뱂뱆뱇뱈뱊뱋뱎뱏뱑",8],["9381","뱚뱛뱜뱞",37,"벆벇벉벊벍벏",4,"벖벘벛",4,"벢벣벥벦벩",6,"벲벶",5,"벾벿볁볂볃볅",7,"볎볒볓볔볖볗볙볚볛볝",22,"볷볹볺볻볽"],["9441","볾",5,"봆봈봊",5,"봑봒봓봕",8],["9461","봞",5,"봥",6,"봭",12],["9481","봺",5,"뵁",6,"뵊뵋뵍뵎뵏뵑",6,"뵚",9,"뵥뵦뵧뵩",22,"붂붃붅붆붋",4,"붒붔붖붗붘붛붝",6,"붥",10,"붱",6,"붹",24],["9541","뷒뷓뷖뷗뷙뷚뷛뷝",11,"뷪",5,"뷱"],["9561","뷲뷳뷵뷶뷷뷹",6,"븁븂븄븆",5,"븎븏븑븒븓"],["9581","븕",6,"븞븠",35,"빆빇빉빊빋빍빏",4,"빖빘빜빝빞빟빢빣빥빦빧빩빫",4,"빲빶",4,"빾빿뺁뺂뺃뺅",6,"뺎뺒",5,"뺚",13,"뺩",14],["9641","뺸",23,"뻒뻓"],["9661","뻕뻖뻙",6,"뻡뻢뻦",5,"뻭",8],["9681","뻶",10,"뼂",5,"뼊",13,"뼚뼞",33,"뽂뽃뽅뽆뽇뽉",6,"뽒뽓뽔뽖",44],["9741","뾃",16,"뾕",8],["9761","뾞",17,"뾱",7],["9781","뾹",11,"뿆",5,"뿎뿏뿑뿒뿓뿕",6,"뿝뿞뿠뿢",89,"쀽쀾쀿"],["9841","쁀",16,"쁒",5,"쁙쁚쁛"],["9861","쁝쁞쁟쁡",6,"쁪",15],["9881","쁺",21,"삒삓삕삖삗삙",6,"삢삤삦",5,"삮삱삲삷",4,"삾샂샃샄샆샇샊샋샍샎샏샑",6,"샚샞",5,"샦샧샩샪샫샭",6,"샶샸샺",5,"섁섂섃섅섆섇섉",6,"섑섒섓섔섖",5,"섡섢섥섨섩섪섫섮"],["9941","섲섳섴섵섷섺섻섽섾섿셁",6,"셊셎",5,"셖셗"],["9961","셙셚셛셝",6,"셦셪",5,"셱셲셳셵셶셷셹셺셻"],["9981","셼",8,"솆",5,"솏솑솒솓솕솗",4,"솞솠솢솣솤솦솧솪솫솭솮솯솱",11,"솾",5,"쇅쇆쇇쇉쇊쇋쇍",6,"쇕쇖쇙",6,"쇡쇢쇣쇥쇦쇧쇩",6,"쇲쇴",7,"쇾쇿숁숂숃숅",6,"숎숐숒",5,"숚숛숝숞숡숢숣"],["9a41","숤숥숦숧숪숬숮숰숳숵",16],["9a61","쉆쉇쉉",6,"쉒쉓쉕쉖쉗쉙",6,"쉡쉢쉣쉤쉦"],["9a81","쉧",4,"쉮쉯쉱쉲쉳쉵",6,"쉾슀슂",5,"슊",5,"슑",6,"슙슚슜슞",5,"슦슧슩슪슫슮",5,"슶슸슺",33,"싞싟싡싢싥",5,"싮싰싲싳싴싵싷싺싽싾싿쌁",6,"쌊쌋쌎쌏"],["9b41","쌐쌑쌒쌖쌗쌙쌚쌛쌝",6,"쌦쌧쌪",8],["9b61","쌳",17,"썆",7],["9b81","썎",25,"썪썫썭썮썯썱썳",4,"썺썻썾",5,"쎅쎆쎇쎉쎊쎋쎍",50,"쏁",22,"쏚"],["9c41","쏛쏝쏞쏡쏣",4,"쏪쏫쏬쏮",5,"쏶쏷쏹",5],["9c61","쏿",8,"쐉",6,"쐑",9],["9c81","쐛",8,"쐥",6,"쐭쐮쐯쐱쐲쐳쐵",6,"쐾",9,"쑉",26,"쑦쑧쑩쑪쑫쑭",6,"쑶쑷쑸쑺",5,"쒁",18,"쒕",6,"쒝",12],["9d41","쒪",13,"쒹쒺쒻쒽",8],["9d61","쓆",25],["9d81","쓠",8,"쓪",5,"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂",9,"씍씎씏씑씒씓씕",6,"씝",10,"씪씫씭씮씯씱",6,"씺씼씾",5,"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩",6,"앲앶",5,"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔"],["9e41","얖얙얚얛얝얞얟얡",7,"얪",9,"얶"],["9e61","얷얺얿",4,"엋엍엏엒엓엕엖엗엙",6,"엢엤엦엧"],["9e81","엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑",6,"옚옝",6,"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉",6,"왒왖",5,"왞왟왡",10,"왭왮왰왲",5,"왺왻왽왾왿욁",6,"욊욌욎",5,"욖욗욙욚욛욝",6,"욦"],["9f41","욨욪",5,"욲욳욵욶욷욻",4,"웂웄웆",5,"웎"],["9f61","웏웑웒웓웕",6,"웞웟웢",5,"웪웫웭웮웯웱웲"],["9f81","웳",4,"웺웻웼웾",5,"윆윇윉윊윋윍",6,"윖윘윚",5,"윢윣윥윦윧윩",6,"윲윴윶윸윹윺윻윾윿읁읂읃읅",4,"읋읎읐읙읚읛읝읞읟읡",6,"읩읪읬",7,"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛",4,"잢잧",4,"잮잯잱잲잳잵잶잷"],["a041","잸잹잺잻잾쟂",5,"쟊쟋쟍쟏쟑",6,"쟙쟚쟛쟜"],["a061","쟞",5,"쟥쟦쟧쟩쟪쟫쟭",13],["a081","쟻",4,"젂젃젅젆젇젉젋",4,"젒젔젗",4,"젞젟젡젢젣젥",6,"젮젰젲",5,"젹젺젻젽젾젿졁",6,"졊졋졎",5,"졕",26,"졲졳졵졶졷졹졻",4,"좂좄좈좉좊좎",5,"좕",7,"좞좠좢좣좤"],["a141","좥좦좧좩",18,"좾좿죀죁"],["a161","죂죃죅죆죇죉죊죋죍",6,"죖죘죚",5,"죢죣죥"],["a181","죦",14,"죶",5,"죾죿줁줂줃줇",4,"줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈",9,"±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬"],["a241","줐줒",5,"줙",18],["a261","줭",6,"줵",18],["a281","쥈",7,"쥒쥓쥕쥖쥗쥙",6,"쥢쥤",7,"쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®"],["a341","쥱쥲쥳쥵",6,"쥽",10,"즊즋즍즎즏"],["a361","즑",6,"즚즜즞",16],["a381","즯",16,"짂짃짅짆짉짋",4,"짒짔짗짘짛!",58,"₩]",32," ̄"],["a441","짞짟짡짣짥짦짨짩짪짫짮짲",5,"짺짻짽짾짿쨁쨂쨃쨄"],["a461","쨅쨆쨇쨊쨎",5,"쨕쨖쨗쨙",12],["a481","쨦쨧쨨쨪",28,"ㄱ",93],["a541","쩇",4,"쩎쩏쩑쩒쩓쩕",6,"쩞쩢",5,"쩩쩪"],["a561","쩫",17,"쩾",5,"쪅쪆"],["a581","쪇",16,"쪙",14,"ⅰ",9],["a5b0","Ⅰ",9],["a5c1","Α",16,"Σ",6],["a5e1","α",16,"σ",6],["a641","쪨",19,"쪾쪿쫁쫂쫃쫅"],["a661","쫆",5,"쫎쫐쫒쫔쫕쫖쫗쫚",5,"쫡",6],["a681","쫨쫩쫪쫫쫭",6,"쫵",18,"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃",7],["a741","쬋",4,"쬑쬒쬓쬕쬖쬗쬙",6,"쬢",7],["a761","쬪",22,"쭂쭃쭄"],["a781","쭅쭆쭇쭊쭋쭍쭎쭏쭑",6,"쭚쭛쭜쭞",5,"쭥",7,"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙",9,"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰",9,"㎀",4,"㎺",5,"㎐",4,"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆"],["a841","쭭",10,"쭺",14],["a861","쮉",18,"쮝",6],["a881","쮤",19,"쮹",11,"ÆЪĦ"],["a8a6","IJ"],["a8a8","ĿŁØŒºÞŦŊ"],["a8b1","㉠",27,"ⓐ",25,"①",14,"½⅓⅔¼¾⅛⅜⅝⅞"],["a941","쯅",14,"쯕",10],["a961","쯠쯡쯢쯣쯥쯦쯨쯪",18],["a981","쯽",14,"찎찏찑찒찓찕",6,"찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀",27,"⒜",25,"⑴",14,"¹²³⁴ⁿ₁₂₃₄"],["aa41","찥찦찪찫찭찯찱",6,"찺찿",4,"챆챇챉챊챋챍챎"],["aa61","챏",4,"챖챚",5,"챡챢챣챥챧챩",6,"챱챲"],["aa81","챳챴챶",29,"ぁ",82],["ab41","첔첕첖첗첚첛첝첞첟첡",6,"첪첮",5,"첶첷첹"],["ab61","첺첻첽",6,"쳆쳈쳊",5,"쳑쳒쳓쳕",5],["ab81","쳛",8,"쳥",6,"쳭쳮쳯쳱",12,"ァ",85],["ac41","쳾쳿촀촂",5,"촊촋촍촎촏촑",6,"촚촜촞촟촠"],["ac61","촡촢촣촥촦촧촩촪촫촭",11,"촺",4],["ac81","촿",28,"쵝쵞쵟А",5,"ЁЖ",25],["acd1","а",5,"ёж",25],["ad41","쵡쵢쵣쵥",6,"쵮쵰쵲",5,"쵹",7],["ad61","춁",6,"춉",10,"춖춗춙춚춛춝춞춟"],["ad81","춠춡춢춣춦춨춪",5,"춱",18,"췅"],["ae41","췆",5,"췍췎췏췑",16],["ae61","췢",5,"췩췪췫췭췮췯췱",6,"췺췼췾",4],["ae81","츃츅츆츇츉츊츋츍",6,"츕츖츗츘츚",5,"츢츣츥츦츧츩츪츫"],["af41","츬츭츮츯츲츴츶",19],["af61","칊",13,"칚칛칝칞칢",5,"칪칬"],["af81","칮",5,"칶칷칹칺칻칽",6,"캆캈캊",5,"캒캓캕캖캗캙"],["b041","캚",5,"캢캦",5,"캮",12],["b061","캻",5,"컂",19],["b081","컖",13,"컦컧컩컪컭",6,"컶컺",5,"가각간갇갈갉갊감",7,"같",4,"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆"],["b141","켂켃켅켆켇켉",6,"켒켔켖",5,"켝켞켟켡켢켣"],["b161","켥",6,"켮켲",5,"켹",11],["b181","콅",14,"콖콗콙콚콛콝",6,"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸"],["b241","콭콮콯콲콳콵콶콷콹",6,"쾁쾂쾃쾄쾆",5,"쾍"],["b261","쾎",18,"쾢",5,"쾩"],["b281","쾪",5,"쾱",18,"쿅",6,"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙"],["b341","쿌",19,"쿢쿣쿥쿦쿧쿩"],["b361","쿪",5,"쿲쿴쿶",5,"쿽쿾쿿퀁퀂퀃퀅",5],["b381","퀋",5,"퀒",5,"퀙",19,"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫",4,"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝"],["b441","퀮",5,"퀶퀷퀹퀺퀻퀽",6,"큆큈큊",5],["b461","큑큒큓큕큖큗큙",6,"큡",10,"큮큯"],["b481","큱큲큳큵",6,"큾큿킀킂",18,"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫",4,"닳담답닷",4,"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥"],["b541","킕",14,"킦킧킩킪킫킭",5],["b561","킳킶킸킺",5,"탂탃탅탆탇탊",5,"탒탖",4],["b581","탛탞탟탡탢탣탥",6,"탮탲",5,"탹",11,"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸"],["b641","턅",7,"턎",17],["b661","턠",15,"턲턳턵턶턷턹턻턼턽턾"],["b681","턿텂텆",5,"텎텏텑텒텓텕",6,"텞텠텢",5,"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗"],["b741","텮",13,"텽",6,"톅톆톇톉톊"],["b761","톋",20,"톢톣톥톦톧"],["b781","톩",6,"톲톴톶톷톸톹톻톽톾톿퇁",14,"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩"],["b841","퇐",7,"퇙",17],["b861","퇫",8,"퇵퇶퇷퇹",13],["b881","툈툊",5,"툑",24,"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많",4,"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼"],["b941","툪툫툮툯툱툲툳툵",6,"툾퉀퉂",5,"퉉퉊퉋퉌"],["b961","퉍",14,"퉝",6,"퉥퉦퉧퉨"],["b981","퉩",22,"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바",4,"받",4,"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗"],["ba41","튍튎튏튒튓튔튖",5,"튝튞튟튡튢튣튥",6,"튭"],["ba61","튮튯튰튲",5,"튺튻튽튾틁틃",4,"틊틌",5],["ba81","틒틓틕틖틗틙틚틛틝",6,"틦",9,"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤"],["bb41","틻",4,"팂팄팆",5,"팏팑팒팓팕팗",4,"팞팢팣"],["bb61","팤팦팧팪팫팭팮팯팱",6,"팺팾",5,"퍆퍇퍈퍉"],["bb81","퍊",31,"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤"],["bc41","퍪",17,"퍾퍿펁펂펃펅펆펇"],["bc61","펈펉펊펋펎펒",5,"펚펛펝펞펟펡",6,"펪펬펮"],["bc81","펯",4,"펵펶펷펹펺펻펽",6,"폆폇폊",5,"폑",5,"샥샨샬샴샵샷샹섀섄섈섐섕서",4,"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭"],["bd41","폗폙",7,"폢폤",7,"폮폯폱폲폳폵폶폷"],["bd61","폸폹폺폻폾퐀퐂",5,"퐉",13],["bd81","퐗",5,"퐞",25,"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰"],["be41","퐸",7,"푁푂푃푅",14],["be61","푔",7,"푝푞푟푡푢푣푥",7,"푮푰푱푲"],["be81","푳",4,"푺푻푽푾풁풃",4,"풊풌풎",5,"풕",8,"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄",6,"엌엎"],["bf41","풞",10,"풪",14],["bf61","풹",18,"퓍퓎퓏퓑퓒퓓퓕"],["bf81","퓖",5,"퓝퓞퓠",7,"퓩퓪퓫퓭퓮퓯퓱",6,"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염",5,"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨"],["c041","퓾",5,"픅픆픇픉픊픋픍",6,"픖픘",5],["c061","픞",25],["c081","픸픹픺픻픾픿핁핂핃핅",6,"핎핐핒",5,"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응",7,"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊"],["c141","핤핦핧핪핬핮",5,"핶핷핹핺핻핽",6,"햆햊햋"],["c161","햌햍햎햏햑",19,"햦햧"],["c181","햨",31,"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓"],["c241","헊헋헍헎헏헑헓",4,"헚헜헞",5,"헦헧헩헪헫헭헮"],["c261","헯",4,"헶헸헺",5,"혂혃혅혆혇혉",6,"혒"],["c281","혖",5,"혝혞혟혡혢혣혥",7,"혮",9,"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻"],["c341","혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝",4],["c361","홢",4,"홨홪",5,"홲홳홵",11],["c381","횁횂횄횆",5,"횎횏횑횒횓횕",7,"횞횠횢",5,"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층"],["c441","횫횭횮횯횱",7,"횺횼",7,"훆훇훉훊훋"],["c461","훍훎훏훐훒훓훕훖훘훚",5,"훡훢훣훥훦훧훩",4],["c481","훮훯훱훲훳훴훶",5,"훾훿휁휂휃휅",11,"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼"],["c541","휕휖휗휚휛휝휞휟휡",6,"휪휬휮",5,"휶휷휹"],["c561","휺휻휽",6,"흅흆흈흊",5,"흒흓흕흚",4],["c581","흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵",6,"흾흿힀힂",5,"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜"],["c641","힍힎힏힑",6,"힚힜힞",5],["c6a1","퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁"],["c7a1","퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠"],["c8a1","혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝"],["caa1","伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕"],["cba1","匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢"],["cca1","瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械"],["cda1","棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜"],["cea1","科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾"],["cfa1","區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴"],["d0a1","鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣"],["d1a1","朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩",5,"那樂",4,"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉"],["d2a1","納臘蠟衲囊娘廊",4,"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧",5,"駑魯",10,"濃籠聾膿農惱牢磊腦賂雷尿壘",7,"嫩訥杻紐勒",5,"能菱陵尼泥匿溺多茶"],["d3a1","丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃"],["d4a1","棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅"],["d5a1","蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣"],["d6a1","煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼"],["d7a1","遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬"],["d8a1","立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅"],["d9a1","蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文"],["daa1","汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑"],["dba1","發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖"],["dca1","碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦"],["dda1","孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥"],["dea1","脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索"],["dfa1","傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署"],["e0a1","胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬"],["e1a1","聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁"],["e2a1","戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧"],["e3a1","嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁"],["e4a1","沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額"],["e5a1","櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬"],["e6a1","旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒"],["e7a1","簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳"],["e8a1","烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療"],["e9a1","窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓"],["eaa1","運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜"],["eba1","濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼"],["eca1","議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄"],["eda1","立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長"],["eea1","障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱"],["efa1","煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖"],["f0a1","靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫"],["f1a1","踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只"],["f2a1","咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯"],["f3a1","鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策"],["f4a1","責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢"],["f5a1","椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃"],["f6a1","贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託"],["f7a1","鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑"],["f8a1","阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃"],["f9a1","品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航"],["faa1","行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型"],["fba1","形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵"],["fca1","禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆"],["fda1","爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰"]];
14500
14501/***/ }),
14502
14503/***/ "./node_modules/iconv-lite/encodings/tables/cp950.json":
14504/*!*************************************************************!*\
14505 !*** ./node_modules/iconv-lite/encodings/tables/cp950.json ***!
14506 \*************************************************************/
14507/*! exports provided: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, default */
14508/***/ (function(module) {
14509
14510module.exports = [["0","\u0000",127],["a140"," ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"],["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢",4,"~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/"],["a240","\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"],["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳0",9,"Ⅰ",9,"〡",8,"十卄卅A",25,"a",21],["a340","wxyzΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10],["a3a1","ㄐ",25,"˙ˉˊˇˋ"],["a3e1","€"],["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"],["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"],["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"],["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"],["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"],["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"],["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"],["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"],["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"],["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"],["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"],["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"],["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"],["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"],["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"],["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"],["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"],["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"],["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"],["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"],["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"],["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"],["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"],["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"],["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"],["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"],["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"],["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"],["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"],["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"],["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"],["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"],["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"],["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"],["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"],["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"],["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"],["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"],["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"],["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"],["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"],["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"],["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"],["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"],["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"],["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"],["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"],["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"],["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"],["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"],["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"],["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"],["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"],["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"],["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"],["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"],["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"],["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"],["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"],["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"],["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"],["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"],["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"],["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"],["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"],["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"],["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"],["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"],["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"],["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"],["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"],["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"],["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"],["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"],["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"],["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"],["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"],["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"],["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"],["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"],["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"],["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"],["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"],["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"],["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"],["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"],["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"],["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"],["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"],["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"],["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"],["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"],["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"],["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"],["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"],["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"],["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"],["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"],["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"],["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"],["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"],["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"],["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"],["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"],["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"],["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"],["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"],["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"],["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"],["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"],["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"],["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"],["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"],["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"],["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"],["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"],["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"],["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"],["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"],["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"],["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"],["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"],["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"],["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"],["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"],["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"],["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"],["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"],["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"],["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"],["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"],["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"],["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"],["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"],["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"],["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"],["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"],["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"],["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"],["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"],["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"],["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"],["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"],["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"],["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"],["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"],["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"],["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"],["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"],["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"],["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"],["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"],["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"],["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"],["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"],["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"],["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"],["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"],["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"],["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"],["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"],["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"],["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"],["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"],["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"],["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"],["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"]];
14511
14512/***/ }),
14513
14514/***/ "./node_modules/iconv-lite/encodings/tables/eucjp.json":
14515/*!*************************************************************!*\
14516 !*** ./node_modules/iconv-lite/encodings/tables/eucjp.json ***!
14517 \*************************************************************/
14518/*! exports provided: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, default */
14519/***/ (function(module) {
14520
14521module.exports = [["0","\u0000",127],["8ea1","。",62],["a1a1"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇"],["a2a1","◆□■△▲▽▼※〒→←↑↓〓"],["a2ba","∈∋⊆⊇⊂⊃∪∩"],["a2ca","∧∨¬⇒⇔∀∃"],["a2dc","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["a2f2","ʼn♯♭♪†‡¶"],["a2fe","◯"],["a3b0","0",9],["a3c1","A",25],["a3e1","a",25],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a8a1","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["ada1","①",19,"Ⅰ",9],["adc0","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["addf","㍻〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["b0a1","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["b1a1","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応"],["b2a1","押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["b3a1","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱"],["b4a1","粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["b5a1","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京"],["b6a1","供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["b7a1","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲"],["b8a1","検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["b9a1","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込"],["baa1","此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["bba1","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時"],["bca1","次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["bda1","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償"],["bea1","勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["bfa1","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾"],["c0a1","澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["c1a1","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎"],["c2a1","臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["c3a1","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵"],["c4a1","帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["c5a1","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到"],["c6a1","董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["c7a1","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦"],["c8a1","函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["c9a1","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服"],["caa1","福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["cba1","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満"],["cca1","漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["cda1","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃"],["cea1","痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["cfa1","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["d0a1","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["d1a1","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨"],["d2a1","辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["d3a1","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉"],["d4a1","圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["d5a1","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓"],["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["d7a1","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚"],["d8a1","悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["d9a1","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼"],["daa1","據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["dba1","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍"],["dca1","棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["dda1","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾"],["dea1","沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["dfa1","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼"],["e0a1","燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e1a1","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰"],["e2a1","癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e3a1","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐"],["e4a1","筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e5a1","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺"],["e6a1","罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e7a1","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙"],["e8a1","茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e9a1","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙"],["eaa1","蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["eba1","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫"],["eca1","譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["eda1","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸"],["eea1","遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["efa1","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞"],["f0a1","陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["f1a1","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷"],["f2a1","髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠"],["f4a1","堯槇遙瑤凜熙"],["f9a1","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德"],["faa1","忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["fba1","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚"],["fca1","釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["fcf1","ⅰ",9,"¬¦'""],["8fa2af","˘ˇ¸˙˝¯˛˚~΄΅"],["8fa2c2","¡¦¿"],["8fa2eb","ºª©®™¤№"],["8fa6e1","ΆΈΉΊΪ"],["8fa6e7","Ό"],["8fa6e9","ΎΫ"],["8fa6ec","Ώ"],["8fa6f1","άέήίϊΐόςύϋΰώ"],["8fa7c2","Ђ",10,"ЎЏ"],["8fa7f2","ђ",10,"ўџ"],["8fa9a1","ÆĐ"],["8fa9a4","Ħ"],["8fa9a6","IJ"],["8fa9a8","ŁĿ"],["8fa9ab","ŊØŒ"],["8fa9af","ŦÞ"],["8fa9c1","æđðħıijĸłŀʼnŋøœßŧþ"],["8faaa1","ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ"],["8faaba","ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ"],["8faba1","áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ"],["8fabbd","ġĥíìïîǐ"],["8fabc5","īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż"],["8fb0a1","丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄"],["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐"],["8fb2a1","傒傓傔傖傛傜傞",4,"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂"],["8fb3a1","凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋"],["8fb4a1","匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿"],["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒"],["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤",4,"囱囫园"],["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭",4,"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡"],["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭"],["8fb9a1","奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿"],["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖",4,"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩"],["8fbba1","屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤"],["8fbca1","巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪",4,"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧"],["8fbda1","彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐",4,"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷"],["8fbea1","悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐",4,"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥"],["8fbfa1","懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵"],["8fc0a1","捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿"],["8fc1a1","擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝"],["8fc2a1","昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝"],["8fc3a1","杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮",4,"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏"],["8fc4a1","棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲"],["8fc5a1","樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽"],["8fc6a1","歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖"],["8fc7a1","泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞"],["8fc8a1","湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊"],["8fc9a1","濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔",4,"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃",4,"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠"],["8fcaa1","煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻"],["8fcba1","狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽"],["8fcca1","珿琀琁琄琇琊琑琚琛琤琦琨",9,"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆"],["8fcda1","甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹",5,"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹"],["8fcea1","瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢",6,"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢"],["8fcfa1","睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳"],["8fd0a1","碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞"],["8fd1a1","秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰"],["8fd2a1","笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙",5],["8fd3a1","籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝"],["8fd4a1","綞綦綧綪綳綶綷綹緂",4,"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭"],["8fd5a1","罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮"],["8fd6a1","胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆"],["8fd7a1","艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸"],["8fd8a1","荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓"],["8fd9a1","蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏",4,"蕖蕙蕜",6,"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼"],["8fdaa1","藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠",4,"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣"],["8fdba1","蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃",6,"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵"],["8fdca1","蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊",4,"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺"],["8fdda1","襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔",4,"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳"],["8fdea1","誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂",4,"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆"],["8fdfa1","貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢"],["8fe0a1","踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁"],["8fe1a1","轃轇轏轑",4,"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃"],["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿"],["8fe3a1","釂釃釅釓釔釗釙釚釞釤釥釩釪釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵",4,"鉻鉼鉽鉿銈銉銊銍銎銒銗"],["8fe4a1","銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶"],["8fe5a1","鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹"],["8fe6a1","镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂"],["8fe7a1","霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦"],["8fe8a1","頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵"],["8fe9a1","馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿",4],["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪",4,"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸"],["8feba1","鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻"],["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵"],["8feda1","黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃",4,"齓齕齖齗齘齚齝齞齨齩齭",4,"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥"]];
14522
14523/***/ }),
14524
14525/***/ "./node_modules/iconv-lite/encodings/tables/gb18030-ranges.json":
14526/*!**********************************************************************!*\
14527 !*** ./node_modules/iconv-lite/encodings/tables/gb18030-ranges.json ***!
14528 \**********************************************************************/
14529/*! exports provided: uChars, gbChars, default */
14530/***/ (function(module) {
14531
14532module.exports = {"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]};
14533
14534/***/ }),
14535
14536/***/ "./node_modules/iconv-lite/encodings/tables/gbk-added.json":
14537/*!*****************************************************************!*\
14538 !*** ./node_modules/iconv-lite/encodings/tables/gbk-added.json ***!
14539 \*****************************************************************/
14540/*! exports provided: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, default */
14541/***/ (function(module) {
14542
14543module.exports = [["a140","",62],["a180","",32],["a240","",62],["a280","",32],["a2ab","",5],["a2e3","€"],["a2ef",""],["a2fd",""],["a340","",62],["a380","",31," "],["a440","",62],["a480","",32],["a4f4","",10],["a540","",62],["a580","",32],["a5f7","",7],["a640","",62],["a680","",32],["a6b9","",7],["a6d9","",6],["a6ec",""],["a6f3",""],["a6f6","",8],["a740","",62],["a780","",32],["a7c2","",14],["a7f2","",12],["a896","",10],["a8bc",""],["a8bf","ǹ"],["a8c1",""],["a8ea","",20],["a958",""],["a95b",""],["a95d",""],["a989","〾⿰",11],["a997","",12],["a9f0","",14],["aaa1","",93],["aba1","",93],["aca1","",93],["ada1","",93],["aea1","",93],["afa1","",93],["d7fa","",4],["f8a1","",93],["f9a1","",93],["faa1","",93],["fba1","",93],["fca1","",93],["fda1","",93],["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"],["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93]];
14544
14545/***/ }),
14546
14547/***/ "./node_modules/iconv-lite/encodings/tables/shiftjis.json":
14548/*!****************************************************************!*\
14549 !*** ./node_modules/iconv-lite/encodings/tables/shiftjis.json ***!
14550 \****************************************************************/
14551/*! exports provided: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, default */
14552/***/ (function(module) {
14553
14554module.exports = [["0","\u0000",128],["a1","。",62],["8140"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×"],["8180","÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"],["81b8","∈∋⊆⊇⊂⊃∪∩"],["81c8","∧∨¬⇒⇔∀∃"],["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["81f0","ʼn♯♭♪†‡¶"],["81fc","◯"],["824f","0",9],["8260","A",25],["8281","a",25],["829f","ぁ",82],["8340","ァ",62],["8380","ム",22],["839f","Α",16,"Σ",6],["83bf","α",16,"σ",6],["8440","А",5,"ЁЖ",25],["8470","а",5,"ёж",7],["8480","о",17],["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["8740","①",19,"Ⅰ",9],["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["877e","㍻"],["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["889f","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["8940","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円"],["8980","園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["8a40","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫"],["8a80","橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["8b40","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救"],["8b80","朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["8c40","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨"],["8c80","劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["8d40","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降"],["8d80","項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["8e40","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止"],["8e80","死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["8f40","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳"],["8f80","準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["9040","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨"],["9080","逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["9140","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻"],["9180","操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["9240","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄"],["9280","逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["9340","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬"],["9380","凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["9440","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅"],["9480","楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["9540","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷"],["9580","斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["9640","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆"],["9680","摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["9740","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲"],["9780","沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["9840","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["989f","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["9940","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭"],["9980","凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["9a40","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸"],["9a80","噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["9b40","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀"],["9b80","它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["9c40","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠"],["9c80","怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["9d40","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫"],["9d80","捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["9e40","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎"],["9e80","梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["9f40","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯"],["9f80","麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["e040","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝"],["e080","烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e140","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿"],["e180","痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e240","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰"],["e280","窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e340","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷"],["e380","縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e440","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤"],["e480","艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e540","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬"],["e580","蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["e640","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧"],["e680","諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["e740","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜"],["e780","轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["e840","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙"],["e880","閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["e940","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃"],["e980","騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯"],["ea80","黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"],["ed40","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏"],["ed80","塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["ee40","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙"],["ee80","蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["eeef","ⅰ",9,"¬¦'""],["f040","",62],["f080","",124],["f140","",62],["f180","",124],["f240","",62],["f280","",124],["f340","",62],["f380","",124],["f440","",62],["f480","",124],["f540","",62],["f580","",124],["f640","",62],["f680","",124],["f740","",62],["f780","",124],["f840","",62],["f880","",124],["f940",""],["fa40","ⅰ",9,"Ⅰ",9,"¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊"],["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯"],["fb40","涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神"],["fb80","祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙"],["fc40","髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"]];
14555
14556/***/ }),
14557
14558/***/ "./node_modules/iconv-lite/encodings/utf16.js":
14559/*!****************************************************!*\
14560 !*** ./node_modules/iconv-lite/encodings/utf16.js ***!
14561 \****************************************************/
14562/*! no static exports found */
14563/***/ (function(module, exports, __webpack_require__) {
14564
14565"use strict";
14566
14567var Buffer = __webpack_require__(/*! safer-buffer */ "./node_modules/safer-buffer/safer.js").Buffer;
14568
14569// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js
14570
14571// == UTF16-BE codec. ==========================================================
14572
14573exports.utf16be = Utf16BECodec;
14574function Utf16BECodec() {
14575}
14576
14577Utf16BECodec.prototype.encoder = Utf16BEEncoder;
14578Utf16BECodec.prototype.decoder = Utf16BEDecoder;
14579Utf16BECodec.prototype.bomAware = true;
14580
14581
14582// -- Encoding
14583
14584function Utf16BEEncoder() {
14585}
14586
14587Utf16BEEncoder.prototype.write = function(str) {
14588 var buf = Buffer.from(str, 'ucs2');
14589 for (var i = 0; i < buf.length; i += 2) {
14590 var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;
14591 }
14592 return buf;
14593}
14594
14595Utf16BEEncoder.prototype.end = function() {
14596}
14597
14598
14599// -- Decoding
14600
14601function Utf16BEDecoder() {
14602 this.overflowByte = -1;
14603}
14604
14605Utf16BEDecoder.prototype.write = function(buf) {
14606 if (buf.length == 0)
14607 return '';
14608
14609 var buf2 = Buffer.alloc(buf.length + 1),
14610 i = 0, j = 0;
14611
14612 if (this.overflowByte !== -1) {
14613 buf2[0] = buf[0];
14614 buf2[1] = this.overflowByte;
14615 i = 1; j = 2;
14616 }
14617
14618 for (; i < buf.length-1; i += 2, j+= 2) {
14619 buf2[j] = buf[i+1];
14620 buf2[j+1] = buf[i];
14621 }
14622
14623 this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;
14624
14625 return buf2.slice(0, j).toString('ucs2');
14626}
14627
14628Utf16BEDecoder.prototype.end = function() {
14629}
14630
14631
14632// == UTF-16 codec =============================================================
14633// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.
14634// Defaults to UTF-16LE, as it's prevalent and default in Node.
14635// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le
14636// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});
14637
14638// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).
14639
14640exports.utf16 = Utf16Codec;
14641function Utf16Codec(codecOptions, iconv) {
14642 this.iconv = iconv;
14643}
14644
14645Utf16Codec.prototype.encoder = Utf16Encoder;
14646Utf16Codec.prototype.decoder = Utf16Decoder;
14647
14648
14649// -- Encoding (pass-through)
14650
14651function Utf16Encoder(options, codec) {
14652 options = options || {};
14653 if (options.addBOM === undefined)
14654 options.addBOM = true;
14655 this.encoder = codec.iconv.getEncoder('utf-16le', options);
14656}
14657
14658Utf16Encoder.prototype.write = function(str) {
14659 return this.encoder.write(str);
14660}
14661
14662Utf16Encoder.prototype.end = function() {
14663 return this.encoder.end();
14664}
14665
14666
14667// -- Decoding
14668
14669function Utf16Decoder(options, codec) {
14670 this.decoder = null;
14671 this.initialBytes = [];
14672 this.initialBytesLen = 0;
14673
14674 this.options = options || {};
14675 this.iconv = codec.iconv;
14676}
14677
14678Utf16Decoder.prototype.write = function(buf) {
14679 if (!this.decoder) {
14680 // Codec is not chosen yet. Accumulate initial bytes.
14681 this.initialBytes.push(buf);
14682 this.initialBytesLen += buf.length;
14683
14684 if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below)
14685 return '';
14686
14687 // We have enough bytes -> detect endianness.
14688 var buf = Buffer.concat(this.initialBytes),
14689 encoding = detectEncoding(buf, this.options.defaultEncoding);
14690 this.decoder = this.iconv.getDecoder(encoding, this.options);
14691 this.initialBytes.length = this.initialBytesLen = 0;
14692 }
14693
14694 return this.decoder.write(buf);
14695}
14696
14697Utf16Decoder.prototype.end = function() {
14698 if (!this.decoder) {
14699 var buf = Buffer.concat(this.initialBytes),
14700 encoding = detectEncoding(buf, this.options.defaultEncoding);
14701 this.decoder = this.iconv.getDecoder(encoding, this.options);
14702
14703 var res = this.decoder.write(buf),
14704 trail = this.decoder.end();
14705
14706 return trail ? (res + trail) : res;
14707 }
14708 return this.decoder.end();
14709}
14710
14711function detectEncoding(buf, defaultEncoding) {
14712 var enc = defaultEncoding || 'utf-16le';
14713
14714 if (buf.length >= 2) {
14715 // Check BOM.
14716 if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM
14717 enc = 'utf-16be';
14718 else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM
14719 enc = 'utf-16le';
14720 else {
14721 // No BOM found. Try to deduce encoding from initial content.
14722 // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.
14723 // So, we count ASCII as if it was LE or BE, and decide from that.
14724 var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions
14725 _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even.
14726
14727 for (var i = 0; i < _len; i += 2) {
14728 if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++;
14729 if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++;
14730 }
14731
14732 if (asciiCharsBE > asciiCharsLE)
14733 enc = 'utf-16be';
14734 else if (asciiCharsBE < asciiCharsLE)
14735 enc = 'utf-16le';
14736 }
14737 }
14738
14739 return enc;
14740}
14741
14742
14743
14744
14745/***/ }),
14746
14747/***/ "./node_modules/iconv-lite/encodings/utf7.js":
14748/*!***************************************************!*\
14749 !*** ./node_modules/iconv-lite/encodings/utf7.js ***!
14750 \***************************************************/
14751/*! no static exports found */
14752/***/ (function(module, exports, __webpack_require__) {
14753
14754"use strict";
14755
14756var Buffer = __webpack_require__(/*! safer-buffer */ "./node_modules/safer-buffer/safer.js").Buffer;
14757
14758// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152
14759// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3
14760
14761exports.utf7 = Utf7Codec;
14762exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7
14763function Utf7Codec(codecOptions, iconv) {
14764 this.iconv = iconv;
14765};
14766
14767Utf7Codec.prototype.encoder = Utf7Encoder;
14768Utf7Codec.prototype.decoder = Utf7Decoder;
14769Utf7Codec.prototype.bomAware = true;
14770
14771
14772// -- Encoding
14773
14774var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
14775
14776function Utf7Encoder(options, codec) {
14777 this.iconv = codec.iconv;
14778}
14779
14780Utf7Encoder.prototype.write = function(str) {
14781 // Naive implementation.
14782 // Non-direct chars are encoded as "+<base64>-"; single "+" char is encoded as "+-".
14783 return Buffer.from(str.replace(nonDirectChars, function(chunk) {
14784 return "+" + (chunk === '+' ? '' :
14785 this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, ''))
14786 + "-";
14787 }.bind(this)));
14788}
14789
14790Utf7Encoder.prototype.end = function() {
14791}
14792
14793
14794// -- Decoding
14795
14796function Utf7Decoder(options, codec) {
14797 this.iconv = codec.iconv;
14798 this.inBase64 = false;
14799 this.base64Accum = '';
14800}
14801
14802var base64Regex = /[A-Za-z0-9\/+]/;
14803var base64Chars = [];
14804for (var i = 0; i < 256; i++)
14805 base64Chars[i] = base64Regex.test(String.fromCharCode(i));
14806
14807var plusChar = '+'.charCodeAt(0),
14808 minusChar = '-'.charCodeAt(0),
14809 andChar = '&'.charCodeAt(0);
14810
14811Utf7Decoder.prototype.write = function(buf) {
14812 var res = "", lastI = 0,
14813 inBase64 = this.inBase64,
14814 base64Accum = this.base64Accum;
14815
14816 // The decoder is more involved as we must handle chunks in stream.
14817
14818 for (var i = 0; i < buf.length; i++) {
14819 if (!inBase64) { // We're in direct mode.
14820 // Write direct chars until '+'
14821 if (buf[i] == plusChar) {
14822 res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
14823 lastI = i+1;
14824 inBase64 = true;
14825 }
14826 } else { // We decode base64.
14827 if (!base64Chars[buf[i]]) { // Base64 ended.
14828 if (i == lastI && buf[i] == minusChar) {// "+-" -> "+"
14829 res += "+";
14830 } else {
14831 var b64str = base64Accum + buf.slice(lastI, i).toString();
14832 res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
14833 }
14834
14835 if (buf[i] != minusChar) // Minus is absorbed after base64.
14836 i--;
14837
14838 lastI = i+1;
14839 inBase64 = false;
14840 base64Accum = '';
14841 }
14842 }
14843 }
14844
14845 if (!inBase64) {
14846 res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
14847 } else {
14848 var b64str = base64Accum + buf.slice(lastI).toString();
14849
14850 var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
14851 base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
14852 b64str = b64str.slice(0, canBeDecoded);
14853
14854 res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
14855 }
14856
14857 this.inBase64 = inBase64;
14858 this.base64Accum = base64Accum;
14859
14860 return res;
14861}
14862
14863Utf7Decoder.prototype.end = function() {
14864 var res = "";
14865 if (this.inBase64 && this.base64Accum.length > 0)
14866 res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");
14867
14868 this.inBase64 = false;
14869 this.base64Accum = '';
14870 return res;
14871}
14872
14873
14874// UTF-7-IMAP codec.
14875// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)
14876// Differences:
14877// * Base64 part is started by "&" instead of "+"
14878// * Direct characters are 0x20-0x7E, except "&" (0x26)
14879// * In Base64, "," is used instead of "/"
14880// * Base64 must not be used to represent direct characters.
14881// * No implicit shift back from Base64 (should always end with '-')
14882// * String must end in non-shifted position.
14883// * "-&" while in base64 is not allowed.
14884
14885
14886exports.utf7imap = Utf7IMAPCodec;
14887function Utf7IMAPCodec(codecOptions, iconv) {
14888 this.iconv = iconv;
14889};
14890
14891Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
14892Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
14893Utf7IMAPCodec.prototype.bomAware = true;
14894
14895
14896// -- Encoding
14897
14898function Utf7IMAPEncoder(options, codec) {
14899 this.iconv = codec.iconv;
14900 this.inBase64 = false;
14901 this.base64Accum = Buffer.alloc(6);
14902 this.base64AccumIdx = 0;
14903}
14904
14905Utf7IMAPEncoder.prototype.write = function(str) {
14906 var inBase64 = this.inBase64,
14907 base64Accum = this.base64Accum,
14908 base64AccumIdx = this.base64AccumIdx,
14909 buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0;
14910
14911 for (var i = 0; i < str.length; i++) {
14912 var uChar = str.charCodeAt(i);
14913 if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.
14914 if (inBase64) {
14915 if (base64AccumIdx > 0) {
14916 bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
14917 base64AccumIdx = 0;
14918 }
14919
14920 buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
14921 inBase64 = false;
14922 }
14923
14924 if (!inBase64) {
14925 buf[bufIdx++] = uChar; // Write direct character
14926
14927 if (uChar === andChar) // Ampersand -> '&-'
14928 buf[bufIdx++] = minusChar;
14929 }
14930
14931 } else { // Non-direct character
14932 if (!inBase64) {
14933 buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.
14934 inBase64 = true;
14935 }
14936 if (inBase64) {
14937 base64Accum[base64AccumIdx++] = uChar >> 8;
14938 base64Accum[base64AccumIdx++] = uChar & 0xFF;
14939
14940 if (base64AccumIdx == base64Accum.length) {
14941 bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx);
14942 base64AccumIdx = 0;
14943 }
14944 }
14945 }
14946 }
14947
14948 this.inBase64 = inBase64;
14949 this.base64AccumIdx = base64AccumIdx;
14950
14951 return buf.slice(0, bufIdx);
14952}
14953
14954Utf7IMAPEncoder.prototype.end = function() {
14955 var buf = Buffer.alloc(10), bufIdx = 0;
14956 if (this.inBase64) {
14957 if (this.base64AccumIdx > 0) {
14958 bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
14959 this.base64AccumIdx = 0;
14960 }
14961
14962 buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
14963 this.inBase64 = false;
14964 }
14965
14966 return buf.slice(0, bufIdx);
14967}
14968
14969
14970// -- Decoding
14971
14972function Utf7IMAPDecoder(options, codec) {
14973 this.iconv = codec.iconv;
14974 this.inBase64 = false;
14975 this.base64Accum = '';
14976}
14977
14978var base64IMAPChars = base64Chars.slice();
14979base64IMAPChars[','.charCodeAt(0)] = true;
14980
14981Utf7IMAPDecoder.prototype.write = function(buf) {
14982 var res = "", lastI = 0,
14983 inBase64 = this.inBase64,
14984 base64Accum = this.base64Accum;
14985
14986 // The decoder is more involved as we must handle chunks in stream.
14987 // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).
14988
14989 for (var i = 0; i < buf.length; i++) {
14990 if (!inBase64) { // We're in direct mode.
14991 // Write direct chars until '&'
14992 if (buf[i] == andChar) {
14993 res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
14994 lastI = i+1;
14995 inBase64 = true;
14996 }
14997 } else { // We decode base64.
14998 if (!base64IMAPChars[buf[i]]) { // Base64 ended.
14999 if (i == lastI && buf[i] == minusChar) { // "&-" -> "&"
15000 res += "&";
15001 } else {
15002 var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/');
15003 res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
15004 }
15005
15006 if (buf[i] != minusChar) // Minus may be absorbed after base64.
15007 i--;
15008
15009 lastI = i+1;
15010 inBase64 = false;
15011 base64Accum = '';
15012 }
15013 }
15014 }
15015
15016 if (!inBase64) {
15017 res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
15018 } else {
15019 var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/');
15020
15021 var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
15022 base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
15023 b64str = b64str.slice(0, canBeDecoded);
15024
15025 res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
15026 }
15027
15028 this.inBase64 = inBase64;
15029 this.base64Accum = base64Accum;
15030
15031 return res;
15032}
15033
15034Utf7IMAPDecoder.prototype.end = function() {
15035 var res = "";
15036 if (this.inBase64 && this.base64Accum.length > 0)
15037 res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");
15038
15039 this.inBase64 = false;
15040 this.base64Accum = '';
15041 return res;
15042}
15043
15044
15045
15046
15047/***/ }),
15048
15049/***/ "./node_modules/iconv-lite/lib/bom-handling.js":
15050/*!*****************************************************!*\
15051 !*** ./node_modules/iconv-lite/lib/bom-handling.js ***!
15052 \*****************************************************/
15053/*! no static exports found */
15054/***/ (function(module, exports, __webpack_require__) {
15055
15056"use strict";
15057
15058
15059var BOMChar = '\uFEFF';
15060
15061exports.PrependBOM = PrependBOMWrapper
15062function PrependBOMWrapper(encoder, options) {
15063 this.encoder = encoder;
15064 this.addBOM = true;
15065}
15066
15067PrependBOMWrapper.prototype.write = function(str) {
15068 if (this.addBOM) {
15069 str = BOMChar + str;
15070 this.addBOM = false;
15071 }
15072
15073 return this.encoder.write(str);
15074}
15075
15076PrependBOMWrapper.prototype.end = function() {
15077 return this.encoder.end();
15078}
15079
15080
15081//------------------------------------------------------------------------------
15082
15083exports.StripBOM = StripBOMWrapper;
15084function StripBOMWrapper(decoder, options) {
15085 this.decoder = decoder;
15086 this.pass = false;
15087 this.options = options || {};
15088}
15089
15090StripBOMWrapper.prototype.write = function(buf) {
15091 var res = this.decoder.write(buf);
15092 if (this.pass || !res)
15093 return res;
15094
15095 if (res[0] === BOMChar) {
15096 res = res.slice(1);
15097 if (typeof this.options.stripBOM === 'function')
15098 this.options.stripBOM();
15099 }
15100
15101 this.pass = true;
15102 return res;
15103}
15104
15105StripBOMWrapper.prototype.end = function() {
15106 return this.decoder.end();
15107}
15108
15109
15110
15111/***/ }),
15112
15113/***/ "./node_modules/iconv-lite/lib/extend-node.js":
15114/*!****************************************************!*\
15115 !*** ./node_modules/iconv-lite/lib/extend-node.js ***!
15116 \****************************************************/
15117/*! no static exports found */
15118/***/ (function(module, exports, __webpack_require__) {
15119
15120"use strict";
15121
15122var Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer;
15123// Note: not polyfilled with safer-buffer on a purpose, as overrides Buffer
15124
15125// == Extend Node primitives to use iconv-lite =================================
15126
15127module.exports = function (iconv) {
15128 var original = undefined; // Place to keep original methods.
15129
15130 // Node authors rewrote Buffer internals to make it compatible with
15131 // Uint8Array and we cannot patch key functions since then.
15132 // Note: this does use older Buffer API on a purpose
15133 iconv.supportsNodeEncodingsExtension = !(Buffer.from || new Buffer(0) instanceof Uint8Array);
15134
15135 iconv.extendNodeEncodings = function extendNodeEncodings() {
15136 if (original) return;
15137 original = {};
15138
15139 if (!iconv.supportsNodeEncodingsExtension) {
15140 console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node");
15141 console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");
15142 return;
15143 }
15144
15145 var nodeNativeEncodings = {
15146 'hex': true, 'utf8': true, 'utf-8': true, 'ascii': true, 'binary': true,
15147 'base64': true, 'ucs2': true, 'ucs-2': true, 'utf16le': true, 'utf-16le': true,
15148 };
15149
15150 Buffer.isNativeEncoding = function(enc) {
15151 return enc && nodeNativeEncodings[enc.toLowerCase()];
15152 }
15153
15154 // -- SlowBuffer -----------------------------------------------------------
15155 var SlowBuffer = __webpack_require__(/*! buffer */ "buffer").SlowBuffer;
15156
15157 original.SlowBufferToString = SlowBuffer.prototype.toString;
15158 SlowBuffer.prototype.toString = function(encoding, start, end) {
15159 encoding = String(encoding || 'utf8').toLowerCase();
15160
15161 // Use native conversion when possible
15162 if (Buffer.isNativeEncoding(encoding))
15163 return original.SlowBufferToString.call(this, encoding, start, end);
15164
15165 // Otherwise, use our decoding method.
15166 if (typeof start == 'undefined') start = 0;
15167 if (typeof end == 'undefined') end = this.length;
15168 return iconv.decode(this.slice(start, end), encoding);
15169 }
15170
15171 original.SlowBufferWrite = SlowBuffer.prototype.write;
15172 SlowBuffer.prototype.write = function(string, offset, length, encoding) {
15173 // Support both (string, offset, length, encoding)
15174 // and the legacy (string, encoding, offset, length)
15175 if (isFinite(offset)) {
15176 if (!isFinite(length)) {
15177 encoding = length;
15178 length = undefined;
15179 }
15180 } else { // legacy
15181 var swap = encoding;
15182 encoding = offset;
15183 offset = length;
15184 length = swap;
15185 }
15186
15187 offset = +offset || 0;
15188 var remaining = this.length - offset;
15189 if (!length) {
15190 length = remaining;
15191 } else {
15192 length = +length;
15193 if (length > remaining) {
15194 length = remaining;
15195 }
15196 }
15197 encoding = String(encoding || 'utf8').toLowerCase();
15198
15199 // Use native conversion when possible
15200 if (Buffer.isNativeEncoding(encoding))
15201 return original.SlowBufferWrite.call(this, string, offset, length, encoding);
15202
15203 if (string.length > 0 && (length < 0 || offset < 0))
15204 throw new RangeError('attempt to write beyond buffer bounds');
15205
15206 // Otherwise, use our encoding method.
15207 var buf = iconv.encode(string, encoding);
15208 if (buf.length < length) length = buf.length;
15209 buf.copy(this, offset, 0, length);
15210 return length;
15211 }
15212
15213 // -- Buffer ---------------------------------------------------------------
15214
15215 original.BufferIsEncoding = Buffer.isEncoding;
15216 Buffer.isEncoding = function(encoding) {
15217 return Buffer.isNativeEncoding(encoding) || iconv.encodingExists(encoding);
15218 }
15219
15220 original.BufferByteLength = Buffer.byteLength;
15221 Buffer.byteLength = SlowBuffer.byteLength = function(str, encoding) {
15222 encoding = String(encoding || 'utf8').toLowerCase();
15223
15224 // Use native conversion when possible
15225 if (Buffer.isNativeEncoding(encoding))
15226 return original.BufferByteLength.call(this, str, encoding);
15227
15228 // Slow, I know, but we don't have a better way yet.
15229 return iconv.encode(str, encoding).length;
15230 }
15231
15232 original.BufferToString = Buffer.prototype.toString;
15233 Buffer.prototype.toString = function(encoding, start, end) {
15234 encoding = String(encoding || 'utf8').toLowerCase();
15235
15236 // Use native conversion when possible
15237 if (Buffer.isNativeEncoding(encoding))
15238 return original.BufferToString.call(this, encoding, start, end);
15239
15240 // Otherwise, use our decoding method.
15241 if (typeof start == 'undefined') start = 0;
15242 if (typeof end == 'undefined') end = this.length;
15243 return iconv.decode(this.slice(start, end), encoding);
15244 }
15245
15246 original.BufferWrite = Buffer.prototype.write;
15247 Buffer.prototype.write = function(string, offset, length, encoding) {
15248 var _offset = offset, _length = length, _encoding = encoding;
15249 // Support both (string, offset, length, encoding)
15250 // and the legacy (string, encoding, offset, length)
15251 if (isFinite(offset)) {
15252 if (!isFinite(length)) {
15253 encoding = length;
15254 length = undefined;
15255 }
15256 } else { // legacy
15257 var swap = encoding;
15258 encoding = offset;
15259 offset = length;
15260 length = swap;
15261 }
15262
15263 encoding = String(encoding || 'utf8').toLowerCase();
15264
15265 // Use native conversion when possible
15266 if (Buffer.isNativeEncoding(encoding))
15267 return original.BufferWrite.call(this, string, _offset, _length, _encoding);
15268
15269 offset = +offset || 0;
15270 var remaining = this.length - offset;
15271 if (!length) {
15272 length = remaining;
15273 } else {
15274 length = +length;
15275 if (length > remaining) {
15276 length = remaining;
15277 }
15278 }
15279
15280 if (string.length > 0 && (length < 0 || offset < 0))
15281 throw new RangeError('attempt to write beyond buffer bounds');
15282
15283 // Otherwise, use our encoding method.
15284 var buf = iconv.encode(string, encoding);
15285 if (buf.length < length) length = buf.length;
15286 buf.copy(this, offset, 0, length);
15287 return length;
15288
15289 // TODO: Set _charsWritten.
15290 }
15291
15292
15293 // -- Readable -------------------------------------------------------------
15294 if (iconv.supportsStreams) {
15295 var Readable = __webpack_require__(/*! stream */ "stream").Readable;
15296
15297 original.ReadableSetEncoding = Readable.prototype.setEncoding;
15298 Readable.prototype.setEncoding = function setEncoding(enc, options) {
15299 // Use our own decoder, it has the same interface.
15300 // We cannot use original function as it doesn't handle BOM-s.
15301 this._readableState.decoder = iconv.getDecoder(enc, options);
15302 this._readableState.encoding = enc;
15303 }
15304
15305 Readable.prototype.collect = iconv._collect;
15306 }
15307 }
15308
15309 // Remove iconv-lite Node primitive extensions.
15310 iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() {
15311 if (!iconv.supportsNodeEncodingsExtension)
15312 return;
15313 if (!original)
15314 throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.")
15315
15316 delete Buffer.isNativeEncoding;
15317
15318 var SlowBuffer = __webpack_require__(/*! buffer */ "buffer").SlowBuffer;
15319
15320 SlowBuffer.prototype.toString = original.SlowBufferToString;
15321 SlowBuffer.prototype.write = original.SlowBufferWrite;
15322
15323 Buffer.isEncoding = original.BufferIsEncoding;
15324 Buffer.byteLength = original.BufferByteLength;
15325 Buffer.prototype.toString = original.BufferToString;
15326 Buffer.prototype.write = original.BufferWrite;
15327
15328 if (iconv.supportsStreams) {
15329 var Readable = __webpack_require__(/*! stream */ "stream").Readable;
15330
15331 Readable.prototype.setEncoding = original.ReadableSetEncoding;
15332 delete Readable.prototype.collect;
15333 }
15334
15335 original = undefined;
15336 }
15337}
15338
15339
15340/***/ }),
15341
15342/***/ "./node_modules/iconv-lite/lib/index.js":
15343/*!**********************************************!*\
15344 !*** ./node_modules/iconv-lite/lib/index.js ***!
15345 \**********************************************/
15346/*! no static exports found */
15347/***/ (function(module, exports, __webpack_require__) {
15348
15349"use strict";
15350
15351
15352// Some environments don't have global Buffer (e.g. React Native).
15353// Solution would be installing npm modules "buffer" and "stream" explicitly.
15354var Buffer = __webpack_require__(/*! safer-buffer */ "./node_modules/safer-buffer/safer.js").Buffer;
15355
15356var bomHandling = __webpack_require__(/*! ./bom-handling */ "./node_modules/iconv-lite/lib/bom-handling.js"),
15357 iconv = module.exports;
15358
15359// All codecs and aliases are kept here, keyed by encoding name/alias.
15360// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.
15361iconv.encodings = null;
15362
15363// Characters emitted in case of error.
15364iconv.defaultCharUnicode = '�';
15365iconv.defaultCharSingleByte = '?';
15366
15367// Public API.
15368iconv.encode = function encode(str, encoding, options) {
15369 str = "" + (str || ""); // Ensure string.
15370
15371 var encoder = iconv.getEncoder(encoding, options);
15372
15373 var res = encoder.write(str);
15374 var trail = encoder.end();
15375
15376 return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;
15377}
15378
15379iconv.decode = function decode(buf, encoding, options) {
15380 if (typeof buf === 'string') {
15381 if (!iconv.skipDecodeWarning) {
15382 console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');
15383 iconv.skipDecodeWarning = true;
15384 }
15385
15386 buf = Buffer.from("" + (buf || ""), "binary"); // Ensure buffer.
15387 }
15388
15389 var decoder = iconv.getDecoder(encoding, options);
15390
15391 var res = decoder.write(buf);
15392 var trail = decoder.end();
15393
15394 return trail ? (res + trail) : res;
15395}
15396
15397iconv.encodingExists = function encodingExists(enc) {
15398 try {
15399 iconv.getCodec(enc);
15400 return true;
15401 } catch (e) {
15402 return false;
15403 }
15404}
15405
15406// Legacy aliases to convert functions
15407iconv.toEncoding = iconv.encode;
15408iconv.fromEncoding = iconv.decode;
15409
15410// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.
15411iconv._codecDataCache = {};
15412iconv.getCodec = function getCodec(encoding) {
15413 if (!iconv.encodings)
15414 iconv.encodings = __webpack_require__(/*! ../encodings */ "./node_modules/iconv-lite/encodings/index.js"); // Lazy load all encoding definitions.
15415
15416 // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
15417 var enc = iconv._canonicalizeEncoding(encoding);
15418
15419 // Traverse iconv.encodings to find actual codec.
15420 var codecOptions = {};
15421 while (true) {
15422 var codec = iconv._codecDataCache[enc];
15423 if (codec)
15424 return codec;
15425
15426 var codecDef = iconv.encodings[enc];
15427
15428 switch (typeof codecDef) {
15429 case "string": // Direct alias to other encoding.
15430 enc = codecDef;
15431 break;
15432
15433 case "object": // Alias with options. Can be layered.
15434 for (var key in codecDef)
15435 codecOptions[key] = codecDef[key];
15436
15437 if (!codecOptions.encodingName)
15438 codecOptions.encodingName = enc;
15439
15440 enc = codecDef.type;
15441 break;
15442
15443 case "function": // Codec itself.
15444 if (!codecOptions.encodingName)
15445 codecOptions.encodingName = enc;
15446
15447 // The codec function must load all tables and return object with .encoder and .decoder methods.
15448 // It'll be called only once (for each different options object).
15449 codec = new codecDef(codecOptions, iconv);
15450
15451 iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.
15452 return codec;
15453
15454 default:
15455 throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
15456 }
15457 }
15458}
15459
15460iconv._canonicalizeEncoding = function(encoding) {
15461 // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
15462 return (''+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
15463}
15464
15465iconv.getEncoder = function getEncoder(encoding, options) {
15466 var codec = iconv.getCodec(encoding),
15467 encoder = new codec.encoder(options, codec);
15468
15469 if (codec.bomAware && options && options.addBOM)
15470 encoder = new bomHandling.PrependBOM(encoder, options);
15471
15472 return encoder;
15473}
15474
15475iconv.getDecoder = function getDecoder(encoding, options) {
15476 var codec = iconv.getCodec(encoding),
15477 decoder = new codec.decoder(options, codec);
15478
15479 if (codec.bomAware && !(options && options.stripBOM === false))
15480 decoder = new bomHandling.StripBOM(decoder, options);
15481
15482 return decoder;
15483}
15484
15485
15486// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json.
15487var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node;
15488if (nodeVer) {
15489
15490 // Load streaming support in Node v0.10+
15491 var nodeVerArr = nodeVer.split(".").map(Number);
15492 if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {
15493 __webpack_require__(/*! ./streams */ "./node_modules/iconv-lite/lib/streams.js")(iconv);
15494 }
15495
15496 // Load Node primitive extensions.
15497 __webpack_require__(/*! ./extend-node */ "./node_modules/iconv-lite/lib/extend-node.js")(iconv);
15498}
15499
15500if (false) {}
15501
15502
15503/***/ }),
15504
15505/***/ "./node_modules/iconv-lite/lib/streams.js":
15506/*!************************************************!*\
15507 !*** ./node_modules/iconv-lite/lib/streams.js ***!
15508 \************************************************/
15509/*! no static exports found */
15510/***/ (function(module, exports, __webpack_require__) {
15511
15512"use strict";
15513
15514
15515var Buffer = __webpack_require__(/*! buffer */ "buffer").Buffer,
15516 Transform = __webpack_require__(/*! stream */ "stream").Transform;
15517
15518
15519// == Exports ==================================================================
15520module.exports = function(iconv) {
15521
15522 // Additional Public API.
15523 iconv.encodeStream = function encodeStream(encoding, options) {
15524 return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
15525 }
15526
15527 iconv.decodeStream = function decodeStream(encoding, options) {
15528 return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
15529 }
15530
15531 iconv.supportsStreams = true;
15532
15533
15534 // Not published yet.
15535 iconv.IconvLiteEncoderStream = IconvLiteEncoderStream;
15536 iconv.IconvLiteDecoderStream = IconvLiteDecoderStream;
15537 iconv._collect = IconvLiteDecoderStream.prototype.collect;
15538};
15539
15540
15541// == Encoder stream =======================================================
15542function IconvLiteEncoderStream(conv, options) {
15543 this.conv = conv;
15544 options = options || {};
15545 options.decodeStrings = false; // We accept only strings, so we don't need to decode them.
15546 Transform.call(this, options);
15547}
15548
15549IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
15550 constructor: { value: IconvLiteEncoderStream }
15551});
15552
15553IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
15554 if (typeof chunk != 'string')
15555 return done(new Error("Iconv encoding stream needs strings as its input."));
15556 try {
15557 var res = this.conv.write(chunk);
15558 if (res && res.length) this.push(res);
15559 done();
15560 }
15561 catch (e) {
15562 done(e);
15563 }
15564}
15565
15566IconvLiteEncoderStream.prototype._flush = function(done) {
15567 try {
15568 var res = this.conv.end();
15569 if (res && res.length) this.push(res);
15570 done();
15571 }
15572 catch (e) {
15573 done(e);
15574 }
15575}
15576
15577IconvLiteEncoderStream.prototype.collect = function(cb) {
15578 var chunks = [];
15579 this.on('error', cb);
15580 this.on('data', function(chunk) { chunks.push(chunk); });
15581 this.on('end', function() {
15582 cb(null, Buffer.concat(chunks));
15583 });
15584 return this;
15585}
15586
15587
15588// == Decoder stream =======================================================
15589function IconvLiteDecoderStream(conv, options) {
15590 this.conv = conv;
15591 options = options || {};
15592 options.encoding = this.encoding = 'utf8'; // We output strings.
15593 Transform.call(this, options);
15594}
15595
15596IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
15597 constructor: { value: IconvLiteDecoderStream }
15598});
15599
15600IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
15601 if (!Buffer.isBuffer(chunk))
15602 return done(new Error("Iconv decoding stream needs buffers as its input."));
15603 try {
15604 var res = this.conv.write(chunk);
15605 if (res && res.length) this.push(res, this.encoding);
15606 done();
15607 }
15608 catch (e) {
15609 done(e);
15610 }
15611}
15612
15613IconvLiteDecoderStream.prototype._flush = function(done) {
15614 try {
15615 var res = this.conv.end();
15616 if (res && res.length) this.push(res, this.encoding);
15617 done();
15618 }
15619 catch (e) {
15620 done(e);
15621 }
15622}
15623
15624IconvLiteDecoderStream.prototype.collect = function(cb) {
15625 var res = '';
15626 this.on('error', cb);
15627 this.on('data', function(chunk) { res += chunk; });
15628 this.on('end', function() {
15629 cb(null, res);
15630 });
15631 return this;
15632}
15633
15634
15635
15636/***/ }),
15637
15638/***/ "./node_modules/inflight/inflight.js":
15639/*!*******************************************!*\
15640 !*** ./node_modules/inflight/inflight.js ***!
15641 \*******************************************/
15642/*! no static exports found */
15643/***/ (function(module, exports, __webpack_require__) {
15644
15645var wrappy = __webpack_require__(/*! wrappy */ "./node_modules/wrappy/wrappy.js")
15646var reqs = Object.create(null)
15647var once = __webpack_require__(/*! once */ "./node_modules/once/once.js")
15648
15649module.exports = wrappy(inflight)
15650
15651function inflight (key, cb) {
15652 if (reqs[key]) {
15653 reqs[key].push(cb)
15654 return null
15655 } else {
15656 reqs[key] = [cb]
15657 return makeres(key)
15658 }
15659}
15660
15661function makeres (key) {
15662 return once(function RES () {
15663 var cbs = reqs[key]
15664 var len = cbs.length
15665 var args = slice(arguments)
15666
15667 // XXX It's somewhat ambiguous whether a new callback added in this
15668 // pass should be queued for later execution if something in the
15669 // list of callbacks throws, or if it should just be discarded.
15670 // However, it's such an edge case that it hardly matters, and either
15671 // choice is likely as surprising as the other.
15672 // As it happens, we do go ahead and schedule it for later execution.
15673 try {
15674 for (var i = 0; i < len; i++) {
15675 cbs[i].apply(null, args)
15676 }
15677 } finally {
15678 if (cbs.length > len) {
15679 // added more in the interim.
15680 // de-zalgo, just in case, but don't call again.
15681 cbs.splice(0, len)
15682 process.nextTick(function () {
15683 RES.apply(null, args)
15684 })
15685 } else {
15686 delete reqs[key]
15687 }
15688 }
15689 })
15690}
15691
15692function slice (args) {
15693 var length = args.length
15694 var array = []
15695
15696 for (var i = 0; i < length; i++) array[i] = args[i]
15697 return array
15698}
15699
15700
15701/***/ }),
15702
15703/***/ "./node_modules/inherits/inherits.js":
15704/*!*******************************************!*\
15705 !*** ./node_modules/inherits/inherits.js ***!
15706 \*******************************************/
15707/*! no static exports found */
15708/***/ (function(module, exports, __webpack_require__) {
15709
15710try {
15711 var util = __webpack_require__(/*! util */ "util");
15712 if (typeof util.inherits !== 'function') throw '';
15713 module.exports = util.inherits;
15714} catch (e) {
15715 module.exports = __webpack_require__(/*! ./inherits_browser.js */ "./node_modules/inherits/inherits_browser.js");
15716}
15717
15718
15719/***/ }),
15720
15721/***/ "./node_modules/inherits/inherits_browser.js":
15722/*!***************************************************!*\
15723 !*** ./node_modules/inherits/inherits_browser.js ***!
15724 \***************************************************/
15725/*! no static exports found */
15726/***/ (function(module, exports) {
15727
15728if (typeof Object.create === 'function') {
15729 // implementation from standard node.js 'util' module
15730 module.exports = function inherits(ctor, superCtor) {
15731 ctor.super_ = superCtor
15732 ctor.prototype = Object.create(superCtor.prototype, {
15733 constructor: {
15734 value: ctor,
15735 enumerable: false,
15736 writable: true,
15737 configurable: true
15738 }
15739 });
15740 };
15741} else {
15742 // old school shim for old browsers
15743 module.exports = function inherits(ctor, superCtor) {
15744 ctor.super_ = superCtor
15745 var TempCtor = function () {}
15746 TempCtor.prototype = superCtor.prototype
15747 ctor.prototype = new TempCtor()
15748 ctor.prototype.constructor = ctor
15749 }
15750}
15751
15752
15753/***/ }),
15754
15755/***/ "./node_modules/inquirer/lib/inquirer.js":
15756/*!***********************************************!*\
15757 !*** ./node_modules/inquirer/lib/inquirer.js ***!
15758 \***********************************************/
15759/*! no static exports found */
15760/***/ (function(module, exports, __webpack_require__) {
15761
15762"use strict";
15763
15764/**
15765 * Inquirer.js
15766 * A collection of common interactive command line user interfaces.
15767 */
15768
15769var inquirer = module.exports;
15770
15771/**
15772 * Client interfaces
15773 */
15774
15775inquirer.prompts = {};
15776
15777inquirer.Separator = __webpack_require__(/*! ./objects/separator */ "./node_modules/inquirer/lib/objects/separator.js");
15778
15779inquirer.ui = {
15780 BottomBar: __webpack_require__(/*! ./ui/bottom-bar */ "./node_modules/inquirer/lib/ui/bottom-bar.js"),
15781 Prompt: __webpack_require__(/*! ./ui/prompt */ "./node_modules/inquirer/lib/ui/prompt.js")
15782};
15783
15784/**
15785 * Create a new self-contained prompt module.
15786 */
15787inquirer.createPromptModule = function(opt) {
15788 var promptModule = function(questions) {
15789 var ui = new inquirer.ui.Prompt(promptModule.prompts, opt);
15790 var promise = ui.run(questions);
15791
15792 // Monkey patch the UI on the promise object so
15793 // that it remains publicly accessible.
15794 promise.ui = ui;
15795
15796 return promise;
15797 };
15798 promptModule.prompts = {};
15799
15800 /**
15801 * Register a prompt type
15802 * @param {String} name Prompt type name
15803 * @param {Function} prompt Prompt constructor
15804 * @return {inquirer}
15805 */
15806
15807 promptModule.registerPrompt = function(name, prompt) {
15808 promptModule.prompts[name] = prompt;
15809 return this;
15810 };
15811
15812 /**
15813 * Register the defaults provider prompts
15814 */
15815
15816 promptModule.restoreDefaultPrompts = function() {
15817 this.registerPrompt('list', __webpack_require__(/*! ./prompts/list */ "./node_modules/inquirer/lib/prompts/list.js"));
15818 this.registerPrompt('input', __webpack_require__(/*! ./prompts/input */ "./node_modules/inquirer/lib/prompts/input.js"));
15819 this.registerPrompt('number', __webpack_require__(/*! ./prompts/number */ "./node_modules/inquirer/lib/prompts/number.js"));
15820 this.registerPrompt('confirm', __webpack_require__(/*! ./prompts/confirm */ "./node_modules/inquirer/lib/prompts/confirm.js"));
15821 this.registerPrompt('rawlist', __webpack_require__(/*! ./prompts/rawlist */ "./node_modules/inquirer/lib/prompts/rawlist.js"));
15822 this.registerPrompt('expand', __webpack_require__(/*! ./prompts/expand */ "./node_modules/inquirer/lib/prompts/expand.js"));
15823 this.registerPrompt('checkbox', __webpack_require__(/*! ./prompts/checkbox */ "./node_modules/inquirer/lib/prompts/checkbox.js"));
15824 this.registerPrompt('password', __webpack_require__(/*! ./prompts/password */ "./node_modules/inquirer/lib/prompts/password.js"));
15825 this.registerPrompt('editor', __webpack_require__(/*! ./prompts/editor */ "./node_modules/inquirer/lib/prompts/editor.js"));
15826 };
15827
15828 promptModule.restoreDefaultPrompts();
15829
15830 return promptModule;
15831};
15832
15833/**
15834 * Public CLI helper interface
15835 * @param {Array|Object|Rx.Observable} questions - Questions settings array
15836 * @param {Function} cb - Callback being passed the user answers
15837 * @return {inquirer.ui.Prompt}
15838 */
15839
15840inquirer.prompt = inquirer.createPromptModule();
15841
15842// Expose helper functions on the top level for easiest usage by common users
15843inquirer.registerPrompt = function(name, prompt) {
15844 inquirer.prompt.registerPrompt(name, prompt);
15845};
15846inquirer.restoreDefaultPrompts = function() {
15847 inquirer.prompt.restoreDefaultPrompts();
15848};
15849
15850
15851/***/ }),
15852
15853/***/ "./node_modules/inquirer/lib/objects/choice.js":
15854/*!*****************************************************!*\
15855 !*** ./node_modules/inquirer/lib/objects/choice.js ***!
15856 \*****************************************************/
15857/*! no static exports found */
15858/***/ (function(module, exports, __webpack_require__) {
15859
15860"use strict";
15861
15862var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
15863
15864/**
15865 * Choice object
15866 * Normalize input as choice object
15867 * @constructor
15868 * @param {String|Object} val Choice value. If an object is passed, it should contains
15869 * at least one of `value` or `name` property
15870 */
15871
15872module.exports = class Choice {
15873 constructor(val, answers) {
15874 // Don't process Choice and Separator object
15875 if (val instanceof Choice || val.type === 'separator') {
15876 return val;
15877 }
15878
15879 if (_.isString(val)) {
15880 this.name = val;
15881 this.value = val;
15882 this.short = val;
15883 } else {
15884 _.extend(this, val, {
15885 name: val.name || val.value,
15886 value: 'value' in val ? val.value : val.name,
15887 short: val.short || val.name || val.value
15888 });
15889 }
15890
15891 if (_.isFunction(val.disabled)) {
15892 this.disabled = val.disabled(answers);
15893 } else {
15894 this.disabled = val.disabled;
15895 }
15896 }
15897};
15898
15899
15900/***/ }),
15901
15902/***/ "./node_modules/inquirer/lib/objects/choices.js":
15903/*!******************************************************!*\
15904 !*** ./node_modules/inquirer/lib/objects/choices.js ***!
15905 \******************************************************/
15906/*! no static exports found */
15907/***/ (function(module, exports, __webpack_require__) {
15908
15909"use strict";
15910
15911var assert = __webpack_require__(/*! assert */ "assert");
15912var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
15913var Separator = __webpack_require__(/*! ./separator */ "./node_modules/inquirer/lib/objects/separator.js");
15914var Choice = __webpack_require__(/*! ./choice */ "./node_modules/inquirer/lib/objects/choice.js");
15915
15916/**
15917 * Choices collection
15918 * Collection of multiple `choice` object
15919 * @constructor
15920 * @param {Array} choices All `choice` to keep in the collection
15921 */
15922
15923module.exports = class Choices {
15924 constructor(choices, answers) {
15925 this.choices = choices.map(val => {
15926 if (val.type === 'separator') {
15927 if (!(val instanceof Separator)) {
15928 val = new Separator(val.line);
15929 }
15930 return val;
15931 }
15932 return new Choice(val, answers);
15933 });
15934
15935 this.realChoices = this.choices
15936 .filter(Separator.exclude)
15937 .filter(item => !item.disabled);
15938
15939 Object.defineProperty(this, 'length', {
15940 get() {
15941 return this.choices.length;
15942 },
15943 set(val) {
15944 this.choices.length = val;
15945 }
15946 });
15947
15948 Object.defineProperty(this, 'realLength', {
15949 get() {
15950 return this.realChoices.length;
15951 },
15952 set() {
15953 throw new Error('Cannot set `realLength` of a Choices collection');
15954 }
15955 });
15956 }
15957
15958 /**
15959 * Get a valid choice from the collection
15960 * @param {Number} selector The selected choice index
15961 * @return {Choice|Undefined} Return the matched choice or undefined
15962 */
15963
15964 getChoice(selector) {
15965 assert(_.isNumber(selector));
15966 return this.realChoices[selector];
15967 }
15968
15969 /**
15970 * Get a raw element from the collection
15971 * @param {Number} selector The selected index value
15972 * @return {Choice|Undefined} Return the matched choice or undefined
15973 */
15974
15975 get(selector) {
15976 assert(_.isNumber(selector));
15977 return this.choices[selector];
15978 }
15979
15980 /**
15981 * Match the valid choices against a where clause
15982 * @param {Object} whereClause Lodash `where` clause
15983 * @return {Array} Matching choices or empty array
15984 */
15985
15986 where(whereClause) {
15987 return _.filter(this.realChoices, whereClause);
15988 }
15989
15990 /**
15991 * Pluck a particular key from the choices
15992 * @param {String} propertyName Property name to select
15993 * @return {Array} Selected properties
15994 */
15995
15996 pluck(propertyName) {
15997 return _.map(this.realChoices, propertyName);
15998 }
15999
16000 // Expose usual Array methods
16001 indexOf() {
16002 return this.choices.indexOf.apply(this.choices, arguments);
16003 }
16004
16005 forEach() {
16006 return this.choices.forEach.apply(this.choices, arguments);
16007 }
16008
16009 filter() {
16010 return this.choices.filter.apply(this.choices, arguments);
16011 }
16012
16013 find(func) {
16014 return _.find(this.choices, func);
16015 }
16016
16017 push() {
16018 var objs = _.map(arguments, val => new Choice(val));
16019 this.choices.push.apply(this.choices, objs);
16020 this.realChoices = this.choices.filter(Separator.exclude);
16021 return this.choices;
16022 }
16023};
16024
16025
16026/***/ }),
16027
16028/***/ "./node_modules/inquirer/lib/objects/separator.js":
16029/*!********************************************************!*\
16030 !*** ./node_modules/inquirer/lib/objects/separator.js ***!
16031 \********************************************************/
16032/*! no static exports found */
16033/***/ (function(module, exports, __webpack_require__) {
16034
16035"use strict";
16036
16037var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
16038var figures = __webpack_require__(/*! figures */ "./node_modules/figures/index.js");
16039
16040/**
16041 * Separator object
16042 * Used to space/separate choices group
16043 * @constructor
16044 * @param {String} line Separation line content (facultative)
16045 */
16046
16047class Separator {
16048 constructor(line) {
16049 this.type = 'separator';
16050 this.line = chalk.dim(line || new Array(15).join(figures.line));
16051 }
16052
16053 /**
16054 * Stringify separator
16055 * @return {String} the separator display string
16056 */
16057 toString() {
16058 return this.line;
16059 }
16060}
16061
16062/**
16063 * Helper function returning false if object is a separator
16064 * @param {Object} obj object to test against
16065 * @return {Boolean} `false` if object is a separator
16066 */
16067
16068Separator.exclude = function(obj) {
16069 return obj.type !== 'separator';
16070};
16071
16072module.exports = Separator;
16073
16074
16075/***/ }),
16076
16077/***/ "./node_modules/inquirer/lib/prompts/base.js":
16078/*!***************************************************!*\
16079 !*** ./node_modules/inquirer/lib/prompts/base.js ***!
16080 \***************************************************/
16081/*! no static exports found */
16082/***/ (function(module, exports, __webpack_require__) {
16083
16084"use strict";
16085
16086/**
16087 * Base prompt implementation
16088 * Should be extended by prompt types.
16089 */
16090
16091var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
16092var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
16093var runAsync = __webpack_require__(/*! run-async */ "./node_modules/run-async/index.js");
16094var { filter, flatMap, share, take, takeUntil } = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
16095var Choices = __webpack_require__(/*! ../objects/choices */ "./node_modules/inquirer/lib/objects/choices.js");
16096var ScreenManager = __webpack_require__(/*! ../utils/screen-manager */ "./node_modules/inquirer/lib/utils/screen-manager.js");
16097
16098class Prompt {
16099 constructor(question, rl, answers) {
16100 // Setup instance defaults property
16101 _.assign(this, {
16102 answers: answers,
16103 status: 'pending'
16104 });
16105
16106 // Set defaults prompt options
16107 this.opt = _.defaults(_.clone(question), {
16108 validate: () => true,
16109 filter: val => val,
16110 when: () => true,
16111 suffix: '',
16112 prefix: chalk.green('?')
16113 });
16114
16115 // Make sure name is present
16116 if (!this.opt.name) {
16117 this.throwParamError('name');
16118 }
16119
16120 // Set default message if no message defined
16121 if (!this.opt.message) {
16122 this.opt.message = this.opt.name + ':';
16123 }
16124
16125 // Normalize choices
16126 if (Array.isArray(this.opt.choices)) {
16127 this.opt.choices = new Choices(this.opt.choices, answers);
16128 }
16129
16130 this.rl = rl;
16131 this.screen = new ScreenManager(this.rl);
16132 }
16133
16134 /**
16135 * Start the Inquiry session and manage output value filtering
16136 * @return {Promise}
16137 */
16138
16139 run() {
16140 return new Promise(resolve => {
16141 this._run(value => resolve(value));
16142 });
16143 }
16144
16145 // Default noop (this one should be overwritten in prompts)
16146 _run(cb) {
16147 cb();
16148 }
16149
16150 /**
16151 * Throw an error telling a required parameter is missing
16152 * @param {String} name Name of the missing param
16153 * @return {Throw Error}
16154 */
16155
16156 throwParamError(name) {
16157 throw new Error('You must provide a `' + name + '` parameter');
16158 }
16159
16160 /**
16161 * Called when the UI closes. Override to do any specific cleanup necessary
16162 */
16163 close() {
16164 this.screen.releaseCursor();
16165 }
16166
16167 /**
16168 * Run the provided validation method each time a submit event occur.
16169 * @param {Rx.Observable} submit - submit event flow
16170 * @return {Object} Object containing two observables: `success` and `error`
16171 */
16172 handleSubmitEvents(submit) {
16173 var self = this;
16174 var validate = runAsync(this.opt.validate);
16175 var asyncFilter = runAsync(this.opt.filter);
16176 var validation = submit.pipe(
16177 flatMap(value =>
16178 asyncFilter(value, self.answers).then(
16179 filteredValue =>
16180 validate(filteredValue, self.answers).then(
16181 isValid => ({ isValid: isValid, value: filteredValue }),
16182 err => ({ isValid: err })
16183 ),
16184 err => ({ isValid: err })
16185 )
16186 ),
16187 share()
16188 );
16189
16190 var success = validation.pipe(
16191 filter(state => state.isValid === true),
16192 take(1)
16193 );
16194 var error = validation.pipe(
16195 filter(state => state.isValid !== true),
16196 takeUntil(success)
16197 );
16198
16199 return {
16200 success: success,
16201 error: error
16202 };
16203 }
16204
16205 /**
16206 * Generate the prompt question string
16207 * @return {String} prompt question string
16208 */
16209
16210 getQuestion() {
16211 var message =
16212 this.opt.prefix +
16213 ' ' +
16214 chalk.bold(this.opt.message) +
16215 this.opt.suffix +
16216 chalk.reset(' ');
16217
16218 // Append the default if available, and if question isn't answered
16219 if (this.opt.default != null && this.status !== 'answered') {
16220 // If default password is supplied, hide it
16221 if (this.opt.type === 'password') {
16222 message += chalk.italic.dim('[hidden] ');
16223 } else {
16224 message += chalk.dim('(' + this.opt.default + ') ');
16225 }
16226 }
16227
16228 return message;
16229 }
16230}
16231
16232module.exports = Prompt;
16233
16234
16235/***/ }),
16236
16237/***/ "./node_modules/inquirer/lib/prompts/checkbox.js":
16238/*!*******************************************************!*\
16239 !*** ./node_modules/inquirer/lib/prompts/checkbox.js ***!
16240 \*******************************************************/
16241/*! no static exports found */
16242/***/ (function(module, exports, __webpack_require__) {
16243
16244"use strict";
16245
16246/**
16247 * `list` type prompt
16248 */
16249
16250var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
16251var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
16252var cliCursor = __webpack_require__(/*! cli-cursor */ "./node_modules/cli-cursor/index.js");
16253var figures = __webpack_require__(/*! figures */ "./node_modules/figures/index.js");
16254var { map, takeUntil } = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
16255var Base = __webpack_require__(/*! ./base */ "./node_modules/inquirer/lib/prompts/base.js");
16256var observe = __webpack_require__(/*! ../utils/events */ "./node_modules/inquirer/lib/utils/events.js");
16257var Paginator = __webpack_require__(/*! ../utils/paginator */ "./node_modules/inquirer/lib/utils/paginator.js");
16258
16259class CheckboxPrompt extends Base {
16260 constructor(questions, rl, answers) {
16261 super(questions, rl, answers);
16262
16263 if (!this.opt.choices) {
16264 this.throwParamError('choices');
16265 }
16266
16267 if (_.isArray(this.opt.default)) {
16268 this.opt.choices.forEach(function(choice) {
16269 if (this.opt.default.indexOf(choice.value) >= 0) {
16270 choice.checked = true;
16271 }
16272 }, this);
16273 }
16274
16275 this.pointer = 0;
16276 this.firstRender = true;
16277
16278 // Make sure no default is set (so it won't be printed)
16279 this.opt.default = null;
16280
16281 this.paginator = new Paginator(this.screen);
16282 }
16283
16284 /**
16285 * Start the Inquiry session
16286 * @param {Function} cb Callback when prompt is done
16287 * @return {this}
16288 */
16289
16290 _run(cb) {
16291 this.done = cb;
16292
16293 var events = observe(this.rl);
16294
16295 var validation = this.handleSubmitEvents(
16296 events.line.pipe(map(this.getCurrentValue.bind(this)))
16297 );
16298 validation.success.forEach(this.onEnd.bind(this));
16299 validation.error.forEach(this.onError.bind(this));
16300
16301 events.normalizedUpKey
16302 .pipe(takeUntil(validation.success))
16303 .forEach(this.onUpKey.bind(this));
16304 events.normalizedDownKey
16305 .pipe(takeUntil(validation.success))
16306 .forEach(this.onDownKey.bind(this));
16307 events.numberKey
16308 .pipe(takeUntil(validation.success))
16309 .forEach(this.onNumberKey.bind(this));
16310 events.spaceKey
16311 .pipe(takeUntil(validation.success))
16312 .forEach(this.onSpaceKey.bind(this));
16313 events.aKey.pipe(takeUntil(validation.success)).forEach(this.onAllKey.bind(this));
16314 events.iKey.pipe(takeUntil(validation.success)).forEach(this.onInverseKey.bind(this));
16315
16316 // Init the prompt
16317 cliCursor.hide();
16318 this.render();
16319 this.firstRender = false;
16320
16321 return this;
16322 }
16323
16324 /**
16325 * Render the prompt to screen
16326 * @return {CheckboxPrompt} self
16327 */
16328
16329 render(error) {
16330 // Render question
16331 var message = this.getQuestion();
16332 var bottomContent = '';
16333
16334 if (this.firstRender) {
16335 message +=
16336 '(Press ' +
16337 chalk.cyan.bold('<space>') +
16338 ' to select, ' +
16339 chalk.cyan.bold('<a>') +
16340 ' to toggle all, ' +
16341 chalk.cyan.bold('<i>') +
16342 ' to invert selection)';
16343 }
16344
16345 // Render choices or answer depending on the state
16346 if (this.status === 'answered') {
16347 message += chalk.cyan(this.selection.join(', '));
16348 } else {
16349 var choicesStr = renderChoices(this.opt.choices, this.pointer);
16350 var indexPosition = this.opt.choices.indexOf(
16351 this.opt.choices.getChoice(this.pointer)
16352 );
16353 message +=
16354 '\n' + this.paginator.paginate(choicesStr, indexPosition, this.opt.pageSize);
16355 }
16356
16357 if (error) {
16358 bottomContent = chalk.red('>> ') + error;
16359 }
16360
16361 this.screen.render(message, bottomContent);
16362 }
16363
16364 /**
16365 * When user press `enter` key
16366 */
16367
16368 onEnd(state) {
16369 this.status = 'answered';
16370
16371 // Rerender prompt (and clean subline error)
16372 this.render();
16373
16374 this.screen.done();
16375 cliCursor.show();
16376 this.done(state.value);
16377 }
16378
16379 onError(state) {
16380 this.render(state.isValid);
16381 }
16382
16383 getCurrentValue() {
16384 var choices = this.opt.choices.filter(function(choice) {
16385 return Boolean(choice.checked) && !choice.disabled;
16386 });
16387
16388 this.selection = _.map(choices, 'short');
16389 return _.map(choices, 'value');
16390 }
16391
16392 onUpKey() {
16393 var len = this.opt.choices.realLength;
16394 this.pointer = this.pointer > 0 ? this.pointer - 1 : len - 1;
16395 this.render();
16396 }
16397
16398 onDownKey() {
16399 var len = this.opt.choices.realLength;
16400 this.pointer = this.pointer < len - 1 ? this.pointer + 1 : 0;
16401 this.render();
16402 }
16403
16404 onNumberKey(input) {
16405 if (input <= this.opt.choices.realLength) {
16406 this.pointer = input - 1;
16407 this.toggleChoice(this.pointer);
16408 }
16409 this.render();
16410 }
16411
16412 onSpaceKey() {
16413 this.toggleChoice(this.pointer);
16414 this.render();
16415 }
16416
16417 onAllKey() {
16418 var shouldBeChecked = Boolean(
16419 this.opt.choices.find(function(choice) {
16420 return choice.type !== 'separator' && !choice.checked;
16421 })
16422 );
16423
16424 this.opt.choices.forEach(function(choice) {
16425 if (choice.type !== 'separator') {
16426 choice.checked = shouldBeChecked;
16427 }
16428 });
16429
16430 this.render();
16431 }
16432
16433 onInverseKey() {
16434 this.opt.choices.forEach(function(choice) {
16435 if (choice.type !== 'separator') {
16436 choice.checked = !choice.checked;
16437 }
16438 });
16439
16440 this.render();
16441 }
16442
16443 toggleChoice(index) {
16444 var item = this.opt.choices.getChoice(index);
16445 if (item !== undefined) {
16446 this.opt.choices.getChoice(index).checked = !item.checked;
16447 }
16448 }
16449}
16450
16451/**
16452 * Function for rendering checkbox choices
16453 * @param {Number} pointer Position of the pointer
16454 * @return {String} Rendered content
16455 */
16456
16457function renderChoices(choices, pointer) {
16458 var output = '';
16459 var separatorOffset = 0;
16460
16461 choices.forEach(function(choice, i) {
16462 if (choice.type === 'separator') {
16463 separatorOffset++;
16464 output += ' ' + choice + '\n';
16465 return;
16466 }
16467
16468 if (choice.disabled) {
16469 separatorOffset++;
16470 output += ' - ' + choice.name;
16471 output += ' (' + (_.isString(choice.disabled) ? choice.disabled : 'Disabled') + ')';
16472 } else {
16473 var line = getCheckbox(choice.checked) + ' ' + choice.name;
16474 if (i - separatorOffset === pointer) {
16475 output += chalk.cyan(figures.pointer + line);
16476 } else {
16477 output += ' ' + line;
16478 }
16479 }
16480
16481 output += '\n';
16482 });
16483
16484 return output.replace(/\n$/, '');
16485}
16486
16487/**
16488 * Get the checkbox
16489 * @param {Boolean} checked - add a X or not to the checkbox
16490 * @return {String} Composited checkbox string
16491 */
16492
16493function getCheckbox(checked) {
16494 return checked ? chalk.green(figures.radioOn) : figures.radioOff;
16495}
16496
16497module.exports = CheckboxPrompt;
16498
16499
16500/***/ }),
16501
16502/***/ "./node_modules/inquirer/lib/prompts/confirm.js":
16503/*!******************************************************!*\
16504 !*** ./node_modules/inquirer/lib/prompts/confirm.js ***!
16505 \******************************************************/
16506/*! no static exports found */
16507/***/ (function(module, exports, __webpack_require__) {
16508
16509"use strict";
16510
16511/**
16512 * `confirm` type prompt
16513 */
16514
16515var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
16516var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
16517var { take, takeUntil } = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
16518var Base = __webpack_require__(/*! ./base */ "./node_modules/inquirer/lib/prompts/base.js");
16519var observe = __webpack_require__(/*! ../utils/events */ "./node_modules/inquirer/lib/utils/events.js");
16520
16521class ConfirmPrompt extends Base {
16522 constructor(questions, rl, answers) {
16523 super(questions, rl, answers);
16524
16525 var rawDefault = true;
16526
16527 _.extend(this.opt, {
16528 filter: function(input) {
16529 var value = rawDefault;
16530 if (input != null && input !== '') {
16531 value = /^y(es)?/i.test(input);
16532 }
16533 return value;
16534 }
16535 });
16536
16537 if (_.isBoolean(this.opt.default)) {
16538 rawDefault = this.opt.default;
16539 }
16540
16541 this.opt.default = rawDefault ? 'Y/n' : 'y/N';
16542
16543 return this;
16544 }
16545
16546 /**
16547 * Start the Inquiry session
16548 * @param {Function} cb Callback when prompt is done
16549 * @return {this}
16550 */
16551
16552 _run(cb) {
16553 this.done = cb;
16554
16555 // Once user confirm (enter key)
16556 var events = observe(this.rl);
16557 events.keypress.pipe(takeUntil(events.line)).forEach(this.onKeypress.bind(this));
16558
16559 events.line.pipe(take(1)).forEach(this.onEnd.bind(this));
16560
16561 // Init
16562 this.render();
16563
16564 return this;
16565 }
16566
16567 /**
16568 * Render the prompt to screen
16569 * @return {ConfirmPrompt} self
16570 */
16571
16572 render(answer) {
16573 var message = this.getQuestion();
16574
16575 if (typeof answer === 'boolean') {
16576 message += chalk.cyan(answer ? 'Yes' : 'No');
16577 } else {
16578 message += this.rl.line;
16579 }
16580
16581 this.screen.render(message);
16582
16583 return this;
16584 }
16585
16586 /**
16587 * When user press `enter` key
16588 */
16589
16590 onEnd(input) {
16591 this.status = 'answered';
16592
16593 var output = this.opt.filter(input);
16594 this.render(output);
16595
16596 this.screen.done();
16597 this.done(output);
16598 }
16599
16600 /**
16601 * When user press a key
16602 */
16603
16604 onKeypress() {
16605 this.render();
16606 }
16607}
16608
16609module.exports = ConfirmPrompt;
16610
16611
16612/***/ }),
16613
16614/***/ "./node_modules/inquirer/lib/prompts/editor.js":
16615/*!*****************************************************!*\
16616 !*** ./node_modules/inquirer/lib/prompts/editor.js ***!
16617 \*****************************************************/
16618/*! no static exports found */
16619/***/ (function(module, exports, __webpack_require__) {
16620
16621"use strict";
16622
16623/**
16624 * `editor` type prompt
16625 */
16626
16627var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
16628var editAsync = __webpack_require__(/*! external-editor */ "./node_modules/external-editor/main/index.js").editAsync;
16629var Base = __webpack_require__(/*! ./base */ "./node_modules/inquirer/lib/prompts/base.js");
16630var observe = __webpack_require__(/*! ../utils/events */ "./node_modules/inquirer/lib/utils/events.js");
16631var { Subject } = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js");
16632
16633class EditorPrompt extends Base {
16634 /**
16635 * Start the Inquiry session
16636 * @param {Function} cb Callback when prompt is done
16637 * @return {this}
16638 */
16639
16640 _run(cb) {
16641 this.done = cb;
16642
16643 this.editorResult = new Subject();
16644
16645 // Open Editor on "line" (Enter Key)
16646 var events = observe(this.rl);
16647 this.lineSubscription = events.line.subscribe(this.startExternalEditor.bind(this));
16648
16649 // Trigger Validation when editor closes
16650 var validation = this.handleSubmitEvents(this.editorResult);
16651 validation.success.forEach(this.onEnd.bind(this));
16652 validation.error.forEach(this.onError.bind(this));
16653
16654 // Prevents default from being printed on screen (can look weird with multiple lines)
16655 this.currentText = this.opt.default;
16656 this.opt.default = null;
16657
16658 // Init
16659 this.render();
16660
16661 return this;
16662 }
16663
16664 /**
16665 * Render the prompt to screen
16666 * @return {EditorPrompt} self
16667 */
16668
16669 render(error) {
16670 var bottomContent = '';
16671 var message = this.getQuestion();
16672
16673 if (this.status === 'answered') {
16674 message += chalk.dim('Received');
16675 } else {
16676 message += chalk.dim('Press <enter> to launch your preferred editor.');
16677 }
16678
16679 if (error) {
16680 bottomContent = chalk.red('>> ') + error;
16681 }
16682
16683 this.screen.render(message, bottomContent);
16684 }
16685
16686 /**
16687 * Launch $EDITOR on user press enter
16688 */
16689
16690 startExternalEditor() {
16691 // Pause Readline to prevent stdin and stdout from being modified while the editor is showing
16692 this.rl.pause();
16693 editAsync(this.currentText, this.endExternalEditor.bind(this));
16694 }
16695
16696 endExternalEditor(error, result) {
16697 this.rl.resume();
16698 if (error) {
16699 this.editorResult.error(error);
16700 } else {
16701 this.editorResult.next(result);
16702 }
16703 }
16704
16705 onEnd(state) {
16706 this.editorResult.unsubscribe();
16707 this.lineSubscription.unsubscribe();
16708 this.answer = state.value;
16709 this.status = 'answered';
16710 // Re-render prompt
16711 this.render();
16712 this.screen.done();
16713 this.done(this.answer);
16714 }
16715
16716 onError(state) {
16717 this.render(state.isValid);
16718 }
16719}
16720
16721module.exports = EditorPrompt;
16722
16723
16724/***/ }),
16725
16726/***/ "./node_modules/inquirer/lib/prompts/expand.js":
16727/*!*****************************************************!*\
16728 !*** ./node_modules/inquirer/lib/prompts/expand.js ***!
16729 \*****************************************************/
16730/*! no static exports found */
16731/***/ (function(module, exports, __webpack_require__) {
16732
16733"use strict";
16734
16735/**
16736 * `rawlist` type prompt
16737 */
16738
16739var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
16740var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
16741var { map, takeUntil } = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
16742var Base = __webpack_require__(/*! ./base */ "./node_modules/inquirer/lib/prompts/base.js");
16743var Separator = __webpack_require__(/*! ../objects/separator */ "./node_modules/inquirer/lib/objects/separator.js");
16744var observe = __webpack_require__(/*! ../utils/events */ "./node_modules/inquirer/lib/utils/events.js");
16745var Paginator = __webpack_require__(/*! ../utils/paginator */ "./node_modules/inquirer/lib/utils/paginator.js");
16746
16747class ExpandPrompt extends Base {
16748 constructor(questions, rl, answers) {
16749 super(questions, rl, answers);
16750
16751 if (!this.opt.choices) {
16752 this.throwParamError('choices');
16753 }
16754
16755 this.validateChoices(this.opt.choices);
16756
16757 // Add the default `help` (/expand) option
16758 this.opt.choices.push({
16759 key: 'h',
16760 name: 'Help, list all options',
16761 value: 'help'
16762 });
16763
16764 this.opt.validate = choice => {
16765 if (choice == null) {
16766 return 'Please enter a valid command';
16767 }
16768
16769 return choice !== 'help';
16770 };
16771
16772 // Setup the default string (capitalize the default key)
16773 this.opt.default = this.generateChoicesString(this.opt.choices, this.opt.default);
16774
16775 this.paginator = new Paginator(this.screen);
16776 }
16777
16778 /**
16779 * Start the Inquiry session
16780 * @param {Function} cb Callback when prompt is done
16781 * @return {this}
16782 */
16783
16784 _run(cb) {
16785 this.done = cb;
16786
16787 // Save user answer and update prompt to show selected option.
16788 var events = observe(this.rl);
16789 var validation = this.handleSubmitEvents(
16790 events.line.pipe(map(this.getCurrentValue.bind(this)))
16791 );
16792 validation.success.forEach(this.onSubmit.bind(this));
16793 validation.error.forEach(this.onError.bind(this));
16794 this.keypressObs = events.keypress
16795 .pipe(takeUntil(validation.success))
16796 .forEach(this.onKeypress.bind(this));
16797
16798 // Init the prompt
16799 this.render();
16800
16801 return this;
16802 }
16803
16804 /**
16805 * Render the prompt to screen
16806 * @return {ExpandPrompt} self
16807 */
16808
16809 render(error, hint) {
16810 var message = this.getQuestion();
16811 var bottomContent = '';
16812
16813 if (this.status === 'answered') {
16814 message += chalk.cyan(this.answer);
16815 } else if (this.status === 'expanded') {
16816 var choicesStr = renderChoices(this.opt.choices, this.selectedKey);
16817 message += this.paginator.paginate(choicesStr, this.selectedKey, this.opt.pageSize);
16818 message += '\n Answer: ';
16819 }
16820
16821 message += this.rl.line;
16822
16823 if (error) {
16824 bottomContent = chalk.red('>> ') + error;
16825 }
16826
16827 if (hint) {
16828 bottomContent = chalk.cyan('>> ') + hint;
16829 }
16830
16831 this.screen.render(message, bottomContent);
16832 }
16833
16834 getCurrentValue(input) {
16835 if (!input) {
16836 input = this.rawDefault;
16837 }
16838 var selected = this.opt.choices.where({ key: input.toLowerCase().trim() })[0];
16839 if (!selected) {
16840 return null;
16841 }
16842
16843 return selected.value;
16844 }
16845
16846 /**
16847 * Generate the prompt choices string
16848 * @return {String} Choices string
16849 */
16850
16851 getChoices() {
16852 var output = '';
16853
16854 this.opt.choices.forEach(choice => {
16855 output += '\n ';
16856
16857 if (choice.type === 'separator') {
16858 output += ' ' + choice;
16859 return;
16860 }
16861
16862 var choiceStr = choice.key + ') ' + choice.name;
16863 if (this.selectedKey === choice.key) {
16864 choiceStr = chalk.cyan(choiceStr);
16865 }
16866 output += choiceStr;
16867 });
16868
16869 return output;
16870 }
16871
16872 onError(state) {
16873 if (state.value === 'help') {
16874 this.selectedKey = '';
16875 this.status = 'expanded';
16876 this.render();
16877 return;
16878 }
16879 this.render(state.isValid);
16880 }
16881
16882 /**
16883 * When user press `enter` key
16884 */
16885
16886 onSubmit(state) {
16887 this.status = 'answered';
16888 var choice = this.opt.choices.where({ value: state.value })[0];
16889 this.answer = choice.short || choice.name;
16890
16891 // Re-render prompt
16892 this.render();
16893 this.screen.done();
16894 this.done(state.value);
16895 }
16896
16897 /**
16898 * When user press a key
16899 */
16900
16901 onKeypress() {
16902 this.selectedKey = this.rl.line.toLowerCase();
16903 var selected = this.opt.choices.where({ key: this.selectedKey })[0];
16904 if (this.status === 'expanded') {
16905 this.render();
16906 } else {
16907 this.render(null, selected ? selected.name : null);
16908 }
16909 }
16910
16911 /**
16912 * Validate the choices
16913 * @param {Array} choices
16914 */
16915
16916 validateChoices(choices) {
16917 var formatError;
16918 var errors = [];
16919 var keymap = {};
16920 choices.filter(Separator.exclude).forEach(choice => {
16921 if (!choice.key || choice.key.length !== 1) {
16922 formatError = true;
16923 }
16924 if (keymap[choice.key]) {
16925 errors.push(choice.key);
16926 }
16927 keymap[choice.key] = true;
16928 choice.key = String(choice.key).toLowerCase();
16929 });
16930
16931 if (formatError) {
16932 throw new Error(
16933 'Format error: `key` param must be a single letter and is required.'
16934 );
16935 }
16936 if (keymap.h) {
16937 throw new Error(
16938 'Reserved key error: `key` param cannot be `h` - this value is reserved.'
16939 );
16940 }
16941 if (errors.length) {
16942 throw new Error(
16943 'Duplicate key error: `key` param must be unique. Duplicates: ' +
16944 _.uniq(errors).join(', ')
16945 );
16946 }
16947 }
16948
16949 /**
16950 * Generate a string out of the choices keys
16951 * @param {Array} choices
16952 * @param {Number|String} default - the choice index or name to capitalize
16953 * @return {String} The rendered choices key string
16954 */
16955 generateChoicesString(choices, defaultChoice) {
16956 var defIndex = choices.realLength - 1;
16957 if (_.isNumber(defaultChoice) && this.opt.choices.getChoice(defaultChoice)) {
16958 defIndex = defaultChoice;
16959 } else if (_.isString(defaultChoice)) {
16960 let index = _.findIndex(
16961 choices.realChoices,
16962 ({ value }) => value === defaultChoice
16963 );
16964 defIndex = index === -1 ? defIndex : index;
16965 }
16966 var defStr = this.opt.choices.pluck('key');
16967 this.rawDefault = defStr[defIndex];
16968 defStr[defIndex] = String(defStr[defIndex]).toUpperCase();
16969 return defStr.join('');
16970 }
16971}
16972
16973/**
16974 * Function for rendering checkbox choices
16975 * @param {String} pointer Selected key
16976 * @return {String} Rendered content
16977 */
16978
16979function renderChoices(choices, pointer) {
16980 var output = '';
16981
16982 choices.forEach(choice => {
16983 output += '\n ';
16984
16985 if (choice.type === 'separator') {
16986 output += ' ' + choice;
16987 return;
16988 }
16989
16990 var choiceStr = choice.key + ') ' + choice.name;
16991 if (pointer === choice.key) {
16992 choiceStr = chalk.cyan(choiceStr);
16993 }
16994 output += choiceStr;
16995 });
16996
16997 return output;
16998}
16999
17000module.exports = ExpandPrompt;
17001
17002
17003/***/ }),
17004
17005/***/ "./node_modules/inquirer/lib/prompts/input.js":
17006/*!****************************************************!*\
17007 !*** ./node_modules/inquirer/lib/prompts/input.js ***!
17008 \****************************************************/
17009/*! no static exports found */
17010/***/ (function(module, exports, __webpack_require__) {
17011
17012"use strict";
17013
17014/**
17015 * `input` type prompt
17016 */
17017
17018var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
17019var { map, takeUntil } = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
17020var Base = __webpack_require__(/*! ./base */ "./node_modules/inquirer/lib/prompts/base.js");
17021var observe = __webpack_require__(/*! ../utils/events */ "./node_modules/inquirer/lib/utils/events.js");
17022
17023class InputPrompt extends Base {
17024 /**
17025 * Start the Inquiry session
17026 * @param {Function} cb Callback when prompt is done
17027 * @return {this}
17028 */
17029
17030 _run(cb) {
17031 this.done = cb;
17032
17033 // Once user confirm (enter key)
17034 var events = observe(this.rl);
17035 var submit = events.line.pipe(map(this.filterInput.bind(this)));
17036
17037 var validation = this.handleSubmitEvents(submit);
17038 validation.success.forEach(this.onEnd.bind(this));
17039 validation.error.forEach(this.onError.bind(this));
17040
17041 events.keypress
17042 .pipe(takeUntil(validation.success))
17043 .forEach(this.onKeypress.bind(this));
17044
17045 // Init
17046 this.render();
17047
17048 return this;
17049 }
17050
17051 /**
17052 * Render the prompt to screen
17053 * @return {InputPrompt} self
17054 */
17055
17056 render(error) {
17057 var bottomContent = '';
17058 var appendContent = '';
17059 var message = this.getQuestion();
17060 var transformer = this.opt.transformer;
17061 var isFinal = this.status === 'answered';
17062
17063 if (isFinal) {
17064 appendContent = this.answer;
17065 } else {
17066 appendContent = this.rl.line;
17067 }
17068
17069 if (transformer) {
17070 message += transformer(appendContent, this.answers, { isFinal });
17071 } else {
17072 message += isFinal ? chalk.cyan(appendContent) : appendContent;
17073 }
17074
17075 if (error) {
17076 bottomContent = chalk.red('>> ') + error;
17077 }
17078
17079 this.screen.render(message, bottomContent);
17080 }
17081
17082 /**
17083 * When user press `enter` key
17084 */
17085
17086 filterInput(input) {
17087 if (!input) {
17088 return this.opt.default == null ? '' : this.opt.default;
17089 }
17090 return input;
17091 }
17092
17093 onEnd(state) {
17094 this.answer = state.value;
17095 this.status = 'answered';
17096
17097 // Re-render prompt
17098 this.render();
17099
17100 this.screen.done();
17101 this.done(state.value);
17102 }
17103
17104 onError(state) {
17105 this.render(state.isValid);
17106 }
17107
17108 /**
17109 * When user press a key
17110 */
17111
17112 onKeypress() {
17113 // If user press a key, just clear the default value
17114 if (this.opt.default) {
17115 this.opt.default = undefined;
17116 }
17117
17118 this.render();
17119 }
17120}
17121
17122module.exports = InputPrompt;
17123
17124
17125/***/ }),
17126
17127/***/ "./node_modules/inquirer/lib/prompts/list.js":
17128/*!***************************************************!*\
17129 !*** ./node_modules/inquirer/lib/prompts/list.js ***!
17130 \***************************************************/
17131/*! no static exports found */
17132/***/ (function(module, exports, __webpack_require__) {
17133
17134"use strict";
17135
17136/**
17137 * `list` type prompt
17138 */
17139
17140var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
17141var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
17142var figures = __webpack_require__(/*! figures */ "./node_modules/figures/index.js");
17143var cliCursor = __webpack_require__(/*! cli-cursor */ "./node_modules/cli-cursor/index.js");
17144var runAsync = __webpack_require__(/*! run-async */ "./node_modules/run-async/index.js");
17145var { flatMap, map, take, takeUntil } = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
17146var Base = __webpack_require__(/*! ./base */ "./node_modules/inquirer/lib/prompts/base.js");
17147var observe = __webpack_require__(/*! ../utils/events */ "./node_modules/inquirer/lib/utils/events.js");
17148var Paginator = __webpack_require__(/*! ../utils/paginator */ "./node_modules/inquirer/lib/utils/paginator.js");
17149
17150class ListPrompt extends Base {
17151 constructor(questions, rl, answers) {
17152 super(questions, rl, answers);
17153
17154 if (!this.opt.choices) {
17155 this.throwParamError('choices');
17156 }
17157
17158 this.firstRender = true;
17159 this.selected = 0;
17160
17161 var def = this.opt.default;
17162
17163 // If def is a Number, then use as index. Otherwise, check for value.
17164 if (_.isNumber(def) && def >= 0 && def < this.opt.choices.realLength) {
17165 this.selected = def;
17166 } else if (!_.isNumber(def) && def != null) {
17167 let index = _.findIndex(this.opt.choices.realChoices, ({ value }) => value === def);
17168 this.selected = Math.max(index, 0);
17169 }
17170
17171 // Make sure no default is set (so it won't be printed)
17172 this.opt.default = null;
17173
17174 this.paginator = new Paginator(this.screen);
17175 }
17176
17177 /**
17178 * Start the Inquiry session
17179 * @param {Function} cb Callback when prompt is done
17180 * @return {this}
17181 */
17182
17183 _run(cb) {
17184 this.done = cb;
17185
17186 var self = this;
17187
17188 var events = observe(this.rl);
17189 events.normalizedUpKey.pipe(takeUntil(events.line)).forEach(this.onUpKey.bind(this));
17190 events.normalizedDownKey
17191 .pipe(takeUntil(events.line))
17192 .forEach(this.onDownKey.bind(this));
17193 events.numberKey.pipe(takeUntil(events.line)).forEach(this.onNumberKey.bind(this));
17194 events.line
17195 .pipe(
17196 take(1),
17197 map(this.getCurrentValue.bind(this)),
17198 flatMap(value => runAsync(self.opt.filter)(value).catch(err => err))
17199 )
17200 .forEach(this.onSubmit.bind(this));
17201
17202 // Init the prompt
17203 cliCursor.hide();
17204 this.render();
17205
17206 return this;
17207 }
17208
17209 /**
17210 * Render the prompt to screen
17211 * @return {ListPrompt} self
17212 */
17213
17214 render() {
17215 // Render question
17216 var message = this.getQuestion();
17217
17218 if (this.firstRender) {
17219 message += chalk.dim('(Use arrow keys)');
17220 }
17221
17222 // Render choices or answer depending on the state
17223 if (this.status === 'answered') {
17224 message += chalk.cyan(this.opt.choices.getChoice(this.selected).short);
17225 } else {
17226 var choicesStr = listRender(this.opt.choices, this.selected);
17227 var indexPosition = this.opt.choices.indexOf(
17228 this.opt.choices.getChoice(this.selected)
17229 );
17230 message +=
17231 '\n' + this.paginator.paginate(choicesStr, indexPosition, this.opt.pageSize);
17232 }
17233
17234 this.firstRender = false;
17235
17236 this.screen.render(message);
17237 }
17238
17239 /**
17240 * When user press `enter` key
17241 */
17242
17243 onSubmit(value) {
17244 this.status = 'answered';
17245
17246 // Rerender prompt
17247 this.render();
17248
17249 this.screen.done();
17250 cliCursor.show();
17251 this.done(value);
17252 }
17253
17254 getCurrentValue() {
17255 return this.opt.choices.getChoice(this.selected).value;
17256 }
17257
17258 /**
17259 * When user press a key
17260 */
17261 onUpKey() {
17262 var len = this.opt.choices.realLength;
17263 this.selected = this.selected > 0 ? this.selected - 1 : len - 1;
17264 this.render();
17265 }
17266
17267 onDownKey() {
17268 var len = this.opt.choices.realLength;
17269 this.selected = this.selected < len - 1 ? this.selected + 1 : 0;
17270 this.render();
17271 }
17272
17273 onNumberKey(input) {
17274 if (input <= this.opt.choices.realLength) {
17275 this.selected = input - 1;
17276 }
17277 this.render();
17278 }
17279}
17280
17281/**
17282 * Function for rendering list choices
17283 * @param {Number} pointer Position of the pointer
17284 * @return {String} Rendered content
17285 */
17286function listRender(choices, pointer) {
17287 var output = '';
17288 var separatorOffset = 0;
17289
17290 choices.forEach((choice, i) => {
17291 if (choice.type === 'separator') {
17292 separatorOffset++;
17293 output += ' ' + choice + '\n';
17294 return;
17295 }
17296
17297 if (choice.disabled) {
17298 separatorOffset++;
17299 output += ' - ' + choice.name;
17300 output += ' (' + (_.isString(choice.disabled) ? choice.disabled : 'Disabled') + ')';
17301 output += '\n';
17302 return;
17303 }
17304
17305 var isSelected = i - separatorOffset === pointer;
17306 var line = (isSelected ? figures.pointer + ' ' : ' ') + choice.name;
17307 if (isSelected) {
17308 line = chalk.cyan(line);
17309 }
17310 output += line + ' \n';
17311 });
17312
17313 return output.replace(/\n$/, '');
17314}
17315
17316module.exports = ListPrompt;
17317
17318
17319/***/ }),
17320
17321/***/ "./node_modules/inquirer/lib/prompts/number.js":
17322/*!*****************************************************!*\
17323 !*** ./node_modules/inquirer/lib/prompts/number.js ***!
17324 \*****************************************************/
17325/*! no static exports found */
17326/***/ (function(module, exports, __webpack_require__) {
17327
17328"use strict";
17329
17330/**
17331 * `input` type prompt
17332 */
17333
17334var Input = __webpack_require__(/*! ./input */ "./node_modules/inquirer/lib/prompts/input.js");
17335
17336/**
17337 * Extention of the Input prompt specifically for use with number inputs.
17338 */
17339
17340class NumberPrompt extends Input {
17341 filterInput(input) {
17342 if (input && typeof input === 'string') {
17343 input = input.trim();
17344 // Match a number in the input
17345 let numberMatch = input.match(/(^-?\d+|^\d+\.\d*|^\d*\.\d+)(e\d+)?$/);
17346 // If a number is found, return that input.
17347 if (numberMatch) {
17348 return Number(numberMatch[0]);
17349 }
17350 }
17351 // If the input was invalid return the default value.
17352 return this.opt.default == null ? NaN : this.opt.default;
17353 }
17354}
17355
17356module.exports = NumberPrompt;
17357
17358
17359/***/ }),
17360
17361/***/ "./node_modules/inquirer/lib/prompts/password.js":
17362/*!*******************************************************!*\
17363 !*** ./node_modules/inquirer/lib/prompts/password.js ***!
17364 \*******************************************************/
17365/*! no static exports found */
17366/***/ (function(module, exports, __webpack_require__) {
17367
17368"use strict";
17369
17370/**
17371 * `password` type prompt
17372 */
17373
17374var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
17375var { map, takeUntil } = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
17376var Base = __webpack_require__(/*! ./base */ "./node_modules/inquirer/lib/prompts/base.js");
17377var observe = __webpack_require__(/*! ../utils/events */ "./node_modules/inquirer/lib/utils/events.js");
17378
17379function mask(input, maskChar) {
17380 input = String(input);
17381 maskChar = typeof maskChar === 'string' ? maskChar : '*';
17382 if (input.length === 0) {
17383 return '';
17384 }
17385
17386 return new Array(input.length + 1).join(maskChar);
17387}
17388
17389class PasswordPrompt extends Base {
17390 /**
17391 * Start the Inquiry session
17392 * @param {Function} cb Callback when prompt is done
17393 * @return {this}
17394 */
17395
17396 _run(cb) {
17397 this.done = cb;
17398
17399 var events = observe(this.rl);
17400
17401 // Once user confirm (enter key)
17402 var submit = events.line.pipe(map(this.filterInput.bind(this)));
17403
17404 var validation = this.handleSubmitEvents(submit);
17405 validation.success.forEach(this.onEnd.bind(this));
17406 validation.error.forEach(this.onError.bind(this));
17407
17408 if (this.opt.mask) {
17409 events.keypress
17410 .pipe(takeUntil(validation.success))
17411 .forEach(this.onKeypress.bind(this));
17412 }
17413
17414 // Init
17415 this.render();
17416
17417 return this;
17418 }
17419
17420 /**
17421 * Render the prompt to screen
17422 * @return {PasswordPrompt} self
17423 */
17424
17425 render(error) {
17426 var message = this.getQuestion();
17427 var bottomContent = '';
17428
17429 if (this.status === 'answered') {
17430 message += this.opt.mask
17431 ? chalk.cyan(mask(this.answer, this.opt.mask))
17432 : chalk.italic.dim('[hidden]');
17433 } else if (this.opt.mask) {
17434 message += mask(this.rl.line || '', this.opt.mask);
17435 } else {
17436 message += chalk.italic.dim('[input is hidden] ');
17437 }
17438
17439 if (error) {
17440 bottomContent = '\n' + chalk.red('>> ') + error;
17441 }
17442
17443 this.screen.render(message, bottomContent);
17444 }
17445
17446 /**
17447 * When user press `enter` key
17448 */
17449
17450 filterInput(input) {
17451 if (!input) {
17452 return this.opt.default == null ? '' : this.opt.default;
17453 }
17454 return input;
17455 }
17456
17457 onEnd(state) {
17458 this.status = 'answered';
17459 this.answer = state.value;
17460
17461 // Re-render prompt
17462 this.render();
17463
17464 this.screen.done();
17465 this.done(state.value);
17466 }
17467
17468 onError(state) {
17469 this.render(state.isValid);
17470 }
17471
17472 onKeypress() {
17473 this.render();
17474 }
17475}
17476
17477module.exports = PasswordPrompt;
17478
17479
17480/***/ }),
17481
17482/***/ "./node_modules/inquirer/lib/prompts/rawlist.js":
17483/*!******************************************************!*\
17484 !*** ./node_modules/inquirer/lib/prompts/rawlist.js ***!
17485 \******************************************************/
17486/*! no static exports found */
17487/***/ (function(module, exports, __webpack_require__) {
17488
17489"use strict";
17490
17491/**
17492 * `rawlist` type prompt
17493 */
17494
17495var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
17496var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
17497var { map, takeUntil } = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
17498var Base = __webpack_require__(/*! ./base */ "./node_modules/inquirer/lib/prompts/base.js");
17499var Separator = __webpack_require__(/*! ../objects/separator */ "./node_modules/inquirer/lib/objects/separator.js");
17500var observe = __webpack_require__(/*! ../utils/events */ "./node_modules/inquirer/lib/utils/events.js");
17501var Paginator = __webpack_require__(/*! ../utils/paginator */ "./node_modules/inquirer/lib/utils/paginator.js");
17502
17503class RawListPrompt extends Base {
17504 constructor(questions, rl, answers) {
17505 super(questions, rl, answers);
17506
17507 if (!this.opt.choices) {
17508 this.throwParamError('choices');
17509 }
17510
17511 this.opt.validChoices = this.opt.choices.filter(Separator.exclude);
17512
17513 this.selected = 0;
17514 this.rawDefault = 0;
17515
17516 _.extend(this.opt, {
17517 validate: function(val) {
17518 return val != null;
17519 }
17520 });
17521
17522 var def = this.opt.default;
17523 if (_.isNumber(def) && def >= 0 && def < this.opt.choices.realLength) {
17524 this.selected = def;
17525 this.rawDefault = def;
17526 } else if (!_.isNumber(def) && def != null) {
17527 let index = _.findIndex(this.opt.choices.realChoices, ({ value }) => value === def);
17528 let safeIndex = Math.max(index, 0);
17529 this.selected = safeIndex;
17530 this.rawDefault = safeIndex;
17531 }
17532
17533 // Make sure no default is set (so it won't be printed)
17534 this.opt.default = null;
17535
17536 this.paginator = new Paginator();
17537 }
17538
17539 /**
17540 * Start the Inquiry session
17541 * @param {Function} cb Callback when prompt is done
17542 * @return {this}
17543 */
17544
17545 _run(cb) {
17546 this.done = cb;
17547
17548 // Once user confirm (enter key)
17549 var events = observe(this.rl);
17550 var submit = events.line.pipe(map(this.getCurrentValue.bind(this)));
17551
17552 var validation = this.handleSubmitEvents(submit);
17553 validation.success.forEach(this.onEnd.bind(this));
17554 validation.error.forEach(this.onError.bind(this));
17555
17556 events.keypress
17557 .pipe(takeUntil(validation.success))
17558 .forEach(this.onKeypress.bind(this));
17559
17560 // Init the prompt
17561 this.render();
17562
17563 return this;
17564 }
17565
17566 /**
17567 * Render the prompt to screen
17568 * @return {RawListPrompt} self
17569 */
17570
17571 render(error) {
17572 // Render question
17573 var message = this.getQuestion();
17574 var bottomContent = '';
17575
17576 if (this.status === 'answered') {
17577 message += chalk.cyan(this.answer);
17578 } else {
17579 var choicesStr = renderChoices(this.opt.choices, this.selected);
17580 message += this.paginator.paginate(choicesStr, this.selected, this.opt.pageSize);
17581 message += '\n Answer: ';
17582 }
17583
17584 message += this.rl.line;
17585
17586 if (error) {
17587 bottomContent = '\n' + chalk.red('>> ') + error;
17588 }
17589
17590 this.screen.render(message, bottomContent);
17591 }
17592
17593 /**
17594 * When user press `enter` key
17595 */
17596
17597 getCurrentValue(index) {
17598 if (index == null || index === '') {
17599 index = this.rawDefault;
17600 } else {
17601 index -= 1;
17602 }
17603
17604 var choice = this.opt.choices.getChoice(index);
17605 return choice ? choice.value : null;
17606 }
17607
17608 onEnd(state) {
17609 this.status = 'answered';
17610 this.answer = state.value;
17611
17612 // Re-render prompt
17613 this.render();
17614
17615 this.screen.done();
17616 this.done(state.value);
17617 }
17618
17619 onError() {
17620 this.render('Please enter a valid index');
17621 }
17622
17623 /**
17624 * When user press a key
17625 */
17626
17627 onKeypress() {
17628 var index = this.rl.line.length ? Number(this.rl.line) - 1 : 0;
17629
17630 if (this.opt.choices.getChoice(index)) {
17631 this.selected = index;
17632 } else {
17633 this.selected = undefined;
17634 }
17635
17636 this.render();
17637 }
17638}
17639
17640/**
17641 * Function for rendering list choices
17642 * @param {Number} pointer Position of the pointer
17643 * @return {String} Rendered content
17644 */
17645
17646function renderChoices(choices, pointer) {
17647 var output = '';
17648 var separatorOffset = 0;
17649
17650 choices.forEach(function(choice, i) {
17651 output += '\n ';
17652
17653 if (choice.type === 'separator') {
17654 separatorOffset++;
17655 output += ' ' + choice;
17656 return;
17657 }
17658
17659 var index = i - separatorOffset;
17660 var display = index + 1 + ') ' + choice.name;
17661 if (index === pointer) {
17662 display = chalk.cyan(display);
17663 }
17664 output += display;
17665 });
17666
17667 return output;
17668}
17669
17670module.exports = RawListPrompt;
17671
17672
17673/***/ }),
17674
17675/***/ "./node_modules/inquirer/lib/ui/baseUI.js":
17676/*!************************************************!*\
17677 !*** ./node_modules/inquirer/lib/ui/baseUI.js ***!
17678 \************************************************/
17679/*! no static exports found */
17680/***/ (function(module, exports, __webpack_require__) {
17681
17682"use strict";
17683
17684var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
17685var MuteStream = __webpack_require__(/*! mute-stream */ "./node_modules/mute-stream/mute.js");
17686var readline = __webpack_require__(/*! readline */ "readline");
17687
17688/**
17689 * Base interface class other can inherits from
17690 */
17691
17692class UI {
17693 constructor(opt) {
17694 // Instantiate the Readline interface
17695 // @Note: Don't reassign if already present (allow test to override the Stream)
17696 if (!this.rl) {
17697 this.rl = readline.createInterface(setupReadlineOptions(opt));
17698 }
17699 this.rl.resume();
17700
17701 this.onForceClose = this.onForceClose.bind(this);
17702
17703 // Make sure new prompt start on a newline when closing
17704 process.on('exit', this.onForceClose);
17705
17706 // Terminate process on SIGINT (which will call process.on('exit') in return)
17707 this.rl.on('SIGINT', this.onForceClose);
17708 }
17709
17710 /**
17711 * Handle the ^C exit
17712 * @return {null}
17713 */
17714
17715 onForceClose() {
17716 this.close();
17717 process.kill(process.pid, 'SIGINT');
17718 console.log('');
17719 }
17720
17721 /**
17722 * Close the interface and cleanup listeners
17723 */
17724
17725 close() {
17726 // Remove events listeners
17727 this.rl.removeListener('SIGINT', this.onForceClose);
17728 process.removeListener('exit', this.onForceClose);
17729
17730 this.rl.output.unmute();
17731
17732 if (this.activePrompt && typeof this.activePrompt.close === 'function') {
17733 this.activePrompt.close();
17734 }
17735
17736 // Close the readline
17737 this.rl.output.end();
17738 this.rl.pause();
17739 this.rl.close();
17740 }
17741}
17742
17743function setupReadlineOptions(opt) {
17744 opt = opt || {};
17745
17746 // Default `input` to stdin
17747 var input = opt.input || process.stdin;
17748
17749 // Add mute capabilities to the output
17750 var ms = new MuteStream();
17751 ms.pipe(opt.output || process.stdout);
17752 var output = ms;
17753
17754 return _.extend(
17755 {
17756 terminal: true,
17757 input: input,
17758 output: output
17759 },
17760 _.omit(opt, ['input', 'output'])
17761 );
17762}
17763
17764module.exports = UI;
17765
17766
17767/***/ }),
17768
17769/***/ "./node_modules/inquirer/lib/ui/bottom-bar.js":
17770/*!****************************************************!*\
17771 !*** ./node_modules/inquirer/lib/ui/bottom-bar.js ***!
17772 \****************************************************/
17773/*! no static exports found */
17774/***/ (function(module, exports, __webpack_require__) {
17775
17776"use strict";
17777
17778/**
17779 * Sticky bottom bar user interface
17780 */
17781
17782var through = __webpack_require__(/*! through */ "./node_modules/through/index.js");
17783var Base = __webpack_require__(/*! ./baseUI */ "./node_modules/inquirer/lib/ui/baseUI.js");
17784var rlUtils = __webpack_require__(/*! ../utils/readline */ "./node_modules/inquirer/lib/utils/readline.js");
17785var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
17786
17787class BottomBar extends Base {
17788 constructor(opt) {
17789 opt = opt || {};
17790
17791 super(opt);
17792
17793 this.log = through(this.writeLog.bind(this));
17794 this.bottomBar = opt.bottomBar || '';
17795 this.render();
17796 }
17797
17798 /**
17799 * Render the prompt to screen
17800 * @return {BottomBar} self
17801 */
17802
17803 render() {
17804 this.write(this.bottomBar);
17805 return this;
17806 }
17807
17808 clean() {
17809 rlUtils.clearLine(this.rl, this.bottomBar.split('\n').length);
17810 return this;
17811 }
17812
17813 /**
17814 * Update the bottom bar content and rerender
17815 * @param {String} bottomBar Bottom bar content
17816 * @return {BottomBar} self
17817 */
17818
17819 updateBottomBar(bottomBar) {
17820 rlUtils.clearLine(this.rl, 1);
17821 this.rl.output.unmute();
17822 this.clean();
17823 this.bottomBar = bottomBar;
17824 this.render();
17825 this.rl.output.mute();
17826 return this;
17827 }
17828
17829 /**
17830 * Write out log data
17831 * @param {String} data - The log data to be output
17832 * @return {BottomBar} self
17833 */
17834
17835 writeLog(data) {
17836 this.rl.output.unmute();
17837 this.clean();
17838 this.rl.output.write(this.enforceLF(data.toString()));
17839 this.render();
17840 this.rl.output.mute();
17841 return this;
17842 }
17843
17844 /**
17845 * Make sure line end on a line feed
17846 * @param {String} str Input string
17847 * @return {String} The input string with a final line feed
17848 */
17849
17850 enforceLF(str) {
17851 return str.match(/[\r\n]$/) ? str : str + '\n';
17852 }
17853
17854 /**
17855 * Helper for writing message in Prompt
17856 * @param {BottomBar} prompt - The Prompt object that extends tty
17857 * @param {String} message - The message to be output
17858 */
17859 write(message) {
17860 var msgLines = message.split(/\n/);
17861 this.height = msgLines.length;
17862
17863 // Write message to screen and setPrompt to control backspace
17864 this.rl.setPrompt(_.last(msgLines));
17865
17866 if (this.rl.output.rows === 0 && this.rl.output.columns === 0) {
17867 /* When it's a tty through serial port there's no terminal info and the render will malfunction,
17868 so we need enforce the cursor to locate to the leftmost position for rendering. */
17869 rlUtils.left(this.rl, message.length + this.rl.line.length);
17870 }
17871 this.rl.output.write(message);
17872 }
17873}
17874
17875module.exports = BottomBar;
17876
17877
17878/***/ }),
17879
17880/***/ "./node_modules/inquirer/lib/ui/prompt.js":
17881/*!************************************************!*\
17882 !*** ./node_modules/inquirer/lib/ui/prompt.js ***!
17883 \************************************************/
17884/*! no static exports found */
17885/***/ (function(module, exports, __webpack_require__) {
17886
17887"use strict";
17888
17889var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
17890var { defer, empty, from, of } = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js");
17891var { concatMap, filter, publish, reduce } = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
17892var runAsync = __webpack_require__(/*! run-async */ "./node_modules/run-async/index.js");
17893var utils = __webpack_require__(/*! ../utils/utils */ "./node_modules/inquirer/lib/utils/utils.js");
17894var Base = __webpack_require__(/*! ./baseUI */ "./node_modules/inquirer/lib/ui/baseUI.js");
17895
17896/**
17897 * Base interface class other can inherits from
17898 */
17899
17900class PromptUI extends Base {
17901 constructor(prompts, opt) {
17902 super(opt);
17903 this.prompts = prompts;
17904 }
17905
17906 run(questions) {
17907 // Keep global reference to the answers
17908 this.answers = {};
17909
17910 // Make sure questions is an array.
17911 if (_.isPlainObject(questions)) {
17912 questions = [questions];
17913 }
17914
17915 // Create an observable, unless we received one as parameter.
17916 // Note: As this is a public interface, we cannot do an instanceof check as we won't
17917 // be using the exact same object in memory.
17918 var obs = _.isArray(questions) ? from(questions) : questions;
17919
17920 this.process = obs.pipe(
17921 concatMap(this.processQuestion.bind(this)),
17922 publish() // Creates a hot Observable. It prevents duplicating prompts.
17923 );
17924
17925 this.process.connect();
17926
17927 return this.process
17928 .pipe(
17929 reduce((answers, answer) => {
17930 _.set(this.answers, answer.name, answer.answer);
17931 return this.answers;
17932 }, {})
17933 )
17934 .toPromise(Promise)
17935 .then(this.onCompletion.bind(this));
17936 }
17937
17938 /**
17939 * Once all prompt are over
17940 */
17941
17942 onCompletion() {
17943 this.close();
17944
17945 return this.answers;
17946 }
17947
17948 processQuestion(question) {
17949 question = _.clone(question);
17950 return defer(() => {
17951 var obs = of(question);
17952
17953 return obs.pipe(
17954 concatMap(this.setDefaultType.bind(this)),
17955 concatMap(this.filterIfRunnable.bind(this)),
17956 concatMap(() =>
17957 utils.fetchAsyncQuestionProperty(question, 'message', this.answers)
17958 ),
17959 concatMap(() =>
17960 utils.fetchAsyncQuestionProperty(question, 'default', this.answers)
17961 ),
17962 concatMap(() =>
17963 utils.fetchAsyncQuestionProperty(question, 'choices', this.answers)
17964 ),
17965 concatMap(this.fetchAnswer.bind(this))
17966 );
17967 });
17968 }
17969
17970 fetchAnswer(question) {
17971 var Prompt = this.prompts[question.type];
17972 this.activePrompt = new Prompt(question, this.rl, this.answers);
17973 return defer(() =>
17974 from(
17975 this.activePrompt.run().then(answer => ({ name: question.name, answer: answer }))
17976 )
17977 );
17978 }
17979
17980 setDefaultType(question) {
17981 // Default type to input
17982 if (!this.prompts[question.type]) {
17983 question.type = 'input';
17984 }
17985 return defer(() => of(question));
17986 }
17987
17988 filterIfRunnable(question) {
17989 if (question.when === false) {
17990 return empty();
17991 }
17992
17993 if (!_.isFunction(question.when)) {
17994 return of(question);
17995 }
17996
17997 var answers = this.answers;
17998 return defer(() =>
17999 from(
18000 runAsync(question.when)(answers).then(shouldRun => {
18001 if (shouldRun) {
18002 return question;
18003 }
18004 })
18005 ).pipe(filter(val => val != null))
18006 );
18007 }
18008}
18009
18010module.exports = PromptUI;
18011
18012
18013/***/ }),
18014
18015/***/ "./node_modules/inquirer/lib/utils/events.js":
18016/*!***************************************************!*\
18017 !*** ./node_modules/inquirer/lib/utils/events.js ***!
18018 \***************************************************/
18019/*! no static exports found */
18020/***/ (function(module, exports, __webpack_require__) {
18021
18022"use strict";
18023
18024var { fromEvent } = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js");
18025var { filter, map, share } = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm5/operators/index.js");
18026
18027function normalizeKeypressEvents(value, key) {
18028 return { value: value, key: key || {} };
18029}
18030
18031module.exports = function(rl) {
18032 var keypress = fromEvent(rl.input, 'keypress', normalizeKeypressEvents)
18033 // Ignore `enter` key. On the readline, we only care about the `line` event.
18034 .pipe(filter(({ key }) => key.name !== 'enter' && key.name !== 'return'));
18035
18036 return {
18037 line: fromEvent(rl, 'line'),
18038 keypress: keypress,
18039
18040 normalizedUpKey: keypress.pipe(
18041 filter(
18042 ({ key }) =>
18043 key.name === 'up' || key.name === 'k' || (key.name === 'p' && key.ctrl)
18044 ),
18045 share()
18046 ),
18047
18048 normalizedDownKey: keypress.pipe(
18049 filter(
18050 ({ key }) =>
18051 key.name === 'down' || key.name === 'j' || (key.name === 'n' && key.ctrl)
18052 ),
18053 share()
18054 ),
18055
18056 numberKey: keypress.pipe(
18057 filter(e => e.value && '123456789'.indexOf(e.value) >= 0),
18058 map(e => Number(e.value)),
18059 share()
18060 ),
18061
18062 spaceKey: keypress.pipe(
18063 filter(({ key }) => key && key.name === 'space'),
18064 share()
18065 ),
18066 aKey: keypress.pipe(
18067 filter(({ key }) => key && key.name === 'a'),
18068 share()
18069 ),
18070 iKey: keypress.pipe(
18071 filter(({ key }) => key && key.name === 'i'),
18072 share()
18073 )
18074 };
18075};
18076
18077
18078/***/ }),
18079
18080/***/ "./node_modules/inquirer/lib/utils/paginator.js":
18081/*!******************************************************!*\
18082 !*** ./node_modules/inquirer/lib/utils/paginator.js ***!
18083 \******************************************************/
18084/*! no static exports found */
18085/***/ (function(module, exports, __webpack_require__) {
18086
18087"use strict";
18088
18089
18090var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
18091var chalk = __webpack_require__(/*! chalk */ "./node_modules/chalk/index.js");
18092
18093/**
18094 * The paginator keeps track of a pointer index in a list and returns
18095 * a subset of the choices if the list is too long.
18096 */
18097
18098class Paginator {
18099 constructor(screen) {
18100 this.pointer = 0;
18101 this.lastIndex = 0;
18102 this.screen = screen;
18103 }
18104
18105 paginate(output, active, pageSize) {
18106 pageSize = pageSize || 7;
18107 var middleOfList = Math.floor(pageSize / 2);
18108 var lines = output.split('\n');
18109
18110 if (this.screen) {
18111 lines = this.screen.breakLines(lines);
18112 active = _.sum(lines.map(lineParts => lineParts.length).splice(0, active));
18113 lines = _.flatten(lines);
18114 }
18115
18116 // Make sure there's enough lines to paginate
18117 if (lines.length <= pageSize) {
18118 return output;
18119 }
18120
18121 // Move the pointer only when the user go down and limit it to the middle of the list
18122 if (
18123 this.pointer < middleOfList &&
18124 this.lastIndex < active &&
18125 active - this.lastIndex < pageSize
18126 ) {
18127 this.pointer = Math.min(middleOfList, this.pointer + active - this.lastIndex);
18128 }
18129 this.lastIndex = active;
18130
18131 // Duplicate the lines so it give an infinite list look
18132 var infinite = _.flatten([lines, lines, lines]);
18133 var topIndex = Math.max(0, active + lines.length - this.pointer);
18134
18135 var section = infinite.splice(topIndex, pageSize).join('\n');
18136 return section + '\n' + chalk.dim('(Move up and down to reveal more choices)');
18137 }
18138}
18139
18140module.exports = Paginator;
18141
18142
18143/***/ }),
18144
18145/***/ "./node_modules/inquirer/lib/utils/readline.js":
18146/*!*****************************************************!*\
18147 !*** ./node_modules/inquirer/lib/utils/readline.js ***!
18148 \*****************************************************/
18149/*! no static exports found */
18150/***/ (function(module, exports, __webpack_require__) {
18151
18152"use strict";
18153
18154var ansiEscapes = __webpack_require__(/*! ansi-escapes */ "./node_modules/ansi-escapes/index.js");
18155
18156/**
18157 * Move cursor left by `x`
18158 * @param {Readline} rl - Readline instance
18159 * @param {Number} x - How far to go left (default to 1)
18160 */
18161
18162exports.left = function(rl, x) {
18163 rl.output.write(ansiEscapes.cursorBackward(x));
18164};
18165
18166/**
18167 * Move cursor right by `x`
18168 * @param {Readline} rl - Readline instance
18169 * @param {Number} x - How far to go left (default to 1)
18170 */
18171
18172exports.right = function(rl, x) {
18173 rl.output.write(ansiEscapes.cursorForward(x));
18174};
18175
18176/**
18177 * Move cursor up by `x`
18178 * @param {Readline} rl - Readline instance
18179 * @param {Number} x - How far to go up (default to 1)
18180 */
18181
18182exports.up = function(rl, x) {
18183 rl.output.write(ansiEscapes.cursorUp(x));
18184};
18185
18186/**
18187 * Move cursor down by `x`
18188 * @param {Readline} rl - Readline instance
18189 * @param {Number} x - How far to go down (default to 1)
18190 */
18191
18192exports.down = function(rl, x) {
18193 rl.output.write(ansiEscapes.cursorDown(x));
18194};
18195
18196/**
18197 * Clear current line
18198 * @param {Readline} rl - Readline instance
18199 * @param {Number} len - number of line to delete
18200 */
18201exports.clearLine = function(rl, len) {
18202 rl.output.write(ansiEscapes.eraseLines(len));
18203};
18204
18205
18206/***/ }),
18207
18208/***/ "./node_modules/inquirer/lib/utils/screen-manager.js":
18209/*!***********************************************************!*\
18210 !*** ./node_modules/inquirer/lib/utils/screen-manager.js ***!
18211 \***********************************************************/
18212/*! no static exports found */
18213/***/ (function(module, exports, __webpack_require__) {
18214
18215"use strict";
18216
18217var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
18218var util = __webpack_require__(/*! ./readline */ "./node_modules/inquirer/lib/utils/readline.js");
18219var cliWidth = __webpack_require__(/*! cli-width */ "./node_modules/cli-width/index.js");
18220var stripAnsi = __webpack_require__(/*! strip-ansi */ "./node_modules/inquirer/node_modules/strip-ansi/index.js");
18221var stringWidth = __webpack_require__(/*! string-width */ "./node_modules/string-width/index.js");
18222
18223function height(content) {
18224 return content.split('\n').length;
18225}
18226
18227function lastLine(content) {
18228 return _.last(content.split('\n'));
18229}
18230
18231class ScreenManager {
18232 constructor(rl) {
18233 // These variables are keeping information to allow correct prompt re-rendering
18234 this.height = 0;
18235 this.extraLinesUnderPrompt = 0;
18236
18237 this.rl = rl;
18238 }
18239
18240 render(content, bottomContent) {
18241 this.rl.output.unmute();
18242 this.clean(this.extraLinesUnderPrompt);
18243
18244 /**
18245 * Write message to screen and setPrompt to control backspace
18246 */
18247
18248 var promptLine = lastLine(content);
18249 var rawPromptLine = stripAnsi(promptLine);
18250
18251 // Remove the rl.line from our prompt. We can't rely on the content of
18252 // rl.line (mainly because of the password prompt), so just rely on it's
18253 // length.
18254 var prompt = rawPromptLine;
18255 if (this.rl.line.length) {
18256 prompt = prompt.slice(0, -this.rl.line.length);
18257 }
18258 this.rl.setPrompt(prompt);
18259
18260 // SetPrompt will change cursor position, now we can get correct value
18261 var cursorPos = this.rl._getCursorPos();
18262 var width = this.normalizedCliWidth();
18263
18264 content = this.forceLineReturn(content, width);
18265 if (bottomContent) {
18266 bottomContent = this.forceLineReturn(bottomContent, width);
18267 }
18268 // Manually insert an extra line if we're at the end of the line.
18269 // This prevent the cursor from appearing at the beginning of the
18270 // current line.
18271 if (rawPromptLine.length % width === 0) {
18272 content += '\n';
18273 }
18274 var fullContent = content + (bottomContent ? '\n' + bottomContent : '');
18275 this.rl.output.write(fullContent);
18276
18277 /**
18278 * Re-adjust the cursor at the correct position.
18279 */
18280
18281 // We need to consider parts of the prompt under the cursor as part of the bottom
18282 // content in order to correctly cleanup and re-render.
18283 var promptLineUpDiff = Math.floor(rawPromptLine.length / width) - cursorPos.rows;
18284 var bottomContentHeight =
18285 promptLineUpDiff + (bottomContent ? height(bottomContent) : 0);
18286 if (bottomContentHeight > 0) {
18287 util.up(this.rl, bottomContentHeight);
18288 }
18289
18290 // Reset cursor at the beginning of the line
18291 util.left(this.rl, stringWidth(lastLine(fullContent)));
18292
18293 // Adjust cursor on the right
18294 if (cursorPos.cols > 0) {
18295 util.right(this.rl, cursorPos.cols);
18296 }
18297
18298 /**
18299 * Set up state for next re-rendering
18300 */
18301 this.extraLinesUnderPrompt = bottomContentHeight;
18302 this.height = height(fullContent);
18303
18304 this.rl.output.mute();
18305 }
18306
18307 clean(extraLines) {
18308 if (extraLines > 0) {
18309 util.down(this.rl, extraLines);
18310 }
18311 util.clearLine(this.rl, this.height);
18312 }
18313
18314 done() {
18315 this.rl.setPrompt('');
18316 this.rl.output.unmute();
18317 this.rl.output.write('\n');
18318 }
18319
18320 releaseCursor() {
18321 if (this.extraLinesUnderPrompt > 0) {
18322 util.down(this.rl, this.extraLinesUnderPrompt);
18323 }
18324 }
18325
18326 normalizedCliWidth() {
18327 var width = cliWidth({
18328 defaultWidth: 80,
18329 output: this.rl.output
18330 });
18331 return width;
18332 }
18333
18334 breakLines(lines, width) {
18335 // Break lines who're longer than the cli width so we can normalize the natural line
18336 // returns behavior across terminals.
18337 width = width || this.normalizedCliWidth();
18338 var regex = new RegExp('(?:(?:\\033[[0-9;]*m)*.?){1,' + width + '}', 'g');
18339 return lines.map(line => {
18340 var chunk = line.match(regex);
18341 // Last match is always empty
18342 chunk.pop();
18343 return chunk || '';
18344 });
18345 }
18346
18347 forceLineReturn(content, width) {
18348 width = width || this.normalizedCliWidth();
18349 return _.flatten(this.breakLines(content.split('\n'), width)).join('\n');
18350 }
18351}
18352
18353module.exports = ScreenManager;
18354
18355
18356/***/ }),
18357
18358/***/ "./node_modules/inquirer/lib/utils/utils.js":
18359/*!**************************************************!*\
18360 !*** ./node_modules/inquirer/lib/utils/utils.js ***!
18361 \**************************************************/
18362/*! no static exports found */
18363/***/ (function(module, exports, __webpack_require__) {
18364
18365"use strict";
18366
18367var _ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");
18368var { from, of } = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm5/index.js");
18369var runAsync = __webpack_require__(/*! run-async */ "./node_modules/run-async/index.js");
18370
18371/**
18372 * Resolve a question property value if it is passed as a function.
18373 * This method will overwrite the property on the question object with the received value.
18374 * @param {Object} question - Question object
18375 * @param {String} prop - Property to fetch name
18376 * @param {Object} answers - Answers object
18377 * @return {Rx.Observable} - Observable emitting once value is known
18378 */
18379
18380exports.fetchAsyncQuestionProperty = function(question, prop, answers) {
18381 if (!_.isFunction(question[prop])) {
18382 return of(question);
18383 }
18384
18385 return from(
18386 runAsync(question[prop])(answers).then(value => {
18387 question[prop] = value;
18388 return question;
18389 })
18390 );
18391};
18392
18393
18394/***/ }),
18395
18396/***/ "./node_modules/inquirer/node_modules/ansi-regex/index.js":
18397/*!****************************************************************!*\
18398 !*** ./node_modules/inquirer/node_modules/ansi-regex/index.js ***!
18399 \****************************************************************/
18400/*! no static exports found */
18401/***/ (function(module, exports, __webpack_require__) {
18402
18403"use strict";
18404
18405
18406module.exports = () => {
18407 const pattern = [
18408 '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)',
18409 '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))'
18410 ].join('|');
18411
18412 return new RegExp(pattern, 'g');
18413};
18414
18415
18416/***/ }),
18417
18418/***/ "./node_modules/inquirer/node_modules/strip-ansi/index.js":
18419/*!****************************************************************!*\
18420 !*** ./node_modules/inquirer/node_modules/strip-ansi/index.js ***!
18421 \****************************************************************/
18422/*! no static exports found */
18423/***/ (function(module, exports, __webpack_require__) {
18424
18425"use strict";
18426
18427const ansiRegex = __webpack_require__(/*! ansi-regex */ "./node_modules/inquirer/node_modules/ansi-regex/index.js");
18428
18429module.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input;
18430
18431
18432/***/ }),
18433
18434/***/ "./node_modules/is-fullwidth-code-point/index.js":
18435/*!*******************************************************!*\
18436 !*** ./node_modules/is-fullwidth-code-point/index.js ***!
18437 \*******************************************************/
18438/*! no static exports found */
18439/***/ (function(module, exports, __webpack_require__) {
18440
18441"use strict";
18442
18443/* eslint-disable yoda */
18444module.exports = x => {
18445 if (Number.isNaN(x)) {
18446 return false;
18447 }
18448
18449 // code points are derived from:
18450 // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt
18451 if (
18452 x >= 0x1100 && (
18453 x <= 0x115f || // Hangul Jamo
18454 x === 0x2329 || // LEFT-POINTING ANGLE BRACKET
18455 x === 0x232a || // RIGHT-POINTING ANGLE BRACKET
18456 // CJK Radicals Supplement .. Enclosed CJK Letters and Months
18457 (0x2e80 <= x && x <= 0x3247 && x !== 0x303f) ||
18458 // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
18459 (0x3250 <= x && x <= 0x4dbf) ||
18460 // CJK Unified Ideographs .. Yi Radicals
18461 (0x4e00 <= x && x <= 0xa4c6) ||
18462 // Hangul Jamo Extended-A
18463 (0xa960 <= x && x <= 0xa97c) ||
18464 // Hangul Syllables
18465 (0xac00 <= x && x <= 0xd7a3) ||
18466 // CJK Compatibility Ideographs
18467 (0xf900 <= x && x <= 0xfaff) ||
18468 // Vertical Forms
18469 (0xfe10 <= x && x <= 0xfe19) ||
18470 // CJK Compatibility Forms .. Small Form Variants
18471 (0xfe30 <= x && x <= 0xfe6b) ||
18472 // Halfwidth and Fullwidth Forms
18473 (0xff01 <= x && x <= 0xff60) ||
18474 (0xffe0 <= x && x <= 0xffe6) ||
18475 // Kana Supplement
18476 (0x1b000 <= x && x <= 0x1b001) ||
18477 // Enclosed Ideographic Supplement
18478 (0x1f200 <= x && x <= 0x1f251) ||
18479 // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
18480 (0x20000 <= x && x <= 0x3fffd)
18481 )
18482 ) {
18483 return true;
18484 }
18485
18486 return false;
18487};
18488
18489
18490/***/ }),
18491
18492/***/ "./node_modules/is-promise/index.js":
18493/*!******************************************!*\
18494 !*** ./node_modules/is-promise/index.js ***!
18495 \******************************************/
18496/*! no static exports found */
18497/***/ (function(module, exports) {
18498
18499module.exports = isPromise;
18500
18501function isPromise(obj) {
18502 return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
18503}
18504
18505
18506/***/ }),
18507
18508/***/ "./node_modules/jsonfile/index.js":
18509/*!****************************************!*\
18510 !*** ./node_modules/jsonfile/index.js ***!
18511 \****************************************/
18512/*! no static exports found */
18513/***/ (function(module, exports, __webpack_require__) {
18514
18515var _fs
18516try {
18517 _fs = __webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js")
18518} catch (_) {
18519 _fs = __webpack_require__(/*! fs */ "fs")
18520}
18521
18522function readFile (file, options, callback) {
18523 if (callback == null) {
18524 callback = options
18525 options = {}
18526 }
18527
18528 if (typeof options === 'string') {
18529 options = {encoding: options}
18530 }
18531
18532 options = options || {}
18533 var fs = options.fs || _fs
18534
18535 var shouldThrow = true
18536 if ('throws' in options) {
18537 shouldThrow = options.throws
18538 }
18539
18540 fs.readFile(file, options, function (err, data) {
18541 if (err) return callback(err)
18542
18543 data = stripBom(data)
18544
18545 var obj
18546 try {
18547 obj = JSON.parse(data, options ? options.reviver : null)
18548 } catch (err2) {
18549 if (shouldThrow) {
18550 err2.message = file + ': ' + err2.message
18551 return callback(err2)
18552 } else {
18553 return callback(null, null)
18554 }
18555 }
18556
18557 callback(null, obj)
18558 })
18559}
18560
18561function readFileSync (file, options) {
18562 options = options || {}
18563 if (typeof options === 'string') {
18564 options = {encoding: options}
18565 }
18566
18567 var fs = options.fs || _fs
18568
18569 var shouldThrow = true
18570 if ('throws' in options) {
18571 shouldThrow = options.throws
18572 }
18573
18574 try {
18575 var content = fs.readFileSync(file, options)
18576 content = stripBom(content)
18577 return JSON.parse(content, options.reviver)
18578 } catch (err) {
18579 if (shouldThrow) {
18580 err.message = file + ': ' + err.message
18581 throw err
18582 } else {
18583 return null
18584 }
18585 }
18586}
18587
18588function stringify (obj, options) {
18589 var spaces
18590 var EOL = '\n'
18591 if (typeof options === 'object' && options !== null) {
18592 if (options.spaces) {
18593 spaces = options.spaces
18594 }
18595 if (options.EOL) {
18596 EOL = options.EOL
18597 }
18598 }
18599
18600 var str = JSON.stringify(obj, options ? options.replacer : null, spaces)
18601
18602 return str.replace(/\n/g, EOL) + EOL
18603}
18604
18605function writeFile (file, obj, options, callback) {
18606 if (callback == null) {
18607 callback = options
18608 options = {}
18609 }
18610 options = options || {}
18611 var fs = options.fs || _fs
18612
18613 var str = ''
18614 try {
18615 str = stringify(obj, options)
18616 } catch (err) {
18617 // Need to return whether a callback was passed or not
18618 if (callback) callback(err, null)
18619 return
18620 }
18621
18622 fs.writeFile(file, str, options, callback)
18623}
18624
18625function writeFileSync (file, obj, options) {
18626 options = options || {}
18627 var fs = options.fs || _fs
18628
18629 var str = stringify(obj, options)
18630 // not sure if fs.writeFileSync returns anything, but just in case
18631 return fs.writeFileSync(file, str, options)
18632}
18633
18634function stripBom (content) {
18635 // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified
18636 if (Buffer.isBuffer(content)) content = content.toString('utf8')
18637 content = content.replace(/^\uFEFF/, '')
18638 return content
18639}
18640
18641var jsonfile = {
18642 readFile: readFile,
18643 readFileSync: readFileSync,
18644 writeFile: writeFile,
18645 writeFileSync: writeFileSync
18646}
18647
18648module.exports = jsonfile
18649
18650
18651/***/ }),
18652
18653/***/ "./node_modules/lodash/lodash.js":
18654/*!***************************************!*\
18655 !*** ./node_modules/lodash/lodash.js ***!
18656 \***************************************/
18657/*! no static exports found */
18658/***/ (function(module, exports, __webpack_require__) {
18659
18660/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_RESULT__;/**
18661 * @license
18662 * Lodash <https://lodash.com/>
18663 * Copyright JS Foundation and other contributors <https://js.foundation/>
18664 * Released under MIT license <https://lodash.com/license>
18665 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
18666 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
18667 */
18668;(function() {
18669
18670 /** Used as a safe reference for `undefined` in pre-ES5 environments. */
18671 var undefined;
18672
18673 /** Used as the semantic version number. */
18674 var VERSION = '4.17.11';
18675
18676 /** Used as the size to enable large array optimizations. */
18677 var LARGE_ARRAY_SIZE = 200;
18678
18679 /** Error message constants. */
18680 var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',
18681 FUNC_ERROR_TEXT = 'Expected a function';
18682
18683 /** Used to stand-in for `undefined` hash values. */
18684 var HASH_UNDEFINED = '__lodash_hash_undefined__';
18685
18686 /** Used as the maximum memoize cache size. */
18687 var MAX_MEMOIZE_SIZE = 500;
18688
18689 /** Used as the internal argument placeholder. */
18690 var PLACEHOLDER = '__lodash_placeholder__';
18691
18692 /** Used to compose bitmasks for cloning. */
18693 var CLONE_DEEP_FLAG = 1,
18694 CLONE_FLAT_FLAG = 2,
18695 CLONE_SYMBOLS_FLAG = 4;
18696
18697 /** Used to compose bitmasks for value comparisons. */
18698 var COMPARE_PARTIAL_FLAG = 1,
18699 COMPARE_UNORDERED_FLAG = 2;
18700
18701 /** Used to compose bitmasks for function metadata. */
18702 var WRAP_BIND_FLAG = 1,
18703 WRAP_BIND_KEY_FLAG = 2,
18704 WRAP_CURRY_BOUND_FLAG = 4,
18705 WRAP_CURRY_FLAG = 8,
18706 WRAP_CURRY_RIGHT_FLAG = 16,
18707 WRAP_PARTIAL_FLAG = 32,
18708 WRAP_PARTIAL_RIGHT_FLAG = 64,
18709 WRAP_ARY_FLAG = 128,
18710 WRAP_REARG_FLAG = 256,
18711 WRAP_FLIP_FLAG = 512;
18712
18713 /** Used as default options for `_.truncate`. */
18714 var DEFAULT_TRUNC_LENGTH = 30,
18715 DEFAULT_TRUNC_OMISSION = '...';
18716
18717 /** Used to detect hot functions by number of calls within a span of milliseconds. */
18718 var HOT_COUNT = 800,
18719 HOT_SPAN = 16;
18720
18721 /** Used to indicate the type of lazy iteratees. */
18722 var LAZY_FILTER_FLAG = 1,
18723 LAZY_MAP_FLAG = 2,
18724 LAZY_WHILE_FLAG = 3;
18725
18726 /** Used as references for various `Number` constants. */
18727 var INFINITY = 1 / 0,
18728 MAX_SAFE_INTEGER = 9007199254740991,
18729 MAX_INTEGER = 1.7976931348623157e+308,
18730 NAN = 0 / 0;
18731
18732 /** Used as references for the maximum length and index of an array. */
18733 var MAX_ARRAY_LENGTH = 4294967295,
18734 MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,
18735 HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
18736
18737 /** Used to associate wrap methods with their bit flags. */
18738 var wrapFlags = [
18739 ['ary', WRAP_ARY_FLAG],
18740 ['bind', WRAP_BIND_FLAG],
18741 ['bindKey', WRAP_BIND_KEY_FLAG],
18742 ['curry', WRAP_CURRY_FLAG],
18743 ['curryRight', WRAP_CURRY_RIGHT_FLAG],
18744 ['flip', WRAP_FLIP_FLAG],
18745 ['partial', WRAP_PARTIAL_FLAG],
18746 ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],
18747 ['rearg', WRAP_REARG_FLAG]
18748 ];
18749
18750 /** `Object#toString` result references. */
18751 var argsTag = '[object Arguments]',
18752 arrayTag = '[object Array]',
18753 asyncTag = '[object AsyncFunction]',
18754 boolTag = '[object Boolean]',
18755 dateTag = '[object Date]',
18756 domExcTag = '[object DOMException]',
18757 errorTag = '[object Error]',
18758 funcTag = '[object Function]',
18759 genTag = '[object GeneratorFunction]',
18760 mapTag = '[object Map]',
18761 numberTag = '[object Number]',
18762 nullTag = '[object Null]',
18763 objectTag = '[object Object]',
18764 promiseTag = '[object Promise]',
18765 proxyTag = '[object Proxy]',
18766 regexpTag = '[object RegExp]',
18767 setTag = '[object Set]',
18768 stringTag = '[object String]',
18769 symbolTag = '[object Symbol]',
18770 undefinedTag = '[object Undefined]',
18771 weakMapTag = '[object WeakMap]',
18772 weakSetTag = '[object WeakSet]';
18773
18774 var arrayBufferTag = '[object ArrayBuffer]',
18775 dataViewTag = '[object DataView]',
18776 float32Tag = '[object Float32Array]',
18777 float64Tag = '[object Float64Array]',
18778 int8Tag = '[object Int8Array]',
18779 int16Tag = '[object Int16Array]',
18780 int32Tag = '[object Int32Array]',
18781 uint8Tag = '[object Uint8Array]',
18782 uint8ClampedTag = '[object Uint8ClampedArray]',
18783 uint16Tag = '[object Uint16Array]',
18784 uint32Tag = '[object Uint32Array]';
18785
18786 /** Used to match empty string literals in compiled template source. */
18787 var reEmptyStringLeading = /\b__p \+= '';/g,
18788 reEmptyStringMiddle = /\b(__p \+=) '' \+/g,
18789 reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g;
18790
18791 /** Used to match HTML entities and HTML characters. */
18792 var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,
18793 reUnescapedHtml = /[&<>"']/g,
18794 reHasEscapedHtml = RegExp(reEscapedHtml.source),
18795 reHasUnescapedHtml = RegExp(reUnescapedHtml.source);
18796
18797 /** Used to match template delimiters. */
18798 var reEscape = /<%-([\s\S]+?)%>/g,
18799 reEvaluate = /<%([\s\S]+?)%>/g,
18800 reInterpolate = /<%=([\s\S]+?)%>/g;
18801
18802 /** Used to match property names within property paths. */
18803 var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
18804 reIsPlainProp = /^\w*$/,
18805 rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
18806
18807 /**
18808 * Used to match `RegExp`
18809 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
18810 */
18811 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g,
18812 reHasRegExpChar = RegExp(reRegExpChar.source);
18813
18814 /** Used to match leading and trailing whitespace. */
18815 var reTrim = /^\s+|\s+$/g,
18816 reTrimStart = /^\s+/,
18817 reTrimEnd = /\s+$/;
18818
18819 /** Used to match wrap detail comments. */
18820 var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,
18821 reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/,
18822 reSplitDetails = /,? & /;
18823
18824 /** Used to match words composed of alphanumeric characters. */
18825 var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
18826
18827 /** Used to match backslashes in property paths. */
18828 var reEscapeChar = /\\(\\)?/g;
18829
18830 /**
18831 * Used to match
18832 * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).
18833 */
18834 var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;
18835
18836 /** Used to match `RegExp` flags from their coerced string values. */
18837 var reFlags = /\w*$/;
18838
18839 /** Used to detect bad signed hexadecimal string values. */
18840 var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
18841
18842 /** Used to detect binary string values. */
18843 var reIsBinary = /^0b[01]+$/i;
18844
18845 /** Used to detect host constructors (Safari). */
18846 var reIsHostCtor = /^\[object .+?Constructor\]$/;
18847
18848 /** Used to detect octal string values. */
18849 var reIsOctal = /^0o[0-7]+$/i;
18850
18851 /** Used to detect unsigned integer values. */
18852 var reIsUint = /^(?:0|[1-9]\d*)$/;
18853
18854 /** Used to match Latin Unicode letters (excluding mathematical operators). */
18855 var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
18856
18857 /** Used to ensure capturing order of template delimiters. */
18858 var reNoMatch = /($^)/;
18859
18860 /** Used to match unescaped characters in compiled string literals. */
18861 var reUnescapedString = /['\n\r\u2028\u2029\\]/g;
18862
18863 /** Used to compose unicode character classes. */
18864 var rsAstralRange = '\\ud800-\\udfff',
18865 rsComboMarksRange = '\\u0300-\\u036f',
18866 reComboHalfMarksRange = '\\ufe20-\\ufe2f',
18867 rsComboSymbolsRange = '\\u20d0-\\u20ff',
18868 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,
18869 rsDingbatRange = '\\u2700-\\u27bf',
18870 rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff',
18871 rsMathOpRange = '\\xac\\xb1\\xd7\\xf7',
18872 rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf',
18873 rsPunctuationRange = '\\u2000-\\u206f',
18874 rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000',
18875 rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde',
18876 rsVarRange = '\\ufe0e\\ufe0f',
18877 rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
18878
18879 /** Used to compose unicode capture groups. */
18880 var rsApos = "['\u2019]",
18881 rsAstral = '[' + rsAstralRange + ']',
18882 rsBreak = '[' + rsBreakRange + ']',
18883 rsCombo = '[' + rsComboRange + ']',
18884 rsDigits = '\\d+',
18885 rsDingbat = '[' + rsDingbatRange + ']',
18886 rsLower = '[' + rsLowerRange + ']',
18887 rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',
18888 rsFitz = '\\ud83c[\\udffb-\\udfff]',
18889 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',
18890 rsNonAstral = '[^' + rsAstralRange + ']',
18891 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}',
18892 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]',
18893 rsUpper = '[' + rsUpperRange + ']',
18894 rsZWJ = '\\u200d';
18895
18896 /** Used to compose unicode regexes. */
18897 var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',
18898 rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',
18899 rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',
18900 rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',
18901 reOptMod = rsModifier + '?',
18902 rsOptVar = '[' + rsVarRange + ']?',
18903 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',
18904 rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])',
18905 rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])',
18906 rsSeq = rsOptVar + reOptMod + rsOptJoin,
18907 rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,
18908 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';
18909
18910 /** Used to match apostrophes. */
18911 var reApos = RegExp(rsApos, 'g');
18912
18913 /**
18914 * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and
18915 * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).
18916 */
18917 var reComboMark = RegExp(rsCombo, 'g');
18918
18919 /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
18920 var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');
18921
18922 /** Used to match complex or compound words. */
18923 var reUnicodeWord = RegExp([
18924 rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',
18925 rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',
18926 rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,
18927 rsUpper + '+' + rsOptContrUpper,
18928 rsOrdUpper,
18929 rsOrdLower,
18930 rsDigits,
18931 rsEmoji
18932 ].join('|'), 'g');
18933
18934 /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
18935 var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');
18936
18937 /** Used to detect strings that need a more robust regexp to match words. */
18938 var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
18939
18940 /** Used to assign default `context` object properties. */
18941 var contextProps = [
18942 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',
18943 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',
18944 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',
18945 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',
18946 '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'
18947 ];
18948
18949 /** Used to make template sourceURLs easier to identify. */
18950 var templateCounter = -1;
18951
18952 /** Used to identify `toStringTag` values of typed arrays. */
18953 var typedArrayTags = {};
18954 typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
18955 typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
18956 typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
18957 typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
18958 typedArrayTags[uint32Tag] = true;
18959 typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
18960 typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
18961 typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
18962 typedArrayTags[errorTag] = typedArrayTags[funcTag] =
18963 typedArrayTags[mapTag] = typedArrayTags[numberTag] =
18964 typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
18965 typedArrayTags[setTag] = typedArrayTags[stringTag] =
18966 typedArrayTags[weakMapTag] = false;
18967
18968 /** Used to identify `toStringTag` values supported by `_.clone`. */
18969 var cloneableTags = {};
18970 cloneableTags[argsTag] = cloneableTags[arrayTag] =
18971 cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
18972 cloneableTags[boolTag] = cloneableTags[dateTag] =
18973 cloneableTags[float32Tag] = cloneableTags[float64Tag] =
18974 cloneableTags[int8Tag] = cloneableTags[int16Tag] =
18975 cloneableTags[int32Tag] = cloneableTags[mapTag] =
18976 cloneableTags[numberTag] = cloneableTags[objectTag] =
18977 cloneableTags[regexpTag] = cloneableTags[setTag] =
18978 cloneableTags[stringTag] = cloneableTags[symbolTag] =
18979 cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
18980 cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
18981 cloneableTags[errorTag] = cloneableTags[funcTag] =
18982 cloneableTags[weakMapTag] = false;
18983
18984 /** Used to map Latin Unicode letters to basic Latin letters. */
18985 var deburredLetters = {
18986 // Latin-1 Supplement block.
18987 '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A',
18988 '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a',
18989 '\xc7': 'C', '\xe7': 'c',
18990 '\xd0': 'D', '\xf0': 'd',
18991 '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E',
18992 '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e',
18993 '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I',
18994 '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i',
18995 '\xd1': 'N', '\xf1': 'n',
18996 '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O',
18997 '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o',
18998 '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U',
18999 '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u',
19000 '\xdd': 'Y', '\xfd': 'y', '\xff': 'y',
19001 '\xc6': 'Ae', '\xe6': 'ae',
19002 '\xde': 'Th', '\xfe': 'th',
19003 '\xdf': 'ss',
19004 // Latin Extended-A block.
19005 '\u0100': 'A', '\u0102': 'A', '\u0104': 'A',
19006 '\u0101': 'a', '\u0103': 'a', '\u0105': 'a',
19007 '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C',
19008 '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c',
19009 '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd',
19010 '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E',
19011 '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e',
19012 '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G',
19013 '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g',
19014 '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h',
19015 '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I',
19016 '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i',
19017 '\u0134': 'J', '\u0135': 'j',
19018 '\u0136': 'K', '\u0137': 'k', '\u0138': 'k',
19019 '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L',
19020 '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l',
19021 '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N',
19022 '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n',
19023 '\u014c': 'O', '\u014e': 'O', '\u0150': 'O',
19024 '\u014d': 'o', '\u014f': 'o', '\u0151': 'o',
19025 '\u0154': 'R', '\u0156': 'R', '\u0158': 'R',
19026 '\u0155': 'r', '\u0157': 'r', '\u0159': 'r',
19027 '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S',
19028 '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's',
19029 '\u0162': 'T', '\u0164': 'T', '\u0166': 'T',
19030 '\u0163': 't', '\u0165': 't', '\u0167': 't',
19031 '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U',
19032 '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u',
19033 '\u0174': 'W', '\u0175': 'w',
19034 '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y',
19035 '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z',
19036 '\u017a': 'z', '\u017c': 'z', '\u017e': 'z',
19037 '\u0132': 'IJ', '\u0133': 'ij',
19038 '\u0152': 'Oe', '\u0153': 'oe',
19039 '\u0149': "'n", '\u017f': 's'
19040 };
19041
19042 /** Used to map characters to HTML entities. */
19043 var htmlEscapes = {
19044 '&': '&amp;',
19045 '<': '&lt;',
19046 '>': '&gt;',
19047 '"': '&quot;',
19048 "'": '&#39;'
19049 };
19050
19051 /** Used to map HTML entities to characters. */
19052 var htmlUnescapes = {
19053 '&amp;': '&',
19054 '&lt;': '<',
19055 '&gt;': '>',
19056 '&quot;': '"',
19057 '&#39;': "'"
19058 };
19059
19060 /** Used to escape characters for inclusion in compiled string literals. */
19061 var stringEscapes = {
19062 '\\': '\\',
19063 "'": "'",
19064 '\n': 'n',
19065 '\r': 'r',
19066 '\u2028': 'u2028',
19067 '\u2029': 'u2029'
19068 };
19069
19070 /** Built-in method references without a dependency on `root`. */
19071 var freeParseFloat = parseFloat,
19072 freeParseInt = parseInt;
19073
19074 /** Detect free variable `global` from Node.js. */
19075 var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
19076
19077 /** Detect free variable `self`. */
19078 var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
19079
19080 /** Used as a reference to the global object. */
19081 var root = freeGlobal || freeSelf || Function('return this')();
19082
19083 /** Detect free variable `exports`. */
19084 var freeExports = true && exports && !exports.nodeType && exports;
19085
19086 /** Detect free variable `module`. */
19087 var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
19088
19089 /** Detect the popular CommonJS extension `module.exports`. */
19090 var moduleExports = freeModule && freeModule.exports === freeExports;
19091
19092 /** Detect free variable `process` from Node.js. */
19093 var freeProcess = moduleExports && freeGlobal.process;
19094
19095 /** Used to access faster Node.js helpers. */
19096 var nodeUtil = (function() {
19097 try {
19098 // Use `util.types` for Node.js 10+.
19099 var types = freeModule && freeModule.require && freeModule.require('util').types;
19100
19101 if (types) {
19102 return types;
19103 }
19104
19105 // Legacy `process.binding('util')` for Node.js < 10.
19106 return freeProcess && freeProcess.binding && freeProcess.binding('util');
19107 } catch (e) {}
19108 }());
19109
19110 /* Node.js helper references. */
19111 var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,
19112 nodeIsDate = nodeUtil && nodeUtil.isDate,
19113 nodeIsMap = nodeUtil && nodeUtil.isMap,
19114 nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,
19115 nodeIsSet = nodeUtil && nodeUtil.isSet,
19116 nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
19117
19118 /*--------------------------------------------------------------------------*/
19119
19120 /**
19121 * A faster alternative to `Function#apply`, this function invokes `func`
19122 * with the `this` binding of `thisArg` and the arguments of `args`.
19123 *
19124 * @private
19125 * @param {Function} func The function to invoke.
19126 * @param {*} thisArg The `this` binding of `func`.
19127 * @param {Array} args The arguments to invoke `func` with.
19128 * @returns {*} Returns the result of `func`.
19129 */
19130 function apply(func, thisArg, args) {
19131 switch (args.length) {
19132 case 0: return func.call(thisArg);
19133 case 1: return func.call(thisArg, args[0]);
19134 case 2: return func.call(thisArg, args[0], args[1]);
19135 case 3: return func.call(thisArg, args[0], args[1], args[2]);
19136 }
19137 return func.apply(thisArg, args);
19138 }
19139
19140 /**
19141 * A specialized version of `baseAggregator` for arrays.
19142 *
19143 * @private
19144 * @param {Array} [array] The array to iterate over.
19145 * @param {Function} setter The function to set `accumulator` values.
19146 * @param {Function} iteratee The iteratee to transform keys.
19147 * @param {Object} accumulator The initial aggregated object.
19148 * @returns {Function} Returns `accumulator`.
19149 */
19150 function arrayAggregator(array, setter, iteratee, accumulator) {
19151 var index = -1,
19152 length = array == null ? 0 : array.length;
19153
19154 while (++index < length) {
19155 var value = array[index];
19156 setter(accumulator, value, iteratee(value), array);
19157 }
19158 return accumulator;
19159 }
19160
19161 /**
19162 * A specialized version of `_.forEach` for arrays without support for
19163 * iteratee shorthands.
19164 *
19165 * @private
19166 * @param {Array} [array] The array to iterate over.
19167 * @param {Function} iteratee The function invoked per iteration.
19168 * @returns {Array} Returns `array`.
19169 */
19170 function arrayEach(array, iteratee) {
19171 var index = -1,
19172 length = array == null ? 0 : array.length;
19173
19174 while (++index < length) {
19175 if (iteratee(array[index], index, array) === false) {
19176 break;
19177 }
19178 }
19179 return array;
19180 }
19181
19182 /**
19183 * A specialized version of `_.forEachRight` for arrays without support for
19184 * iteratee shorthands.
19185 *
19186 * @private
19187 * @param {Array} [array] The array to iterate over.
19188 * @param {Function} iteratee The function invoked per iteration.
19189 * @returns {Array} Returns `array`.
19190 */
19191 function arrayEachRight(array, iteratee) {
19192 var length = array == null ? 0 : array.length;
19193
19194 while (length--) {
19195 if (iteratee(array[length], length, array) === false) {
19196 break;
19197 }
19198 }
19199 return array;
19200 }
19201
19202 /**
19203 * A specialized version of `_.every` for arrays without support for
19204 * iteratee shorthands.
19205 *
19206 * @private
19207 * @param {Array} [array] The array to iterate over.
19208 * @param {Function} predicate The function invoked per iteration.
19209 * @returns {boolean} Returns `true` if all elements pass the predicate check,
19210 * else `false`.
19211 */
19212 function arrayEvery(array, predicate) {
19213 var index = -1,
19214 length = array == null ? 0 : array.length;
19215
19216 while (++index < length) {
19217 if (!predicate(array[index], index, array)) {
19218 return false;
19219 }
19220 }
19221 return true;
19222 }
19223
19224 /**
19225 * A specialized version of `_.filter` for arrays without support for
19226 * iteratee shorthands.
19227 *
19228 * @private
19229 * @param {Array} [array] The array to iterate over.
19230 * @param {Function} predicate The function invoked per iteration.
19231 * @returns {Array} Returns the new filtered array.
19232 */
19233 function arrayFilter(array, predicate) {
19234 var index = -1,
19235 length = array == null ? 0 : array.length,
19236 resIndex = 0,
19237 result = [];
19238
19239 while (++index < length) {
19240 var value = array[index];
19241 if (predicate(value, index, array)) {
19242 result[resIndex++] = value;
19243 }
19244 }
19245 return result;
19246 }
19247
19248 /**
19249 * A specialized version of `_.includes` for arrays without support for
19250 * specifying an index to search from.
19251 *
19252 * @private
19253 * @param {Array} [array] The array to inspect.
19254 * @param {*} target The value to search for.
19255 * @returns {boolean} Returns `true` if `target` is found, else `false`.
19256 */
19257 function arrayIncludes(array, value) {
19258 var length = array == null ? 0 : array.length;
19259 return !!length && baseIndexOf(array, value, 0) > -1;
19260 }
19261
19262 /**
19263 * This function is like `arrayIncludes` except that it accepts a comparator.
19264 *
19265 * @private
19266 * @param {Array} [array] The array to inspect.
19267 * @param {*} target The value to search for.
19268 * @param {Function} comparator The comparator invoked per element.
19269 * @returns {boolean} Returns `true` if `target` is found, else `false`.
19270 */
19271 function arrayIncludesWith(array, value, comparator) {
19272 var index = -1,
19273 length = array == null ? 0 : array.length;
19274
19275 while (++index < length) {
19276 if (comparator(value, array[index])) {
19277 return true;
19278 }
19279 }
19280 return false;
19281 }
19282
19283 /**
19284 * A specialized version of `_.map` for arrays without support for iteratee
19285 * shorthands.
19286 *
19287 * @private
19288 * @param {Array} [array] The array to iterate over.
19289 * @param {Function} iteratee The function invoked per iteration.
19290 * @returns {Array} Returns the new mapped array.
19291 */
19292 function arrayMap(array, iteratee) {
19293 var index = -1,
19294 length = array == null ? 0 : array.length,
19295 result = Array(length);
19296
19297 while (++index < length) {
19298 result[index] = iteratee(array[index], index, array);
19299 }
19300 return result;
19301 }
19302
19303 /**
19304 * Appends the elements of `values` to `array`.
19305 *
19306 * @private
19307 * @param {Array} array The array to modify.
19308 * @param {Array} values The values to append.
19309 * @returns {Array} Returns `array`.
19310 */
19311 function arrayPush(array, values) {
19312 var index = -1,
19313 length = values.length,
19314 offset = array.length;
19315
19316 while (++index < length) {
19317 array[offset + index] = values[index];
19318 }
19319 return array;
19320 }
19321
19322 /**
19323 * A specialized version of `_.reduce` for arrays without support for
19324 * iteratee shorthands.
19325 *
19326 * @private
19327 * @param {Array} [array] The array to iterate over.
19328 * @param {Function} iteratee The function invoked per iteration.
19329 * @param {*} [accumulator] The initial value.
19330 * @param {boolean} [initAccum] Specify using the first element of `array` as
19331 * the initial value.
19332 * @returns {*} Returns the accumulated value.
19333 */
19334 function arrayReduce(array, iteratee, accumulator, initAccum) {
19335 var index = -1,
19336 length = array == null ? 0 : array.length;
19337
19338 if (initAccum && length) {
19339 accumulator = array[++index];
19340 }
19341 while (++index < length) {
19342 accumulator = iteratee(accumulator, array[index], index, array);
19343 }
19344 return accumulator;
19345 }
19346
19347 /**
19348 * A specialized version of `_.reduceRight` for arrays without support for
19349 * iteratee shorthands.
19350 *
19351 * @private
19352 * @param {Array} [array] The array to iterate over.
19353 * @param {Function} iteratee The function invoked per iteration.
19354 * @param {*} [accumulator] The initial value.
19355 * @param {boolean} [initAccum] Specify using the last element of `array` as
19356 * the initial value.
19357 * @returns {*} Returns the accumulated value.
19358 */
19359 function arrayReduceRight(array, iteratee, accumulator, initAccum) {
19360 var length = array == null ? 0 : array.length;
19361 if (initAccum && length) {
19362 accumulator = array[--length];
19363 }
19364 while (length--) {
19365 accumulator = iteratee(accumulator, array[length], length, array);
19366 }
19367 return accumulator;
19368 }
19369
19370 /**
19371 * A specialized version of `_.some` for arrays without support for iteratee
19372 * shorthands.
19373 *
19374 * @private
19375 * @param {Array} [array] The array to iterate over.
19376 * @param {Function} predicate The function invoked per iteration.
19377 * @returns {boolean} Returns `true` if any element passes the predicate check,
19378 * else `false`.
19379 */
19380 function arraySome(array, predicate) {
19381 var index = -1,
19382 length = array == null ? 0 : array.length;
19383
19384 while (++index < length) {
19385 if (predicate(array[index], index, array)) {
19386 return true;
19387 }
19388 }
19389 return false;
19390 }
19391
19392 /**
19393 * Gets the size of an ASCII `string`.
19394 *
19395 * @private
19396 * @param {string} string The string inspect.
19397 * @returns {number} Returns the string size.
19398 */
19399 var asciiSize = baseProperty('length');
19400
19401 /**
19402 * Converts an ASCII `string` to an array.
19403 *
19404 * @private
19405 * @param {string} string The string to convert.
19406 * @returns {Array} Returns the converted array.
19407 */
19408 function asciiToArray(string) {
19409 return string.split('');
19410 }
19411
19412 /**
19413 * Splits an ASCII `string` into an array of its words.
19414 *
19415 * @private
19416 * @param {string} The string to inspect.
19417 * @returns {Array} Returns the words of `string`.
19418 */
19419 function asciiWords(string) {
19420 return string.match(reAsciiWord) || [];
19421 }
19422
19423 /**
19424 * The base implementation of methods like `_.findKey` and `_.findLastKey`,
19425 * without support for iteratee shorthands, which iterates over `collection`
19426 * using `eachFunc`.
19427 *
19428 * @private
19429 * @param {Array|Object} collection The collection to inspect.
19430 * @param {Function} predicate The function invoked per iteration.
19431 * @param {Function} eachFunc The function to iterate over `collection`.
19432 * @returns {*} Returns the found element or its key, else `undefined`.
19433 */
19434 function baseFindKey(collection, predicate, eachFunc) {
19435 var result;
19436 eachFunc(collection, function(value, key, collection) {
19437 if (predicate(value, key, collection)) {
19438 result = key;
19439 return false;
19440 }
19441 });
19442 return result;
19443 }
19444
19445 /**
19446 * The base implementation of `_.findIndex` and `_.findLastIndex` without
19447 * support for iteratee shorthands.
19448 *
19449 * @private
19450 * @param {Array} array The array to inspect.
19451 * @param {Function} predicate The function invoked per iteration.
19452 * @param {number} fromIndex The index to search from.
19453 * @param {boolean} [fromRight] Specify iterating from right to left.
19454 * @returns {number} Returns the index of the matched value, else `-1`.
19455 */
19456 function baseFindIndex(array, predicate, fromIndex, fromRight) {
19457 var length = array.length,
19458 index = fromIndex + (fromRight ? 1 : -1);
19459
19460 while ((fromRight ? index-- : ++index < length)) {
19461 if (predicate(array[index], index, array)) {
19462 return index;
19463 }
19464 }
19465 return -1;
19466 }
19467
19468 /**
19469 * The base implementation of `_.indexOf` without `fromIndex` bounds checks.
19470 *
19471 * @private
19472 * @param {Array} array The array to inspect.
19473 * @param {*} value The value to search for.
19474 * @param {number} fromIndex The index to search from.
19475 * @returns {number} Returns the index of the matched value, else `-1`.
19476 */
19477 function baseIndexOf(array, value, fromIndex) {
19478 return value === value
19479 ? strictIndexOf(array, value, fromIndex)
19480 : baseFindIndex(array, baseIsNaN, fromIndex);
19481 }
19482
19483 /**
19484 * This function is like `baseIndexOf` except that it accepts a comparator.
19485 *
19486 * @private
19487 * @param {Array} array The array to inspect.
19488 * @param {*} value The value to search for.
19489 * @param {number} fromIndex The index to search from.
19490 * @param {Function} comparator The comparator invoked per element.
19491 * @returns {number} Returns the index of the matched value, else `-1`.
19492 */
19493 function baseIndexOfWith(array, value, fromIndex, comparator) {
19494 var index = fromIndex - 1,
19495 length = array.length;
19496
19497 while (++index < length) {
19498 if (comparator(array[index], value)) {
19499 return index;
19500 }
19501 }
19502 return -1;
19503 }
19504
19505 /**
19506 * The base implementation of `_.isNaN` without support for number objects.
19507 *
19508 * @private
19509 * @param {*} value The value to check.
19510 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
19511 */
19512 function baseIsNaN(value) {
19513 return value !== value;
19514 }
19515
19516 /**
19517 * The base implementation of `_.mean` and `_.meanBy` without support for
19518 * iteratee shorthands.
19519 *
19520 * @private
19521 * @param {Array} array The array to iterate over.
19522 * @param {Function} iteratee The function invoked per iteration.
19523 * @returns {number} Returns the mean.
19524 */
19525 function baseMean(array, iteratee) {
19526 var length = array == null ? 0 : array.length;
19527 return length ? (baseSum(array, iteratee) / length) : NAN;
19528 }
19529
19530 /**
19531 * The base implementation of `_.property` without support for deep paths.
19532 *
19533 * @private
19534 * @param {string} key The key of the property to get.
19535 * @returns {Function} Returns the new accessor function.
19536 */
19537 function baseProperty(key) {
19538 return function(object) {
19539 return object == null ? undefined : object[key];
19540 };
19541 }
19542
19543 /**
19544 * The base implementation of `_.propertyOf` without support for deep paths.
19545 *
19546 * @private
19547 * @param {Object} object The object to query.
19548 * @returns {Function} Returns the new accessor function.
19549 */
19550 function basePropertyOf(object) {
19551 return function(key) {
19552 return object == null ? undefined : object[key];
19553 };
19554 }
19555
19556 /**
19557 * The base implementation of `_.reduce` and `_.reduceRight`, without support
19558 * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
19559 *
19560 * @private
19561 * @param {Array|Object} collection The collection to iterate over.
19562 * @param {Function} iteratee The function invoked per iteration.
19563 * @param {*} accumulator The initial value.
19564 * @param {boolean} initAccum Specify using the first or last element of
19565 * `collection` as the initial value.
19566 * @param {Function} eachFunc The function to iterate over `collection`.
19567 * @returns {*} Returns the accumulated value.
19568 */
19569 function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
19570 eachFunc(collection, function(value, index, collection) {
19571 accumulator = initAccum
19572 ? (initAccum = false, value)
19573 : iteratee(accumulator, value, index, collection);
19574 });
19575 return accumulator;
19576 }
19577
19578 /**
19579 * The base implementation of `_.sortBy` which uses `comparer` to define the
19580 * sort order of `array` and replaces criteria objects with their corresponding
19581 * values.
19582 *
19583 * @private
19584 * @param {Array} array The array to sort.
19585 * @param {Function} comparer The function to define sort order.
19586 * @returns {Array} Returns `array`.
19587 */
19588 function baseSortBy(array, comparer) {
19589 var length = array.length;
19590
19591 array.sort(comparer);
19592 while (length--) {
19593 array[length] = array[length].value;
19594 }
19595 return array;
19596 }
19597
19598 /**
19599 * The base implementation of `_.sum` and `_.sumBy` without support for
19600 * iteratee shorthands.
19601 *
19602 * @private
19603 * @param {Array} array The array to iterate over.
19604 * @param {Function} iteratee The function invoked per iteration.
19605 * @returns {number} Returns the sum.
19606 */
19607 function baseSum(array, iteratee) {
19608 var result,
19609 index = -1,
19610 length = array.length;
19611
19612 while (++index < length) {
19613 var current = iteratee(array[index]);
19614 if (current !== undefined) {
19615 result = result === undefined ? current : (result + current);
19616 }
19617 }
19618 return result;
19619 }
19620
19621 /**
19622 * The base implementation of `_.times` without support for iteratee shorthands
19623 * or max array length checks.
19624 *
19625 * @private
19626 * @param {number} n The number of times to invoke `iteratee`.
19627 * @param {Function} iteratee The function invoked per iteration.
19628 * @returns {Array} Returns the array of results.
19629 */
19630 function baseTimes(n, iteratee) {
19631 var index = -1,
19632 result = Array(n);
19633
19634 while (++index < n) {
19635 result[index] = iteratee(index);
19636 }
19637 return result;
19638 }
19639
19640 /**
19641 * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array
19642 * of key-value pairs for `object` corresponding to the property names of `props`.
19643 *
19644 * @private
19645 * @param {Object} object The object to query.
19646 * @param {Array} props The property names to get values for.
19647 * @returns {Object} Returns the key-value pairs.
19648 */
19649 function baseToPairs(object, props) {
19650 return arrayMap(props, function(key) {
19651 return [key, object[key]];
19652 });
19653 }
19654
19655 /**
19656 * The base implementation of `_.unary` without support for storing metadata.
19657 *
19658 * @private
19659 * @param {Function} func The function to cap arguments for.
19660 * @returns {Function} Returns the new capped function.
19661 */
19662 function baseUnary(func) {
19663 return function(value) {
19664 return func(value);
19665 };
19666 }
19667
19668 /**
19669 * The base implementation of `_.values` and `_.valuesIn` which creates an
19670 * array of `object` property values corresponding to the property names
19671 * of `props`.
19672 *
19673 * @private
19674 * @param {Object} object The object to query.
19675 * @param {Array} props The property names to get values for.
19676 * @returns {Object} Returns the array of property values.
19677 */
19678 function baseValues(object, props) {
19679 return arrayMap(props, function(key) {
19680 return object[key];
19681 });
19682 }
19683
19684 /**
19685 * Checks if a `cache` value for `key` exists.
19686 *
19687 * @private
19688 * @param {Object} cache The cache to query.
19689 * @param {string} key The key of the entry to check.
19690 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
19691 */
19692 function cacheHas(cache, key) {
19693 return cache.has(key);
19694 }
19695
19696 /**
19697 * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol
19698 * that is not found in the character symbols.
19699 *
19700 * @private
19701 * @param {Array} strSymbols The string symbols to inspect.
19702 * @param {Array} chrSymbols The character symbols to find.
19703 * @returns {number} Returns the index of the first unmatched string symbol.
19704 */
19705 function charsStartIndex(strSymbols, chrSymbols) {
19706 var index = -1,
19707 length = strSymbols.length;
19708
19709 while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
19710 return index;
19711 }
19712
19713 /**
19714 * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol
19715 * that is not found in the character symbols.
19716 *
19717 * @private
19718 * @param {Array} strSymbols The string symbols to inspect.
19719 * @param {Array} chrSymbols The character symbols to find.
19720 * @returns {number} Returns the index of the last unmatched string symbol.
19721 */
19722 function charsEndIndex(strSymbols, chrSymbols) {
19723 var index = strSymbols.length;
19724
19725 while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}
19726 return index;
19727 }
19728
19729 /**
19730 * Gets the number of `placeholder` occurrences in `array`.
19731 *
19732 * @private
19733 * @param {Array} array The array to inspect.
19734 * @param {*} placeholder The placeholder to search for.
19735 * @returns {number} Returns the placeholder count.
19736 */
19737 function countHolders(array, placeholder) {
19738 var length = array.length,
19739 result = 0;
19740
19741 while (length--) {
19742 if (array[length] === placeholder) {
19743 ++result;
19744 }
19745 }
19746 return result;
19747 }
19748
19749 /**
19750 * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A
19751 * letters to basic Latin letters.
19752 *
19753 * @private
19754 * @param {string} letter The matched letter to deburr.
19755 * @returns {string} Returns the deburred letter.
19756 */
19757 var deburrLetter = basePropertyOf(deburredLetters);
19758
19759 /**
19760 * Used by `_.escape` to convert characters to HTML entities.
19761 *
19762 * @private
19763 * @param {string} chr The matched character to escape.
19764 * @returns {string} Returns the escaped character.
19765 */
19766 var escapeHtmlChar = basePropertyOf(htmlEscapes);
19767
19768 /**
19769 * Used by `_.template` to escape characters for inclusion in compiled string literals.
19770 *
19771 * @private
19772 * @param {string} chr The matched character to escape.
19773 * @returns {string} Returns the escaped character.
19774 */
19775 function escapeStringChar(chr) {
19776 return '\\' + stringEscapes[chr];
19777 }
19778
19779 /**
19780 * Gets the value at `key` of `object`.
19781 *
19782 * @private
19783 * @param {Object} [object] The object to query.
19784 * @param {string} key The key of the property to get.
19785 * @returns {*} Returns the property value.
19786 */
19787 function getValue(object, key) {
19788 return object == null ? undefined : object[key];
19789 }
19790
19791 /**
19792 * Checks if `string` contains Unicode symbols.
19793 *
19794 * @private
19795 * @param {string} string The string to inspect.
19796 * @returns {boolean} Returns `true` if a symbol is found, else `false`.
19797 */
19798 function hasUnicode(string) {
19799 return reHasUnicode.test(string);
19800 }
19801
19802 /**
19803 * Checks if `string` contains a word composed of Unicode symbols.
19804 *
19805 * @private
19806 * @param {string} string The string to inspect.
19807 * @returns {boolean} Returns `true` if a word is found, else `false`.
19808 */
19809 function hasUnicodeWord(string) {
19810 return reHasUnicodeWord.test(string);
19811 }
19812
19813 /**
19814 * Converts `iterator` to an array.
19815 *
19816 * @private
19817 * @param {Object} iterator The iterator to convert.
19818 * @returns {Array} Returns the converted array.
19819 */
19820 function iteratorToArray(iterator) {
19821 var data,
19822 result = [];
19823
19824 while (!(data = iterator.next()).done) {
19825 result.push(data.value);
19826 }
19827 return result;
19828 }
19829
19830 /**
19831 * Converts `map` to its key-value pairs.
19832 *
19833 * @private
19834 * @param {Object} map The map to convert.
19835 * @returns {Array} Returns the key-value pairs.
19836 */
19837 function mapToArray(map) {
19838 var index = -1,
19839 result = Array(map.size);
19840
19841 map.forEach(function(value, key) {
19842 result[++index] = [key, value];
19843 });
19844 return result;
19845 }
19846
19847 /**
19848 * Creates a unary function that invokes `func` with its argument transformed.
19849 *
19850 * @private
19851 * @param {Function} func The function to wrap.
19852 * @param {Function} transform The argument transform.
19853 * @returns {Function} Returns the new function.
19854 */
19855 function overArg(func, transform) {
19856 return function(arg) {
19857 return func(transform(arg));
19858 };
19859 }
19860
19861 /**
19862 * Replaces all `placeholder` elements in `array` with an internal placeholder
19863 * and returns an array of their indexes.
19864 *
19865 * @private
19866 * @param {Array} array The array to modify.
19867 * @param {*} placeholder The placeholder to replace.
19868 * @returns {Array} Returns the new array of placeholder indexes.
19869 */
19870 function replaceHolders(array, placeholder) {
19871 var index = -1,
19872 length = array.length,
19873 resIndex = 0,
19874 result = [];
19875
19876 while (++index < length) {
19877 var value = array[index];
19878 if (value === placeholder || value === PLACEHOLDER) {
19879 array[index] = PLACEHOLDER;
19880 result[resIndex++] = index;
19881 }
19882 }
19883 return result;
19884 }
19885
19886 /**
19887 * Converts `set` to an array of its values.
19888 *
19889 * @private
19890 * @param {Object} set The set to convert.
19891 * @returns {Array} Returns the values.
19892 */
19893 function setToArray(set) {
19894 var index = -1,
19895 result = Array(set.size);
19896
19897 set.forEach(function(value) {
19898 result[++index] = value;
19899 });
19900 return result;
19901 }
19902
19903 /**
19904 * Converts `set` to its value-value pairs.
19905 *
19906 * @private
19907 * @param {Object} set The set to convert.
19908 * @returns {Array} Returns the value-value pairs.
19909 */
19910 function setToPairs(set) {
19911 var index = -1,
19912 result = Array(set.size);
19913
19914 set.forEach(function(value) {
19915 result[++index] = [value, value];
19916 });
19917 return result;
19918 }
19919
19920 /**
19921 * A specialized version of `_.indexOf` which performs strict equality
19922 * comparisons of values, i.e. `===`.
19923 *
19924 * @private
19925 * @param {Array} array The array to inspect.
19926 * @param {*} value The value to search for.
19927 * @param {number} fromIndex The index to search from.
19928 * @returns {number} Returns the index of the matched value, else `-1`.
19929 */
19930 function strictIndexOf(array, value, fromIndex) {
19931 var index = fromIndex - 1,
19932 length = array.length;
19933
19934 while (++index < length) {
19935 if (array[index] === value) {
19936 return index;
19937 }
19938 }
19939 return -1;
19940 }
19941
19942 /**
19943 * A specialized version of `_.lastIndexOf` which performs strict equality
19944 * comparisons of values, i.e. `===`.
19945 *
19946 * @private
19947 * @param {Array} array The array to inspect.
19948 * @param {*} value The value to search for.
19949 * @param {number} fromIndex The index to search from.
19950 * @returns {number} Returns the index of the matched value, else `-1`.
19951 */
19952 function strictLastIndexOf(array, value, fromIndex) {
19953 var index = fromIndex + 1;
19954 while (index--) {
19955 if (array[index] === value) {
19956 return index;
19957 }
19958 }
19959 return index;
19960 }
19961
19962 /**
19963 * Gets the number of symbols in `string`.
19964 *
19965 * @private
19966 * @param {string} string The string to inspect.
19967 * @returns {number} Returns the string size.
19968 */
19969 function stringSize(string) {
19970 return hasUnicode(string)
19971 ? unicodeSize(string)
19972 : asciiSize(string);
19973 }
19974
19975 /**
19976 * Converts `string` to an array.
19977 *
19978 * @private
19979 * @param {string} string The string to convert.
19980 * @returns {Array} Returns the converted array.
19981 */
19982 function stringToArray(string) {
19983 return hasUnicode(string)
19984 ? unicodeToArray(string)
19985 : asciiToArray(string);
19986 }
19987
19988 /**
19989 * Used by `_.unescape` to convert HTML entities to characters.
19990 *
19991 * @private
19992 * @param {string} chr The matched character to unescape.
19993 * @returns {string} Returns the unescaped character.
19994 */
19995 var unescapeHtmlChar = basePropertyOf(htmlUnescapes);
19996
19997 /**
19998 * Gets the size of a Unicode `string`.
19999 *
20000 * @private
20001 * @param {string} string The string inspect.
20002 * @returns {number} Returns the string size.
20003 */
20004 function unicodeSize(string) {
20005 var result = reUnicode.lastIndex = 0;
20006 while (reUnicode.test(string)) {
20007 ++result;
20008 }
20009 return result;
20010 }
20011
20012 /**
20013 * Converts a Unicode `string` to an array.
20014 *
20015 * @private
20016 * @param {string} string The string to convert.
20017 * @returns {Array} Returns the converted array.
20018 */
20019 function unicodeToArray(string) {
20020 return string.match(reUnicode) || [];
20021 }
20022
20023 /**
20024 * Splits a Unicode `string` into an array of its words.
20025 *
20026 * @private
20027 * @param {string} The string to inspect.
20028 * @returns {Array} Returns the words of `string`.
20029 */
20030 function unicodeWords(string) {
20031 return string.match(reUnicodeWord) || [];
20032 }
20033
20034 /*--------------------------------------------------------------------------*/
20035
20036 /**
20037 * Create a new pristine `lodash` function using the `context` object.
20038 *
20039 * @static
20040 * @memberOf _
20041 * @since 1.1.0
20042 * @category Util
20043 * @param {Object} [context=root] The context object.
20044 * @returns {Function} Returns a new `lodash` function.
20045 * @example
20046 *
20047 * _.mixin({ 'foo': _.constant('foo') });
20048 *
20049 * var lodash = _.runInContext();
20050 * lodash.mixin({ 'bar': lodash.constant('bar') });
20051 *
20052 * _.isFunction(_.foo);
20053 * // => true
20054 * _.isFunction(_.bar);
20055 * // => false
20056 *
20057 * lodash.isFunction(lodash.foo);
20058 * // => false
20059 * lodash.isFunction(lodash.bar);
20060 * // => true
20061 *
20062 * // Create a suped-up `defer` in Node.js.
20063 * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
20064 */
20065 var runInContext = (function runInContext(context) {
20066 context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));
20067
20068 /** Built-in constructor references. */
20069 var Array = context.Array,
20070 Date = context.Date,
20071 Error = context.Error,
20072 Function = context.Function,
20073 Math = context.Math,
20074 Object = context.Object,
20075 RegExp = context.RegExp,
20076 String = context.String,
20077 TypeError = context.TypeError;
20078
20079 /** Used for built-in method references. */
20080 var arrayProto = Array.prototype,
20081 funcProto = Function.prototype,
20082 objectProto = Object.prototype;
20083
20084 /** Used to detect overreaching core-js shims. */
20085 var coreJsData = context['__core-js_shared__'];
20086
20087 /** Used to resolve the decompiled source of functions. */
20088 var funcToString = funcProto.toString;
20089
20090 /** Used to check objects for own properties. */
20091 var hasOwnProperty = objectProto.hasOwnProperty;
20092
20093 /** Used to generate unique IDs. */
20094 var idCounter = 0;
20095
20096 /** Used to detect methods masquerading as native. */
20097 var maskSrcKey = (function() {
20098 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
20099 return uid ? ('Symbol(src)_1.' + uid) : '';
20100 }());
20101
20102 /**
20103 * Used to resolve the
20104 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
20105 * of values.
20106 */
20107 var nativeObjectToString = objectProto.toString;
20108
20109 /** Used to infer the `Object` constructor. */
20110 var objectCtorString = funcToString.call(Object);
20111
20112 /** Used to restore the original `_` reference in `_.noConflict`. */
20113 var oldDash = root._;
20114
20115 /** Used to detect if a method is native. */
20116 var reIsNative = RegExp('^' +
20117 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
20118 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
20119 );
20120
20121 /** Built-in value references. */
20122 var Buffer = moduleExports ? context.Buffer : undefined,
20123 Symbol = context.Symbol,
20124 Uint8Array = context.Uint8Array,
20125 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,
20126 getPrototype = overArg(Object.getPrototypeOf, Object),
20127 objectCreate = Object.create,
20128 propertyIsEnumerable = objectProto.propertyIsEnumerable,
20129 splice = arrayProto.splice,
20130 spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,
20131 symIterator = Symbol ? Symbol.iterator : undefined,
20132 symToStringTag = Symbol ? Symbol.toStringTag : undefined;
20133
20134 var defineProperty = (function() {
20135 try {
20136 var func = getNative(Object, 'defineProperty');
20137 func({}, '', {});
20138 return func;
20139 } catch (e) {}
20140 }());
20141
20142 /** Mocked built-ins. */
20143 var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,
20144 ctxNow = Date && Date.now !== root.Date.now && Date.now,
20145 ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;
20146
20147 /* Built-in method references for those with the same name as other `lodash` methods. */
20148 var nativeCeil = Math.ceil,
20149 nativeFloor = Math.floor,
20150 nativeGetSymbols = Object.getOwnPropertySymbols,
20151 nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
20152 nativeIsFinite = context.isFinite,
20153 nativeJoin = arrayProto.join,
20154 nativeKeys = overArg(Object.keys, Object),
20155 nativeMax = Math.max,
20156 nativeMin = Math.min,
20157 nativeNow = Date.now,
20158 nativeParseInt = context.parseInt,
20159 nativeRandom = Math.random,
20160 nativeReverse = arrayProto.reverse;
20161
20162 /* Built-in method references that are verified to be native. */
20163 var DataView = getNative(context, 'DataView'),
20164 Map = getNative(context, 'Map'),
20165 Promise = getNative(context, 'Promise'),
20166 Set = getNative(context, 'Set'),
20167 WeakMap = getNative(context, 'WeakMap'),
20168 nativeCreate = getNative(Object, 'create');
20169
20170 /** Used to store function metadata. */
20171 var metaMap = WeakMap && new WeakMap;
20172
20173 /** Used to lookup unminified function names. */
20174 var realNames = {};
20175
20176 /** Used to detect maps, sets, and weakmaps. */
20177 var dataViewCtorString = toSource(DataView),
20178 mapCtorString = toSource(Map),
20179 promiseCtorString = toSource(Promise),
20180 setCtorString = toSource(Set),
20181 weakMapCtorString = toSource(WeakMap);
20182
20183 /** Used to convert symbols to primitives and strings. */
20184 var symbolProto = Symbol ? Symbol.prototype : undefined,
20185 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,
20186 symbolToString = symbolProto ? symbolProto.toString : undefined;
20187
20188 /*------------------------------------------------------------------------*/
20189
20190 /**
20191 * Creates a `lodash` object which wraps `value` to enable implicit method
20192 * chain sequences. Methods that operate on and return arrays, collections,
20193 * and functions can be chained together. Methods that retrieve a single value
20194 * or may return a primitive value will automatically end the chain sequence
20195 * and return the unwrapped value. Otherwise, the value must be unwrapped
20196 * with `_#value`.
20197 *
20198 * Explicit chain sequences, which must be unwrapped with `_#value`, may be
20199 * enabled using `_.chain`.
20200 *
20201 * The execution of chained methods is lazy, that is, it's deferred until
20202 * `_#value` is implicitly or explicitly called.
20203 *
20204 * Lazy evaluation allows several methods to support shortcut fusion.
20205 * Shortcut fusion is an optimization to merge iteratee calls; this avoids
20206 * the creation of intermediate arrays and can greatly reduce the number of
20207 * iteratee executions. Sections of a chain sequence qualify for shortcut
20208 * fusion if the section is applied to an array and iteratees accept only
20209 * one argument. The heuristic for whether a section qualifies for shortcut
20210 * fusion is subject to change.
20211 *
20212 * Chaining is supported in custom builds as long as the `_#value` method is
20213 * directly or indirectly included in the build.
20214 *
20215 * In addition to lodash methods, wrappers have `Array` and `String` methods.
20216 *
20217 * The wrapper `Array` methods are:
20218 * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`
20219 *
20220 * The wrapper `String` methods are:
20221 * `replace` and `split`
20222 *
20223 * The wrapper methods that support shortcut fusion are:
20224 * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,
20225 * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,
20226 * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`
20227 *
20228 * The chainable wrapper methods are:
20229 * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,
20230 * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,
20231 * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,
20232 * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,
20233 * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,
20234 * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,
20235 * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,
20236 * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,
20237 * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,
20238 * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,
20239 * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,
20240 * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,
20241 * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,
20242 * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,
20243 * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,
20244 * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,
20245 * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,
20246 * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,
20247 * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,
20248 * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,
20249 * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,
20250 * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,
20251 * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,
20252 * `zipObject`, `zipObjectDeep`, and `zipWith`
20253 *
20254 * The wrapper methods that are **not** chainable by default are:
20255 * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,
20256 * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,
20257 * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,
20258 * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,
20259 * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,
20260 * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,
20261 * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,
20262 * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,
20263 * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,
20264 * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,
20265 * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,
20266 * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,
20267 * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,
20268 * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,
20269 * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,
20270 * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,
20271 * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
20272 * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
20273 * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
20274 * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,
20275 * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,
20276 * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,
20277 * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,
20278 * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,
20279 * `upperFirst`, `value`, and `words`
20280 *
20281 * @name _
20282 * @constructor
20283 * @category Seq
20284 * @param {*} value The value to wrap in a `lodash` instance.
20285 * @returns {Object} Returns the new `lodash` wrapper instance.
20286 * @example
20287 *
20288 * function square(n) {
20289 * return n * n;
20290 * }
20291 *
20292 * var wrapped = _([1, 2, 3]);
20293 *
20294 * // Returns an unwrapped value.
20295 * wrapped.reduce(_.add);
20296 * // => 6
20297 *
20298 * // Returns a wrapped value.
20299 * var squares = wrapped.map(square);
20300 *
20301 * _.isArray(squares);
20302 * // => false
20303 *
20304 * _.isArray(squares.value());
20305 * // => true
20306 */
20307 function lodash(value) {
20308 if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {
20309 if (value instanceof LodashWrapper) {
20310 return value;
20311 }
20312 if (hasOwnProperty.call(value, '__wrapped__')) {
20313 return wrapperClone(value);
20314 }
20315 }
20316 return new LodashWrapper(value);
20317 }
20318
20319 /**
20320 * The base implementation of `_.create` without support for assigning
20321 * properties to the created object.
20322 *
20323 * @private
20324 * @param {Object} proto The object to inherit from.
20325 * @returns {Object} Returns the new object.
20326 */
20327 var baseCreate = (function() {
20328 function object() {}
20329 return function(proto) {
20330 if (!isObject(proto)) {
20331 return {};
20332 }
20333 if (objectCreate) {
20334 return objectCreate(proto);
20335 }
20336 object.prototype = proto;
20337 var result = new object;
20338 object.prototype = undefined;
20339 return result;
20340 };
20341 }());
20342
20343 /**
20344 * The function whose prototype chain sequence wrappers inherit from.
20345 *
20346 * @private
20347 */
20348 function baseLodash() {
20349 // No operation performed.
20350 }
20351
20352 /**
20353 * The base constructor for creating `lodash` wrapper objects.
20354 *
20355 * @private
20356 * @param {*} value The value to wrap.
20357 * @param {boolean} [chainAll] Enable explicit method chain sequences.
20358 */
20359 function LodashWrapper(value, chainAll) {
20360 this.__wrapped__ = value;
20361 this.__actions__ = [];
20362 this.__chain__ = !!chainAll;
20363 this.__index__ = 0;
20364 this.__values__ = undefined;
20365 }
20366
20367 /**
20368 * By default, the template delimiters used by lodash are like those in
20369 * embedded Ruby (ERB) as well as ES2015 template strings. Change the
20370 * following template settings to use alternative delimiters.
20371 *
20372 * @static
20373 * @memberOf _
20374 * @type {Object}
20375 */
20376 lodash.templateSettings = {
20377
20378 /**
20379 * Used to detect `data` property values to be HTML-escaped.
20380 *
20381 * @memberOf _.templateSettings
20382 * @type {RegExp}
20383 */
20384 'escape': reEscape,
20385
20386 /**
20387 * Used to detect code to be evaluated.
20388 *
20389 * @memberOf _.templateSettings
20390 * @type {RegExp}
20391 */
20392 'evaluate': reEvaluate,
20393
20394 /**
20395 * Used to detect `data` property values to inject.
20396 *
20397 * @memberOf _.templateSettings
20398 * @type {RegExp}
20399 */
20400 'interpolate': reInterpolate,
20401
20402 /**
20403 * Used to reference the data object in the template text.
20404 *
20405 * @memberOf _.templateSettings
20406 * @type {string}
20407 */
20408 'variable': '',
20409
20410 /**
20411 * Used to import variables into the compiled template.
20412 *
20413 * @memberOf _.templateSettings
20414 * @type {Object}
20415 */
20416 'imports': {
20417
20418 /**
20419 * A reference to the `lodash` function.
20420 *
20421 * @memberOf _.templateSettings.imports
20422 * @type {Function}
20423 */
20424 '_': lodash
20425 }
20426 };
20427
20428 // Ensure wrappers are instances of `baseLodash`.
20429 lodash.prototype = baseLodash.prototype;
20430 lodash.prototype.constructor = lodash;
20431
20432 LodashWrapper.prototype = baseCreate(baseLodash.prototype);
20433 LodashWrapper.prototype.constructor = LodashWrapper;
20434
20435 /*------------------------------------------------------------------------*/
20436
20437 /**
20438 * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.
20439 *
20440 * @private
20441 * @constructor
20442 * @param {*} value The value to wrap.
20443 */
20444 function LazyWrapper(value) {
20445 this.__wrapped__ = value;
20446 this.__actions__ = [];
20447 this.__dir__ = 1;
20448 this.__filtered__ = false;
20449 this.__iteratees__ = [];
20450 this.__takeCount__ = MAX_ARRAY_LENGTH;
20451 this.__views__ = [];
20452 }
20453
20454 /**
20455 * Creates a clone of the lazy wrapper object.
20456 *
20457 * @private
20458 * @name clone
20459 * @memberOf LazyWrapper
20460 * @returns {Object} Returns the cloned `LazyWrapper` object.
20461 */
20462 function lazyClone() {
20463 var result = new LazyWrapper(this.__wrapped__);
20464 result.__actions__ = copyArray(this.__actions__);
20465 result.__dir__ = this.__dir__;
20466 result.__filtered__ = this.__filtered__;
20467 result.__iteratees__ = copyArray(this.__iteratees__);
20468 result.__takeCount__ = this.__takeCount__;
20469 result.__views__ = copyArray(this.__views__);
20470 return result;
20471 }
20472
20473 /**
20474 * Reverses the direction of lazy iteration.
20475 *
20476 * @private
20477 * @name reverse
20478 * @memberOf LazyWrapper
20479 * @returns {Object} Returns the new reversed `LazyWrapper` object.
20480 */
20481 function lazyReverse() {
20482 if (this.__filtered__) {
20483 var result = new LazyWrapper(this);
20484 result.__dir__ = -1;
20485 result.__filtered__ = true;
20486 } else {
20487 result = this.clone();
20488 result.__dir__ *= -1;
20489 }
20490 return result;
20491 }
20492
20493 /**
20494 * Extracts the unwrapped value from its lazy wrapper.
20495 *
20496 * @private
20497 * @name value
20498 * @memberOf LazyWrapper
20499 * @returns {*} Returns the unwrapped value.
20500 */
20501 function lazyValue() {
20502 var array = this.__wrapped__.value(),
20503 dir = this.__dir__,
20504 isArr = isArray(array),
20505 isRight = dir < 0,
20506 arrLength = isArr ? array.length : 0,
20507 view = getView(0, arrLength, this.__views__),
20508 start = view.start,
20509 end = view.end,
20510 length = end - start,
20511 index = isRight ? end : (start - 1),
20512 iteratees = this.__iteratees__,
20513 iterLength = iteratees.length,
20514 resIndex = 0,
20515 takeCount = nativeMin(length, this.__takeCount__);
20516
20517 if (!isArr || (!isRight && arrLength == length && takeCount == length)) {
20518 return baseWrapperValue(array, this.__actions__);
20519 }
20520 var result = [];
20521
20522 outer:
20523 while (length-- && resIndex < takeCount) {
20524 index += dir;
20525
20526 var iterIndex = -1,
20527 value = array[index];
20528
20529 while (++iterIndex < iterLength) {
20530 var data = iteratees[iterIndex],
20531 iteratee = data.iteratee,
20532 type = data.type,
20533 computed = iteratee(value);
20534
20535 if (type == LAZY_MAP_FLAG) {
20536 value = computed;
20537 } else if (!computed) {
20538 if (type == LAZY_FILTER_FLAG) {
20539 continue outer;
20540 } else {
20541 break outer;
20542 }
20543 }
20544 }
20545 result[resIndex++] = value;
20546 }
20547 return result;
20548 }
20549
20550 // Ensure `LazyWrapper` is an instance of `baseLodash`.
20551 LazyWrapper.prototype = baseCreate(baseLodash.prototype);
20552 LazyWrapper.prototype.constructor = LazyWrapper;
20553
20554 /*------------------------------------------------------------------------*/
20555
20556 /**
20557 * Creates a hash object.
20558 *
20559 * @private
20560 * @constructor
20561 * @param {Array} [entries] The key-value pairs to cache.
20562 */
20563 function Hash(entries) {
20564 var index = -1,
20565 length = entries == null ? 0 : entries.length;
20566
20567 this.clear();
20568 while (++index < length) {
20569 var entry = entries[index];
20570 this.set(entry[0], entry[1]);
20571 }
20572 }
20573
20574 /**
20575 * Removes all key-value entries from the hash.
20576 *
20577 * @private
20578 * @name clear
20579 * @memberOf Hash
20580 */
20581 function hashClear() {
20582 this.__data__ = nativeCreate ? nativeCreate(null) : {};
20583 this.size = 0;
20584 }
20585
20586 /**
20587 * Removes `key` and its value from the hash.
20588 *
20589 * @private
20590 * @name delete
20591 * @memberOf Hash
20592 * @param {Object} hash The hash to modify.
20593 * @param {string} key The key of the value to remove.
20594 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
20595 */
20596 function hashDelete(key) {
20597 var result = this.has(key) && delete this.__data__[key];
20598 this.size -= result ? 1 : 0;
20599 return result;
20600 }
20601
20602 /**
20603 * Gets the hash value for `key`.
20604 *
20605 * @private
20606 * @name get
20607 * @memberOf Hash
20608 * @param {string} key The key of the value to get.
20609 * @returns {*} Returns the entry value.
20610 */
20611 function hashGet(key) {
20612 var data = this.__data__;
20613 if (nativeCreate) {
20614 var result = data[key];
20615 return result === HASH_UNDEFINED ? undefined : result;
20616 }
20617 return hasOwnProperty.call(data, key) ? data[key] : undefined;
20618 }
20619
20620 /**
20621 * Checks if a hash value for `key` exists.
20622 *
20623 * @private
20624 * @name has
20625 * @memberOf Hash
20626 * @param {string} key The key of the entry to check.
20627 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
20628 */
20629 function hashHas(key) {
20630 var data = this.__data__;
20631 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
20632 }
20633
20634 /**
20635 * Sets the hash `key` to `value`.
20636 *
20637 * @private
20638 * @name set
20639 * @memberOf Hash
20640 * @param {string} key The key of the value to set.
20641 * @param {*} value The value to set.
20642 * @returns {Object} Returns the hash instance.
20643 */
20644 function hashSet(key, value) {
20645 var data = this.__data__;
20646 this.size += this.has(key) ? 0 : 1;
20647 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
20648 return this;
20649 }
20650
20651 // Add methods to `Hash`.
20652 Hash.prototype.clear = hashClear;
20653 Hash.prototype['delete'] = hashDelete;
20654 Hash.prototype.get = hashGet;
20655 Hash.prototype.has = hashHas;
20656 Hash.prototype.set = hashSet;
20657
20658 /*------------------------------------------------------------------------*/
20659
20660 /**
20661 * Creates an list cache object.
20662 *
20663 * @private
20664 * @constructor
20665 * @param {Array} [entries] The key-value pairs to cache.
20666 */
20667 function ListCache(entries) {
20668 var index = -1,
20669 length = entries == null ? 0 : entries.length;
20670
20671 this.clear();
20672 while (++index < length) {
20673 var entry = entries[index];
20674 this.set(entry[0], entry[1]);
20675 }
20676 }
20677
20678 /**
20679 * Removes all key-value entries from the list cache.
20680 *
20681 * @private
20682 * @name clear
20683 * @memberOf ListCache
20684 */
20685 function listCacheClear() {
20686 this.__data__ = [];
20687 this.size = 0;
20688 }
20689
20690 /**
20691 * Removes `key` and its value from the list cache.
20692 *
20693 * @private
20694 * @name delete
20695 * @memberOf ListCache
20696 * @param {string} key The key of the value to remove.
20697 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
20698 */
20699 function listCacheDelete(key) {
20700 var data = this.__data__,
20701 index = assocIndexOf(data, key);
20702
20703 if (index < 0) {
20704 return false;
20705 }
20706 var lastIndex = data.length - 1;
20707 if (index == lastIndex) {
20708 data.pop();
20709 } else {
20710 splice.call(data, index, 1);
20711 }
20712 --this.size;
20713 return true;
20714 }
20715
20716 /**
20717 * Gets the list cache value for `key`.
20718 *
20719 * @private
20720 * @name get
20721 * @memberOf ListCache
20722 * @param {string} key The key of the value to get.
20723 * @returns {*} Returns the entry value.
20724 */
20725 function listCacheGet(key) {
20726 var data = this.__data__,
20727 index = assocIndexOf(data, key);
20728
20729 return index < 0 ? undefined : data[index][1];
20730 }
20731
20732 /**
20733 * Checks if a list cache value for `key` exists.
20734 *
20735 * @private
20736 * @name has
20737 * @memberOf ListCache
20738 * @param {string} key The key of the entry to check.
20739 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
20740 */
20741 function listCacheHas(key) {
20742 return assocIndexOf(this.__data__, key) > -1;
20743 }
20744
20745 /**
20746 * Sets the list cache `key` to `value`.
20747 *
20748 * @private
20749 * @name set
20750 * @memberOf ListCache
20751 * @param {string} key The key of the value to set.
20752 * @param {*} value The value to set.
20753 * @returns {Object} Returns the list cache instance.
20754 */
20755 function listCacheSet(key, value) {
20756 var data = this.__data__,
20757 index = assocIndexOf(data, key);
20758
20759 if (index < 0) {
20760 ++this.size;
20761 data.push([key, value]);
20762 } else {
20763 data[index][1] = value;
20764 }
20765 return this;
20766 }
20767
20768 // Add methods to `ListCache`.
20769 ListCache.prototype.clear = listCacheClear;
20770 ListCache.prototype['delete'] = listCacheDelete;
20771 ListCache.prototype.get = listCacheGet;
20772 ListCache.prototype.has = listCacheHas;
20773 ListCache.prototype.set = listCacheSet;
20774
20775 /*------------------------------------------------------------------------*/
20776
20777 /**
20778 * Creates a map cache object to store key-value pairs.
20779 *
20780 * @private
20781 * @constructor
20782 * @param {Array} [entries] The key-value pairs to cache.
20783 */
20784 function MapCache(entries) {
20785 var index = -1,
20786 length = entries == null ? 0 : entries.length;
20787
20788 this.clear();
20789 while (++index < length) {
20790 var entry = entries[index];
20791 this.set(entry[0], entry[1]);
20792 }
20793 }
20794
20795 /**
20796 * Removes all key-value entries from the map.
20797 *
20798 * @private
20799 * @name clear
20800 * @memberOf MapCache
20801 */
20802 function mapCacheClear() {
20803 this.size = 0;
20804 this.__data__ = {
20805 'hash': new Hash,
20806 'map': new (Map || ListCache),
20807 'string': new Hash
20808 };
20809 }
20810
20811 /**
20812 * Removes `key` and its value from the map.
20813 *
20814 * @private
20815 * @name delete
20816 * @memberOf MapCache
20817 * @param {string} key The key of the value to remove.
20818 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
20819 */
20820 function mapCacheDelete(key) {
20821 var result = getMapData(this, key)['delete'](key);
20822 this.size -= result ? 1 : 0;
20823 return result;
20824 }
20825
20826 /**
20827 * Gets the map value for `key`.
20828 *
20829 * @private
20830 * @name get
20831 * @memberOf MapCache
20832 * @param {string} key The key of the value to get.
20833 * @returns {*} Returns the entry value.
20834 */
20835 function mapCacheGet(key) {
20836 return getMapData(this, key).get(key);
20837 }
20838
20839 /**
20840 * Checks if a map value for `key` exists.
20841 *
20842 * @private
20843 * @name has
20844 * @memberOf MapCache
20845 * @param {string} key The key of the entry to check.
20846 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
20847 */
20848 function mapCacheHas(key) {
20849 return getMapData(this, key).has(key);
20850 }
20851
20852 /**
20853 * Sets the map `key` to `value`.
20854 *
20855 * @private
20856 * @name set
20857 * @memberOf MapCache
20858 * @param {string} key The key of the value to set.
20859 * @param {*} value The value to set.
20860 * @returns {Object} Returns the map cache instance.
20861 */
20862 function mapCacheSet(key, value) {
20863 var data = getMapData(this, key),
20864 size = data.size;
20865
20866 data.set(key, value);
20867 this.size += data.size == size ? 0 : 1;
20868 return this;
20869 }
20870
20871 // Add methods to `MapCache`.
20872 MapCache.prototype.clear = mapCacheClear;
20873 MapCache.prototype['delete'] = mapCacheDelete;
20874 MapCache.prototype.get = mapCacheGet;
20875 MapCache.prototype.has = mapCacheHas;
20876 MapCache.prototype.set = mapCacheSet;
20877
20878 /*------------------------------------------------------------------------*/
20879
20880 /**
20881 *
20882 * Creates an array cache object to store unique values.
20883 *
20884 * @private
20885 * @constructor
20886 * @param {Array} [values] The values to cache.
20887 */
20888 function SetCache(values) {
20889 var index = -1,
20890 length = values == null ? 0 : values.length;
20891
20892 this.__data__ = new MapCache;
20893 while (++index < length) {
20894 this.add(values[index]);
20895 }
20896 }
20897
20898 /**
20899 * Adds `value` to the array cache.
20900 *
20901 * @private
20902 * @name add
20903 * @memberOf SetCache
20904 * @alias push
20905 * @param {*} value The value to cache.
20906 * @returns {Object} Returns the cache instance.
20907 */
20908 function setCacheAdd(value) {
20909 this.__data__.set(value, HASH_UNDEFINED);
20910 return this;
20911 }
20912
20913 /**
20914 * Checks if `value` is in the array cache.
20915 *
20916 * @private
20917 * @name has
20918 * @memberOf SetCache
20919 * @param {*} value The value to search for.
20920 * @returns {number} Returns `true` if `value` is found, else `false`.
20921 */
20922 function setCacheHas(value) {
20923 return this.__data__.has(value);
20924 }
20925
20926 // Add methods to `SetCache`.
20927 SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
20928 SetCache.prototype.has = setCacheHas;
20929
20930 /*------------------------------------------------------------------------*/
20931
20932 /**
20933 * Creates a stack cache object to store key-value pairs.
20934 *
20935 * @private
20936 * @constructor
20937 * @param {Array} [entries] The key-value pairs to cache.
20938 */
20939 function Stack(entries) {
20940 var data = this.__data__ = new ListCache(entries);
20941 this.size = data.size;
20942 }
20943
20944 /**
20945 * Removes all key-value entries from the stack.
20946 *
20947 * @private
20948 * @name clear
20949 * @memberOf Stack
20950 */
20951 function stackClear() {
20952 this.__data__ = new ListCache;
20953 this.size = 0;
20954 }
20955
20956 /**
20957 * Removes `key` and its value from the stack.
20958 *
20959 * @private
20960 * @name delete
20961 * @memberOf Stack
20962 * @param {string} key The key of the value to remove.
20963 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
20964 */
20965 function stackDelete(key) {
20966 var data = this.__data__,
20967 result = data['delete'](key);
20968
20969 this.size = data.size;
20970 return result;
20971 }
20972
20973 /**
20974 * Gets the stack value for `key`.
20975 *
20976 * @private
20977 * @name get
20978 * @memberOf Stack
20979 * @param {string} key The key of the value to get.
20980 * @returns {*} Returns the entry value.
20981 */
20982 function stackGet(key) {
20983 return this.__data__.get(key);
20984 }
20985
20986 /**
20987 * Checks if a stack value for `key` exists.
20988 *
20989 * @private
20990 * @name has
20991 * @memberOf Stack
20992 * @param {string} key The key of the entry to check.
20993 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
20994 */
20995 function stackHas(key) {
20996 return this.__data__.has(key);
20997 }
20998
20999 /**
21000 * Sets the stack `key` to `value`.
21001 *
21002 * @private
21003 * @name set
21004 * @memberOf Stack
21005 * @param {string} key The key of the value to set.
21006 * @param {*} value The value to set.
21007 * @returns {Object} Returns the stack cache instance.
21008 */
21009 function stackSet(key, value) {
21010 var data = this.__data__;
21011 if (data instanceof ListCache) {
21012 var pairs = data.__data__;
21013 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
21014 pairs.push([key, value]);
21015 this.size = ++data.size;
21016 return this;
21017 }
21018 data = this.__data__ = new MapCache(pairs);
21019 }
21020 data.set(key, value);
21021 this.size = data.size;
21022 return this;
21023 }
21024
21025 // Add methods to `Stack`.
21026 Stack.prototype.clear = stackClear;
21027 Stack.prototype['delete'] = stackDelete;
21028 Stack.prototype.get = stackGet;
21029 Stack.prototype.has = stackHas;
21030 Stack.prototype.set = stackSet;
21031
21032 /*------------------------------------------------------------------------*/
21033
21034 /**
21035 * Creates an array of the enumerable property names of the array-like `value`.
21036 *
21037 * @private
21038 * @param {*} value The value to query.
21039 * @param {boolean} inherited Specify returning inherited property names.
21040 * @returns {Array} Returns the array of property names.
21041 */
21042 function arrayLikeKeys(value, inherited) {
21043 var isArr = isArray(value),
21044 isArg = !isArr && isArguments(value),
21045 isBuff = !isArr && !isArg && isBuffer(value),
21046 isType = !isArr && !isArg && !isBuff && isTypedArray(value),
21047 skipIndexes = isArr || isArg || isBuff || isType,
21048 result = skipIndexes ? baseTimes(value.length, String) : [],
21049 length = result.length;
21050
21051 for (var key in value) {
21052 if ((inherited || hasOwnProperty.call(value, key)) &&
21053 !(skipIndexes && (
21054 // Safari 9 has enumerable `arguments.length` in strict mode.
21055 key == 'length' ||
21056 // Node.js 0.10 has enumerable non-index properties on buffers.
21057 (isBuff && (key == 'offset' || key == 'parent')) ||
21058 // PhantomJS 2 has enumerable non-index properties on typed arrays.
21059 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
21060 // Skip index properties.
21061 isIndex(key, length)
21062 ))) {
21063 result.push(key);
21064 }
21065 }
21066 return result;
21067 }
21068
21069 /**
21070 * A specialized version of `_.sample` for arrays.
21071 *
21072 * @private
21073 * @param {Array} array The array to sample.
21074 * @returns {*} Returns the random element.
21075 */
21076 function arraySample(array) {
21077 var length = array.length;
21078 return length ? array[baseRandom(0, length - 1)] : undefined;
21079 }
21080
21081 /**
21082 * A specialized version of `_.sampleSize` for arrays.
21083 *
21084 * @private
21085 * @param {Array} array The array to sample.
21086 * @param {number} n The number of elements to sample.
21087 * @returns {Array} Returns the random elements.
21088 */
21089 function arraySampleSize(array, n) {
21090 return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));
21091 }
21092
21093 /**
21094 * A specialized version of `_.shuffle` for arrays.
21095 *
21096 * @private
21097 * @param {Array} array The array to shuffle.
21098 * @returns {Array} Returns the new shuffled array.
21099 */
21100 function arrayShuffle(array) {
21101 return shuffleSelf(copyArray(array));
21102 }
21103
21104 /**
21105 * This function is like `assignValue` except that it doesn't assign
21106 * `undefined` values.
21107 *
21108 * @private
21109 * @param {Object} object The object to modify.
21110 * @param {string} key The key of the property to assign.
21111 * @param {*} value The value to assign.
21112 */
21113 function assignMergeValue(object, key, value) {
21114 if ((value !== undefined && !eq(object[key], value)) ||
21115 (value === undefined && !(key in object))) {
21116 baseAssignValue(object, key, value);
21117 }
21118 }
21119
21120 /**
21121 * Assigns `value` to `key` of `object` if the existing value is not equivalent
21122 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
21123 * for equality comparisons.
21124 *
21125 * @private
21126 * @param {Object} object The object to modify.
21127 * @param {string} key The key of the property to assign.
21128 * @param {*} value The value to assign.
21129 */
21130 function assignValue(object, key, value) {
21131 var objValue = object[key];
21132 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
21133 (value === undefined && !(key in object))) {
21134 baseAssignValue(object, key, value);
21135 }
21136 }
21137
21138 /**
21139 * Gets the index at which the `key` is found in `array` of key-value pairs.
21140 *
21141 * @private
21142 * @param {Array} array The array to inspect.
21143 * @param {*} key The key to search for.
21144 * @returns {number} Returns the index of the matched value, else `-1`.
21145 */
21146 function assocIndexOf(array, key) {
21147 var length = array.length;
21148 while (length--) {
21149 if (eq(array[length][0], key)) {
21150 return length;
21151 }
21152 }
21153 return -1;
21154 }
21155
21156 /**
21157 * Aggregates elements of `collection` on `accumulator` with keys transformed
21158 * by `iteratee` and values set by `setter`.
21159 *
21160 * @private
21161 * @param {Array|Object} collection The collection to iterate over.
21162 * @param {Function} setter The function to set `accumulator` values.
21163 * @param {Function} iteratee The iteratee to transform keys.
21164 * @param {Object} accumulator The initial aggregated object.
21165 * @returns {Function} Returns `accumulator`.
21166 */
21167 function baseAggregator(collection, setter, iteratee, accumulator) {
21168 baseEach(collection, function(value, key, collection) {
21169 setter(accumulator, value, iteratee(value), collection);
21170 });
21171 return accumulator;
21172 }
21173
21174 /**
21175 * The base implementation of `_.assign` without support for multiple sources
21176 * or `customizer` functions.
21177 *
21178 * @private
21179 * @param {Object} object The destination object.
21180 * @param {Object} source The source object.
21181 * @returns {Object} Returns `object`.
21182 */
21183 function baseAssign(object, source) {
21184 return object && copyObject(source, keys(source), object);
21185 }
21186
21187 /**
21188 * The base implementation of `_.assignIn` without support for multiple sources
21189 * or `customizer` functions.
21190 *
21191 * @private
21192 * @param {Object} object The destination object.
21193 * @param {Object} source The source object.
21194 * @returns {Object} Returns `object`.
21195 */
21196 function baseAssignIn(object, source) {
21197 return object && copyObject(source, keysIn(source), object);
21198 }
21199
21200 /**
21201 * The base implementation of `assignValue` and `assignMergeValue` without
21202 * value checks.
21203 *
21204 * @private
21205 * @param {Object} object The object to modify.
21206 * @param {string} key The key of the property to assign.
21207 * @param {*} value The value to assign.
21208 */
21209 function baseAssignValue(object, key, value) {
21210 if (key == '__proto__' && defineProperty) {
21211 defineProperty(object, key, {
21212 'configurable': true,
21213 'enumerable': true,
21214 'value': value,
21215 'writable': true
21216 });
21217 } else {
21218 object[key] = value;
21219 }
21220 }
21221
21222 /**
21223 * The base implementation of `_.at` without support for individual paths.
21224 *
21225 * @private
21226 * @param {Object} object The object to iterate over.
21227 * @param {string[]} paths The property paths to pick.
21228 * @returns {Array} Returns the picked elements.
21229 */
21230 function baseAt(object, paths) {
21231 var index = -1,
21232 length = paths.length,
21233 result = Array(length),
21234 skip = object == null;
21235
21236 while (++index < length) {
21237 result[index] = skip ? undefined : get(object, paths[index]);
21238 }
21239 return result;
21240 }
21241
21242 /**
21243 * The base implementation of `_.clamp` which doesn't coerce arguments.
21244 *
21245 * @private
21246 * @param {number} number The number to clamp.
21247 * @param {number} [lower] The lower bound.
21248 * @param {number} upper The upper bound.
21249 * @returns {number} Returns the clamped number.
21250 */
21251 function baseClamp(number, lower, upper) {
21252 if (number === number) {
21253 if (upper !== undefined) {
21254 number = number <= upper ? number : upper;
21255 }
21256 if (lower !== undefined) {
21257 number = number >= lower ? number : lower;
21258 }
21259 }
21260 return number;
21261 }
21262
21263 /**
21264 * The base implementation of `_.clone` and `_.cloneDeep` which tracks
21265 * traversed objects.
21266 *
21267 * @private
21268 * @param {*} value The value to clone.
21269 * @param {boolean} bitmask The bitmask flags.
21270 * 1 - Deep clone
21271 * 2 - Flatten inherited properties
21272 * 4 - Clone symbols
21273 * @param {Function} [customizer] The function to customize cloning.
21274 * @param {string} [key] The key of `value`.
21275 * @param {Object} [object] The parent object of `value`.
21276 * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
21277 * @returns {*} Returns the cloned value.
21278 */
21279 function baseClone(value, bitmask, customizer, key, object, stack) {
21280 var result,
21281 isDeep = bitmask & CLONE_DEEP_FLAG,
21282 isFlat = bitmask & CLONE_FLAT_FLAG,
21283 isFull = bitmask & CLONE_SYMBOLS_FLAG;
21284
21285 if (customizer) {
21286 result = object ? customizer(value, key, object, stack) : customizer(value);
21287 }
21288 if (result !== undefined) {
21289 return result;
21290 }
21291 if (!isObject(value)) {
21292 return value;
21293 }
21294 var isArr = isArray(value);
21295 if (isArr) {
21296 result = initCloneArray(value);
21297 if (!isDeep) {
21298 return copyArray(value, result);
21299 }
21300 } else {
21301 var tag = getTag(value),
21302 isFunc = tag == funcTag || tag == genTag;
21303
21304 if (isBuffer(value)) {
21305 return cloneBuffer(value, isDeep);
21306 }
21307 if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
21308 result = (isFlat || isFunc) ? {} : initCloneObject(value);
21309 if (!isDeep) {
21310 return isFlat
21311 ? copySymbolsIn(value, baseAssignIn(result, value))
21312 : copySymbols(value, baseAssign(result, value));
21313 }
21314 } else {
21315 if (!cloneableTags[tag]) {
21316 return object ? value : {};
21317 }
21318 result = initCloneByTag(value, tag, isDeep);
21319 }
21320 }
21321 // Check for circular references and return its corresponding clone.
21322 stack || (stack = new Stack);
21323 var stacked = stack.get(value);
21324 if (stacked) {
21325 return stacked;
21326 }
21327 stack.set(value, result);
21328
21329 if (isSet(value)) {
21330 value.forEach(function(subValue) {
21331 result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
21332 });
21333
21334 return result;
21335 }
21336
21337 if (isMap(value)) {
21338 value.forEach(function(subValue, key) {
21339 result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));
21340 });
21341
21342 return result;
21343 }
21344
21345 var keysFunc = isFull
21346 ? (isFlat ? getAllKeysIn : getAllKeys)
21347 : (isFlat ? keysIn : keys);
21348
21349 var props = isArr ? undefined : keysFunc(value);
21350 arrayEach(props || value, function(subValue, key) {
21351 if (props) {
21352 key = subValue;
21353 subValue = value[key];
21354 }
21355 // Recursively populate clone (susceptible to call stack limits).
21356 assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));
21357 });
21358 return result;
21359 }
21360
21361 /**
21362 * The base implementation of `_.conforms` which doesn't clone `source`.
21363 *
21364 * @private
21365 * @param {Object} source The object of property predicates to conform to.
21366 * @returns {Function} Returns the new spec function.
21367 */
21368 function baseConforms(source) {
21369 var props = keys(source);
21370 return function(object) {
21371 return baseConformsTo(object, source, props);
21372 };
21373 }
21374
21375 /**
21376 * The base implementation of `_.conformsTo` which accepts `props` to check.
21377 *
21378 * @private
21379 * @param {Object} object The object to inspect.
21380 * @param {Object} source The object of property predicates to conform to.
21381 * @returns {boolean} Returns `true` if `object` conforms, else `false`.
21382 */
21383 function baseConformsTo(object, source, props) {
21384 var length = props.length;
21385 if (object == null) {
21386 return !length;
21387 }
21388 object = Object(object);
21389 while (length--) {
21390 var key = props[length],
21391 predicate = source[key],
21392 value = object[key];
21393
21394 if ((value === undefined && !(key in object)) || !predicate(value)) {
21395 return false;
21396 }
21397 }
21398 return true;
21399 }
21400
21401 /**
21402 * The base implementation of `_.delay` and `_.defer` which accepts `args`
21403 * to provide to `func`.
21404 *
21405 * @private
21406 * @param {Function} func The function to delay.
21407 * @param {number} wait The number of milliseconds to delay invocation.
21408 * @param {Array} args The arguments to provide to `func`.
21409 * @returns {number|Object} Returns the timer id or timeout object.
21410 */
21411 function baseDelay(func, wait, args) {
21412 if (typeof func != 'function') {
21413 throw new TypeError(FUNC_ERROR_TEXT);
21414 }
21415 return setTimeout(function() { func.apply(undefined, args); }, wait);
21416 }
21417
21418 /**
21419 * The base implementation of methods like `_.difference` without support
21420 * for excluding multiple arrays or iteratee shorthands.
21421 *
21422 * @private
21423 * @param {Array} array The array to inspect.
21424 * @param {Array} values The values to exclude.
21425 * @param {Function} [iteratee] The iteratee invoked per element.
21426 * @param {Function} [comparator] The comparator invoked per element.
21427 * @returns {Array} Returns the new array of filtered values.
21428 */
21429 function baseDifference(array, values, iteratee, comparator) {
21430 var index = -1,
21431 includes = arrayIncludes,
21432 isCommon = true,
21433 length = array.length,
21434 result = [],
21435 valuesLength = values.length;
21436
21437 if (!length) {
21438 return result;
21439 }
21440 if (iteratee) {
21441 values = arrayMap(values, baseUnary(iteratee));
21442 }
21443 if (comparator) {
21444 includes = arrayIncludesWith;
21445 isCommon = false;
21446 }
21447 else if (values.length >= LARGE_ARRAY_SIZE) {
21448 includes = cacheHas;
21449 isCommon = false;
21450 values = new SetCache(values);
21451 }
21452 outer:
21453 while (++index < length) {
21454 var value = array[index],
21455 computed = iteratee == null ? value : iteratee(value);
21456
21457 value = (comparator || value !== 0) ? value : 0;
21458 if (isCommon && computed === computed) {
21459 var valuesIndex = valuesLength;
21460 while (valuesIndex--) {
21461 if (values[valuesIndex] === computed) {
21462 continue outer;
21463 }
21464 }
21465 result.push(value);
21466 }
21467 else if (!includes(values, computed, comparator)) {
21468 result.push(value);
21469 }
21470 }
21471 return result;
21472 }
21473
21474 /**
21475 * The base implementation of `_.forEach` without support for iteratee shorthands.
21476 *
21477 * @private
21478 * @param {Array|Object} collection The collection to iterate over.
21479 * @param {Function} iteratee The function invoked per iteration.
21480 * @returns {Array|Object} Returns `collection`.
21481 */
21482 var baseEach = createBaseEach(baseForOwn);
21483
21484 /**
21485 * The base implementation of `_.forEachRight` without support for iteratee shorthands.
21486 *
21487 * @private
21488 * @param {Array|Object} collection The collection to iterate over.
21489 * @param {Function} iteratee The function invoked per iteration.
21490 * @returns {Array|Object} Returns `collection`.
21491 */
21492 var baseEachRight = createBaseEach(baseForOwnRight, true);
21493
21494 /**
21495 * The base implementation of `_.every` without support for iteratee shorthands.
21496 *
21497 * @private
21498 * @param {Array|Object} collection The collection to iterate over.
21499 * @param {Function} predicate The function invoked per iteration.
21500 * @returns {boolean} Returns `true` if all elements pass the predicate check,
21501 * else `false`
21502 */
21503 function baseEvery(collection, predicate) {
21504 var result = true;
21505 baseEach(collection, function(value, index, collection) {
21506 result = !!predicate(value, index, collection);
21507 return result;
21508 });
21509 return result;
21510 }
21511
21512 /**
21513 * The base implementation of methods like `_.max` and `_.min` which accepts a
21514 * `comparator` to determine the extremum value.
21515 *
21516 * @private
21517 * @param {Array} array The array to iterate over.
21518 * @param {Function} iteratee The iteratee invoked per iteration.
21519 * @param {Function} comparator The comparator used to compare values.
21520 * @returns {*} Returns the extremum value.
21521 */
21522 function baseExtremum(array, iteratee, comparator) {
21523 var index = -1,
21524 length = array.length;
21525
21526 while (++index < length) {
21527 var value = array[index],
21528 current = iteratee(value);
21529
21530 if (current != null && (computed === undefined
21531 ? (current === current && !isSymbol(current))
21532 : comparator(current, computed)
21533 )) {
21534 var computed = current,
21535 result = value;
21536 }
21537 }
21538 return result;
21539 }
21540
21541 /**
21542 * The base implementation of `_.fill` without an iteratee call guard.
21543 *
21544 * @private
21545 * @param {Array} array The array to fill.
21546 * @param {*} value The value to fill `array` with.
21547 * @param {number} [start=0] The start position.
21548 * @param {number} [end=array.length] The end position.
21549 * @returns {Array} Returns `array`.
21550 */
21551 function baseFill(array, value, start, end) {
21552 var length = array.length;
21553
21554 start = toInteger(start);
21555 if (start < 0) {
21556 start = -start > length ? 0 : (length + start);
21557 }
21558 end = (end === undefined || end > length) ? length : toInteger(end);
21559 if (end < 0) {
21560 end += length;
21561 }
21562 end = start > end ? 0 : toLength(end);
21563 while (start < end) {
21564 array[start++] = value;
21565 }
21566 return array;
21567 }
21568
21569 /**
21570 * The base implementation of `_.filter` without support for iteratee shorthands.
21571 *
21572 * @private
21573 * @param {Array|Object} collection The collection to iterate over.
21574 * @param {Function} predicate The function invoked per iteration.
21575 * @returns {Array} Returns the new filtered array.
21576 */
21577 function baseFilter(collection, predicate) {
21578 var result = [];
21579 baseEach(collection, function(value, index, collection) {
21580 if (predicate(value, index, collection)) {
21581 result.push(value);
21582 }
21583 });
21584 return result;
21585 }
21586
21587 /**
21588 * The base implementation of `_.flatten` with support for restricting flattening.
21589 *
21590 * @private
21591 * @param {Array} array The array to flatten.
21592 * @param {number} depth The maximum recursion depth.
21593 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.
21594 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.
21595 * @param {Array} [result=[]] The initial result value.
21596 * @returns {Array} Returns the new flattened array.
21597 */
21598 function baseFlatten(array, depth, predicate, isStrict, result) {
21599 var index = -1,
21600 length = array.length;
21601
21602 predicate || (predicate = isFlattenable);
21603 result || (result = []);
21604
21605 while (++index < length) {
21606 var value = array[index];
21607 if (depth > 0 && predicate(value)) {
21608 if (depth > 1) {
21609 // Recursively flatten arrays (susceptible to call stack limits).
21610 baseFlatten(value, depth - 1, predicate, isStrict, result);
21611 } else {
21612 arrayPush(result, value);
21613 }
21614 } else if (!isStrict) {
21615 result[result.length] = value;
21616 }
21617 }
21618 return result;
21619 }
21620
21621 /**
21622 * The base implementation of `baseForOwn` which iterates over `object`
21623 * properties returned by `keysFunc` and invokes `iteratee` for each property.
21624 * Iteratee functions may exit iteration early by explicitly returning `false`.
21625 *
21626 * @private
21627 * @param {Object} object The object to iterate over.
21628 * @param {Function} iteratee The function invoked per iteration.
21629 * @param {Function} keysFunc The function to get the keys of `object`.
21630 * @returns {Object} Returns `object`.
21631 */
21632 var baseFor = createBaseFor();
21633
21634 /**
21635 * This function is like `baseFor` except that it iterates over properties
21636 * in the opposite order.
21637 *
21638 * @private
21639 * @param {Object} object The object to iterate over.
21640 * @param {Function} iteratee The function invoked per iteration.
21641 * @param {Function} keysFunc The function to get the keys of `object`.
21642 * @returns {Object} Returns `object`.
21643 */
21644 var baseForRight = createBaseFor(true);
21645
21646 /**
21647 * The base implementation of `_.forOwn` without support for iteratee shorthands.
21648 *
21649 * @private
21650 * @param {Object} object The object to iterate over.
21651 * @param {Function} iteratee The function invoked per iteration.
21652 * @returns {Object} Returns `object`.
21653 */
21654 function baseForOwn(object, iteratee) {
21655 return object && baseFor(object, iteratee, keys);
21656 }
21657
21658 /**
21659 * The base implementation of `_.forOwnRight` without support for iteratee shorthands.
21660 *
21661 * @private
21662 * @param {Object} object The object to iterate over.
21663 * @param {Function} iteratee The function invoked per iteration.
21664 * @returns {Object} Returns `object`.
21665 */
21666 function baseForOwnRight(object, iteratee) {
21667 return object && baseForRight(object, iteratee, keys);
21668 }
21669
21670 /**
21671 * The base implementation of `_.functions` which creates an array of
21672 * `object` function property names filtered from `props`.
21673 *
21674 * @private
21675 * @param {Object} object The object to inspect.
21676 * @param {Array} props The property names to filter.
21677 * @returns {Array} Returns the function names.
21678 */
21679 function baseFunctions(object, props) {
21680 return arrayFilter(props, function(key) {
21681 return isFunction(object[key]);
21682 });
21683 }
21684
21685 /**
21686 * The base implementation of `_.get` without support for default values.
21687 *
21688 * @private
21689 * @param {Object} object The object to query.
21690 * @param {Array|string} path The path of the property to get.
21691 * @returns {*} Returns the resolved value.
21692 */
21693 function baseGet(object, path) {
21694 path = castPath(path, object);
21695
21696 var index = 0,
21697 length = path.length;
21698
21699 while (object != null && index < length) {
21700 object = object[toKey(path[index++])];
21701 }
21702 return (index && index == length) ? object : undefined;
21703 }
21704
21705 /**
21706 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
21707 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
21708 * symbols of `object`.
21709 *
21710 * @private
21711 * @param {Object} object The object to query.
21712 * @param {Function} keysFunc The function to get the keys of `object`.
21713 * @param {Function} symbolsFunc The function to get the symbols of `object`.
21714 * @returns {Array} Returns the array of property names and symbols.
21715 */
21716 function baseGetAllKeys(object, keysFunc, symbolsFunc) {
21717 var result = keysFunc(object);
21718 return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
21719 }
21720
21721 /**
21722 * The base implementation of `getTag` without fallbacks for buggy environments.
21723 *
21724 * @private
21725 * @param {*} value The value to query.
21726 * @returns {string} Returns the `toStringTag`.
21727 */
21728 function baseGetTag(value) {
21729 if (value == null) {
21730 return value === undefined ? undefinedTag : nullTag;
21731 }
21732 return (symToStringTag && symToStringTag in Object(value))
21733 ? getRawTag(value)
21734 : objectToString(value);
21735 }
21736
21737 /**
21738 * The base implementation of `_.gt` which doesn't coerce arguments.
21739 *
21740 * @private
21741 * @param {*} value The value to compare.
21742 * @param {*} other The other value to compare.
21743 * @returns {boolean} Returns `true` if `value` is greater than `other`,
21744 * else `false`.
21745 */
21746 function baseGt(value, other) {
21747 return value > other;
21748 }
21749
21750 /**
21751 * The base implementation of `_.has` without support for deep paths.
21752 *
21753 * @private
21754 * @param {Object} [object] The object to query.
21755 * @param {Array|string} key The key to check.
21756 * @returns {boolean} Returns `true` if `key` exists, else `false`.
21757 */
21758 function baseHas(object, key) {
21759 return object != null && hasOwnProperty.call(object, key);
21760 }
21761
21762 /**
21763 * The base implementation of `_.hasIn` without support for deep paths.
21764 *
21765 * @private
21766 * @param {Object} [object] The object to query.
21767 * @param {Array|string} key The key to check.
21768 * @returns {boolean} Returns `true` if `key` exists, else `false`.
21769 */
21770 function baseHasIn(object, key) {
21771 return object != null && key in Object(object);
21772 }
21773
21774 /**
21775 * The base implementation of `_.inRange` which doesn't coerce arguments.
21776 *
21777 * @private
21778 * @param {number} number The number to check.
21779 * @param {number} start The start of the range.
21780 * @param {number} end The end of the range.
21781 * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
21782 */
21783 function baseInRange(number, start, end) {
21784 return number >= nativeMin(start, end) && number < nativeMax(start, end);
21785 }
21786
21787 /**
21788 * The base implementation of methods like `_.intersection`, without support
21789 * for iteratee shorthands, that accepts an array of arrays to inspect.
21790 *
21791 * @private
21792 * @param {Array} arrays The arrays to inspect.
21793 * @param {Function} [iteratee] The iteratee invoked per element.
21794 * @param {Function} [comparator] The comparator invoked per element.
21795 * @returns {Array} Returns the new array of shared values.
21796 */
21797 function baseIntersection(arrays, iteratee, comparator) {
21798 var includes = comparator ? arrayIncludesWith : arrayIncludes,
21799 length = arrays[0].length,
21800 othLength = arrays.length,
21801 othIndex = othLength,
21802 caches = Array(othLength),
21803 maxLength = Infinity,
21804 result = [];
21805
21806 while (othIndex--) {
21807 var array = arrays[othIndex];
21808 if (othIndex && iteratee) {
21809 array = arrayMap(array, baseUnary(iteratee));
21810 }
21811 maxLength = nativeMin(array.length, maxLength);
21812 caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
21813 ? new SetCache(othIndex && array)
21814 : undefined;
21815 }
21816 array = arrays[0];
21817
21818 var index = -1,
21819 seen = caches[0];
21820
21821 outer:
21822 while (++index < length && result.length < maxLength) {
21823 var value = array[index],
21824 computed = iteratee ? iteratee(value) : value;
21825
21826 value = (comparator || value !== 0) ? value : 0;
21827 if (!(seen
21828 ? cacheHas(seen, computed)
21829 : includes(result, computed, comparator)
21830 )) {
21831 othIndex = othLength;
21832 while (--othIndex) {
21833 var cache = caches[othIndex];
21834 if (!(cache
21835 ? cacheHas(cache, computed)
21836 : includes(arrays[othIndex], computed, comparator))
21837 ) {
21838 continue outer;
21839 }
21840 }
21841 if (seen) {
21842 seen.push(computed);
21843 }
21844 result.push(value);
21845 }
21846 }
21847 return result;
21848 }
21849
21850 /**
21851 * The base implementation of `_.invert` and `_.invertBy` which inverts
21852 * `object` with values transformed by `iteratee` and set by `setter`.
21853 *
21854 * @private
21855 * @param {Object} object The object to iterate over.
21856 * @param {Function} setter The function to set `accumulator` values.
21857 * @param {Function} iteratee The iteratee to transform values.
21858 * @param {Object} accumulator The initial inverted object.
21859 * @returns {Function} Returns `accumulator`.
21860 */
21861 function baseInverter(object, setter, iteratee, accumulator) {
21862 baseForOwn(object, function(value, key, object) {
21863 setter(accumulator, iteratee(value), key, object);
21864 });
21865 return accumulator;
21866 }
21867
21868 /**
21869 * The base implementation of `_.invoke` without support for individual
21870 * method arguments.
21871 *
21872 * @private
21873 * @param {Object} object The object to query.
21874 * @param {Array|string} path The path of the method to invoke.
21875 * @param {Array} args The arguments to invoke the method with.
21876 * @returns {*} Returns the result of the invoked method.
21877 */
21878 function baseInvoke(object, path, args) {
21879 path = castPath(path, object);
21880 object = parent(object, path);
21881 var func = object == null ? object : object[toKey(last(path))];
21882 return func == null ? undefined : apply(func, object, args);
21883 }
21884
21885 /**
21886 * The base implementation of `_.isArguments`.
21887 *
21888 * @private
21889 * @param {*} value The value to check.
21890 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
21891 */
21892 function baseIsArguments(value) {
21893 return isObjectLike(value) && baseGetTag(value) == argsTag;
21894 }
21895
21896 /**
21897 * The base implementation of `_.isArrayBuffer` without Node.js optimizations.
21898 *
21899 * @private
21900 * @param {*} value The value to check.
21901 * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
21902 */
21903 function baseIsArrayBuffer(value) {
21904 return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;
21905 }
21906
21907 /**
21908 * The base implementation of `_.isDate` without Node.js optimizations.
21909 *
21910 * @private
21911 * @param {*} value The value to check.
21912 * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
21913 */
21914 function baseIsDate(value) {
21915 return isObjectLike(value) && baseGetTag(value) == dateTag;
21916 }
21917
21918 /**
21919 * The base implementation of `_.isEqual` which supports partial comparisons
21920 * and tracks traversed objects.
21921 *
21922 * @private
21923 * @param {*} value The value to compare.
21924 * @param {*} other The other value to compare.
21925 * @param {boolean} bitmask The bitmask flags.
21926 * 1 - Unordered comparison
21927 * 2 - Partial comparison
21928 * @param {Function} [customizer] The function to customize comparisons.
21929 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
21930 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
21931 */
21932 function baseIsEqual(value, other, bitmask, customizer, stack) {
21933 if (value === other) {
21934 return true;
21935 }
21936 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
21937 return value !== value && other !== other;
21938 }
21939 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
21940 }
21941
21942 /**
21943 * A specialized version of `baseIsEqual` for arrays and objects which performs
21944 * deep comparisons and tracks traversed objects enabling objects with circular
21945 * references to be compared.
21946 *
21947 * @private
21948 * @param {Object} object The object to compare.
21949 * @param {Object} other The other object to compare.
21950 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
21951 * @param {Function} customizer The function to customize comparisons.
21952 * @param {Function} equalFunc The function to determine equivalents of values.
21953 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
21954 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
21955 */
21956 function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
21957 var objIsArr = isArray(object),
21958 othIsArr = isArray(other),
21959 objTag = objIsArr ? arrayTag : getTag(object),
21960 othTag = othIsArr ? arrayTag : getTag(other);
21961
21962 objTag = objTag == argsTag ? objectTag : objTag;
21963 othTag = othTag == argsTag ? objectTag : othTag;
21964
21965 var objIsObj = objTag == objectTag,
21966 othIsObj = othTag == objectTag,
21967 isSameTag = objTag == othTag;
21968
21969 if (isSameTag && isBuffer(object)) {
21970 if (!isBuffer(other)) {
21971 return false;
21972 }
21973 objIsArr = true;
21974 objIsObj = false;
21975 }
21976 if (isSameTag && !objIsObj) {
21977 stack || (stack = new Stack);
21978 return (objIsArr || isTypedArray(object))
21979 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
21980 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
21981 }
21982 if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
21983 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
21984 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
21985
21986 if (objIsWrapped || othIsWrapped) {
21987 var objUnwrapped = objIsWrapped ? object.value() : object,
21988 othUnwrapped = othIsWrapped ? other.value() : other;
21989
21990 stack || (stack = new Stack);
21991 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
21992 }
21993 }
21994 if (!isSameTag) {
21995 return false;
21996 }
21997 stack || (stack = new Stack);
21998 return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
21999 }
22000
22001 /**
22002 * The base implementation of `_.isMap` without Node.js optimizations.
22003 *
22004 * @private
22005 * @param {*} value The value to check.
22006 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
22007 */
22008 function baseIsMap(value) {
22009 return isObjectLike(value) && getTag(value) == mapTag;
22010 }
22011
22012 /**
22013 * The base implementation of `_.isMatch` without support for iteratee shorthands.
22014 *
22015 * @private
22016 * @param {Object} object The object to inspect.
22017 * @param {Object} source The object of property values to match.
22018 * @param {Array} matchData The property names, values, and compare flags to match.
22019 * @param {Function} [customizer] The function to customize comparisons.
22020 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
22021 */
22022 function baseIsMatch(object, source, matchData, customizer) {
22023 var index = matchData.length,
22024 length = index,
22025 noCustomizer = !customizer;
22026
22027 if (object == null) {
22028 return !length;
22029 }
22030 object = Object(object);
22031 while (index--) {
22032 var data = matchData[index];
22033 if ((noCustomizer && data[2])
22034 ? data[1] !== object[data[0]]
22035 : !(data[0] in object)
22036 ) {
22037 return false;
22038 }
22039 }
22040 while (++index < length) {
22041 data = matchData[index];
22042 var key = data[0],
22043 objValue = object[key],
22044 srcValue = data[1];
22045
22046 if (noCustomizer && data[2]) {
22047 if (objValue === undefined && !(key in object)) {
22048 return false;
22049 }
22050 } else {
22051 var stack = new Stack;
22052 if (customizer) {
22053 var result = customizer(objValue, srcValue, key, object, source, stack);
22054 }
22055 if (!(result === undefined
22056 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)
22057 : result
22058 )) {
22059 return false;
22060 }
22061 }
22062 }
22063 return true;
22064 }
22065
22066 /**
22067 * The base implementation of `_.isNative` without bad shim checks.
22068 *
22069 * @private
22070 * @param {*} value The value to check.
22071 * @returns {boolean} Returns `true` if `value` is a native function,
22072 * else `false`.
22073 */
22074 function baseIsNative(value) {
22075 if (!isObject(value) || isMasked(value)) {
22076 return false;
22077 }
22078 var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
22079 return pattern.test(toSource(value));
22080 }
22081
22082 /**
22083 * The base implementation of `_.isRegExp` without Node.js optimizations.
22084 *
22085 * @private
22086 * @param {*} value The value to check.
22087 * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
22088 */
22089 function baseIsRegExp(value) {
22090 return isObjectLike(value) && baseGetTag(value) == regexpTag;
22091 }
22092
22093 /**
22094 * The base implementation of `_.isSet` without Node.js optimizations.
22095 *
22096 * @private
22097 * @param {*} value The value to check.
22098 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
22099 */
22100 function baseIsSet(value) {
22101 return isObjectLike(value) && getTag(value) == setTag;
22102 }
22103
22104 /**
22105 * The base implementation of `_.isTypedArray` without Node.js optimizations.
22106 *
22107 * @private
22108 * @param {*} value The value to check.
22109 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
22110 */
22111 function baseIsTypedArray(value) {
22112 return isObjectLike(value) &&
22113 isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
22114 }
22115
22116 /**
22117 * The base implementation of `_.iteratee`.
22118 *
22119 * @private
22120 * @param {*} [value=_.identity] The value to convert to an iteratee.
22121 * @returns {Function} Returns the iteratee.
22122 */
22123 function baseIteratee(value) {
22124 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
22125 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
22126 if (typeof value == 'function') {
22127 return value;
22128 }
22129 if (value == null) {
22130 return identity;
22131 }
22132 if (typeof value == 'object') {
22133 return isArray(value)
22134 ? baseMatchesProperty(value[0], value[1])
22135 : baseMatches(value);
22136 }
22137 return property(value);
22138 }
22139
22140 /**
22141 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
22142 *
22143 * @private
22144 * @param {Object} object The object to query.
22145 * @returns {Array} Returns the array of property names.
22146 */
22147 function baseKeys(object) {
22148 if (!isPrototype(object)) {
22149 return nativeKeys(object);
22150 }
22151 var result = [];
22152 for (var key in Object(object)) {
22153 if (hasOwnProperty.call(object, key) && key != 'constructor') {
22154 result.push(key);
22155 }
22156 }
22157 return result;
22158 }
22159
22160 /**
22161 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.
22162 *
22163 * @private
22164 * @param {Object} object The object to query.
22165 * @returns {Array} Returns the array of property names.
22166 */
22167 function baseKeysIn(object) {
22168 if (!isObject(object)) {
22169 return nativeKeysIn(object);
22170 }
22171 var isProto = isPrototype(object),
22172 result = [];
22173
22174 for (var key in object) {
22175 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
22176 result.push(key);
22177 }
22178 }
22179 return result;
22180 }
22181
22182 /**
22183 * The base implementation of `_.lt` which doesn't coerce arguments.
22184 *
22185 * @private
22186 * @param {*} value The value to compare.
22187 * @param {*} other The other value to compare.
22188 * @returns {boolean} Returns `true` if `value` is less than `other`,
22189 * else `false`.
22190 */
22191 function baseLt(value, other) {
22192 return value < other;
22193 }
22194
22195 /**
22196 * The base implementation of `_.map` without support for iteratee shorthands.
22197 *
22198 * @private
22199 * @param {Array|Object} collection The collection to iterate over.
22200 * @param {Function} iteratee The function invoked per iteration.
22201 * @returns {Array} Returns the new mapped array.
22202 */
22203 function baseMap(collection, iteratee) {
22204 var index = -1,
22205 result = isArrayLike(collection) ? Array(collection.length) : [];
22206
22207 baseEach(collection, function(value, key, collection) {
22208 result[++index] = iteratee(value, key, collection);
22209 });
22210 return result;
22211 }
22212
22213 /**
22214 * The base implementation of `_.matches` which doesn't clone `source`.
22215 *
22216 * @private
22217 * @param {Object} source The object of property values to match.
22218 * @returns {Function} Returns the new spec function.
22219 */
22220 function baseMatches(source) {
22221 var matchData = getMatchData(source);
22222 if (matchData.length == 1 && matchData[0][2]) {
22223 return matchesStrictComparable(matchData[0][0], matchData[0][1]);
22224 }
22225 return function(object) {
22226 return object === source || baseIsMatch(object, source, matchData);
22227 };
22228 }
22229
22230 /**
22231 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.
22232 *
22233 * @private
22234 * @param {string} path The path of the property to get.
22235 * @param {*} srcValue The value to match.
22236 * @returns {Function} Returns the new spec function.
22237 */
22238 function baseMatchesProperty(path, srcValue) {
22239 if (isKey(path) && isStrictComparable(srcValue)) {
22240 return matchesStrictComparable(toKey(path), srcValue);
22241 }
22242 return function(object) {
22243 var objValue = get(object, path);
22244 return (objValue === undefined && objValue === srcValue)
22245 ? hasIn(object, path)
22246 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
22247 };
22248 }
22249
22250 /**
22251 * The base implementation of `_.merge` without support for multiple sources.
22252 *
22253 * @private
22254 * @param {Object} object The destination object.
22255 * @param {Object} source The source object.
22256 * @param {number} srcIndex The index of `source`.
22257 * @param {Function} [customizer] The function to customize merged values.
22258 * @param {Object} [stack] Tracks traversed source values and their merged
22259 * counterparts.
22260 */
22261 function baseMerge(object, source, srcIndex, customizer, stack) {
22262 if (object === source) {
22263 return;
22264 }
22265 baseFor(source, function(srcValue, key) {
22266 if (isObject(srcValue)) {
22267 stack || (stack = new Stack);
22268 baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);
22269 }
22270 else {
22271 var newValue = customizer
22272 ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)
22273 : undefined;
22274
22275 if (newValue === undefined) {
22276 newValue = srcValue;
22277 }
22278 assignMergeValue(object, key, newValue);
22279 }
22280 }, keysIn);
22281 }
22282
22283 /**
22284 * A specialized version of `baseMerge` for arrays and objects which performs
22285 * deep merges and tracks traversed objects enabling objects with circular
22286 * references to be merged.
22287 *
22288 * @private
22289 * @param {Object} object The destination object.
22290 * @param {Object} source The source object.
22291 * @param {string} key The key of the value to merge.
22292 * @param {number} srcIndex The index of `source`.
22293 * @param {Function} mergeFunc The function to merge values.
22294 * @param {Function} [customizer] The function to customize assigned values.
22295 * @param {Object} [stack] Tracks traversed source values and their merged
22296 * counterparts.
22297 */
22298 function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
22299 var objValue = safeGet(object, key),
22300 srcValue = safeGet(source, key),
22301 stacked = stack.get(srcValue);
22302
22303 if (stacked) {
22304 assignMergeValue(object, key, stacked);
22305 return;
22306 }
22307 var newValue = customizer
22308 ? customizer(objValue, srcValue, (key + ''), object, source, stack)
22309 : undefined;
22310
22311 var isCommon = newValue === undefined;
22312
22313 if (isCommon) {
22314 var isArr = isArray(srcValue),
22315 isBuff = !isArr && isBuffer(srcValue),
22316 isTyped = !isArr && !isBuff && isTypedArray(srcValue);
22317
22318 newValue = srcValue;
22319 if (isArr || isBuff || isTyped) {
22320 if (isArray(objValue)) {
22321 newValue = objValue;
22322 }
22323 else if (isArrayLikeObject(objValue)) {
22324 newValue = copyArray(objValue);
22325 }
22326 else if (isBuff) {
22327 isCommon = false;
22328 newValue = cloneBuffer(srcValue, true);
22329 }
22330 else if (isTyped) {
22331 isCommon = false;
22332 newValue = cloneTypedArray(srcValue, true);
22333 }
22334 else {
22335 newValue = [];
22336 }
22337 }
22338 else if (isPlainObject(srcValue) || isArguments(srcValue)) {
22339 newValue = objValue;
22340 if (isArguments(objValue)) {
22341 newValue = toPlainObject(objValue);
22342 }
22343 else if (!isObject(objValue) || isFunction(objValue)) {
22344 newValue = initCloneObject(srcValue);
22345 }
22346 }
22347 else {
22348 isCommon = false;
22349 }
22350 }
22351 if (isCommon) {
22352 // Recursively merge objects and arrays (susceptible to call stack limits).
22353 stack.set(srcValue, newValue);
22354 mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
22355 stack['delete'](srcValue);
22356 }
22357 assignMergeValue(object, key, newValue);
22358 }
22359
22360 /**
22361 * The base implementation of `_.nth` which doesn't coerce arguments.
22362 *
22363 * @private
22364 * @param {Array} array The array to query.
22365 * @param {number} n The index of the element to return.
22366 * @returns {*} Returns the nth element of `array`.
22367 */
22368 function baseNth(array, n) {
22369 var length = array.length;
22370 if (!length) {
22371 return;
22372 }
22373 n += n < 0 ? length : 0;
22374 return isIndex(n, length) ? array[n] : undefined;
22375 }
22376
22377 /**
22378 * The base implementation of `_.orderBy` without param guards.
22379 *
22380 * @private
22381 * @param {Array|Object} collection The collection to iterate over.
22382 * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.
22383 * @param {string[]} orders The sort orders of `iteratees`.
22384 * @returns {Array} Returns the new sorted array.
22385 */
22386 function baseOrderBy(collection, iteratees, orders) {
22387 var index = -1;
22388 iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee()));
22389
22390 var result = baseMap(collection, function(value, key, collection) {
22391 var criteria = arrayMap(iteratees, function(iteratee) {
22392 return iteratee(value);
22393 });
22394 return { 'criteria': criteria, 'index': ++index, 'value': value };
22395 });
22396
22397 return baseSortBy(result, function(object, other) {
22398 return compareMultiple(object, other, orders);
22399 });
22400 }
22401
22402 /**
22403 * The base implementation of `_.pick` without support for individual
22404 * property identifiers.
22405 *
22406 * @private
22407 * @param {Object} object The source object.
22408 * @param {string[]} paths The property paths to pick.
22409 * @returns {Object} Returns the new object.
22410 */
22411 function basePick(object, paths) {
22412 return basePickBy(object, paths, function(value, path) {
22413 return hasIn(object, path);
22414 });
22415 }
22416
22417 /**
22418 * The base implementation of `_.pickBy` without support for iteratee shorthands.
22419 *
22420 * @private
22421 * @param {Object} object The source object.
22422 * @param {string[]} paths The property paths to pick.
22423 * @param {Function} predicate The function invoked per property.
22424 * @returns {Object} Returns the new object.
22425 */
22426 function basePickBy(object, paths, predicate) {
22427 var index = -1,
22428 length = paths.length,
22429 result = {};
22430
22431 while (++index < length) {
22432 var path = paths[index],
22433 value = baseGet(object, path);
22434
22435 if (predicate(value, path)) {
22436 baseSet(result, castPath(path, object), value);
22437 }
22438 }
22439 return result;
22440 }
22441
22442 /**
22443 * A specialized version of `baseProperty` which supports deep paths.
22444 *
22445 * @private
22446 * @param {Array|string} path The path of the property to get.
22447 * @returns {Function} Returns the new accessor function.
22448 */
22449 function basePropertyDeep(path) {
22450 return function(object) {
22451 return baseGet(object, path);
22452 };
22453 }
22454
22455 /**
22456 * The base implementation of `_.pullAllBy` without support for iteratee
22457 * shorthands.
22458 *
22459 * @private
22460 * @param {Array} array The array to modify.
22461 * @param {Array} values The values to remove.
22462 * @param {Function} [iteratee] The iteratee invoked per element.
22463 * @param {Function} [comparator] The comparator invoked per element.
22464 * @returns {Array} Returns `array`.
22465 */
22466 function basePullAll(array, values, iteratee, comparator) {
22467 var indexOf = comparator ? baseIndexOfWith : baseIndexOf,
22468 index = -1,
22469 length = values.length,
22470 seen = array;
22471
22472 if (array === values) {
22473 values = copyArray(values);
22474 }
22475 if (iteratee) {
22476 seen = arrayMap(array, baseUnary(iteratee));
22477 }
22478 while (++index < length) {
22479 var fromIndex = 0,
22480 value = values[index],
22481 computed = iteratee ? iteratee(value) : value;
22482
22483 while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {
22484 if (seen !== array) {
22485 splice.call(seen, fromIndex, 1);
22486 }
22487 splice.call(array, fromIndex, 1);
22488 }
22489 }
22490 return array;
22491 }
22492
22493 /**
22494 * The base implementation of `_.pullAt` without support for individual
22495 * indexes or capturing the removed elements.
22496 *
22497 * @private
22498 * @param {Array} array The array to modify.
22499 * @param {number[]} indexes The indexes of elements to remove.
22500 * @returns {Array} Returns `array`.
22501 */
22502 function basePullAt(array, indexes) {
22503 var length = array ? indexes.length : 0,
22504 lastIndex = length - 1;
22505
22506 while (length--) {
22507 var index = indexes[length];
22508 if (length == lastIndex || index !== previous) {
22509 var previous = index;
22510 if (isIndex(index)) {
22511 splice.call(array, index, 1);
22512 } else {
22513 baseUnset(array, index);
22514 }
22515 }
22516 }
22517 return array;
22518 }
22519
22520 /**
22521 * The base implementation of `_.random` without support for returning
22522 * floating-point numbers.
22523 *
22524 * @private
22525 * @param {number} lower The lower bound.
22526 * @param {number} upper The upper bound.
22527 * @returns {number} Returns the random number.
22528 */
22529 function baseRandom(lower, upper) {
22530 return lower + nativeFloor(nativeRandom() * (upper - lower + 1));
22531 }
22532
22533 /**
22534 * The base implementation of `_.range` and `_.rangeRight` which doesn't
22535 * coerce arguments.
22536 *
22537 * @private
22538 * @param {number} start The start of the range.
22539 * @param {number} end The end of the range.
22540 * @param {number} step The value to increment or decrement by.
22541 * @param {boolean} [fromRight] Specify iterating from right to left.
22542 * @returns {Array} Returns the range of numbers.
22543 */
22544 function baseRange(start, end, step, fromRight) {
22545 var index = -1,
22546 length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),
22547 result = Array(length);
22548
22549 while (length--) {
22550 result[fromRight ? length : ++index] = start;
22551 start += step;
22552 }
22553 return result;
22554 }
22555
22556 /**
22557 * The base implementation of `_.repeat` which doesn't coerce arguments.
22558 *
22559 * @private
22560 * @param {string} string The string to repeat.
22561 * @param {number} n The number of times to repeat the string.
22562 * @returns {string} Returns the repeated string.
22563 */
22564 function baseRepeat(string, n) {
22565 var result = '';
22566 if (!string || n < 1 || n > MAX_SAFE_INTEGER) {
22567 return result;
22568 }
22569 // Leverage the exponentiation by squaring algorithm for a faster repeat.
22570 // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.
22571 do {
22572 if (n % 2) {
22573 result += string;
22574 }
22575 n = nativeFloor(n / 2);
22576 if (n) {
22577 string += string;
22578 }
22579 } while (n);
22580
22581 return result;
22582 }
22583
22584 /**
22585 * The base implementation of `_.rest` which doesn't validate or coerce arguments.
22586 *
22587 * @private
22588 * @param {Function} func The function to apply a rest parameter to.
22589 * @param {number} [start=func.length-1] The start position of the rest parameter.
22590 * @returns {Function} Returns the new function.
22591 */
22592 function baseRest(func, start) {
22593 return setToString(overRest(func, start, identity), func + '');
22594 }
22595
22596 /**
22597 * The base implementation of `_.sample`.
22598 *
22599 * @private
22600 * @param {Array|Object} collection The collection to sample.
22601 * @returns {*} Returns the random element.
22602 */
22603 function baseSample(collection) {
22604 return arraySample(values(collection));
22605 }
22606
22607 /**
22608 * The base implementation of `_.sampleSize` without param guards.
22609 *
22610 * @private
22611 * @param {Array|Object} collection The collection to sample.
22612 * @param {number} n The number of elements to sample.
22613 * @returns {Array} Returns the random elements.
22614 */
22615 function baseSampleSize(collection, n) {
22616 var array = values(collection);
22617 return shuffleSelf(array, baseClamp(n, 0, array.length));
22618 }
22619
22620 /**
22621 * The base implementation of `_.set`.
22622 *
22623 * @private
22624 * @param {Object} object The object to modify.
22625 * @param {Array|string} path The path of the property to set.
22626 * @param {*} value The value to set.
22627 * @param {Function} [customizer] The function to customize path creation.
22628 * @returns {Object} Returns `object`.
22629 */
22630 function baseSet(object, path, value, customizer) {
22631 if (!isObject(object)) {
22632 return object;
22633 }
22634 path = castPath(path, object);
22635
22636 var index = -1,
22637 length = path.length,
22638 lastIndex = length - 1,
22639 nested = object;
22640
22641 while (nested != null && ++index < length) {
22642 var key = toKey(path[index]),
22643 newValue = value;
22644
22645 if (index != lastIndex) {
22646 var objValue = nested[key];
22647 newValue = customizer ? customizer(objValue, key, nested) : undefined;
22648 if (newValue === undefined) {
22649 newValue = isObject(objValue)
22650 ? objValue
22651 : (isIndex(path[index + 1]) ? [] : {});
22652 }
22653 }
22654 assignValue(nested, key, newValue);
22655 nested = nested[key];
22656 }
22657 return object;
22658 }
22659
22660 /**
22661 * The base implementation of `setData` without support for hot loop shorting.
22662 *
22663 * @private
22664 * @param {Function} func The function to associate metadata with.
22665 * @param {*} data The metadata.
22666 * @returns {Function} Returns `func`.
22667 */
22668 var baseSetData = !metaMap ? identity : function(func, data) {
22669 metaMap.set(func, data);
22670 return func;
22671 };
22672
22673 /**
22674 * The base implementation of `setToString` without support for hot loop shorting.
22675 *
22676 * @private
22677 * @param {Function} func The function to modify.
22678 * @param {Function} string The `toString` result.
22679 * @returns {Function} Returns `func`.
22680 */
22681 var baseSetToString = !defineProperty ? identity : function(func, string) {
22682 return defineProperty(func, 'toString', {
22683 'configurable': true,
22684 'enumerable': false,
22685 'value': constant(string),
22686 'writable': true
22687 });
22688 };
22689
22690 /**
22691 * The base implementation of `_.shuffle`.
22692 *
22693 * @private
22694 * @param {Array|Object} collection The collection to shuffle.
22695 * @returns {Array} Returns the new shuffled array.
22696 */
22697 function baseShuffle(collection) {
22698 return shuffleSelf(values(collection));
22699 }
22700
22701 /**
22702 * The base implementation of `_.slice` without an iteratee call guard.
22703 *
22704 * @private
22705 * @param {Array} array The array to slice.
22706 * @param {number} [start=0] The start position.
22707 * @param {number} [end=array.length] The end position.
22708 * @returns {Array} Returns the slice of `array`.
22709 */
22710 function baseSlice(array, start, end) {
22711 var index = -1,
22712 length = array.length;
22713
22714 if (start < 0) {
22715 start = -start > length ? 0 : (length + start);
22716 }
22717 end = end > length ? length : end;
22718 if (end < 0) {
22719 end += length;
22720 }
22721 length = start > end ? 0 : ((end - start) >>> 0);
22722 start >>>= 0;
22723
22724 var result = Array(length);
22725 while (++index < length) {
22726 result[index] = array[index + start];
22727 }
22728 return result;
22729 }
22730
22731 /**
22732 * The base implementation of `_.some` without support for iteratee shorthands.
22733 *
22734 * @private
22735 * @param {Array|Object} collection The collection to iterate over.
22736 * @param {Function} predicate The function invoked per iteration.
22737 * @returns {boolean} Returns `true` if any element passes the predicate check,
22738 * else `false`.
22739 */
22740 function baseSome(collection, predicate) {
22741 var result;
22742
22743 baseEach(collection, function(value, index, collection) {
22744 result = predicate(value, index, collection);
22745 return !result;
22746 });
22747 return !!result;
22748 }
22749
22750 /**
22751 * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which
22752 * performs a binary search of `array` to determine the index at which `value`
22753 * should be inserted into `array` in order to maintain its sort order.
22754 *
22755 * @private
22756 * @param {Array} array The sorted array to inspect.
22757 * @param {*} value The value to evaluate.
22758 * @param {boolean} [retHighest] Specify returning the highest qualified index.
22759 * @returns {number} Returns the index at which `value` should be inserted
22760 * into `array`.
22761 */
22762 function baseSortedIndex(array, value, retHighest) {
22763 var low = 0,
22764 high = array == null ? low : array.length;
22765
22766 if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {
22767 while (low < high) {
22768 var mid = (low + high) >>> 1,
22769 computed = array[mid];
22770
22771 if (computed !== null && !isSymbol(computed) &&
22772 (retHighest ? (computed <= value) : (computed < value))) {
22773 low = mid + 1;
22774 } else {
22775 high = mid;
22776 }
22777 }
22778 return high;
22779 }
22780 return baseSortedIndexBy(array, value, identity, retHighest);
22781 }
22782
22783 /**
22784 * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`
22785 * which invokes `iteratee` for `value` and each element of `array` to compute
22786 * their sort ranking. The iteratee is invoked with one argument; (value).
22787 *
22788 * @private
22789 * @param {Array} array The sorted array to inspect.
22790 * @param {*} value The value to evaluate.
22791 * @param {Function} iteratee The iteratee invoked per element.
22792 * @param {boolean} [retHighest] Specify returning the highest qualified index.
22793 * @returns {number} Returns the index at which `value` should be inserted
22794 * into `array`.
22795 */
22796 function baseSortedIndexBy(array, value, iteratee, retHighest) {
22797 value = iteratee(value);
22798
22799 var low = 0,
22800 high = array == null ? 0 : array.length,
22801 valIsNaN = value !== value,
22802 valIsNull = value === null,
22803 valIsSymbol = isSymbol(value),
22804 valIsUndefined = value === undefined;
22805
22806 while (low < high) {
22807 var mid = nativeFloor((low + high) / 2),
22808 computed = iteratee(array[mid]),
22809 othIsDefined = computed !== undefined,
22810 othIsNull = computed === null,
22811 othIsReflexive = computed === computed,
22812 othIsSymbol = isSymbol(computed);
22813
22814 if (valIsNaN) {
22815 var setLow = retHighest || othIsReflexive;
22816 } else if (valIsUndefined) {
22817 setLow = othIsReflexive && (retHighest || othIsDefined);
22818 } else if (valIsNull) {
22819 setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);
22820 } else if (valIsSymbol) {
22821 setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);
22822 } else if (othIsNull || othIsSymbol) {
22823 setLow = false;
22824 } else {
22825 setLow = retHighest ? (computed <= value) : (computed < value);
22826 }
22827 if (setLow) {
22828 low = mid + 1;
22829 } else {
22830 high = mid;
22831 }
22832 }
22833 return nativeMin(high, MAX_ARRAY_INDEX);
22834 }
22835
22836 /**
22837 * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without
22838 * support for iteratee shorthands.
22839 *
22840 * @private
22841 * @param {Array} array The array to inspect.
22842 * @param {Function} [iteratee] The iteratee invoked per element.
22843 * @returns {Array} Returns the new duplicate free array.
22844 */
22845 function baseSortedUniq(array, iteratee) {
22846 var index = -1,
22847 length = array.length,
22848 resIndex = 0,
22849 result = [];
22850
22851 while (++index < length) {
22852 var value = array[index],
22853 computed = iteratee ? iteratee(value) : value;
22854
22855 if (!index || !eq(computed, seen)) {
22856 var seen = computed;
22857 result[resIndex++] = value === 0 ? 0 : value;
22858 }
22859 }
22860 return result;
22861 }
22862
22863 /**
22864 * The base implementation of `_.toNumber` which doesn't ensure correct
22865 * conversions of binary, hexadecimal, or octal string values.
22866 *
22867 * @private
22868 * @param {*} value The value to process.
22869 * @returns {number} Returns the number.
22870 */
22871 function baseToNumber(value) {
22872 if (typeof value == 'number') {
22873 return value;
22874 }
22875 if (isSymbol(value)) {
22876 return NAN;
22877 }
22878 return +value;
22879 }
22880
22881 /**
22882 * The base implementation of `_.toString` which doesn't convert nullish
22883 * values to empty strings.
22884 *
22885 * @private
22886 * @param {*} value The value to process.
22887 * @returns {string} Returns the string.
22888 */
22889 function baseToString(value) {
22890 // Exit early for strings to avoid a performance hit in some environments.
22891 if (typeof value == 'string') {
22892 return value;
22893 }
22894 if (isArray(value)) {
22895 // Recursively convert values (susceptible to call stack limits).
22896 return arrayMap(value, baseToString) + '';
22897 }
22898 if (isSymbol(value)) {
22899 return symbolToString ? symbolToString.call(value) : '';
22900 }
22901 var result = (value + '');
22902 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
22903 }
22904
22905 /**
22906 * The base implementation of `_.uniqBy` without support for iteratee shorthands.
22907 *
22908 * @private
22909 * @param {Array} array The array to inspect.
22910 * @param {Function} [iteratee] The iteratee invoked per element.
22911 * @param {Function} [comparator] The comparator invoked per element.
22912 * @returns {Array} Returns the new duplicate free array.
22913 */
22914 function baseUniq(array, iteratee, comparator) {
22915 var index = -1,
22916 includes = arrayIncludes,
22917 length = array.length,
22918 isCommon = true,
22919 result = [],
22920 seen = result;
22921
22922 if (comparator) {
22923 isCommon = false;
22924 includes = arrayIncludesWith;
22925 }
22926 else if (length >= LARGE_ARRAY_SIZE) {
22927 var set = iteratee ? null : createSet(array);
22928 if (set) {
22929 return setToArray(set);
22930 }
22931 isCommon = false;
22932 includes = cacheHas;
22933 seen = new SetCache;
22934 }
22935 else {
22936 seen = iteratee ? [] : result;
22937 }
22938 outer:
22939 while (++index < length) {
22940 var value = array[index],
22941 computed = iteratee ? iteratee(value) : value;
22942
22943 value = (comparator || value !== 0) ? value : 0;
22944 if (isCommon && computed === computed) {
22945 var seenIndex = seen.length;
22946 while (seenIndex--) {
22947 if (seen[seenIndex] === computed) {
22948 continue outer;
22949 }
22950 }
22951 if (iteratee) {
22952 seen.push(computed);
22953 }
22954 result.push(value);
22955 }
22956 else if (!includes(seen, computed, comparator)) {
22957 if (seen !== result) {
22958 seen.push(computed);
22959 }
22960 result.push(value);
22961 }
22962 }
22963 return result;
22964 }
22965
22966 /**
22967 * The base implementation of `_.unset`.
22968 *
22969 * @private
22970 * @param {Object} object The object to modify.
22971 * @param {Array|string} path The property path to unset.
22972 * @returns {boolean} Returns `true` if the property is deleted, else `false`.
22973 */
22974 function baseUnset(object, path) {
22975 path = castPath(path, object);
22976 object = parent(object, path);
22977 return object == null || delete object[toKey(last(path))];
22978 }
22979
22980 /**
22981 * The base implementation of `_.update`.
22982 *
22983 * @private
22984 * @param {Object} object The object to modify.
22985 * @param {Array|string} path The path of the property to update.
22986 * @param {Function} updater The function to produce the updated value.
22987 * @param {Function} [customizer] The function to customize path creation.
22988 * @returns {Object} Returns `object`.
22989 */
22990 function baseUpdate(object, path, updater, customizer) {
22991 return baseSet(object, path, updater(baseGet(object, path)), customizer);
22992 }
22993
22994 /**
22995 * The base implementation of methods like `_.dropWhile` and `_.takeWhile`
22996 * without support for iteratee shorthands.
22997 *
22998 * @private
22999 * @param {Array} array The array to query.
23000 * @param {Function} predicate The function invoked per iteration.
23001 * @param {boolean} [isDrop] Specify dropping elements instead of taking them.
23002 * @param {boolean} [fromRight] Specify iterating from right to left.
23003 * @returns {Array} Returns the slice of `array`.
23004 */
23005 function baseWhile(array, predicate, isDrop, fromRight) {
23006 var length = array.length,
23007 index = fromRight ? length : -1;
23008
23009 while ((fromRight ? index-- : ++index < length) &&
23010 predicate(array[index], index, array)) {}
23011
23012 return isDrop
23013 ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))
23014 : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));
23015 }
23016
23017 /**
23018 * The base implementation of `wrapperValue` which returns the result of
23019 * performing a sequence of actions on the unwrapped `value`, where each
23020 * successive action is supplied the return value of the previous.
23021 *
23022 * @private
23023 * @param {*} value The unwrapped value.
23024 * @param {Array} actions Actions to perform to resolve the unwrapped value.
23025 * @returns {*} Returns the resolved value.
23026 */
23027 function baseWrapperValue(value, actions) {
23028 var result = value;
23029 if (result instanceof LazyWrapper) {
23030 result = result.value();
23031 }
23032 return arrayReduce(actions, function(result, action) {
23033 return action.func.apply(action.thisArg, arrayPush([result], action.args));
23034 }, result);
23035 }
23036
23037 /**
23038 * The base implementation of methods like `_.xor`, without support for
23039 * iteratee shorthands, that accepts an array of arrays to inspect.
23040 *
23041 * @private
23042 * @param {Array} arrays The arrays to inspect.
23043 * @param {Function} [iteratee] The iteratee invoked per element.
23044 * @param {Function} [comparator] The comparator invoked per element.
23045 * @returns {Array} Returns the new array of values.
23046 */
23047 function baseXor(arrays, iteratee, comparator) {
23048 var length = arrays.length;
23049 if (length < 2) {
23050 return length ? baseUniq(arrays[0]) : [];
23051 }
23052 var index = -1,
23053 result = Array(length);
23054
23055 while (++index < length) {
23056 var array = arrays[index],
23057 othIndex = -1;
23058
23059 while (++othIndex < length) {
23060 if (othIndex != index) {
23061 result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);
23062 }
23063 }
23064 }
23065 return baseUniq(baseFlatten(result, 1), iteratee, comparator);
23066 }
23067
23068 /**
23069 * This base implementation of `_.zipObject` which assigns values using `assignFunc`.
23070 *
23071 * @private
23072 * @param {Array} props The property identifiers.
23073 * @param {Array} values The property values.
23074 * @param {Function} assignFunc The function to assign values.
23075 * @returns {Object} Returns the new object.
23076 */
23077 function baseZipObject(props, values, assignFunc) {
23078 var index = -1,
23079 length = props.length,
23080 valsLength = values.length,
23081 result = {};
23082
23083 while (++index < length) {
23084 var value = index < valsLength ? values[index] : undefined;
23085 assignFunc(result, props[index], value);
23086 }
23087 return result;
23088 }
23089
23090 /**
23091 * Casts `value` to an empty array if it's not an array like object.
23092 *
23093 * @private
23094 * @param {*} value The value to inspect.
23095 * @returns {Array|Object} Returns the cast array-like object.
23096 */
23097 function castArrayLikeObject(value) {
23098 return isArrayLikeObject(value) ? value : [];
23099 }
23100
23101 /**
23102 * Casts `value` to `identity` if it's not a function.
23103 *
23104 * @private
23105 * @param {*} value The value to inspect.
23106 * @returns {Function} Returns cast function.
23107 */
23108 function castFunction(value) {
23109 return typeof value == 'function' ? value : identity;
23110 }
23111
23112 /**
23113 * Casts `value` to a path array if it's not one.
23114 *
23115 * @private
23116 * @param {*} value The value to inspect.
23117 * @param {Object} [object] The object to query keys on.
23118 * @returns {Array} Returns the cast property path array.
23119 */
23120 function castPath(value, object) {
23121 if (isArray(value)) {
23122 return value;
23123 }
23124 return isKey(value, object) ? [value] : stringToPath(toString(value));
23125 }
23126
23127 /**
23128 * A `baseRest` alias which can be replaced with `identity` by module
23129 * replacement plugins.
23130 *
23131 * @private
23132 * @type {Function}
23133 * @param {Function} func The function to apply a rest parameter to.
23134 * @returns {Function} Returns the new function.
23135 */
23136 var castRest = baseRest;
23137
23138 /**
23139 * Casts `array` to a slice if it's needed.
23140 *
23141 * @private
23142 * @param {Array} array The array to inspect.
23143 * @param {number} start The start position.
23144 * @param {number} [end=array.length] The end position.
23145 * @returns {Array} Returns the cast slice.
23146 */
23147 function castSlice(array, start, end) {
23148 var length = array.length;
23149 end = end === undefined ? length : end;
23150 return (!start && end >= length) ? array : baseSlice(array, start, end);
23151 }
23152
23153 /**
23154 * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).
23155 *
23156 * @private
23157 * @param {number|Object} id The timer id or timeout object of the timer to clear.
23158 */
23159 var clearTimeout = ctxClearTimeout || function(id) {
23160 return root.clearTimeout(id);
23161 };
23162
23163 /**
23164 * Creates a clone of `buffer`.
23165 *
23166 * @private
23167 * @param {Buffer} buffer The buffer to clone.
23168 * @param {boolean} [isDeep] Specify a deep clone.
23169 * @returns {Buffer} Returns the cloned buffer.
23170 */
23171 function cloneBuffer(buffer, isDeep) {
23172 if (isDeep) {
23173 return buffer.slice();
23174 }
23175 var length = buffer.length,
23176 result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
23177
23178 buffer.copy(result);
23179 return result;
23180 }
23181
23182 /**
23183 * Creates a clone of `arrayBuffer`.
23184 *
23185 * @private
23186 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
23187 * @returns {ArrayBuffer} Returns the cloned array buffer.
23188 */
23189 function cloneArrayBuffer(arrayBuffer) {
23190 var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
23191 new Uint8Array(result).set(new Uint8Array(arrayBuffer));
23192 return result;
23193 }
23194
23195 /**
23196 * Creates a clone of `dataView`.
23197 *
23198 * @private
23199 * @param {Object} dataView The data view to clone.
23200 * @param {boolean} [isDeep] Specify a deep clone.
23201 * @returns {Object} Returns the cloned data view.
23202 */
23203 function cloneDataView(dataView, isDeep) {
23204 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
23205 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
23206 }
23207
23208 /**
23209 * Creates a clone of `regexp`.
23210 *
23211 * @private
23212 * @param {Object} regexp The regexp to clone.
23213 * @returns {Object} Returns the cloned regexp.
23214 */
23215 function cloneRegExp(regexp) {
23216 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
23217 result.lastIndex = regexp.lastIndex;
23218 return result;
23219 }
23220
23221 /**
23222 * Creates a clone of the `symbol` object.
23223 *
23224 * @private
23225 * @param {Object} symbol The symbol object to clone.
23226 * @returns {Object} Returns the cloned symbol object.
23227 */
23228 function cloneSymbol(symbol) {
23229 return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
23230 }
23231
23232 /**
23233 * Creates a clone of `typedArray`.
23234 *
23235 * @private
23236 * @param {Object} typedArray The typed array to clone.
23237 * @param {boolean} [isDeep] Specify a deep clone.
23238 * @returns {Object} Returns the cloned typed array.
23239 */
23240 function cloneTypedArray(typedArray, isDeep) {
23241 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
23242 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
23243 }
23244
23245 /**
23246 * Compares values to sort them in ascending order.
23247 *
23248 * @private
23249 * @param {*} value The value to compare.
23250 * @param {*} other The other value to compare.
23251 * @returns {number} Returns the sort order indicator for `value`.
23252 */
23253 function compareAscending(value, other) {
23254 if (value !== other) {
23255 var valIsDefined = value !== undefined,
23256 valIsNull = value === null,
23257 valIsReflexive = value === value,
23258 valIsSymbol = isSymbol(value);
23259
23260 var othIsDefined = other !== undefined,
23261 othIsNull = other === null,
23262 othIsReflexive = other === other,
23263 othIsSymbol = isSymbol(other);
23264
23265 if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||
23266 (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||
23267 (valIsNull && othIsDefined && othIsReflexive) ||
23268 (!valIsDefined && othIsReflexive) ||
23269 !valIsReflexive) {
23270 return 1;
23271 }
23272 if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||
23273 (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||
23274 (othIsNull && valIsDefined && valIsReflexive) ||
23275 (!othIsDefined && valIsReflexive) ||
23276 !othIsReflexive) {
23277 return -1;
23278 }
23279 }
23280 return 0;
23281 }
23282
23283 /**
23284 * Used by `_.orderBy` to compare multiple properties of a value to another
23285 * and stable sort them.
23286 *
23287 * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,
23288 * specify an order of "desc" for descending or "asc" for ascending sort order
23289 * of corresponding values.
23290 *
23291 * @private
23292 * @param {Object} object The object to compare.
23293 * @param {Object} other The other object to compare.
23294 * @param {boolean[]|string[]} orders The order to sort by for each property.
23295 * @returns {number} Returns the sort order indicator for `object`.
23296 */
23297 function compareMultiple(object, other, orders) {
23298 var index = -1,
23299 objCriteria = object.criteria,
23300 othCriteria = other.criteria,
23301 length = objCriteria.length,
23302 ordersLength = orders.length;
23303
23304 while (++index < length) {
23305 var result = compareAscending(objCriteria[index], othCriteria[index]);
23306 if (result) {
23307 if (index >= ordersLength) {
23308 return result;
23309 }
23310 var order = orders[index];
23311 return result * (order == 'desc' ? -1 : 1);
23312 }
23313 }
23314 // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
23315 // that causes it, under certain circumstances, to provide the same value for
23316 // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247
23317 // for more details.
23318 //
23319 // This also ensures a stable sort in V8 and other engines.
23320 // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.
23321 return object.index - other.index;
23322 }
23323
23324 /**
23325 * Creates an array that is the composition of partially applied arguments,
23326 * placeholders, and provided arguments into a single array of arguments.
23327 *
23328 * @private
23329 * @param {Array} args The provided arguments.
23330 * @param {Array} partials The arguments to prepend to those provided.
23331 * @param {Array} holders The `partials` placeholder indexes.
23332 * @params {boolean} [isCurried] Specify composing for a curried function.
23333 * @returns {Array} Returns the new array of composed arguments.
23334 */
23335 function composeArgs(args, partials, holders, isCurried) {
23336 var argsIndex = -1,
23337 argsLength = args.length,
23338 holdersLength = holders.length,
23339 leftIndex = -1,
23340 leftLength = partials.length,
23341 rangeLength = nativeMax(argsLength - holdersLength, 0),
23342 result = Array(leftLength + rangeLength),
23343 isUncurried = !isCurried;
23344
23345 while (++leftIndex < leftLength) {
23346 result[leftIndex] = partials[leftIndex];
23347 }
23348 while (++argsIndex < holdersLength) {
23349 if (isUncurried || argsIndex < argsLength) {
23350 result[holders[argsIndex]] = args[argsIndex];
23351 }
23352 }
23353 while (rangeLength--) {
23354 result[leftIndex++] = args[argsIndex++];
23355 }
23356 return result;
23357 }
23358
23359 /**
23360 * This function is like `composeArgs` except that the arguments composition
23361 * is tailored for `_.partialRight`.
23362 *
23363 * @private
23364 * @param {Array} args The provided arguments.
23365 * @param {Array} partials The arguments to append to those provided.
23366 * @param {Array} holders The `partials` placeholder indexes.
23367 * @params {boolean} [isCurried] Specify composing for a curried function.
23368 * @returns {Array} Returns the new array of composed arguments.
23369 */
23370 function composeArgsRight(args, partials, holders, isCurried) {
23371 var argsIndex = -1,
23372 argsLength = args.length,
23373 holdersIndex = -1,
23374 holdersLength = holders.length,
23375 rightIndex = -1,
23376 rightLength = partials.length,
23377 rangeLength = nativeMax(argsLength - holdersLength, 0),
23378 result = Array(rangeLength + rightLength),
23379 isUncurried = !isCurried;
23380
23381 while (++argsIndex < rangeLength) {
23382 result[argsIndex] = args[argsIndex];
23383 }
23384 var offset = argsIndex;
23385 while (++rightIndex < rightLength) {
23386 result[offset + rightIndex] = partials[rightIndex];
23387 }
23388 while (++holdersIndex < holdersLength) {
23389 if (isUncurried || argsIndex < argsLength) {
23390 result[offset + holders[holdersIndex]] = args[argsIndex++];
23391 }
23392 }
23393 return result;
23394 }
23395
23396 /**
23397 * Copies the values of `source` to `array`.
23398 *
23399 * @private
23400 * @param {Array} source The array to copy values from.
23401 * @param {Array} [array=[]] The array to copy values to.
23402 * @returns {Array} Returns `array`.
23403 */
23404 function copyArray(source, array) {
23405 var index = -1,
23406 length = source.length;
23407
23408 array || (array = Array(length));
23409 while (++index < length) {
23410 array[index] = source[index];
23411 }
23412 return array;
23413 }
23414
23415 /**
23416 * Copies properties of `source` to `object`.
23417 *
23418 * @private
23419 * @param {Object} source The object to copy properties from.
23420 * @param {Array} props The property identifiers to copy.
23421 * @param {Object} [object={}] The object to copy properties to.
23422 * @param {Function} [customizer] The function to customize copied values.
23423 * @returns {Object} Returns `object`.
23424 */
23425 function copyObject(source, props, object, customizer) {
23426 var isNew = !object;
23427 object || (object = {});
23428
23429 var index = -1,
23430 length = props.length;
23431
23432 while (++index < length) {
23433 var key = props[index];
23434
23435 var newValue = customizer
23436 ? customizer(object[key], source[key], key, object, source)
23437 : undefined;
23438
23439 if (newValue === undefined) {
23440 newValue = source[key];
23441 }
23442 if (isNew) {
23443 baseAssignValue(object, key, newValue);
23444 } else {
23445 assignValue(object, key, newValue);
23446 }
23447 }
23448 return object;
23449 }
23450
23451 /**
23452 * Copies own symbols of `source` to `object`.
23453 *
23454 * @private
23455 * @param {Object} source The object to copy symbols from.
23456 * @param {Object} [object={}] The object to copy symbols to.
23457 * @returns {Object} Returns `object`.
23458 */
23459 function copySymbols(source, object) {
23460 return copyObject(source, getSymbols(source), object);
23461 }
23462
23463 /**
23464 * Copies own and inherited symbols of `source` to `object`.
23465 *
23466 * @private
23467 * @param {Object} source The object to copy symbols from.
23468 * @param {Object} [object={}] The object to copy symbols to.
23469 * @returns {Object} Returns `object`.
23470 */
23471 function copySymbolsIn(source, object) {
23472 return copyObject(source, getSymbolsIn(source), object);
23473 }
23474
23475 /**
23476 * Creates a function like `_.groupBy`.
23477 *
23478 * @private
23479 * @param {Function} setter The function to set accumulator values.
23480 * @param {Function} [initializer] The accumulator object initializer.
23481 * @returns {Function} Returns the new aggregator function.
23482 */
23483 function createAggregator(setter, initializer) {
23484 return function(collection, iteratee) {
23485 var func = isArray(collection) ? arrayAggregator : baseAggregator,
23486 accumulator = initializer ? initializer() : {};
23487
23488 return func(collection, setter, getIteratee(iteratee, 2), accumulator);
23489 };
23490 }
23491
23492 /**
23493 * Creates a function like `_.assign`.
23494 *
23495 * @private
23496 * @param {Function} assigner The function to assign values.
23497 * @returns {Function} Returns the new assigner function.
23498 */
23499 function createAssigner(assigner) {
23500 return baseRest(function(object, sources) {
23501 var index = -1,
23502 length = sources.length,
23503 customizer = length > 1 ? sources[length - 1] : undefined,
23504 guard = length > 2 ? sources[2] : undefined;
23505
23506 customizer = (assigner.length > 3 && typeof customizer == 'function')
23507 ? (length--, customizer)
23508 : undefined;
23509
23510 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
23511 customizer = length < 3 ? undefined : customizer;
23512 length = 1;
23513 }
23514 object = Object(object);
23515 while (++index < length) {
23516 var source = sources[index];
23517 if (source) {
23518 assigner(object, source, index, customizer);
23519 }
23520 }
23521 return object;
23522 });
23523 }
23524
23525 /**
23526 * Creates a `baseEach` or `baseEachRight` function.
23527 *
23528 * @private
23529 * @param {Function} eachFunc The function to iterate over a collection.
23530 * @param {boolean} [fromRight] Specify iterating from right to left.
23531 * @returns {Function} Returns the new base function.
23532 */
23533 function createBaseEach(eachFunc, fromRight) {
23534 return function(collection, iteratee) {
23535 if (collection == null) {
23536 return collection;
23537 }
23538 if (!isArrayLike(collection)) {
23539 return eachFunc(collection, iteratee);
23540 }
23541 var length = collection.length,
23542 index = fromRight ? length : -1,
23543 iterable = Object(collection);
23544
23545 while ((fromRight ? index-- : ++index < length)) {
23546 if (iteratee(iterable[index], index, iterable) === false) {
23547 break;
23548 }
23549 }
23550 return collection;
23551 };
23552 }
23553
23554 /**
23555 * Creates a base function for methods like `_.forIn` and `_.forOwn`.
23556 *
23557 * @private
23558 * @param {boolean} [fromRight] Specify iterating from right to left.
23559 * @returns {Function} Returns the new base function.
23560 */
23561 function createBaseFor(fromRight) {
23562 return function(object, iteratee, keysFunc) {
23563 var index = -1,
23564 iterable = Object(object),
23565 props = keysFunc(object),
23566 length = props.length;
23567
23568 while (length--) {
23569 var key = props[fromRight ? length : ++index];
23570 if (iteratee(iterable[key], key, iterable) === false) {
23571 break;
23572 }
23573 }
23574 return object;
23575 };
23576 }
23577
23578 /**
23579 * Creates a function that wraps `func` to invoke it with the optional `this`
23580 * binding of `thisArg`.
23581 *
23582 * @private
23583 * @param {Function} func The function to wrap.
23584 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
23585 * @param {*} [thisArg] The `this` binding of `func`.
23586 * @returns {Function} Returns the new wrapped function.
23587 */
23588 function createBind(func, bitmask, thisArg) {
23589 var isBind = bitmask & WRAP_BIND_FLAG,
23590 Ctor = createCtor(func);
23591
23592 function wrapper() {
23593 var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
23594 return fn.apply(isBind ? thisArg : this, arguments);
23595 }
23596 return wrapper;
23597 }
23598
23599 /**
23600 * Creates a function like `_.lowerFirst`.
23601 *
23602 * @private
23603 * @param {string} methodName The name of the `String` case method to use.
23604 * @returns {Function} Returns the new case function.
23605 */
23606 function createCaseFirst(methodName) {
23607 return function(string) {
23608 string = toString(string);
23609
23610 var strSymbols = hasUnicode(string)
23611 ? stringToArray(string)
23612 : undefined;
23613
23614 var chr = strSymbols
23615 ? strSymbols[0]
23616 : string.charAt(0);
23617
23618 var trailing = strSymbols
23619 ? castSlice(strSymbols, 1).join('')
23620 : string.slice(1);
23621
23622 return chr[methodName]() + trailing;
23623 };
23624 }
23625
23626 /**
23627 * Creates a function like `_.camelCase`.
23628 *
23629 * @private
23630 * @param {Function} callback The function to combine each word.
23631 * @returns {Function} Returns the new compounder function.
23632 */
23633 function createCompounder(callback) {
23634 return function(string) {
23635 return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');
23636 };
23637 }
23638
23639 /**
23640 * Creates a function that produces an instance of `Ctor` regardless of
23641 * whether it was invoked as part of a `new` expression or by `call` or `apply`.
23642 *
23643 * @private
23644 * @param {Function} Ctor The constructor to wrap.
23645 * @returns {Function} Returns the new wrapped function.
23646 */
23647 function createCtor(Ctor) {
23648 return function() {
23649 // Use a `switch` statement to work with class constructors. See
23650 // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
23651 // for more details.
23652 var args = arguments;
23653 switch (args.length) {
23654 case 0: return new Ctor;
23655 case 1: return new Ctor(args[0]);
23656 case 2: return new Ctor(args[0], args[1]);
23657 case 3: return new Ctor(args[0], args[1], args[2]);
23658 case 4: return new Ctor(args[0], args[1], args[2], args[3]);
23659 case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);
23660 case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
23661 case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
23662 }
23663 var thisBinding = baseCreate(Ctor.prototype),
23664 result = Ctor.apply(thisBinding, args);
23665
23666 // Mimic the constructor's `return` behavior.
23667 // See https://es5.github.io/#x13.2.2 for more details.
23668 return isObject(result) ? result : thisBinding;
23669 };
23670 }
23671
23672 /**
23673 * Creates a function that wraps `func` to enable currying.
23674 *
23675 * @private
23676 * @param {Function} func The function to wrap.
23677 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
23678 * @param {number} arity The arity of `func`.
23679 * @returns {Function} Returns the new wrapped function.
23680 */
23681 function createCurry(func, bitmask, arity) {
23682 var Ctor = createCtor(func);
23683
23684 function wrapper() {
23685 var length = arguments.length,
23686 args = Array(length),
23687 index = length,
23688 placeholder = getHolder(wrapper);
23689
23690 while (index--) {
23691 args[index] = arguments[index];
23692 }
23693 var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)
23694 ? []
23695 : replaceHolders(args, placeholder);
23696
23697 length -= holders.length;
23698 if (length < arity) {
23699 return createRecurry(
23700 func, bitmask, createHybrid, wrapper.placeholder, undefined,
23701 args, holders, undefined, undefined, arity - length);
23702 }
23703 var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
23704 return apply(fn, this, args);
23705 }
23706 return wrapper;
23707 }
23708
23709 /**
23710 * Creates a `_.find` or `_.findLast` function.
23711 *
23712 * @private
23713 * @param {Function} findIndexFunc The function to find the collection index.
23714 * @returns {Function} Returns the new find function.
23715 */
23716 function createFind(findIndexFunc) {
23717 return function(collection, predicate, fromIndex) {
23718 var iterable = Object(collection);
23719 if (!isArrayLike(collection)) {
23720 var iteratee = getIteratee(predicate, 3);
23721 collection = keys(collection);
23722 predicate = function(key) { return iteratee(iterable[key], key, iterable); };
23723 }
23724 var index = findIndexFunc(collection, predicate, fromIndex);
23725 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;
23726 };
23727 }
23728
23729 /**
23730 * Creates a `_.flow` or `_.flowRight` function.
23731 *
23732 * @private
23733 * @param {boolean} [fromRight] Specify iterating from right to left.
23734 * @returns {Function} Returns the new flow function.
23735 */
23736 function createFlow(fromRight) {
23737 return flatRest(function(funcs) {
23738 var length = funcs.length,
23739 index = length,
23740 prereq = LodashWrapper.prototype.thru;
23741
23742 if (fromRight) {
23743 funcs.reverse();
23744 }
23745 while (index--) {
23746 var func = funcs[index];
23747 if (typeof func != 'function') {
23748 throw new TypeError(FUNC_ERROR_TEXT);
23749 }
23750 if (prereq && !wrapper && getFuncName(func) == 'wrapper') {
23751 var wrapper = new LodashWrapper([], true);
23752 }
23753 }
23754 index = wrapper ? index : length;
23755 while (++index < length) {
23756 func = funcs[index];
23757
23758 var funcName = getFuncName(func),
23759 data = funcName == 'wrapper' ? getData(func) : undefined;
23760
23761 if (data && isLaziable(data[0]) &&
23762 data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&
23763 !data[4].length && data[9] == 1
23764 ) {
23765 wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);
23766 } else {
23767 wrapper = (func.length == 1 && isLaziable(func))
23768 ? wrapper[funcName]()
23769 : wrapper.thru(func);
23770 }
23771 }
23772 return function() {
23773 var args = arguments,
23774 value = args[0];
23775
23776 if (wrapper && args.length == 1 && isArray(value)) {
23777 return wrapper.plant(value).value();
23778 }
23779 var index = 0,
23780 result = length ? funcs[index].apply(this, args) : value;
23781
23782 while (++index < length) {
23783 result = funcs[index].call(this, result);
23784 }
23785 return result;
23786 };
23787 });
23788 }
23789
23790 /**
23791 * Creates a function that wraps `func` to invoke it with optional `this`
23792 * binding of `thisArg`, partial application, and currying.
23793 *
23794 * @private
23795 * @param {Function|string} func The function or method name to wrap.
23796 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
23797 * @param {*} [thisArg] The `this` binding of `func`.
23798 * @param {Array} [partials] The arguments to prepend to those provided to
23799 * the new function.
23800 * @param {Array} [holders] The `partials` placeholder indexes.
23801 * @param {Array} [partialsRight] The arguments to append to those provided
23802 * to the new function.
23803 * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.
23804 * @param {Array} [argPos] The argument positions of the new function.
23805 * @param {number} [ary] The arity cap of `func`.
23806 * @param {number} [arity] The arity of `func`.
23807 * @returns {Function} Returns the new wrapped function.
23808 */
23809 function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {
23810 var isAry = bitmask & WRAP_ARY_FLAG,
23811 isBind = bitmask & WRAP_BIND_FLAG,
23812 isBindKey = bitmask & WRAP_BIND_KEY_FLAG,
23813 isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),
23814 isFlip = bitmask & WRAP_FLIP_FLAG,
23815 Ctor = isBindKey ? undefined : createCtor(func);
23816
23817 function wrapper() {
23818 var length = arguments.length,
23819 args = Array(length),
23820 index = length;
23821
23822 while (index--) {
23823 args[index] = arguments[index];
23824 }
23825 if (isCurried) {
23826 var placeholder = getHolder(wrapper),
23827 holdersCount = countHolders(args, placeholder);
23828 }
23829 if (partials) {
23830 args = composeArgs(args, partials, holders, isCurried);
23831 }
23832 if (partialsRight) {
23833 args = composeArgsRight(args, partialsRight, holdersRight, isCurried);
23834 }
23835 length -= holdersCount;
23836 if (isCurried && length < arity) {
23837 var newHolders = replaceHolders(args, placeholder);
23838 return createRecurry(
23839 func, bitmask, createHybrid, wrapper.placeholder, thisArg,
23840 args, newHolders, argPos, ary, arity - length
23841 );
23842 }
23843 var thisBinding = isBind ? thisArg : this,
23844 fn = isBindKey ? thisBinding[func] : func;
23845
23846 length = args.length;
23847 if (argPos) {
23848 args = reorder(args, argPos);
23849 } else if (isFlip && length > 1) {
23850 args.reverse();
23851 }
23852 if (isAry && ary < length) {
23853 args.length = ary;
23854 }
23855 if (this && this !== root && this instanceof wrapper) {
23856 fn = Ctor || createCtor(fn);
23857 }
23858 return fn.apply(thisBinding, args);
23859 }
23860 return wrapper;
23861 }
23862
23863 /**
23864 * Creates a function like `_.invertBy`.
23865 *
23866 * @private
23867 * @param {Function} setter The function to set accumulator values.
23868 * @param {Function} toIteratee The function to resolve iteratees.
23869 * @returns {Function} Returns the new inverter function.
23870 */
23871 function createInverter(setter, toIteratee) {
23872 return function(object, iteratee) {
23873 return baseInverter(object, setter, toIteratee(iteratee), {});
23874 };
23875 }
23876
23877 /**
23878 * Creates a function that performs a mathematical operation on two values.
23879 *
23880 * @private
23881 * @param {Function} operator The function to perform the operation.
23882 * @param {number} [defaultValue] The value used for `undefined` arguments.
23883 * @returns {Function} Returns the new mathematical operation function.
23884 */
23885 function createMathOperation(operator, defaultValue) {
23886 return function(value, other) {
23887 var result;
23888 if (value === undefined && other === undefined) {
23889 return defaultValue;
23890 }
23891 if (value !== undefined) {
23892 result = value;
23893 }
23894 if (other !== undefined) {
23895 if (result === undefined) {
23896 return other;
23897 }
23898 if (typeof value == 'string' || typeof other == 'string') {
23899 value = baseToString(value);
23900 other = baseToString(other);
23901 } else {
23902 value = baseToNumber(value);
23903 other = baseToNumber(other);
23904 }
23905 result = operator(value, other);
23906 }
23907 return result;
23908 };
23909 }
23910
23911 /**
23912 * Creates a function like `_.over`.
23913 *
23914 * @private
23915 * @param {Function} arrayFunc The function to iterate over iteratees.
23916 * @returns {Function} Returns the new over function.
23917 */
23918 function createOver(arrayFunc) {
23919 return flatRest(function(iteratees) {
23920 iteratees = arrayMap(iteratees, baseUnary(getIteratee()));
23921 return baseRest(function(args) {
23922 var thisArg = this;
23923 return arrayFunc(iteratees, function(iteratee) {
23924 return apply(iteratee, thisArg, args);
23925 });
23926 });
23927 });
23928 }
23929
23930 /**
23931 * Creates the padding for `string` based on `length`. The `chars` string
23932 * is truncated if the number of characters exceeds `length`.
23933 *
23934 * @private
23935 * @param {number} length The padding length.
23936 * @param {string} [chars=' '] The string used as padding.
23937 * @returns {string} Returns the padding for `string`.
23938 */
23939 function createPadding(length, chars) {
23940 chars = chars === undefined ? ' ' : baseToString(chars);
23941
23942 var charsLength = chars.length;
23943 if (charsLength < 2) {
23944 return charsLength ? baseRepeat(chars, length) : chars;
23945 }
23946 var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));
23947 return hasUnicode(chars)
23948 ? castSlice(stringToArray(result), 0, length).join('')
23949 : result.slice(0, length);
23950 }
23951
23952 /**
23953 * Creates a function that wraps `func` to invoke it with the `this` binding
23954 * of `thisArg` and `partials` prepended to the arguments it receives.
23955 *
23956 * @private
23957 * @param {Function} func The function to wrap.
23958 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
23959 * @param {*} thisArg The `this` binding of `func`.
23960 * @param {Array} partials The arguments to prepend to those provided to
23961 * the new function.
23962 * @returns {Function} Returns the new wrapped function.
23963 */
23964 function createPartial(func, bitmask, thisArg, partials) {
23965 var isBind = bitmask & WRAP_BIND_FLAG,
23966 Ctor = createCtor(func);
23967
23968 function wrapper() {
23969 var argsIndex = -1,
23970 argsLength = arguments.length,
23971 leftIndex = -1,
23972 leftLength = partials.length,
23973 args = Array(leftLength + argsLength),
23974 fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
23975
23976 while (++leftIndex < leftLength) {
23977 args[leftIndex] = partials[leftIndex];
23978 }
23979 while (argsLength--) {
23980 args[leftIndex++] = arguments[++argsIndex];
23981 }
23982 return apply(fn, isBind ? thisArg : this, args);
23983 }
23984 return wrapper;
23985 }
23986
23987 /**
23988 * Creates a `_.range` or `_.rangeRight` function.
23989 *
23990 * @private
23991 * @param {boolean} [fromRight] Specify iterating from right to left.
23992 * @returns {Function} Returns the new range function.
23993 */
23994 function createRange(fromRight) {
23995 return function(start, end, step) {
23996 if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {
23997 end = step = undefined;
23998 }
23999 // Ensure the sign of `-0` is preserved.
24000 start = toFinite(start);
24001 if (end === undefined) {
24002 end = start;
24003 start = 0;
24004 } else {
24005 end = toFinite(end);
24006 }
24007 step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);
24008 return baseRange(start, end, step, fromRight);
24009 };
24010 }
24011
24012 /**
24013 * Creates a function that performs a relational operation on two values.
24014 *
24015 * @private
24016 * @param {Function} operator The function to perform the operation.
24017 * @returns {Function} Returns the new relational operation function.
24018 */
24019 function createRelationalOperation(operator) {
24020 return function(value, other) {
24021 if (!(typeof value == 'string' && typeof other == 'string')) {
24022 value = toNumber(value);
24023 other = toNumber(other);
24024 }
24025 return operator(value, other);
24026 };
24027 }
24028
24029 /**
24030 * Creates a function that wraps `func` to continue currying.
24031 *
24032 * @private
24033 * @param {Function} func The function to wrap.
24034 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
24035 * @param {Function} wrapFunc The function to create the `func` wrapper.
24036 * @param {*} placeholder The placeholder value.
24037 * @param {*} [thisArg] The `this` binding of `func`.
24038 * @param {Array} [partials] The arguments to prepend to those provided to
24039 * the new function.
24040 * @param {Array} [holders] The `partials` placeholder indexes.
24041 * @param {Array} [argPos] The argument positions of the new function.
24042 * @param {number} [ary] The arity cap of `func`.
24043 * @param {number} [arity] The arity of `func`.
24044 * @returns {Function} Returns the new wrapped function.
24045 */
24046 function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {
24047 var isCurry = bitmask & WRAP_CURRY_FLAG,
24048 newHolders = isCurry ? holders : undefined,
24049 newHoldersRight = isCurry ? undefined : holders,
24050 newPartials = isCurry ? partials : undefined,
24051 newPartialsRight = isCurry ? undefined : partials;
24052
24053 bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);
24054 bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);
24055
24056 if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {
24057 bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);
24058 }
24059 var newData = [
24060 func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,
24061 newHoldersRight, argPos, ary, arity
24062 ];
24063
24064 var result = wrapFunc.apply(undefined, newData);
24065 if (isLaziable(func)) {
24066 setData(result, newData);
24067 }
24068 result.placeholder = placeholder;
24069 return setWrapToString(result, func, bitmask);
24070 }
24071
24072 /**
24073 * Creates a function like `_.round`.
24074 *
24075 * @private
24076 * @param {string} methodName The name of the `Math` method to use when rounding.
24077 * @returns {Function} Returns the new round function.
24078 */
24079 function createRound(methodName) {
24080 var func = Math[methodName];
24081 return function(number, precision) {
24082 number = toNumber(number);
24083 precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);
24084 if (precision) {
24085 // Shift with exponential notation to avoid floating-point issues.
24086 // See [MDN](https://mdn.io/round#Examples) for more details.
24087 var pair = (toString(number) + 'e').split('e'),
24088 value = func(pair[0] + 'e' + (+pair[1] + precision));
24089
24090 pair = (toString(value) + 'e').split('e');
24091 return +(pair[0] + 'e' + (+pair[1] - precision));
24092 }
24093 return func(number);
24094 };
24095 }
24096
24097 /**
24098 * Creates a set object of `values`.
24099 *
24100 * @private
24101 * @param {Array} values The values to add to the set.
24102 * @returns {Object} Returns the new set.
24103 */
24104 var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {
24105 return new Set(values);
24106 };
24107
24108 /**
24109 * Creates a `_.toPairs` or `_.toPairsIn` function.
24110 *
24111 * @private
24112 * @param {Function} keysFunc The function to get the keys of a given object.
24113 * @returns {Function} Returns the new pairs function.
24114 */
24115 function createToPairs(keysFunc) {
24116 return function(object) {
24117 var tag = getTag(object);
24118 if (tag == mapTag) {
24119 return mapToArray(object);
24120 }
24121 if (tag == setTag) {
24122 return setToPairs(object);
24123 }
24124 return baseToPairs(object, keysFunc(object));
24125 };
24126 }
24127
24128 /**
24129 * Creates a function that either curries or invokes `func` with optional
24130 * `this` binding and partially applied arguments.
24131 *
24132 * @private
24133 * @param {Function|string} func The function or method name to wrap.
24134 * @param {number} bitmask The bitmask flags.
24135 * 1 - `_.bind`
24136 * 2 - `_.bindKey`
24137 * 4 - `_.curry` or `_.curryRight` of a bound function
24138 * 8 - `_.curry`
24139 * 16 - `_.curryRight`
24140 * 32 - `_.partial`
24141 * 64 - `_.partialRight`
24142 * 128 - `_.rearg`
24143 * 256 - `_.ary`
24144 * 512 - `_.flip`
24145 * @param {*} [thisArg] The `this` binding of `func`.
24146 * @param {Array} [partials] The arguments to be partially applied.
24147 * @param {Array} [holders] The `partials` placeholder indexes.
24148 * @param {Array} [argPos] The argument positions of the new function.
24149 * @param {number} [ary] The arity cap of `func`.
24150 * @param {number} [arity] The arity of `func`.
24151 * @returns {Function} Returns the new wrapped function.
24152 */
24153 function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {
24154 var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
24155 if (!isBindKey && typeof func != 'function') {
24156 throw new TypeError(FUNC_ERROR_TEXT);
24157 }
24158 var length = partials ? partials.length : 0;
24159 if (!length) {
24160 bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);
24161 partials = holders = undefined;
24162 }
24163 ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);
24164 arity = arity === undefined ? arity : toInteger(arity);
24165 length -= holders ? holders.length : 0;
24166
24167 if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {
24168 var partialsRight = partials,
24169 holdersRight = holders;
24170
24171 partials = holders = undefined;
24172 }
24173 var data = isBindKey ? undefined : getData(func);
24174
24175 var newData = [
24176 func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,
24177 argPos, ary, arity
24178 ];
24179
24180 if (data) {
24181 mergeData(newData, data);
24182 }
24183 func = newData[0];
24184 bitmask = newData[1];
24185 thisArg = newData[2];
24186 partials = newData[3];
24187 holders = newData[4];
24188 arity = newData[9] = newData[9] === undefined
24189 ? (isBindKey ? 0 : func.length)
24190 : nativeMax(newData[9] - length, 0);
24191
24192 if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
24193 bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
24194 }
24195 if (!bitmask || bitmask == WRAP_BIND_FLAG) {
24196 var result = createBind(func, bitmask, thisArg);
24197 } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {
24198 result = createCurry(func, bitmask, arity);
24199 } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {
24200 result = createPartial(func, bitmask, thisArg, partials);
24201 } else {
24202 result = createHybrid.apply(undefined, newData);
24203 }
24204 var setter = data ? baseSetData : setData;
24205 return setWrapToString(setter(result, newData), func, bitmask);
24206 }
24207
24208 /**
24209 * Used by `_.defaults` to customize its `_.assignIn` use to assign properties
24210 * of source objects to the destination object for all destination properties
24211 * that resolve to `undefined`.
24212 *
24213 * @private
24214 * @param {*} objValue The destination value.
24215 * @param {*} srcValue The source value.
24216 * @param {string} key The key of the property to assign.
24217 * @param {Object} object The parent object of `objValue`.
24218 * @returns {*} Returns the value to assign.
24219 */
24220 function customDefaultsAssignIn(objValue, srcValue, key, object) {
24221 if (objValue === undefined ||
24222 (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {
24223 return srcValue;
24224 }
24225 return objValue;
24226 }
24227
24228 /**
24229 * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source
24230 * objects into destination objects that are passed thru.
24231 *
24232 * @private
24233 * @param {*} objValue The destination value.
24234 * @param {*} srcValue The source value.
24235 * @param {string} key The key of the property to merge.
24236 * @param {Object} object The parent object of `objValue`.
24237 * @param {Object} source The parent object of `srcValue`.
24238 * @param {Object} [stack] Tracks traversed source values and their merged
24239 * counterparts.
24240 * @returns {*} Returns the value to assign.
24241 */
24242 function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {
24243 if (isObject(objValue) && isObject(srcValue)) {
24244 // Recursively merge objects and arrays (susceptible to call stack limits).
24245 stack.set(srcValue, objValue);
24246 baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);
24247 stack['delete'](srcValue);
24248 }
24249 return objValue;
24250 }
24251
24252 /**
24253 * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain
24254 * objects.
24255 *
24256 * @private
24257 * @param {*} value The value to inspect.
24258 * @param {string} key The key of the property to inspect.
24259 * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.
24260 */
24261 function customOmitClone(value) {
24262 return isPlainObject(value) ? undefined : value;
24263 }
24264
24265 /**
24266 * A specialized version of `baseIsEqualDeep` for arrays with support for
24267 * partial deep comparisons.
24268 *
24269 * @private
24270 * @param {Array} array The array to compare.
24271 * @param {Array} other The other array to compare.
24272 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
24273 * @param {Function} customizer The function to customize comparisons.
24274 * @param {Function} equalFunc The function to determine equivalents of values.
24275 * @param {Object} stack Tracks traversed `array` and `other` objects.
24276 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
24277 */
24278 function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
24279 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
24280 arrLength = array.length,
24281 othLength = other.length;
24282
24283 if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
24284 return false;
24285 }
24286 // Assume cyclic values are equal.
24287 var stacked = stack.get(array);
24288 if (stacked && stack.get(other)) {
24289 return stacked == other;
24290 }
24291 var index = -1,
24292 result = true,
24293 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
24294
24295 stack.set(array, other);
24296 stack.set(other, array);
24297
24298 // Ignore non-index properties.
24299 while (++index < arrLength) {
24300 var arrValue = array[index],
24301 othValue = other[index];
24302
24303 if (customizer) {
24304 var compared = isPartial
24305 ? customizer(othValue, arrValue, index, other, array, stack)
24306 : customizer(arrValue, othValue, index, array, other, stack);
24307 }
24308 if (compared !== undefined) {
24309 if (compared) {
24310 continue;
24311 }
24312 result = false;
24313 break;
24314 }
24315 // Recursively compare arrays (susceptible to call stack limits).
24316 if (seen) {
24317 if (!arraySome(other, function(othValue, othIndex) {
24318 if (!cacheHas(seen, othIndex) &&
24319 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
24320 return seen.push(othIndex);
24321 }
24322 })) {
24323 result = false;
24324 break;
24325 }
24326 } else if (!(
24327 arrValue === othValue ||
24328 equalFunc(arrValue, othValue, bitmask, customizer, stack)
24329 )) {
24330 result = false;
24331 break;
24332 }
24333 }
24334 stack['delete'](array);
24335 stack['delete'](other);
24336 return result;
24337 }
24338
24339 /**
24340 * A specialized version of `baseIsEqualDeep` for comparing objects of
24341 * the same `toStringTag`.
24342 *
24343 * **Note:** This function only supports comparing values with tags of
24344 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
24345 *
24346 * @private
24347 * @param {Object} object The object to compare.
24348 * @param {Object} other The other object to compare.
24349 * @param {string} tag The `toStringTag` of the objects to compare.
24350 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
24351 * @param {Function} customizer The function to customize comparisons.
24352 * @param {Function} equalFunc The function to determine equivalents of values.
24353 * @param {Object} stack Tracks traversed `object` and `other` objects.
24354 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
24355 */
24356 function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
24357 switch (tag) {
24358 case dataViewTag:
24359 if ((object.byteLength != other.byteLength) ||
24360 (object.byteOffset != other.byteOffset)) {
24361 return false;
24362 }
24363 object = object.buffer;
24364 other = other.buffer;
24365
24366 case arrayBufferTag:
24367 if ((object.byteLength != other.byteLength) ||
24368 !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
24369 return false;
24370 }
24371 return true;
24372
24373 case boolTag:
24374 case dateTag:
24375 case numberTag:
24376 // Coerce booleans to `1` or `0` and dates to milliseconds.
24377 // Invalid dates are coerced to `NaN`.
24378 return eq(+object, +other);
24379
24380 case errorTag:
24381 return object.name == other.name && object.message == other.message;
24382
24383 case regexpTag:
24384 case stringTag:
24385 // Coerce regexes to strings and treat strings, primitives and objects,
24386 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
24387 // for more details.
24388 return object == (other + '');
24389
24390 case mapTag:
24391 var convert = mapToArray;
24392
24393 case setTag:
24394 var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
24395 convert || (convert = setToArray);
24396
24397 if (object.size != other.size && !isPartial) {
24398 return false;
24399 }
24400 // Assume cyclic values are equal.
24401 var stacked = stack.get(object);
24402 if (stacked) {
24403 return stacked == other;
24404 }
24405 bitmask |= COMPARE_UNORDERED_FLAG;
24406
24407 // Recursively compare objects (susceptible to call stack limits).
24408 stack.set(object, other);
24409 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
24410 stack['delete'](object);
24411 return result;
24412
24413 case symbolTag:
24414 if (symbolValueOf) {
24415 return symbolValueOf.call(object) == symbolValueOf.call(other);
24416 }
24417 }
24418 return false;
24419 }
24420
24421 /**
24422 * A specialized version of `baseIsEqualDeep` for objects with support for
24423 * partial deep comparisons.
24424 *
24425 * @private
24426 * @param {Object} object The object to compare.
24427 * @param {Object} other The other object to compare.
24428 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
24429 * @param {Function} customizer The function to customize comparisons.
24430 * @param {Function} equalFunc The function to determine equivalents of values.
24431 * @param {Object} stack Tracks traversed `object` and `other` objects.
24432 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
24433 */
24434 function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
24435 var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
24436 objProps = getAllKeys(object),
24437 objLength = objProps.length,
24438 othProps = getAllKeys(other),
24439 othLength = othProps.length;
24440
24441 if (objLength != othLength && !isPartial) {
24442 return false;
24443 }
24444 var index = objLength;
24445 while (index--) {
24446 var key = objProps[index];
24447 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
24448 return false;
24449 }
24450 }
24451 // Assume cyclic values are equal.
24452 var stacked = stack.get(object);
24453 if (stacked && stack.get(other)) {
24454 return stacked == other;
24455 }
24456 var result = true;
24457 stack.set(object, other);
24458 stack.set(other, object);
24459
24460 var skipCtor = isPartial;
24461 while (++index < objLength) {
24462 key = objProps[index];
24463 var objValue = object[key],
24464 othValue = other[key];
24465
24466 if (customizer) {
24467 var compared = isPartial
24468 ? customizer(othValue, objValue, key, other, object, stack)
24469 : customizer(objValue, othValue, key, object, other, stack);
24470 }
24471 // Recursively compare objects (susceptible to call stack limits).
24472 if (!(compared === undefined
24473 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
24474 : compared
24475 )) {
24476 result = false;
24477 break;
24478 }
24479 skipCtor || (skipCtor = key == 'constructor');
24480 }
24481 if (result && !skipCtor) {
24482 var objCtor = object.constructor,
24483 othCtor = other.constructor;
24484
24485 // Non `Object` object instances with different constructors are not equal.
24486 if (objCtor != othCtor &&
24487 ('constructor' in object && 'constructor' in other) &&
24488 !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
24489 typeof othCtor == 'function' && othCtor instanceof othCtor)) {
24490 result = false;
24491 }
24492 }
24493 stack['delete'](object);
24494 stack['delete'](other);
24495 return result;
24496 }
24497
24498 /**
24499 * A specialized version of `baseRest` which flattens the rest array.
24500 *
24501 * @private
24502 * @param {Function} func The function to apply a rest parameter to.
24503 * @returns {Function} Returns the new function.
24504 */
24505 function flatRest(func) {
24506 return setToString(overRest(func, undefined, flatten), func + '');
24507 }
24508
24509 /**
24510 * Creates an array of own enumerable property names and symbols of `object`.
24511 *
24512 * @private
24513 * @param {Object} object The object to query.
24514 * @returns {Array} Returns the array of property names and symbols.
24515 */
24516 function getAllKeys(object) {
24517 return baseGetAllKeys(object, keys, getSymbols);
24518 }
24519
24520 /**
24521 * Creates an array of own and inherited enumerable property names and
24522 * symbols of `object`.
24523 *
24524 * @private
24525 * @param {Object} object The object to query.
24526 * @returns {Array} Returns the array of property names and symbols.
24527 */
24528 function getAllKeysIn(object) {
24529 return baseGetAllKeys(object, keysIn, getSymbolsIn);
24530 }
24531
24532 /**
24533 * Gets metadata for `func`.
24534 *
24535 * @private
24536 * @param {Function} func The function to query.
24537 * @returns {*} Returns the metadata for `func`.
24538 */
24539 var getData = !metaMap ? noop : function(func) {
24540 return metaMap.get(func);
24541 };
24542
24543 /**
24544 * Gets the name of `func`.
24545 *
24546 * @private
24547 * @param {Function} func The function to query.
24548 * @returns {string} Returns the function name.
24549 */
24550 function getFuncName(func) {
24551 var result = (func.name + ''),
24552 array = realNames[result],
24553 length = hasOwnProperty.call(realNames, result) ? array.length : 0;
24554
24555 while (length--) {
24556 var data = array[length],
24557 otherFunc = data.func;
24558 if (otherFunc == null || otherFunc == func) {
24559 return data.name;
24560 }
24561 }
24562 return result;
24563 }
24564
24565 /**
24566 * Gets the argument placeholder value for `func`.
24567 *
24568 * @private
24569 * @param {Function} func The function to inspect.
24570 * @returns {*} Returns the placeholder value.
24571 */
24572 function getHolder(func) {
24573 var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;
24574 return object.placeholder;
24575 }
24576
24577 /**
24578 * Gets the appropriate "iteratee" function. If `_.iteratee` is customized,
24579 * this function returns the custom method, otherwise it returns `baseIteratee`.
24580 * If arguments are provided, the chosen function is invoked with them and
24581 * its result is returned.
24582 *
24583 * @private
24584 * @param {*} [value] The value to convert to an iteratee.
24585 * @param {number} [arity] The arity of the created iteratee.
24586 * @returns {Function} Returns the chosen function or its result.
24587 */
24588 function getIteratee() {
24589 var result = lodash.iteratee || iteratee;
24590 result = result === iteratee ? baseIteratee : result;
24591 return arguments.length ? result(arguments[0], arguments[1]) : result;
24592 }
24593
24594 /**
24595 * Gets the data for `map`.
24596 *
24597 * @private
24598 * @param {Object} map The map to query.
24599 * @param {string} key The reference key.
24600 * @returns {*} Returns the map data.
24601 */
24602 function getMapData(map, key) {
24603 var data = map.__data__;
24604 return isKeyable(key)
24605 ? data[typeof key == 'string' ? 'string' : 'hash']
24606 : data.map;
24607 }
24608
24609 /**
24610 * Gets the property names, values, and compare flags of `object`.
24611 *
24612 * @private
24613 * @param {Object} object The object to query.
24614 * @returns {Array} Returns the match data of `object`.
24615 */
24616 function getMatchData(object) {
24617 var result = keys(object),
24618 length = result.length;
24619
24620 while (length--) {
24621 var key = result[length],
24622 value = object[key];
24623
24624 result[length] = [key, value, isStrictComparable(value)];
24625 }
24626 return result;
24627 }
24628
24629 /**
24630 * Gets the native function at `key` of `object`.
24631 *
24632 * @private
24633 * @param {Object} object The object to query.
24634 * @param {string} key The key of the method to get.
24635 * @returns {*} Returns the function if it's native, else `undefined`.
24636 */
24637 function getNative(object, key) {
24638 var value = getValue(object, key);
24639 return baseIsNative(value) ? value : undefined;
24640 }
24641
24642 /**
24643 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
24644 *
24645 * @private
24646 * @param {*} value The value to query.
24647 * @returns {string} Returns the raw `toStringTag`.
24648 */
24649 function getRawTag(value) {
24650 var isOwn = hasOwnProperty.call(value, symToStringTag),
24651 tag = value[symToStringTag];
24652
24653 try {
24654 value[symToStringTag] = undefined;
24655 var unmasked = true;
24656 } catch (e) {}
24657
24658 var result = nativeObjectToString.call(value);
24659 if (unmasked) {
24660 if (isOwn) {
24661 value[symToStringTag] = tag;
24662 } else {
24663 delete value[symToStringTag];
24664 }
24665 }
24666 return result;
24667 }
24668
24669 /**
24670 * Creates an array of the own enumerable symbols of `object`.
24671 *
24672 * @private
24673 * @param {Object} object The object to query.
24674 * @returns {Array} Returns the array of symbols.
24675 */
24676 var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
24677 if (object == null) {
24678 return [];
24679 }
24680 object = Object(object);
24681 return arrayFilter(nativeGetSymbols(object), function(symbol) {
24682 return propertyIsEnumerable.call(object, symbol);
24683 });
24684 };
24685
24686 /**
24687 * Creates an array of the own and inherited enumerable symbols of `object`.
24688 *
24689 * @private
24690 * @param {Object} object The object to query.
24691 * @returns {Array} Returns the array of symbols.
24692 */
24693 var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {
24694 var result = [];
24695 while (object) {
24696 arrayPush(result, getSymbols(object));
24697 object = getPrototype(object);
24698 }
24699 return result;
24700 };
24701
24702 /**
24703 * Gets the `toStringTag` of `value`.
24704 *
24705 * @private
24706 * @param {*} value The value to query.
24707 * @returns {string} Returns the `toStringTag`.
24708 */
24709 var getTag = baseGetTag;
24710
24711 // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
24712 if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
24713 (Map && getTag(new Map) != mapTag) ||
24714 (Promise && getTag(Promise.resolve()) != promiseTag) ||
24715 (Set && getTag(new Set) != setTag) ||
24716 (WeakMap && getTag(new WeakMap) != weakMapTag)) {
24717 getTag = function(value) {
24718 var result = baseGetTag(value),
24719 Ctor = result == objectTag ? value.constructor : undefined,
24720 ctorString = Ctor ? toSource(Ctor) : '';
24721
24722 if (ctorString) {
24723 switch (ctorString) {
24724 case dataViewCtorString: return dataViewTag;
24725 case mapCtorString: return mapTag;
24726 case promiseCtorString: return promiseTag;
24727 case setCtorString: return setTag;
24728 case weakMapCtorString: return weakMapTag;
24729 }
24730 }
24731 return result;
24732 };
24733 }
24734
24735 /**
24736 * Gets the view, applying any `transforms` to the `start` and `end` positions.
24737 *
24738 * @private
24739 * @param {number} start The start of the view.
24740 * @param {number} end The end of the view.
24741 * @param {Array} transforms The transformations to apply to the view.
24742 * @returns {Object} Returns an object containing the `start` and `end`
24743 * positions of the view.
24744 */
24745 function getView(start, end, transforms) {
24746 var index = -1,
24747 length = transforms.length;
24748
24749 while (++index < length) {
24750 var data = transforms[index],
24751 size = data.size;
24752
24753 switch (data.type) {
24754 case 'drop': start += size; break;
24755 case 'dropRight': end -= size; break;
24756 case 'take': end = nativeMin(end, start + size); break;
24757 case 'takeRight': start = nativeMax(start, end - size); break;
24758 }
24759 }
24760 return { 'start': start, 'end': end };
24761 }
24762
24763 /**
24764 * Extracts wrapper details from the `source` body comment.
24765 *
24766 * @private
24767 * @param {string} source The source to inspect.
24768 * @returns {Array} Returns the wrapper details.
24769 */
24770 function getWrapDetails(source) {
24771 var match = source.match(reWrapDetails);
24772 return match ? match[1].split(reSplitDetails) : [];
24773 }
24774
24775 /**
24776 * Checks if `path` exists on `object`.
24777 *
24778 * @private
24779 * @param {Object} object The object to query.
24780 * @param {Array|string} path The path to check.
24781 * @param {Function} hasFunc The function to check properties.
24782 * @returns {boolean} Returns `true` if `path` exists, else `false`.
24783 */
24784 function hasPath(object, path, hasFunc) {
24785 path = castPath(path, object);
24786
24787 var index = -1,
24788 length = path.length,
24789 result = false;
24790
24791 while (++index < length) {
24792 var key = toKey(path[index]);
24793 if (!(result = object != null && hasFunc(object, key))) {
24794 break;
24795 }
24796 object = object[key];
24797 }
24798 if (result || ++index != length) {
24799 return result;
24800 }
24801 length = object == null ? 0 : object.length;
24802 return !!length && isLength(length) && isIndex(key, length) &&
24803 (isArray(object) || isArguments(object));
24804 }
24805
24806 /**
24807 * Initializes an array clone.
24808 *
24809 * @private
24810 * @param {Array} array The array to clone.
24811 * @returns {Array} Returns the initialized clone.
24812 */
24813 function initCloneArray(array) {
24814 var length = array.length,
24815 result = new array.constructor(length);
24816
24817 // Add properties assigned by `RegExp#exec`.
24818 if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
24819 result.index = array.index;
24820 result.input = array.input;
24821 }
24822 return result;
24823 }
24824
24825 /**
24826 * Initializes an object clone.
24827 *
24828 * @private
24829 * @param {Object} object The object to clone.
24830 * @returns {Object} Returns the initialized clone.
24831 */
24832 function initCloneObject(object) {
24833 return (typeof object.constructor == 'function' && !isPrototype(object))
24834 ? baseCreate(getPrototype(object))
24835 : {};
24836 }
24837
24838 /**
24839 * Initializes an object clone based on its `toStringTag`.
24840 *
24841 * **Note:** This function only supports cloning values with tags of
24842 * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.
24843 *
24844 * @private
24845 * @param {Object} object The object to clone.
24846 * @param {string} tag The `toStringTag` of the object to clone.
24847 * @param {boolean} [isDeep] Specify a deep clone.
24848 * @returns {Object} Returns the initialized clone.
24849 */
24850 function initCloneByTag(object, tag, isDeep) {
24851 var Ctor = object.constructor;
24852 switch (tag) {
24853 case arrayBufferTag:
24854 return cloneArrayBuffer(object);
24855
24856 case boolTag:
24857 case dateTag:
24858 return new Ctor(+object);
24859
24860 case dataViewTag:
24861 return cloneDataView(object, isDeep);
24862
24863 case float32Tag: case float64Tag:
24864 case int8Tag: case int16Tag: case int32Tag:
24865 case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
24866 return cloneTypedArray(object, isDeep);
24867
24868 case mapTag:
24869 return new Ctor;
24870
24871 case numberTag:
24872 case stringTag:
24873 return new Ctor(object);
24874
24875 case regexpTag:
24876 return cloneRegExp(object);
24877
24878 case setTag:
24879 return new Ctor;
24880
24881 case symbolTag:
24882 return cloneSymbol(object);
24883 }
24884 }
24885
24886 /**
24887 * Inserts wrapper `details` in a comment at the top of the `source` body.
24888 *
24889 * @private
24890 * @param {string} source The source to modify.
24891 * @returns {Array} details The details to insert.
24892 * @returns {string} Returns the modified source.
24893 */
24894 function insertWrapDetails(source, details) {
24895 var length = details.length;
24896 if (!length) {
24897 return source;
24898 }
24899 var lastIndex = length - 1;
24900 details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];
24901 details = details.join(length > 2 ? ', ' : ' ');
24902 return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n');
24903 }
24904
24905 /**
24906 * Checks if `value` is a flattenable `arguments` object or array.
24907 *
24908 * @private
24909 * @param {*} value The value to check.
24910 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.
24911 */
24912 function isFlattenable(value) {
24913 return isArray(value) || isArguments(value) ||
24914 !!(spreadableSymbol && value && value[spreadableSymbol]);
24915 }
24916
24917 /**
24918 * Checks if `value` is a valid array-like index.
24919 *
24920 * @private
24921 * @param {*} value The value to check.
24922 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
24923 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
24924 */
24925 function isIndex(value, length) {
24926 var type = typeof value;
24927 length = length == null ? MAX_SAFE_INTEGER : length;
24928
24929 return !!length &&
24930 (type == 'number' ||
24931 (type != 'symbol' && reIsUint.test(value))) &&
24932 (value > -1 && value % 1 == 0 && value < length);
24933 }
24934
24935 /**
24936 * Checks if the given arguments are from an iteratee call.
24937 *
24938 * @private
24939 * @param {*} value The potential iteratee value argument.
24940 * @param {*} index The potential iteratee index or key argument.
24941 * @param {*} object The potential iteratee object argument.
24942 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
24943 * else `false`.
24944 */
24945 function isIterateeCall(value, index, object) {
24946 if (!isObject(object)) {
24947 return false;
24948 }
24949 var type = typeof index;
24950 if (type == 'number'
24951 ? (isArrayLike(object) && isIndex(index, object.length))
24952 : (type == 'string' && index in object)
24953 ) {
24954 return eq(object[index], value);
24955 }
24956 return false;
24957 }
24958
24959 /**
24960 * Checks if `value` is a property name and not a property path.
24961 *
24962 * @private
24963 * @param {*} value The value to check.
24964 * @param {Object} [object] The object to query keys on.
24965 * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
24966 */
24967 function isKey(value, object) {
24968 if (isArray(value)) {
24969 return false;
24970 }
24971 var type = typeof value;
24972 if (type == 'number' || type == 'symbol' || type == 'boolean' ||
24973 value == null || isSymbol(value)) {
24974 return true;
24975 }
24976 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
24977 (object != null && value in Object(object));
24978 }
24979
24980 /**
24981 * Checks if `value` is suitable for use as unique object key.
24982 *
24983 * @private
24984 * @param {*} value The value to check.
24985 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
24986 */
24987 function isKeyable(value) {
24988 var type = typeof value;
24989 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
24990 ? (value !== '__proto__')
24991 : (value === null);
24992 }
24993
24994 /**
24995 * Checks if `func` has a lazy counterpart.
24996 *
24997 * @private
24998 * @param {Function} func The function to check.
24999 * @returns {boolean} Returns `true` if `func` has a lazy counterpart,
25000 * else `false`.
25001 */
25002 function isLaziable(func) {
25003 var funcName = getFuncName(func),
25004 other = lodash[funcName];
25005
25006 if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {
25007 return false;
25008 }
25009 if (func === other) {
25010 return true;
25011 }
25012 var data = getData(other);
25013 return !!data && func === data[0];
25014 }
25015
25016 /**
25017 * Checks if `func` has its source masked.
25018 *
25019 * @private
25020 * @param {Function} func The function to check.
25021 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
25022 */
25023 function isMasked(func) {
25024 return !!maskSrcKey && (maskSrcKey in func);
25025 }
25026
25027 /**
25028 * Checks if `func` is capable of being masked.
25029 *
25030 * @private
25031 * @param {*} value The value to check.
25032 * @returns {boolean} Returns `true` if `func` is maskable, else `false`.
25033 */
25034 var isMaskable = coreJsData ? isFunction : stubFalse;
25035
25036 /**
25037 * Checks if `value` is likely a prototype object.
25038 *
25039 * @private
25040 * @param {*} value The value to check.
25041 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
25042 */
25043 function isPrototype(value) {
25044 var Ctor = value && value.constructor,
25045 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
25046
25047 return value === proto;
25048 }
25049
25050 /**
25051 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
25052 *
25053 * @private
25054 * @param {*} value The value to check.
25055 * @returns {boolean} Returns `true` if `value` if suitable for strict
25056 * equality comparisons, else `false`.
25057 */
25058 function isStrictComparable(value) {
25059 return value === value && !isObject(value);
25060 }
25061
25062 /**
25063 * A specialized version of `matchesProperty` for source values suitable
25064 * for strict equality comparisons, i.e. `===`.
25065 *
25066 * @private
25067 * @param {string} key The key of the property to get.
25068 * @param {*} srcValue The value to match.
25069 * @returns {Function} Returns the new spec function.
25070 */
25071 function matchesStrictComparable(key, srcValue) {
25072 return function(object) {
25073 if (object == null) {
25074 return false;
25075 }
25076 return object[key] === srcValue &&
25077 (srcValue !== undefined || (key in Object(object)));
25078 };
25079 }
25080
25081 /**
25082 * A specialized version of `_.memoize` which clears the memoized function's
25083 * cache when it exceeds `MAX_MEMOIZE_SIZE`.
25084 *
25085 * @private
25086 * @param {Function} func The function to have its output memoized.
25087 * @returns {Function} Returns the new memoized function.
25088 */
25089 function memoizeCapped(func) {
25090 var result = memoize(func, function(key) {
25091 if (cache.size === MAX_MEMOIZE_SIZE) {
25092 cache.clear();
25093 }
25094 return key;
25095 });
25096
25097 var cache = result.cache;
25098 return result;
25099 }
25100
25101 /**
25102 * Merges the function metadata of `source` into `data`.
25103 *
25104 * Merging metadata reduces the number of wrappers used to invoke a function.
25105 * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`
25106 * may be applied regardless of execution order. Methods like `_.ary` and
25107 * `_.rearg` modify function arguments, making the order in which they are
25108 * executed important, preventing the merging of metadata. However, we make
25109 * an exception for a safe combined case where curried functions have `_.ary`
25110 * and or `_.rearg` applied.
25111 *
25112 * @private
25113 * @param {Array} data The destination metadata.
25114 * @param {Array} source The source metadata.
25115 * @returns {Array} Returns `data`.
25116 */
25117 function mergeData(data, source) {
25118 var bitmask = data[1],
25119 srcBitmask = source[1],
25120 newBitmask = bitmask | srcBitmask,
25121 isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);
25122
25123 var isCombo =
25124 ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||
25125 ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||
25126 ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));
25127
25128 // Exit early if metadata can't be merged.
25129 if (!(isCommon || isCombo)) {
25130 return data;
25131 }
25132 // Use source `thisArg` if available.
25133 if (srcBitmask & WRAP_BIND_FLAG) {
25134 data[2] = source[2];
25135 // Set when currying a bound function.
25136 newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;
25137 }
25138 // Compose partial arguments.
25139 var value = source[3];
25140 if (value) {
25141 var partials = data[3];
25142 data[3] = partials ? composeArgs(partials, value, source[4]) : value;
25143 data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];
25144 }
25145 // Compose partial right arguments.
25146 value = source[5];
25147 if (value) {
25148 partials = data[5];
25149 data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;
25150 data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];
25151 }
25152 // Use source `argPos` if available.
25153 value = source[7];
25154 if (value) {
25155 data[7] = value;
25156 }
25157 // Use source `ary` if it's smaller.
25158 if (srcBitmask & WRAP_ARY_FLAG) {
25159 data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);
25160 }
25161 // Use source `arity` if one is not provided.
25162 if (data[9] == null) {
25163 data[9] = source[9];
25164 }
25165 // Use source `func` and merge bitmasks.
25166 data[0] = source[0];
25167 data[1] = newBitmask;
25168
25169 return data;
25170 }
25171
25172 /**
25173 * This function is like
25174 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
25175 * except that it includes inherited enumerable properties.
25176 *
25177 * @private
25178 * @param {Object} object The object to query.
25179 * @returns {Array} Returns the array of property names.
25180 */
25181 function nativeKeysIn(object) {
25182 var result = [];
25183 if (object != null) {
25184 for (var key in Object(object)) {
25185 result.push(key);
25186 }
25187 }
25188 return result;
25189 }
25190
25191 /**
25192 * Converts `value` to a string using `Object.prototype.toString`.
25193 *
25194 * @private
25195 * @param {*} value The value to convert.
25196 * @returns {string} Returns the converted string.
25197 */
25198 function objectToString(value) {
25199 return nativeObjectToString.call(value);
25200 }
25201
25202 /**
25203 * A specialized version of `baseRest` which transforms the rest array.
25204 *
25205 * @private
25206 * @param {Function} func The function to apply a rest parameter to.
25207 * @param {number} [start=func.length-1] The start position of the rest parameter.
25208 * @param {Function} transform The rest array transform.
25209 * @returns {Function} Returns the new function.
25210 */
25211 function overRest(func, start, transform) {
25212 start = nativeMax(start === undefined ? (func.length - 1) : start, 0);
25213 return function() {
25214 var args = arguments,
25215 index = -1,
25216 length = nativeMax(args.length - start, 0),
25217 array = Array(length);
25218
25219 while (++index < length) {
25220 array[index] = args[start + index];
25221 }
25222 index = -1;
25223 var otherArgs = Array(start + 1);
25224 while (++index < start) {
25225 otherArgs[index] = args[index];
25226 }
25227 otherArgs[start] = transform(array);
25228 return apply(func, this, otherArgs);
25229 };
25230 }
25231
25232 /**
25233 * Gets the parent value at `path` of `object`.
25234 *
25235 * @private
25236 * @param {Object} object The object to query.
25237 * @param {Array} path The path to get the parent value of.
25238 * @returns {*} Returns the parent value.
25239 */
25240 function parent(object, path) {
25241 return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));
25242 }
25243
25244 /**
25245 * Reorder `array` according to the specified indexes where the element at
25246 * the first index is assigned as the first element, the element at
25247 * the second index is assigned as the second element, and so on.
25248 *
25249 * @private
25250 * @param {Array} array The array to reorder.
25251 * @param {Array} indexes The arranged array indexes.
25252 * @returns {Array} Returns `array`.
25253 */
25254 function reorder(array, indexes) {
25255 var arrLength = array.length,
25256 length = nativeMin(indexes.length, arrLength),
25257 oldArray = copyArray(array);
25258
25259 while (length--) {
25260 var index = indexes[length];
25261 array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;
25262 }
25263 return array;
25264 }
25265
25266 /**
25267 * Gets the value at `key`, unless `key` is "__proto__".
25268 *
25269 * @private
25270 * @param {Object} object The object to query.
25271 * @param {string} key The key of the property to get.
25272 * @returns {*} Returns the property value.
25273 */
25274 function safeGet(object, key) {
25275 if (key == '__proto__') {
25276 return;
25277 }
25278
25279 return object[key];
25280 }
25281
25282 /**
25283 * Sets metadata for `func`.
25284 *
25285 * **Note:** If this function becomes hot, i.e. is invoked a lot in a short
25286 * period of time, it will trip its breaker and transition to an identity
25287 * function to avoid garbage collection pauses in V8. See
25288 * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)
25289 * for more details.
25290 *
25291 * @private
25292 * @param {Function} func The function to associate metadata with.
25293 * @param {*} data The metadata.
25294 * @returns {Function} Returns `func`.
25295 */
25296 var setData = shortOut(baseSetData);
25297
25298 /**
25299 * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).
25300 *
25301 * @private
25302 * @param {Function} func The function to delay.
25303 * @param {number} wait The number of milliseconds to delay invocation.
25304 * @returns {number|Object} Returns the timer id or timeout object.
25305 */
25306 var setTimeout = ctxSetTimeout || function(func, wait) {
25307 return root.setTimeout(func, wait);
25308 };
25309
25310 /**
25311 * Sets the `toString` method of `func` to return `string`.
25312 *
25313 * @private
25314 * @param {Function} func The function to modify.
25315 * @param {Function} string The `toString` result.
25316 * @returns {Function} Returns `func`.
25317 */
25318 var setToString = shortOut(baseSetToString);
25319
25320 /**
25321 * Sets the `toString` method of `wrapper` to mimic the source of `reference`
25322 * with wrapper details in a comment at the top of the source body.
25323 *
25324 * @private
25325 * @param {Function} wrapper The function to modify.
25326 * @param {Function} reference The reference function.
25327 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
25328 * @returns {Function} Returns `wrapper`.
25329 */
25330 function setWrapToString(wrapper, reference, bitmask) {
25331 var source = (reference + '');
25332 return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));
25333 }
25334
25335 /**
25336 * Creates a function that'll short out and invoke `identity` instead
25337 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`
25338 * milliseconds.
25339 *
25340 * @private
25341 * @param {Function} func The function to restrict.
25342 * @returns {Function} Returns the new shortable function.
25343 */
25344 function shortOut(func) {
25345 var count = 0,
25346 lastCalled = 0;
25347
25348 return function() {
25349 var stamp = nativeNow(),
25350 remaining = HOT_SPAN - (stamp - lastCalled);
25351
25352 lastCalled = stamp;
25353 if (remaining > 0) {
25354 if (++count >= HOT_COUNT) {
25355 return arguments[0];
25356 }
25357 } else {
25358 count = 0;
25359 }
25360 return func.apply(undefined, arguments);
25361 };
25362 }
25363
25364 /**
25365 * A specialized version of `_.shuffle` which mutates and sets the size of `array`.
25366 *
25367 * @private
25368 * @param {Array} array The array to shuffle.
25369 * @param {number} [size=array.length] The size of `array`.
25370 * @returns {Array} Returns `array`.
25371 */
25372 function shuffleSelf(array, size) {
25373 var index = -1,
25374 length = array.length,
25375 lastIndex = length - 1;
25376
25377 size = size === undefined ? length : size;
25378 while (++index < size) {
25379 var rand = baseRandom(index, lastIndex),
25380 value = array[rand];
25381
25382 array[rand] = array[index];
25383 array[index] = value;
25384 }
25385 array.length = size;
25386 return array;
25387 }
25388
25389 /**
25390 * Converts `string` to a property path array.
25391 *
25392 * @private
25393 * @param {string} string The string to convert.
25394 * @returns {Array} Returns the property path array.
25395 */
25396 var stringToPath = memoizeCapped(function(string) {
25397 var result = [];
25398 if (string.charCodeAt(0) === 46 /* . */) {
25399 result.push('');
25400 }
25401 string.replace(rePropName, function(match, number, quote, subString) {
25402 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
25403 });
25404 return result;
25405 });
25406
25407 /**
25408 * Converts `value` to a string key if it's not a string or symbol.
25409 *
25410 * @private
25411 * @param {*} value The value to inspect.
25412 * @returns {string|symbol} Returns the key.
25413 */
25414 function toKey(value) {
25415 if (typeof value == 'string' || isSymbol(value)) {
25416 return value;
25417 }
25418 var result = (value + '');
25419 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
25420 }
25421
25422 /**
25423 * Converts `func` to its source code.
25424 *
25425 * @private
25426 * @param {Function} func The function to convert.
25427 * @returns {string} Returns the source code.
25428 */
25429 function toSource(func) {
25430 if (func != null) {
25431 try {
25432 return funcToString.call(func);
25433 } catch (e) {}
25434 try {
25435 return (func + '');
25436 } catch (e) {}
25437 }
25438 return '';
25439 }
25440
25441 /**
25442 * Updates wrapper `details` based on `bitmask` flags.
25443 *
25444 * @private
25445 * @returns {Array} details The details to modify.
25446 * @param {number} bitmask The bitmask flags. See `createWrap` for more details.
25447 * @returns {Array} Returns `details`.
25448 */
25449 function updateWrapDetails(details, bitmask) {
25450 arrayEach(wrapFlags, function(pair) {
25451 var value = '_.' + pair[0];
25452 if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {
25453 details.push(value);
25454 }
25455 });
25456 return details.sort();
25457 }
25458
25459 /**
25460 * Creates a clone of `wrapper`.
25461 *
25462 * @private
25463 * @param {Object} wrapper The wrapper to clone.
25464 * @returns {Object} Returns the cloned wrapper.
25465 */
25466 function wrapperClone(wrapper) {
25467 if (wrapper instanceof LazyWrapper) {
25468 return wrapper.clone();
25469 }
25470 var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);
25471 result.__actions__ = copyArray(wrapper.__actions__);
25472 result.__index__ = wrapper.__index__;
25473 result.__values__ = wrapper.__values__;
25474 return result;
25475 }
25476
25477 /*------------------------------------------------------------------------*/
25478
25479 /**
25480 * Creates an array of elements split into groups the length of `size`.
25481 * If `array` can't be split evenly, the final chunk will be the remaining
25482 * elements.
25483 *
25484 * @static
25485 * @memberOf _
25486 * @since 3.0.0
25487 * @category Array
25488 * @param {Array} array The array to process.
25489 * @param {number} [size=1] The length of each chunk
25490 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
25491 * @returns {Array} Returns the new array of chunks.
25492 * @example
25493 *
25494 * _.chunk(['a', 'b', 'c', 'd'], 2);
25495 * // => [['a', 'b'], ['c', 'd']]
25496 *
25497 * _.chunk(['a', 'b', 'c', 'd'], 3);
25498 * // => [['a', 'b', 'c'], ['d']]
25499 */
25500 function chunk(array, size, guard) {
25501 if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {
25502 size = 1;
25503 } else {
25504 size = nativeMax(toInteger(size), 0);
25505 }
25506 var length = array == null ? 0 : array.length;
25507 if (!length || size < 1) {
25508 return [];
25509 }
25510 var index = 0,
25511 resIndex = 0,
25512 result = Array(nativeCeil(length / size));
25513
25514 while (index < length) {
25515 result[resIndex++] = baseSlice(array, index, (index += size));
25516 }
25517 return result;
25518 }
25519
25520 /**
25521 * Creates an array with all falsey values removed. The values `false`, `null`,
25522 * `0`, `""`, `undefined`, and `NaN` are falsey.
25523 *
25524 * @static
25525 * @memberOf _
25526 * @since 0.1.0
25527 * @category Array
25528 * @param {Array} array The array to compact.
25529 * @returns {Array} Returns the new array of filtered values.
25530 * @example
25531 *
25532 * _.compact([0, 1, false, 2, '', 3]);
25533 * // => [1, 2, 3]
25534 */
25535 function compact(array) {
25536 var index = -1,
25537 length = array == null ? 0 : array.length,
25538 resIndex = 0,
25539 result = [];
25540
25541 while (++index < length) {
25542 var value = array[index];
25543 if (value) {
25544 result[resIndex++] = value;
25545 }
25546 }
25547 return result;
25548 }
25549
25550 /**
25551 * Creates a new array concatenating `array` with any additional arrays
25552 * and/or values.
25553 *
25554 * @static
25555 * @memberOf _
25556 * @since 4.0.0
25557 * @category Array
25558 * @param {Array} array The array to concatenate.
25559 * @param {...*} [values] The values to concatenate.
25560 * @returns {Array} Returns the new concatenated array.
25561 * @example
25562 *
25563 * var array = [1];
25564 * var other = _.concat(array, 2, [3], [[4]]);
25565 *
25566 * console.log(other);
25567 * // => [1, 2, 3, [4]]
25568 *
25569 * console.log(array);
25570 * // => [1]
25571 */
25572 function concat() {
25573 var length = arguments.length;
25574 if (!length) {
25575 return [];
25576 }
25577 var args = Array(length - 1),
25578 array = arguments[0],
25579 index = length;
25580
25581 while (index--) {
25582 args[index - 1] = arguments[index];
25583 }
25584 return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));
25585 }
25586
25587 /**
25588 * Creates an array of `array` values not included in the other given arrays
25589 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
25590 * for equality comparisons. The order and references of result values are
25591 * determined by the first array.
25592 *
25593 * **Note:** Unlike `_.pullAll`, this method returns a new array.
25594 *
25595 * @static
25596 * @memberOf _
25597 * @since 0.1.0
25598 * @category Array
25599 * @param {Array} array The array to inspect.
25600 * @param {...Array} [values] The values to exclude.
25601 * @returns {Array} Returns the new array of filtered values.
25602 * @see _.without, _.xor
25603 * @example
25604 *
25605 * _.difference([2, 1], [2, 3]);
25606 * // => [1]
25607 */
25608 var difference = baseRest(function(array, values) {
25609 return isArrayLikeObject(array)
25610 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))
25611 : [];
25612 });
25613
25614 /**
25615 * This method is like `_.difference` except that it accepts `iteratee` which
25616 * is invoked for each element of `array` and `values` to generate the criterion
25617 * by which they're compared. The order and references of result values are
25618 * determined by the first array. The iteratee is invoked with one argument:
25619 * (value).
25620 *
25621 * **Note:** Unlike `_.pullAllBy`, this method returns a new array.
25622 *
25623 * @static
25624 * @memberOf _
25625 * @since 4.0.0
25626 * @category Array
25627 * @param {Array} array The array to inspect.
25628 * @param {...Array} [values] The values to exclude.
25629 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
25630 * @returns {Array} Returns the new array of filtered values.
25631 * @example
25632 *
25633 * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);
25634 * // => [1.2]
25635 *
25636 * // The `_.property` iteratee shorthand.
25637 * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
25638 * // => [{ 'x': 2 }]
25639 */
25640 var differenceBy = baseRest(function(array, values) {
25641 var iteratee = last(values);
25642 if (isArrayLikeObject(iteratee)) {
25643 iteratee = undefined;
25644 }
25645 return isArrayLikeObject(array)
25646 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))
25647 : [];
25648 });
25649
25650 /**
25651 * This method is like `_.difference` except that it accepts `comparator`
25652 * which is invoked to compare elements of `array` to `values`. The order and
25653 * references of result values are determined by the first array. The comparator
25654 * is invoked with two arguments: (arrVal, othVal).
25655 *
25656 * **Note:** Unlike `_.pullAllWith`, this method returns a new array.
25657 *
25658 * @static
25659 * @memberOf _
25660 * @since 4.0.0
25661 * @category Array
25662 * @param {Array} array The array to inspect.
25663 * @param {...Array} [values] The values to exclude.
25664 * @param {Function} [comparator] The comparator invoked per element.
25665 * @returns {Array} Returns the new array of filtered values.
25666 * @example
25667 *
25668 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
25669 *
25670 * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);
25671 * // => [{ 'x': 2, 'y': 1 }]
25672 */
25673 var differenceWith = baseRest(function(array, values) {
25674 var comparator = last(values);
25675 if (isArrayLikeObject(comparator)) {
25676 comparator = undefined;
25677 }
25678 return isArrayLikeObject(array)
25679 ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)
25680 : [];
25681 });
25682
25683 /**
25684 * Creates a slice of `array` with `n` elements dropped from the beginning.
25685 *
25686 * @static
25687 * @memberOf _
25688 * @since 0.5.0
25689 * @category Array
25690 * @param {Array} array The array to query.
25691 * @param {number} [n=1] The number of elements to drop.
25692 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
25693 * @returns {Array} Returns the slice of `array`.
25694 * @example
25695 *
25696 * _.drop([1, 2, 3]);
25697 * // => [2, 3]
25698 *
25699 * _.drop([1, 2, 3], 2);
25700 * // => [3]
25701 *
25702 * _.drop([1, 2, 3], 5);
25703 * // => []
25704 *
25705 * _.drop([1, 2, 3], 0);
25706 * // => [1, 2, 3]
25707 */
25708 function drop(array, n, guard) {
25709 var length = array == null ? 0 : array.length;
25710 if (!length) {
25711 return [];
25712 }
25713 n = (guard || n === undefined) ? 1 : toInteger(n);
25714 return baseSlice(array, n < 0 ? 0 : n, length);
25715 }
25716
25717 /**
25718 * Creates a slice of `array` with `n` elements dropped from the end.
25719 *
25720 * @static
25721 * @memberOf _
25722 * @since 3.0.0
25723 * @category Array
25724 * @param {Array} array The array to query.
25725 * @param {number} [n=1] The number of elements to drop.
25726 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
25727 * @returns {Array} Returns the slice of `array`.
25728 * @example
25729 *
25730 * _.dropRight([1, 2, 3]);
25731 * // => [1, 2]
25732 *
25733 * _.dropRight([1, 2, 3], 2);
25734 * // => [1]
25735 *
25736 * _.dropRight([1, 2, 3], 5);
25737 * // => []
25738 *
25739 * _.dropRight([1, 2, 3], 0);
25740 * // => [1, 2, 3]
25741 */
25742 function dropRight(array, n, guard) {
25743 var length = array == null ? 0 : array.length;
25744 if (!length) {
25745 return [];
25746 }
25747 n = (guard || n === undefined) ? 1 : toInteger(n);
25748 n = length - n;
25749 return baseSlice(array, 0, n < 0 ? 0 : n);
25750 }
25751
25752 /**
25753 * Creates a slice of `array` excluding elements dropped from the end.
25754 * Elements are dropped until `predicate` returns falsey. The predicate is
25755 * invoked with three arguments: (value, index, array).
25756 *
25757 * @static
25758 * @memberOf _
25759 * @since 3.0.0
25760 * @category Array
25761 * @param {Array} array The array to query.
25762 * @param {Function} [predicate=_.identity] The function invoked per iteration.
25763 * @returns {Array} Returns the slice of `array`.
25764 * @example
25765 *
25766 * var users = [
25767 * { 'user': 'barney', 'active': true },
25768 * { 'user': 'fred', 'active': false },
25769 * { 'user': 'pebbles', 'active': false }
25770 * ];
25771 *
25772 * _.dropRightWhile(users, function(o) { return !o.active; });
25773 * // => objects for ['barney']
25774 *
25775 * // The `_.matches` iteratee shorthand.
25776 * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });
25777 * // => objects for ['barney', 'fred']
25778 *
25779 * // The `_.matchesProperty` iteratee shorthand.
25780 * _.dropRightWhile(users, ['active', false]);
25781 * // => objects for ['barney']
25782 *
25783 * // The `_.property` iteratee shorthand.
25784 * _.dropRightWhile(users, 'active');
25785 * // => objects for ['barney', 'fred', 'pebbles']
25786 */
25787 function dropRightWhile(array, predicate) {
25788 return (array && array.length)
25789 ? baseWhile(array, getIteratee(predicate, 3), true, true)
25790 : [];
25791 }
25792
25793 /**
25794 * Creates a slice of `array` excluding elements dropped from the beginning.
25795 * Elements are dropped until `predicate` returns falsey. The predicate is
25796 * invoked with three arguments: (value, index, array).
25797 *
25798 * @static
25799 * @memberOf _
25800 * @since 3.0.0
25801 * @category Array
25802 * @param {Array} array The array to query.
25803 * @param {Function} [predicate=_.identity] The function invoked per iteration.
25804 * @returns {Array} Returns the slice of `array`.
25805 * @example
25806 *
25807 * var users = [
25808 * { 'user': 'barney', 'active': false },
25809 * { 'user': 'fred', 'active': false },
25810 * { 'user': 'pebbles', 'active': true }
25811 * ];
25812 *
25813 * _.dropWhile(users, function(o) { return !o.active; });
25814 * // => objects for ['pebbles']
25815 *
25816 * // The `_.matches` iteratee shorthand.
25817 * _.dropWhile(users, { 'user': 'barney', 'active': false });
25818 * // => objects for ['fred', 'pebbles']
25819 *
25820 * // The `_.matchesProperty` iteratee shorthand.
25821 * _.dropWhile(users, ['active', false]);
25822 * // => objects for ['pebbles']
25823 *
25824 * // The `_.property` iteratee shorthand.
25825 * _.dropWhile(users, 'active');
25826 * // => objects for ['barney', 'fred', 'pebbles']
25827 */
25828 function dropWhile(array, predicate) {
25829 return (array && array.length)
25830 ? baseWhile(array, getIteratee(predicate, 3), true)
25831 : [];
25832 }
25833
25834 /**
25835 * Fills elements of `array` with `value` from `start` up to, but not
25836 * including, `end`.
25837 *
25838 * **Note:** This method mutates `array`.
25839 *
25840 * @static
25841 * @memberOf _
25842 * @since 3.2.0
25843 * @category Array
25844 * @param {Array} array The array to fill.
25845 * @param {*} value The value to fill `array` with.
25846 * @param {number} [start=0] The start position.
25847 * @param {number} [end=array.length] The end position.
25848 * @returns {Array} Returns `array`.
25849 * @example
25850 *
25851 * var array = [1, 2, 3];
25852 *
25853 * _.fill(array, 'a');
25854 * console.log(array);
25855 * // => ['a', 'a', 'a']
25856 *
25857 * _.fill(Array(3), 2);
25858 * // => [2, 2, 2]
25859 *
25860 * _.fill([4, 6, 8, 10], '*', 1, 3);
25861 * // => [4, '*', '*', 10]
25862 */
25863 function fill(array, value, start, end) {
25864 var length = array == null ? 0 : array.length;
25865 if (!length) {
25866 return [];
25867 }
25868 if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {
25869 start = 0;
25870 end = length;
25871 }
25872 return baseFill(array, value, start, end);
25873 }
25874
25875 /**
25876 * This method is like `_.find` except that it returns the index of the first
25877 * element `predicate` returns truthy for instead of the element itself.
25878 *
25879 * @static
25880 * @memberOf _
25881 * @since 1.1.0
25882 * @category Array
25883 * @param {Array} array The array to inspect.
25884 * @param {Function} [predicate=_.identity] The function invoked per iteration.
25885 * @param {number} [fromIndex=0] The index to search from.
25886 * @returns {number} Returns the index of the found element, else `-1`.
25887 * @example
25888 *
25889 * var users = [
25890 * { 'user': 'barney', 'active': false },
25891 * { 'user': 'fred', 'active': false },
25892 * { 'user': 'pebbles', 'active': true }
25893 * ];
25894 *
25895 * _.findIndex(users, function(o) { return o.user == 'barney'; });
25896 * // => 0
25897 *
25898 * // The `_.matches` iteratee shorthand.
25899 * _.findIndex(users, { 'user': 'fred', 'active': false });
25900 * // => 1
25901 *
25902 * // The `_.matchesProperty` iteratee shorthand.
25903 * _.findIndex(users, ['active', false]);
25904 * // => 0
25905 *
25906 * // The `_.property` iteratee shorthand.
25907 * _.findIndex(users, 'active');
25908 * // => 2
25909 */
25910 function findIndex(array, predicate, fromIndex) {
25911 var length = array == null ? 0 : array.length;
25912 if (!length) {
25913 return -1;
25914 }
25915 var index = fromIndex == null ? 0 : toInteger(fromIndex);
25916 if (index < 0) {
25917 index = nativeMax(length + index, 0);
25918 }
25919 return baseFindIndex(array, getIteratee(predicate, 3), index);
25920 }
25921
25922 /**
25923 * This method is like `_.findIndex` except that it iterates over elements
25924 * of `collection` from right to left.
25925 *
25926 * @static
25927 * @memberOf _
25928 * @since 2.0.0
25929 * @category Array
25930 * @param {Array} array The array to inspect.
25931 * @param {Function} [predicate=_.identity] The function invoked per iteration.
25932 * @param {number} [fromIndex=array.length-1] The index to search from.
25933 * @returns {number} Returns the index of the found element, else `-1`.
25934 * @example
25935 *
25936 * var users = [
25937 * { 'user': 'barney', 'active': true },
25938 * { 'user': 'fred', 'active': false },
25939 * { 'user': 'pebbles', 'active': false }
25940 * ];
25941 *
25942 * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });
25943 * // => 2
25944 *
25945 * // The `_.matches` iteratee shorthand.
25946 * _.findLastIndex(users, { 'user': 'barney', 'active': true });
25947 * // => 0
25948 *
25949 * // The `_.matchesProperty` iteratee shorthand.
25950 * _.findLastIndex(users, ['active', false]);
25951 * // => 2
25952 *
25953 * // The `_.property` iteratee shorthand.
25954 * _.findLastIndex(users, 'active');
25955 * // => 0
25956 */
25957 function findLastIndex(array, predicate, fromIndex) {
25958 var length = array == null ? 0 : array.length;
25959 if (!length) {
25960 return -1;
25961 }
25962 var index = length - 1;
25963 if (fromIndex !== undefined) {
25964 index = toInteger(fromIndex);
25965 index = fromIndex < 0
25966 ? nativeMax(length + index, 0)
25967 : nativeMin(index, length - 1);
25968 }
25969 return baseFindIndex(array, getIteratee(predicate, 3), index, true);
25970 }
25971
25972 /**
25973 * Flattens `array` a single level deep.
25974 *
25975 * @static
25976 * @memberOf _
25977 * @since 0.1.0
25978 * @category Array
25979 * @param {Array} array The array to flatten.
25980 * @returns {Array} Returns the new flattened array.
25981 * @example
25982 *
25983 * _.flatten([1, [2, [3, [4]], 5]]);
25984 * // => [1, 2, [3, [4]], 5]
25985 */
25986 function flatten(array) {
25987 var length = array == null ? 0 : array.length;
25988 return length ? baseFlatten(array, 1) : [];
25989 }
25990
25991 /**
25992 * Recursively flattens `array`.
25993 *
25994 * @static
25995 * @memberOf _
25996 * @since 3.0.0
25997 * @category Array
25998 * @param {Array} array The array to flatten.
25999 * @returns {Array} Returns the new flattened array.
26000 * @example
26001 *
26002 * _.flattenDeep([1, [2, [3, [4]], 5]]);
26003 * // => [1, 2, 3, 4, 5]
26004 */
26005 function flattenDeep(array) {
26006 var length = array == null ? 0 : array.length;
26007 return length ? baseFlatten(array, INFINITY) : [];
26008 }
26009
26010 /**
26011 * Recursively flatten `array` up to `depth` times.
26012 *
26013 * @static
26014 * @memberOf _
26015 * @since 4.4.0
26016 * @category Array
26017 * @param {Array} array The array to flatten.
26018 * @param {number} [depth=1] The maximum recursion depth.
26019 * @returns {Array} Returns the new flattened array.
26020 * @example
26021 *
26022 * var array = [1, [2, [3, [4]], 5]];
26023 *
26024 * _.flattenDepth(array, 1);
26025 * // => [1, 2, [3, [4]], 5]
26026 *
26027 * _.flattenDepth(array, 2);
26028 * // => [1, 2, 3, [4], 5]
26029 */
26030 function flattenDepth(array, depth) {
26031 var length = array == null ? 0 : array.length;
26032 if (!length) {
26033 return [];
26034 }
26035 depth = depth === undefined ? 1 : toInteger(depth);
26036 return baseFlatten(array, depth);
26037 }
26038
26039 /**
26040 * The inverse of `_.toPairs`; this method returns an object composed
26041 * from key-value `pairs`.
26042 *
26043 * @static
26044 * @memberOf _
26045 * @since 4.0.0
26046 * @category Array
26047 * @param {Array} pairs The key-value pairs.
26048 * @returns {Object} Returns the new object.
26049 * @example
26050 *
26051 * _.fromPairs([['a', 1], ['b', 2]]);
26052 * // => { 'a': 1, 'b': 2 }
26053 */
26054 function fromPairs(pairs) {
26055 var index = -1,
26056 length = pairs == null ? 0 : pairs.length,
26057 result = {};
26058
26059 while (++index < length) {
26060 var pair = pairs[index];
26061 result[pair[0]] = pair[1];
26062 }
26063 return result;
26064 }
26065
26066 /**
26067 * Gets the first element of `array`.
26068 *
26069 * @static
26070 * @memberOf _
26071 * @since 0.1.0
26072 * @alias first
26073 * @category Array
26074 * @param {Array} array The array to query.
26075 * @returns {*} Returns the first element of `array`.
26076 * @example
26077 *
26078 * _.head([1, 2, 3]);
26079 * // => 1
26080 *
26081 * _.head([]);
26082 * // => undefined
26083 */
26084 function head(array) {
26085 return (array && array.length) ? array[0] : undefined;
26086 }
26087
26088 /**
26089 * Gets the index at which the first occurrence of `value` is found in `array`
26090 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
26091 * for equality comparisons. If `fromIndex` is negative, it's used as the
26092 * offset from the end of `array`.
26093 *
26094 * @static
26095 * @memberOf _
26096 * @since 0.1.0
26097 * @category Array
26098 * @param {Array} array The array to inspect.
26099 * @param {*} value The value to search for.
26100 * @param {number} [fromIndex=0] The index to search from.
26101 * @returns {number} Returns the index of the matched value, else `-1`.
26102 * @example
26103 *
26104 * _.indexOf([1, 2, 1, 2], 2);
26105 * // => 1
26106 *
26107 * // Search from the `fromIndex`.
26108 * _.indexOf([1, 2, 1, 2], 2, 2);
26109 * // => 3
26110 */
26111 function indexOf(array, value, fromIndex) {
26112 var length = array == null ? 0 : array.length;
26113 if (!length) {
26114 return -1;
26115 }
26116 var index = fromIndex == null ? 0 : toInteger(fromIndex);
26117 if (index < 0) {
26118 index = nativeMax(length + index, 0);
26119 }
26120 return baseIndexOf(array, value, index);
26121 }
26122
26123 /**
26124 * Gets all but the last element of `array`.
26125 *
26126 * @static
26127 * @memberOf _
26128 * @since 0.1.0
26129 * @category Array
26130 * @param {Array} array The array to query.
26131 * @returns {Array} Returns the slice of `array`.
26132 * @example
26133 *
26134 * _.initial([1, 2, 3]);
26135 * // => [1, 2]
26136 */
26137 function initial(array) {
26138 var length = array == null ? 0 : array.length;
26139 return length ? baseSlice(array, 0, -1) : [];
26140 }
26141
26142 /**
26143 * Creates an array of unique values that are included in all given arrays
26144 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
26145 * for equality comparisons. The order and references of result values are
26146 * determined by the first array.
26147 *
26148 * @static
26149 * @memberOf _
26150 * @since 0.1.0
26151 * @category Array
26152 * @param {...Array} [arrays] The arrays to inspect.
26153 * @returns {Array} Returns the new array of intersecting values.
26154 * @example
26155 *
26156 * _.intersection([2, 1], [2, 3]);
26157 * // => [2]
26158 */
26159 var intersection = baseRest(function(arrays) {
26160 var mapped = arrayMap(arrays, castArrayLikeObject);
26161 return (mapped.length && mapped[0] === arrays[0])
26162 ? baseIntersection(mapped)
26163 : [];
26164 });
26165
26166 /**
26167 * This method is like `_.intersection` except that it accepts `iteratee`
26168 * which is invoked for each element of each `arrays` to generate the criterion
26169 * by which they're compared. The order and references of result values are
26170 * determined by the first array. The iteratee is invoked with one argument:
26171 * (value).
26172 *
26173 * @static
26174 * @memberOf _
26175 * @since 4.0.0
26176 * @category Array
26177 * @param {...Array} [arrays] The arrays to inspect.
26178 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
26179 * @returns {Array} Returns the new array of intersecting values.
26180 * @example
26181 *
26182 * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
26183 * // => [2.1]
26184 *
26185 * // The `_.property` iteratee shorthand.
26186 * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
26187 * // => [{ 'x': 1 }]
26188 */
26189 var intersectionBy = baseRest(function(arrays) {
26190 var iteratee = last(arrays),
26191 mapped = arrayMap(arrays, castArrayLikeObject);
26192
26193 if (iteratee === last(mapped)) {
26194 iteratee = undefined;
26195 } else {
26196 mapped.pop();
26197 }
26198 return (mapped.length && mapped[0] === arrays[0])
26199 ? baseIntersection(mapped, getIteratee(iteratee, 2))
26200 : [];
26201 });
26202
26203 /**
26204 * This method is like `_.intersection` except that it accepts `comparator`
26205 * which is invoked to compare elements of `arrays`. The order and references
26206 * of result values are determined by the first array. The comparator is
26207 * invoked with two arguments: (arrVal, othVal).
26208 *
26209 * @static
26210 * @memberOf _
26211 * @since 4.0.0
26212 * @category Array
26213 * @param {...Array} [arrays] The arrays to inspect.
26214 * @param {Function} [comparator] The comparator invoked per element.
26215 * @returns {Array} Returns the new array of intersecting values.
26216 * @example
26217 *
26218 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
26219 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
26220 *
26221 * _.intersectionWith(objects, others, _.isEqual);
26222 * // => [{ 'x': 1, 'y': 2 }]
26223 */
26224 var intersectionWith = baseRest(function(arrays) {
26225 var comparator = last(arrays),
26226 mapped = arrayMap(arrays, castArrayLikeObject);
26227
26228 comparator = typeof comparator == 'function' ? comparator : undefined;
26229 if (comparator) {
26230 mapped.pop();
26231 }
26232 return (mapped.length && mapped[0] === arrays[0])
26233 ? baseIntersection(mapped, undefined, comparator)
26234 : [];
26235 });
26236
26237 /**
26238 * Converts all elements in `array` into a string separated by `separator`.
26239 *
26240 * @static
26241 * @memberOf _
26242 * @since 4.0.0
26243 * @category Array
26244 * @param {Array} array The array to convert.
26245 * @param {string} [separator=','] The element separator.
26246 * @returns {string} Returns the joined string.
26247 * @example
26248 *
26249 * _.join(['a', 'b', 'c'], '~');
26250 * // => 'a~b~c'
26251 */
26252 function join(array, separator) {
26253 return array == null ? '' : nativeJoin.call(array, separator);
26254 }
26255
26256 /**
26257 * Gets the last element of `array`.
26258 *
26259 * @static
26260 * @memberOf _
26261 * @since 0.1.0
26262 * @category Array
26263 * @param {Array} array The array to query.
26264 * @returns {*} Returns the last element of `array`.
26265 * @example
26266 *
26267 * _.last([1, 2, 3]);
26268 * // => 3
26269 */
26270 function last(array) {
26271 var length = array == null ? 0 : array.length;
26272 return length ? array[length - 1] : undefined;
26273 }
26274
26275 /**
26276 * This method is like `_.indexOf` except that it iterates over elements of
26277 * `array` from right to left.
26278 *
26279 * @static
26280 * @memberOf _
26281 * @since 0.1.0
26282 * @category Array
26283 * @param {Array} array The array to inspect.
26284 * @param {*} value The value to search for.
26285 * @param {number} [fromIndex=array.length-1] The index to search from.
26286 * @returns {number} Returns the index of the matched value, else `-1`.
26287 * @example
26288 *
26289 * _.lastIndexOf([1, 2, 1, 2], 2);
26290 * // => 3
26291 *
26292 * // Search from the `fromIndex`.
26293 * _.lastIndexOf([1, 2, 1, 2], 2, 2);
26294 * // => 1
26295 */
26296 function lastIndexOf(array, value, fromIndex) {
26297 var length = array == null ? 0 : array.length;
26298 if (!length) {
26299 return -1;
26300 }
26301 var index = length;
26302 if (fromIndex !== undefined) {
26303 index = toInteger(fromIndex);
26304 index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);
26305 }
26306 return value === value
26307 ? strictLastIndexOf(array, value, index)
26308 : baseFindIndex(array, baseIsNaN, index, true);
26309 }
26310
26311 /**
26312 * Gets the element at index `n` of `array`. If `n` is negative, the nth
26313 * element from the end is returned.
26314 *
26315 * @static
26316 * @memberOf _
26317 * @since 4.11.0
26318 * @category Array
26319 * @param {Array} array The array to query.
26320 * @param {number} [n=0] The index of the element to return.
26321 * @returns {*} Returns the nth element of `array`.
26322 * @example
26323 *
26324 * var array = ['a', 'b', 'c', 'd'];
26325 *
26326 * _.nth(array, 1);
26327 * // => 'b'
26328 *
26329 * _.nth(array, -2);
26330 * // => 'c';
26331 */
26332 function nth(array, n) {
26333 return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;
26334 }
26335
26336 /**
26337 * Removes all given values from `array` using
26338 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
26339 * for equality comparisons.
26340 *
26341 * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`
26342 * to remove elements from an array by predicate.
26343 *
26344 * @static
26345 * @memberOf _
26346 * @since 2.0.0
26347 * @category Array
26348 * @param {Array} array The array to modify.
26349 * @param {...*} [values] The values to remove.
26350 * @returns {Array} Returns `array`.
26351 * @example
26352 *
26353 * var array = ['a', 'b', 'c', 'a', 'b', 'c'];
26354 *
26355 * _.pull(array, 'a', 'c');
26356 * console.log(array);
26357 * // => ['b', 'b']
26358 */
26359 var pull = baseRest(pullAll);
26360
26361 /**
26362 * This method is like `_.pull` except that it accepts an array of values to remove.
26363 *
26364 * **Note:** Unlike `_.difference`, this method mutates `array`.
26365 *
26366 * @static
26367 * @memberOf _
26368 * @since 4.0.0
26369 * @category Array
26370 * @param {Array} array The array to modify.
26371 * @param {Array} values The values to remove.
26372 * @returns {Array} Returns `array`.
26373 * @example
26374 *
26375 * var array = ['a', 'b', 'c', 'a', 'b', 'c'];
26376 *
26377 * _.pullAll(array, ['a', 'c']);
26378 * console.log(array);
26379 * // => ['b', 'b']
26380 */
26381 function pullAll(array, values) {
26382 return (array && array.length && values && values.length)
26383 ? basePullAll(array, values)
26384 : array;
26385 }
26386
26387 /**
26388 * This method is like `_.pullAll` except that it accepts `iteratee` which is
26389 * invoked for each element of `array` and `values` to generate the criterion
26390 * by which they're compared. The iteratee is invoked with one argument: (value).
26391 *
26392 * **Note:** Unlike `_.differenceBy`, this method mutates `array`.
26393 *
26394 * @static
26395 * @memberOf _
26396 * @since 4.0.0
26397 * @category Array
26398 * @param {Array} array The array to modify.
26399 * @param {Array} values The values to remove.
26400 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
26401 * @returns {Array} Returns `array`.
26402 * @example
26403 *
26404 * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
26405 *
26406 * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');
26407 * console.log(array);
26408 * // => [{ 'x': 2 }]
26409 */
26410 function pullAllBy(array, values, iteratee) {
26411 return (array && array.length && values && values.length)
26412 ? basePullAll(array, values, getIteratee(iteratee, 2))
26413 : array;
26414 }
26415
26416 /**
26417 * This method is like `_.pullAll` except that it accepts `comparator` which
26418 * is invoked to compare elements of `array` to `values`. The comparator is
26419 * invoked with two arguments: (arrVal, othVal).
26420 *
26421 * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
26422 *
26423 * @static
26424 * @memberOf _
26425 * @since 4.6.0
26426 * @category Array
26427 * @param {Array} array The array to modify.
26428 * @param {Array} values The values to remove.
26429 * @param {Function} [comparator] The comparator invoked per element.
26430 * @returns {Array} Returns `array`.
26431 * @example
26432 *
26433 * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
26434 *
26435 * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
26436 * console.log(array);
26437 * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
26438 */
26439 function pullAllWith(array, values, comparator) {
26440 return (array && array.length && values && values.length)
26441 ? basePullAll(array, values, undefined, comparator)
26442 : array;
26443 }
26444
26445 /**
26446 * Removes elements from `array` corresponding to `indexes` and returns an
26447 * array of removed elements.
26448 *
26449 * **Note:** Unlike `_.at`, this method mutates `array`.
26450 *
26451 * @static
26452 * @memberOf _
26453 * @since 3.0.0
26454 * @category Array
26455 * @param {Array} array The array to modify.
26456 * @param {...(number|number[])} [indexes] The indexes of elements to remove.
26457 * @returns {Array} Returns the new array of removed elements.
26458 * @example
26459 *
26460 * var array = ['a', 'b', 'c', 'd'];
26461 * var pulled = _.pullAt(array, [1, 3]);
26462 *
26463 * console.log(array);
26464 * // => ['a', 'c']
26465 *
26466 * console.log(pulled);
26467 * // => ['b', 'd']
26468 */
26469 var pullAt = flatRest(function(array, indexes) {
26470 var length = array == null ? 0 : array.length,
26471 result = baseAt(array, indexes);
26472
26473 basePullAt(array, arrayMap(indexes, function(index) {
26474 return isIndex(index, length) ? +index : index;
26475 }).sort(compareAscending));
26476
26477 return result;
26478 });
26479
26480 /**
26481 * Removes all elements from `array` that `predicate` returns truthy for
26482 * and returns an array of the removed elements. The predicate is invoked
26483 * with three arguments: (value, index, array).
26484 *
26485 * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`
26486 * to pull elements from an array by value.
26487 *
26488 * @static
26489 * @memberOf _
26490 * @since 2.0.0
26491 * @category Array
26492 * @param {Array} array The array to modify.
26493 * @param {Function} [predicate=_.identity] The function invoked per iteration.
26494 * @returns {Array} Returns the new array of removed elements.
26495 * @example
26496 *
26497 * var array = [1, 2, 3, 4];
26498 * var evens = _.remove(array, function(n) {
26499 * return n % 2 == 0;
26500 * });
26501 *
26502 * console.log(array);
26503 * // => [1, 3]
26504 *
26505 * console.log(evens);
26506 * // => [2, 4]
26507 */
26508 function remove(array, predicate) {
26509 var result = [];
26510 if (!(array && array.length)) {
26511 return result;
26512 }
26513 var index = -1,
26514 indexes = [],
26515 length = array.length;
26516
26517 predicate = getIteratee(predicate, 3);
26518 while (++index < length) {
26519 var value = array[index];
26520 if (predicate(value, index, array)) {
26521 result.push(value);
26522 indexes.push(index);
26523 }
26524 }
26525 basePullAt(array, indexes);
26526 return result;
26527 }
26528
26529 /**
26530 * Reverses `array` so that the first element becomes the last, the second
26531 * element becomes the second to last, and so on.
26532 *
26533 * **Note:** This method mutates `array` and is based on
26534 * [`Array#reverse`](https://mdn.io/Array/reverse).
26535 *
26536 * @static
26537 * @memberOf _
26538 * @since 4.0.0
26539 * @category Array
26540 * @param {Array} array The array to modify.
26541 * @returns {Array} Returns `array`.
26542 * @example
26543 *
26544 * var array = [1, 2, 3];
26545 *
26546 * _.reverse(array);
26547 * // => [3, 2, 1]
26548 *
26549 * console.log(array);
26550 * // => [3, 2, 1]
26551 */
26552 function reverse(array) {
26553 return array == null ? array : nativeReverse.call(array);
26554 }
26555
26556 /**
26557 * Creates a slice of `array` from `start` up to, but not including, `end`.
26558 *
26559 * **Note:** This method is used instead of
26560 * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are
26561 * returned.
26562 *
26563 * @static
26564 * @memberOf _
26565 * @since 3.0.0
26566 * @category Array
26567 * @param {Array} array The array to slice.
26568 * @param {number} [start=0] The start position.
26569 * @param {number} [end=array.length] The end position.
26570 * @returns {Array} Returns the slice of `array`.
26571 */
26572 function slice(array, start, end) {
26573 var length = array == null ? 0 : array.length;
26574 if (!length) {
26575 return [];
26576 }
26577 if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {
26578 start = 0;
26579 end = length;
26580 }
26581 else {
26582 start = start == null ? 0 : toInteger(start);
26583 end = end === undefined ? length : toInteger(end);
26584 }
26585 return baseSlice(array, start, end);
26586 }
26587
26588 /**
26589 * Uses a binary search to determine the lowest index at which `value`
26590 * should be inserted into `array` in order to maintain its sort order.
26591 *
26592 * @static
26593 * @memberOf _
26594 * @since 0.1.0
26595 * @category Array
26596 * @param {Array} array The sorted array to inspect.
26597 * @param {*} value The value to evaluate.
26598 * @returns {number} Returns the index at which `value` should be inserted
26599 * into `array`.
26600 * @example
26601 *
26602 * _.sortedIndex([30, 50], 40);
26603 * // => 1
26604 */
26605 function sortedIndex(array, value) {
26606 return baseSortedIndex(array, value);
26607 }
26608
26609 /**
26610 * This method is like `_.sortedIndex` except that it accepts `iteratee`
26611 * which is invoked for `value` and each element of `array` to compute their
26612 * sort ranking. The iteratee is invoked with one argument: (value).
26613 *
26614 * @static
26615 * @memberOf _
26616 * @since 4.0.0
26617 * @category Array
26618 * @param {Array} array The sorted array to inspect.
26619 * @param {*} value The value to evaluate.
26620 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
26621 * @returns {number} Returns the index at which `value` should be inserted
26622 * into `array`.
26623 * @example
26624 *
26625 * var objects = [{ 'x': 4 }, { 'x': 5 }];
26626 *
26627 * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
26628 * // => 0
26629 *
26630 * // The `_.property` iteratee shorthand.
26631 * _.sortedIndexBy(objects, { 'x': 4 }, 'x');
26632 * // => 0
26633 */
26634 function sortedIndexBy(array, value, iteratee) {
26635 return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));
26636 }
26637
26638 /**
26639 * This method is like `_.indexOf` except that it performs a binary
26640 * search on a sorted `array`.
26641 *
26642 * @static
26643 * @memberOf _
26644 * @since 4.0.0
26645 * @category Array
26646 * @param {Array} array The array to inspect.
26647 * @param {*} value The value to search for.
26648 * @returns {number} Returns the index of the matched value, else `-1`.
26649 * @example
26650 *
26651 * _.sortedIndexOf([4, 5, 5, 5, 6], 5);
26652 * // => 1
26653 */
26654 function sortedIndexOf(array, value) {
26655 var length = array == null ? 0 : array.length;
26656 if (length) {
26657 var index = baseSortedIndex(array, value);
26658 if (index < length && eq(array[index], value)) {
26659 return index;
26660 }
26661 }
26662 return -1;
26663 }
26664
26665 /**
26666 * This method is like `_.sortedIndex` except that it returns the highest
26667 * index at which `value` should be inserted into `array` in order to
26668 * maintain its sort order.
26669 *
26670 * @static
26671 * @memberOf _
26672 * @since 3.0.0
26673 * @category Array
26674 * @param {Array} array The sorted array to inspect.
26675 * @param {*} value The value to evaluate.
26676 * @returns {number} Returns the index at which `value` should be inserted
26677 * into `array`.
26678 * @example
26679 *
26680 * _.sortedLastIndex([4, 5, 5, 5, 6], 5);
26681 * // => 4
26682 */
26683 function sortedLastIndex(array, value) {
26684 return baseSortedIndex(array, value, true);
26685 }
26686
26687 /**
26688 * This method is like `_.sortedLastIndex` except that it accepts `iteratee`
26689 * which is invoked for `value` and each element of `array` to compute their
26690 * sort ranking. The iteratee is invoked with one argument: (value).
26691 *
26692 * @static
26693 * @memberOf _
26694 * @since 4.0.0
26695 * @category Array
26696 * @param {Array} array The sorted array to inspect.
26697 * @param {*} value The value to evaluate.
26698 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
26699 * @returns {number} Returns the index at which `value` should be inserted
26700 * into `array`.
26701 * @example
26702 *
26703 * var objects = [{ 'x': 4 }, { 'x': 5 }];
26704 *
26705 * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });
26706 * // => 1
26707 *
26708 * // The `_.property` iteratee shorthand.
26709 * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');
26710 * // => 1
26711 */
26712 function sortedLastIndexBy(array, value, iteratee) {
26713 return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);
26714 }
26715
26716 /**
26717 * This method is like `_.lastIndexOf` except that it performs a binary
26718 * search on a sorted `array`.
26719 *
26720 * @static
26721 * @memberOf _
26722 * @since 4.0.0
26723 * @category Array
26724 * @param {Array} array The array to inspect.
26725 * @param {*} value The value to search for.
26726 * @returns {number} Returns the index of the matched value, else `-1`.
26727 * @example
26728 *
26729 * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);
26730 * // => 3
26731 */
26732 function sortedLastIndexOf(array, value) {
26733 var length = array == null ? 0 : array.length;
26734 if (length) {
26735 var index = baseSortedIndex(array, value, true) - 1;
26736 if (eq(array[index], value)) {
26737 return index;
26738 }
26739 }
26740 return -1;
26741 }
26742
26743 /**
26744 * This method is like `_.uniq` except that it's designed and optimized
26745 * for sorted arrays.
26746 *
26747 * @static
26748 * @memberOf _
26749 * @since 4.0.0
26750 * @category Array
26751 * @param {Array} array The array to inspect.
26752 * @returns {Array} Returns the new duplicate free array.
26753 * @example
26754 *
26755 * _.sortedUniq([1, 1, 2]);
26756 * // => [1, 2]
26757 */
26758 function sortedUniq(array) {
26759 return (array && array.length)
26760 ? baseSortedUniq(array)
26761 : [];
26762 }
26763
26764 /**
26765 * This method is like `_.uniqBy` except that it's designed and optimized
26766 * for sorted arrays.
26767 *
26768 * @static
26769 * @memberOf _
26770 * @since 4.0.0
26771 * @category Array
26772 * @param {Array} array The array to inspect.
26773 * @param {Function} [iteratee] The iteratee invoked per element.
26774 * @returns {Array} Returns the new duplicate free array.
26775 * @example
26776 *
26777 * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
26778 * // => [1.1, 2.3]
26779 */
26780 function sortedUniqBy(array, iteratee) {
26781 return (array && array.length)
26782 ? baseSortedUniq(array, getIteratee(iteratee, 2))
26783 : [];
26784 }
26785
26786 /**
26787 * Gets all but the first element of `array`.
26788 *
26789 * @static
26790 * @memberOf _
26791 * @since 4.0.0
26792 * @category Array
26793 * @param {Array} array The array to query.
26794 * @returns {Array} Returns the slice of `array`.
26795 * @example
26796 *
26797 * _.tail([1, 2, 3]);
26798 * // => [2, 3]
26799 */
26800 function tail(array) {
26801 var length = array == null ? 0 : array.length;
26802 return length ? baseSlice(array, 1, length) : [];
26803 }
26804
26805 /**
26806 * Creates a slice of `array` with `n` elements taken from the beginning.
26807 *
26808 * @static
26809 * @memberOf _
26810 * @since 0.1.0
26811 * @category Array
26812 * @param {Array} array The array to query.
26813 * @param {number} [n=1] The number of elements to take.
26814 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
26815 * @returns {Array} Returns the slice of `array`.
26816 * @example
26817 *
26818 * _.take([1, 2, 3]);
26819 * // => [1]
26820 *
26821 * _.take([1, 2, 3], 2);
26822 * // => [1, 2]
26823 *
26824 * _.take([1, 2, 3], 5);
26825 * // => [1, 2, 3]
26826 *
26827 * _.take([1, 2, 3], 0);
26828 * // => []
26829 */
26830 function take(array, n, guard) {
26831 if (!(array && array.length)) {
26832 return [];
26833 }
26834 n = (guard || n === undefined) ? 1 : toInteger(n);
26835 return baseSlice(array, 0, n < 0 ? 0 : n);
26836 }
26837
26838 /**
26839 * Creates a slice of `array` with `n` elements taken from the end.
26840 *
26841 * @static
26842 * @memberOf _
26843 * @since 3.0.0
26844 * @category Array
26845 * @param {Array} array The array to query.
26846 * @param {number} [n=1] The number of elements to take.
26847 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
26848 * @returns {Array} Returns the slice of `array`.
26849 * @example
26850 *
26851 * _.takeRight([1, 2, 3]);
26852 * // => [3]
26853 *
26854 * _.takeRight([1, 2, 3], 2);
26855 * // => [2, 3]
26856 *
26857 * _.takeRight([1, 2, 3], 5);
26858 * // => [1, 2, 3]
26859 *
26860 * _.takeRight([1, 2, 3], 0);
26861 * // => []
26862 */
26863 function takeRight(array, n, guard) {
26864 var length = array == null ? 0 : array.length;
26865 if (!length) {
26866 return [];
26867 }
26868 n = (guard || n === undefined) ? 1 : toInteger(n);
26869 n = length - n;
26870 return baseSlice(array, n < 0 ? 0 : n, length);
26871 }
26872
26873 /**
26874 * Creates a slice of `array` with elements taken from the end. Elements are
26875 * taken until `predicate` returns falsey. The predicate is invoked with
26876 * three arguments: (value, index, array).
26877 *
26878 * @static
26879 * @memberOf _
26880 * @since 3.0.0
26881 * @category Array
26882 * @param {Array} array The array to query.
26883 * @param {Function} [predicate=_.identity] The function invoked per iteration.
26884 * @returns {Array} Returns the slice of `array`.
26885 * @example
26886 *
26887 * var users = [
26888 * { 'user': 'barney', 'active': true },
26889 * { 'user': 'fred', 'active': false },
26890 * { 'user': 'pebbles', 'active': false }
26891 * ];
26892 *
26893 * _.takeRightWhile(users, function(o) { return !o.active; });
26894 * // => objects for ['fred', 'pebbles']
26895 *
26896 * // The `_.matches` iteratee shorthand.
26897 * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });
26898 * // => objects for ['pebbles']
26899 *
26900 * // The `_.matchesProperty` iteratee shorthand.
26901 * _.takeRightWhile(users, ['active', false]);
26902 * // => objects for ['fred', 'pebbles']
26903 *
26904 * // The `_.property` iteratee shorthand.
26905 * _.takeRightWhile(users, 'active');
26906 * // => []
26907 */
26908 function takeRightWhile(array, predicate) {
26909 return (array && array.length)
26910 ? baseWhile(array, getIteratee(predicate, 3), false, true)
26911 : [];
26912 }
26913
26914 /**
26915 * Creates a slice of `array` with elements taken from the beginning. Elements
26916 * are taken until `predicate` returns falsey. The predicate is invoked with
26917 * three arguments: (value, index, array).
26918 *
26919 * @static
26920 * @memberOf _
26921 * @since 3.0.0
26922 * @category Array
26923 * @param {Array} array The array to query.
26924 * @param {Function} [predicate=_.identity] The function invoked per iteration.
26925 * @returns {Array} Returns the slice of `array`.
26926 * @example
26927 *
26928 * var users = [
26929 * { 'user': 'barney', 'active': false },
26930 * { 'user': 'fred', 'active': false },
26931 * { 'user': 'pebbles', 'active': true }
26932 * ];
26933 *
26934 * _.takeWhile(users, function(o) { return !o.active; });
26935 * // => objects for ['barney', 'fred']
26936 *
26937 * // The `_.matches` iteratee shorthand.
26938 * _.takeWhile(users, { 'user': 'barney', 'active': false });
26939 * // => objects for ['barney']
26940 *
26941 * // The `_.matchesProperty` iteratee shorthand.
26942 * _.takeWhile(users, ['active', false]);
26943 * // => objects for ['barney', 'fred']
26944 *
26945 * // The `_.property` iteratee shorthand.
26946 * _.takeWhile(users, 'active');
26947 * // => []
26948 */
26949 function takeWhile(array, predicate) {
26950 return (array && array.length)
26951 ? baseWhile(array, getIteratee(predicate, 3))
26952 : [];
26953 }
26954
26955 /**
26956 * Creates an array of unique values, in order, from all given arrays using
26957 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
26958 * for equality comparisons.
26959 *
26960 * @static
26961 * @memberOf _
26962 * @since 0.1.0
26963 * @category Array
26964 * @param {...Array} [arrays] The arrays to inspect.
26965 * @returns {Array} Returns the new array of combined values.
26966 * @example
26967 *
26968 * _.union([2], [1, 2]);
26969 * // => [2, 1]
26970 */
26971 var union = baseRest(function(arrays) {
26972 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
26973 });
26974
26975 /**
26976 * This method is like `_.union` except that it accepts `iteratee` which is
26977 * invoked for each element of each `arrays` to generate the criterion by
26978 * which uniqueness is computed. Result values are chosen from the first
26979 * array in which the value occurs. The iteratee is invoked with one argument:
26980 * (value).
26981 *
26982 * @static
26983 * @memberOf _
26984 * @since 4.0.0
26985 * @category Array
26986 * @param {...Array} [arrays] The arrays to inspect.
26987 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
26988 * @returns {Array} Returns the new array of combined values.
26989 * @example
26990 *
26991 * _.unionBy([2.1], [1.2, 2.3], Math.floor);
26992 * // => [2.1, 1.2]
26993 *
26994 * // The `_.property` iteratee shorthand.
26995 * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
26996 * // => [{ 'x': 1 }, { 'x': 2 }]
26997 */
26998 var unionBy = baseRest(function(arrays) {
26999 var iteratee = last(arrays);
27000 if (isArrayLikeObject(iteratee)) {
27001 iteratee = undefined;
27002 }
27003 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));
27004 });
27005
27006 /**
27007 * This method is like `_.union` except that it accepts `comparator` which
27008 * is invoked to compare elements of `arrays`. Result values are chosen from
27009 * the first array in which the value occurs. The comparator is invoked
27010 * with two arguments: (arrVal, othVal).
27011 *
27012 * @static
27013 * @memberOf _
27014 * @since 4.0.0
27015 * @category Array
27016 * @param {...Array} [arrays] The arrays to inspect.
27017 * @param {Function} [comparator] The comparator invoked per element.
27018 * @returns {Array} Returns the new array of combined values.
27019 * @example
27020 *
27021 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
27022 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
27023 *
27024 * _.unionWith(objects, others, _.isEqual);
27025 * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
27026 */
27027 var unionWith = baseRest(function(arrays) {
27028 var comparator = last(arrays);
27029 comparator = typeof comparator == 'function' ? comparator : undefined;
27030 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);
27031 });
27032
27033 /**
27034 * Creates a duplicate-free version of an array, using
27035 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
27036 * for equality comparisons, in which only the first occurrence of each element
27037 * is kept. The order of result values is determined by the order they occur
27038 * in the array.
27039 *
27040 * @static
27041 * @memberOf _
27042 * @since 0.1.0
27043 * @category Array
27044 * @param {Array} array The array to inspect.
27045 * @returns {Array} Returns the new duplicate free array.
27046 * @example
27047 *
27048 * _.uniq([2, 1, 2]);
27049 * // => [2, 1]
27050 */
27051 function uniq(array) {
27052 return (array && array.length) ? baseUniq(array) : [];
27053 }
27054
27055 /**
27056 * This method is like `_.uniq` except that it accepts `iteratee` which is
27057 * invoked for each element in `array` to generate the criterion by which
27058 * uniqueness is computed. The order of result values is determined by the
27059 * order they occur in the array. The iteratee is invoked with one argument:
27060 * (value).
27061 *
27062 * @static
27063 * @memberOf _
27064 * @since 4.0.0
27065 * @category Array
27066 * @param {Array} array The array to inspect.
27067 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
27068 * @returns {Array} Returns the new duplicate free array.
27069 * @example
27070 *
27071 * _.uniqBy([2.1, 1.2, 2.3], Math.floor);
27072 * // => [2.1, 1.2]
27073 *
27074 * // The `_.property` iteratee shorthand.
27075 * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
27076 * // => [{ 'x': 1 }, { 'x': 2 }]
27077 */
27078 function uniqBy(array, iteratee) {
27079 return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];
27080 }
27081
27082 /**
27083 * This method is like `_.uniq` except that it accepts `comparator` which
27084 * is invoked to compare elements of `array`. The order of result values is
27085 * determined by the order they occur in the array.The comparator is invoked
27086 * with two arguments: (arrVal, othVal).
27087 *
27088 * @static
27089 * @memberOf _
27090 * @since 4.0.0
27091 * @category Array
27092 * @param {Array} array The array to inspect.
27093 * @param {Function} [comparator] The comparator invoked per element.
27094 * @returns {Array} Returns the new duplicate free array.
27095 * @example
27096 *
27097 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
27098 *
27099 * _.uniqWith(objects, _.isEqual);
27100 * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]
27101 */
27102 function uniqWith(array, comparator) {
27103 comparator = typeof comparator == 'function' ? comparator : undefined;
27104 return (array && array.length) ? baseUniq(array, undefined, comparator) : [];
27105 }
27106
27107 /**
27108 * This method is like `_.zip` except that it accepts an array of grouped
27109 * elements and creates an array regrouping the elements to their pre-zip
27110 * configuration.
27111 *
27112 * @static
27113 * @memberOf _
27114 * @since 1.2.0
27115 * @category Array
27116 * @param {Array} array The array of grouped elements to process.
27117 * @returns {Array} Returns the new array of regrouped elements.
27118 * @example
27119 *
27120 * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);
27121 * // => [['a', 1, true], ['b', 2, false]]
27122 *
27123 * _.unzip(zipped);
27124 * // => [['a', 'b'], [1, 2], [true, false]]
27125 */
27126 function unzip(array) {
27127 if (!(array && array.length)) {
27128 return [];
27129 }
27130 var length = 0;
27131 array = arrayFilter(array, function(group) {
27132 if (isArrayLikeObject(group)) {
27133 length = nativeMax(group.length, length);
27134 return true;
27135 }
27136 });
27137 return baseTimes(length, function(index) {
27138 return arrayMap(array, baseProperty(index));
27139 });
27140 }
27141
27142 /**
27143 * This method is like `_.unzip` except that it accepts `iteratee` to specify
27144 * how regrouped values should be combined. The iteratee is invoked with the
27145 * elements of each group: (...group).
27146 *
27147 * @static
27148 * @memberOf _
27149 * @since 3.8.0
27150 * @category Array
27151 * @param {Array} array The array of grouped elements to process.
27152 * @param {Function} [iteratee=_.identity] The function to combine
27153 * regrouped values.
27154 * @returns {Array} Returns the new array of regrouped elements.
27155 * @example
27156 *
27157 * var zipped = _.zip([1, 2], [10, 20], [100, 200]);
27158 * // => [[1, 10, 100], [2, 20, 200]]
27159 *
27160 * _.unzipWith(zipped, _.add);
27161 * // => [3, 30, 300]
27162 */
27163 function unzipWith(array, iteratee) {
27164 if (!(array && array.length)) {
27165 return [];
27166 }
27167 var result = unzip(array);
27168 if (iteratee == null) {
27169 return result;
27170 }
27171 return arrayMap(result, function(group) {
27172 return apply(iteratee, undefined, group);
27173 });
27174 }
27175
27176 /**
27177 * Creates an array excluding all given values using
27178 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
27179 * for equality comparisons.
27180 *
27181 * **Note:** Unlike `_.pull`, this method returns a new array.
27182 *
27183 * @static
27184 * @memberOf _
27185 * @since 0.1.0
27186 * @category Array
27187 * @param {Array} array The array to inspect.
27188 * @param {...*} [values] The values to exclude.
27189 * @returns {Array} Returns the new array of filtered values.
27190 * @see _.difference, _.xor
27191 * @example
27192 *
27193 * _.without([2, 1, 2, 3], 1, 2);
27194 * // => [3]
27195 */
27196 var without = baseRest(function(array, values) {
27197 return isArrayLikeObject(array)
27198 ? baseDifference(array, values)
27199 : [];
27200 });
27201
27202 /**
27203 * Creates an array of unique values that is the
27204 * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
27205 * of the given arrays. The order of result values is determined by the order
27206 * they occur in the arrays.
27207 *
27208 * @static
27209 * @memberOf _
27210 * @since 2.4.0
27211 * @category Array
27212 * @param {...Array} [arrays] The arrays to inspect.
27213 * @returns {Array} Returns the new array of filtered values.
27214 * @see _.difference, _.without
27215 * @example
27216 *
27217 * _.xor([2, 1], [2, 3]);
27218 * // => [1, 3]
27219 */
27220 var xor = baseRest(function(arrays) {
27221 return baseXor(arrayFilter(arrays, isArrayLikeObject));
27222 });
27223
27224 /**
27225 * This method is like `_.xor` except that it accepts `iteratee` which is
27226 * invoked for each element of each `arrays` to generate the criterion by
27227 * which by which they're compared. The order of result values is determined
27228 * by the order they occur in the arrays. The iteratee is invoked with one
27229 * argument: (value).
27230 *
27231 * @static
27232 * @memberOf _
27233 * @since 4.0.0
27234 * @category Array
27235 * @param {...Array} [arrays] The arrays to inspect.
27236 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
27237 * @returns {Array} Returns the new array of filtered values.
27238 * @example
27239 *
27240 * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);
27241 * // => [1.2, 3.4]
27242 *
27243 * // The `_.property` iteratee shorthand.
27244 * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
27245 * // => [{ 'x': 2 }]
27246 */
27247 var xorBy = baseRest(function(arrays) {
27248 var iteratee = last(arrays);
27249 if (isArrayLikeObject(iteratee)) {
27250 iteratee = undefined;
27251 }
27252 return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));
27253 });
27254
27255 /**
27256 * This method is like `_.xor` except that it accepts `comparator` which is
27257 * invoked to compare elements of `arrays`. The order of result values is
27258 * determined by the order they occur in the arrays. The comparator is invoked
27259 * with two arguments: (arrVal, othVal).
27260 *
27261 * @static
27262 * @memberOf _
27263 * @since 4.0.0
27264 * @category Array
27265 * @param {...Array} [arrays] The arrays to inspect.
27266 * @param {Function} [comparator] The comparator invoked per element.
27267 * @returns {Array} Returns the new array of filtered values.
27268 * @example
27269 *
27270 * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
27271 * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
27272 *
27273 * _.xorWith(objects, others, _.isEqual);
27274 * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
27275 */
27276 var xorWith = baseRest(function(arrays) {
27277 var comparator = last(arrays);
27278 comparator = typeof comparator == 'function' ? comparator : undefined;
27279 return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);
27280 });
27281
27282 /**
27283 * Creates an array of grouped elements, the first of which contains the
27284 * first elements of the given arrays, the second of which contains the
27285 * second elements of the given arrays, and so on.
27286 *
27287 * @static
27288 * @memberOf _
27289 * @since 0.1.0
27290 * @category Array
27291 * @param {...Array} [arrays] The arrays to process.
27292 * @returns {Array} Returns the new array of grouped elements.
27293 * @example
27294 *
27295 * _.zip(['a', 'b'], [1, 2], [true, false]);
27296 * // => [['a', 1, true], ['b', 2, false]]
27297 */
27298 var zip = baseRest(unzip);
27299
27300 /**
27301 * This method is like `_.fromPairs` except that it accepts two arrays,
27302 * one of property identifiers and one of corresponding values.
27303 *
27304 * @static
27305 * @memberOf _
27306 * @since 0.4.0
27307 * @category Array
27308 * @param {Array} [props=[]] The property identifiers.
27309 * @param {Array} [values=[]] The property values.
27310 * @returns {Object} Returns the new object.
27311 * @example
27312 *
27313 * _.zipObject(['a', 'b'], [1, 2]);
27314 * // => { 'a': 1, 'b': 2 }
27315 */
27316 function zipObject(props, values) {
27317 return baseZipObject(props || [], values || [], assignValue);
27318 }
27319
27320 /**
27321 * This method is like `_.zipObject` except that it supports property paths.
27322 *
27323 * @static
27324 * @memberOf _
27325 * @since 4.1.0
27326 * @category Array
27327 * @param {Array} [props=[]] The property identifiers.
27328 * @param {Array} [values=[]] The property values.
27329 * @returns {Object} Returns the new object.
27330 * @example
27331 *
27332 * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);
27333 * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }
27334 */
27335 function zipObjectDeep(props, values) {
27336 return baseZipObject(props || [], values || [], baseSet);
27337 }
27338
27339 /**
27340 * This method is like `_.zip` except that it accepts `iteratee` to specify
27341 * how grouped values should be combined. The iteratee is invoked with the
27342 * elements of each group: (...group).
27343 *
27344 * @static
27345 * @memberOf _
27346 * @since 3.8.0
27347 * @category Array
27348 * @param {...Array} [arrays] The arrays to process.
27349 * @param {Function} [iteratee=_.identity] The function to combine
27350 * grouped values.
27351 * @returns {Array} Returns the new array of grouped elements.
27352 * @example
27353 *
27354 * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
27355 * return a + b + c;
27356 * });
27357 * // => [111, 222]
27358 */
27359 var zipWith = baseRest(function(arrays) {
27360 var length = arrays.length,
27361 iteratee = length > 1 ? arrays[length - 1] : undefined;
27362
27363 iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;
27364 return unzipWith(arrays, iteratee);
27365 });
27366
27367 /*------------------------------------------------------------------------*/
27368
27369 /**
27370 * Creates a `lodash` wrapper instance that wraps `value` with explicit method
27371 * chain sequences enabled. The result of such sequences must be unwrapped
27372 * with `_#value`.
27373 *
27374 * @static
27375 * @memberOf _
27376 * @since 1.3.0
27377 * @category Seq
27378 * @param {*} value The value to wrap.
27379 * @returns {Object} Returns the new `lodash` wrapper instance.
27380 * @example
27381 *
27382 * var users = [
27383 * { 'user': 'barney', 'age': 36 },
27384 * { 'user': 'fred', 'age': 40 },
27385 * { 'user': 'pebbles', 'age': 1 }
27386 * ];
27387 *
27388 * var youngest = _
27389 * .chain(users)
27390 * .sortBy('age')
27391 * .map(function(o) {
27392 * return o.user + ' is ' + o.age;
27393 * })
27394 * .head()
27395 * .value();
27396 * // => 'pebbles is 1'
27397 */
27398 function chain(value) {
27399 var result = lodash(value);
27400 result.__chain__ = true;
27401 return result;
27402 }
27403
27404 /**
27405 * This method invokes `interceptor` and returns `value`. The interceptor
27406 * is invoked with one argument; (value). The purpose of this method is to
27407 * "tap into" a method chain sequence in order to modify intermediate results.
27408 *
27409 * @static
27410 * @memberOf _
27411 * @since 0.1.0
27412 * @category Seq
27413 * @param {*} value The value to provide to `interceptor`.
27414 * @param {Function} interceptor The function to invoke.
27415 * @returns {*} Returns `value`.
27416 * @example
27417 *
27418 * _([1, 2, 3])
27419 * .tap(function(array) {
27420 * // Mutate input array.
27421 * array.pop();
27422 * })
27423 * .reverse()
27424 * .value();
27425 * // => [2, 1]
27426 */
27427 function tap(value, interceptor) {
27428 interceptor(value);
27429 return value;
27430 }
27431
27432 /**
27433 * This method is like `_.tap` except that it returns the result of `interceptor`.
27434 * The purpose of this method is to "pass thru" values replacing intermediate
27435 * results in a method chain sequence.
27436 *
27437 * @static
27438 * @memberOf _
27439 * @since 3.0.0
27440 * @category Seq
27441 * @param {*} value The value to provide to `interceptor`.
27442 * @param {Function} interceptor The function to invoke.
27443 * @returns {*} Returns the result of `interceptor`.
27444 * @example
27445 *
27446 * _(' abc ')
27447 * .chain()
27448 * .trim()
27449 * .thru(function(value) {
27450 * return [value];
27451 * })
27452 * .value();
27453 * // => ['abc']
27454 */
27455 function thru(value, interceptor) {
27456 return interceptor(value);
27457 }
27458
27459 /**
27460 * This method is the wrapper version of `_.at`.
27461 *
27462 * @name at
27463 * @memberOf _
27464 * @since 1.0.0
27465 * @category Seq
27466 * @param {...(string|string[])} [paths] The property paths to pick.
27467 * @returns {Object} Returns the new `lodash` wrapper instance.
27468 * @example
27469 *
27470 * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
27471 *
27472 * _(object).at(['a[0].b.c', 'a[1]']).value();
27473 * // => [3, 4]
27474 */
27475 var wrapperAt = flatRest(function(paths) {
27476 var length = paths.length,
27477 start = length ? paths[0] : 0,
27478 value = this.__wrapped__,
27479 interceptor = function(object) { return baseAt(object, paths); };
27480
27481 if (length > 1 || this.__actions__.length ||
27482 !(value instanceof LazyWrapper) || !isIndex(start)) {
27483 return this.thru(interceptor);
27484 }
27485 value = value.slice(start, +start + (length ? 1 : 0));
27486 value.__actions__.push({
27487 'func': thru,
27488 'args': [interceptor],
27489 'thisArg': undefined
27490 });
27491 return new LodashWrapper(value, this.__chain__).thru(function(array) {
27492 if (length && !array.length) {
27493 array.push(undefined);
27494 }
27495 return array;
27496 });
27497 });
27498
27499 /**
27500 * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.
27501 *
27502 * @name chain
27503 * @memberOf _
27504 * @since 0.1.0
27505 * @category Seq
27506 * @returns {Object} Returns the new `lodash` wrapper instance.
27507 * @example
27508 *
27509 * var users = [
27510 * { 'user': 'barney', 'age': 36 },
27511 * { 'user': 'fred', 'age': 40 }
27512 * ];
27513 *
27514 * // A sequence without explicit chaining.
27515 * _(users).head();
27516 * // => { 'user': 'barney', 'age': 36 }
27517 *
27518 * // A sequence with explicit chaining.
27519 * _(users)
27520 * .chain()
27521 * .head()
27522 * .pick('user')
27523 * .value();
27524 * // => { 'user': 'barney' }
27525 */
27526 function wrapperChain() {
27527 return chain(this);
27528 }
27529
27530 /**
27531 * Executes the chain sequence and returns the wrapped result.
27532 *
27533 * @name commit
27534 * @memberOf _
27535 * @since 3.2.0
27536 * @category Seq
27537 * @returns {Object} Returns the new `lodash` wrapper instance.
27538 * @example
27539 *
27540 * var array = [1, 2];
27541 * var wrapped = _(array).push(3);
27542 *
27543 * console.log(array);
27544 * // => [1, 2]
27545 *
27546 * wrapped = wrapped.commit();
27547 * console.log(array);
27548 * // => [1, 2, 3]
27549 *
27550 * wrapped.last();
27551 * // => 3
27552 *
27553 * console.log(array);
27554 * // => [1, 2, 3]
27555 */
27556 function wrapperCommit() {
27557 return new LodashWrapper(this.value(), this.__chain__);
27558 }
27559
27560 /**
27561 * Gets the next value on a wrapped object following the
27562 * [iterator protocol](https://mdn.io/iteration_protocols#iterator).
27563 *
27564 * @name next
27565 * @memberOf _
27566 * @since 4.0.0
27567 * @category Seq
27568 * @returns {Object} Returns the next iterator value.
27569 * @example
27570 *
27571 * var wrapped = _([1, 2]);
27572 *
27573 * wrapped.next();
27574 * // => { 'done': false, 'value': 1 }
27575 *
27576 * wrapped.next();
27577 * // => { 'done': false, 'value': 2 }
27578 *
27579 * wrapped.next();
27580 * // => { 'done': true, 'value': undefined }
27581 */
27582 function wrapperNext() {
27583 if (this.__values__ === undefined) {
27584 this.__values__ = toArray(this.value());
27585 }
27586 var done = this.__index__ >= this.__values__.length,
27587 value = done ? undefined : this.__values__[this.__index__++];
27588
27589 return { 'done': done, 'value': value };
27590 }
27591
27592 /**
27593 * Enables the wrapper to be iterable.
27594 *
27595 * @name Symbol.iterator
27596 * @memberOf _
27597 * @since 4.0.0
27598 * @category Seq
27599 * @returns {Object} Returns the wrapper object.
27600 * @example
27601 *
27602 * var wrapped = _([1, 2]);
27603 *
27604 * wrapped[Symbol.iterator]() === wrapped;
27605 * // => true
27606 *
27607 * Array.from(wrapped);
27608 * // => [1, 2]
27609 */
27610 function wrapperToIterator() {
27611 return this;
27612 }
27613
27614 /**
27615 * Creates a clone of the chain sequence planting `value` as the wrapped value.
27616 *
27617 * @name plant
27618 * @memberOf _
27619 * @since 3.2.0
27620 * @category Seq
27621 * @param {*} value The value to plant.
27622 * @returns {Object} Returns the new `lodash` wrapper instance.
27623 * @example
27624 *
27625 * function square(n) {
27626 * return n * n;
27627 * }
27628 *
27629 * var wrapped = _([1, 2]).map(square);
27630 * var other = wrapped.plant([3, 4]);
27631 *
27632 * other.value();
27633 * // => [9, 16]
27634 *
27635 * wrapped.value();
27636 * // => [1, 4]
27637 */
27638 function wrapperPlant(value) {
27639 var result,
27640 parent = this;
27641
27642 while (parent instanceof baseLodash) {
27643 var clone = wrapperClone(parent);
27644 clone.__index__ = 0;
27645 clone.__values__ = undefined;
27646 if (result) {
27647 previous.__wrapped__ = clone;
27648 } else {
27649 result = clone;
27650 }
27651 var previous = clone;
27652 parent = parent.__wrapped__;
27653 }
27654 previous.__wrapped__ = value;
27655 return result;
27656 }
27657
27658 /**
27659 * This method is the wrapper version of `_.reverse`.
27660 *
27661 * **Note:** This method mutates the wrapped array.
27662 *
27663 * @name reverse
27664 * @memberOf _
27665 * @since 0.1.0
27666 * @category Seq
27667 * @returns {Object} Returns the new `lodash` wrapper instance.
27668 * @example
27669 *
27670 * var array = [1, 2, 3];
27671 *
27672 * _(array).reverse().value()
27673 * // => [3, 2, 1]
27674 *
27675 * console.log(array);
27676 * // => [3, 2, 1]
27677 */
27678 function wrapperReverse() {
27679 var value = this.__wrapped__;
27680 if (value instanceof LazyWrapper) {
27681 var wrapped = value;
27682 if (this.__actions__.length) {
27683 wrapped = new LazyWrapper(this);
27684 }
27685 wrapped = wrapped.reverse();
27686 wrapped.__actions__.push({
27687 'func': thru,
27688 'args': [reverse],
27689 'thisArg': undefined
27690 });
27691 return new LodashWrapper(wrapped, this.__chain__);
27692 }
27693 return this.thru(reverse);
27694 }
27695
27696 /**
27697 * Executes the chain sequence to resolve the unwrapped value.
27698 *
27699 * @name value
27700 * @memberOf _
27701 * @since 0.1.0
27702 * @alias toJSON, valueOf
27703 * @category Seq
27704 * @returns {*} Returns the resolved unwrapped value.
27705 * @example
27706 *
27707 * _([1, 2, 3]).value();
27708 * // => [1, 2, 3]
27709 */
27710 function wrapperValue() {
27711 return baseWrapperValue(this.__wrapped__, this.__actions__);
27712 }
27713
27714 /*------------------------------------------------------------------------*/
27715
27716 /**
27717 * Creates an object composed of keys generated from the results of running
27718 * each element of `collection` thru `iteratee`. The corresponding value of
27719 * each key is the number of times the key was returned by `iteratee`. The
27720 * iteratee is invoked with one argument: (value).
27721 *
27722 * @static
27723 * @memberOf _
27724 * @since 0.5.0
27725 * @category Collection
27726 * @param {Array|Object} collection The collection to iterate over.
27727 * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
27728 * @returns {Object} Returns the composed aggregate object.
27729 * @example
27730 *
27731 * _.countBy([6.1, 4.2, 6.3], Math.floor);
27732 * // => { '4': 1, '6': 2 }
27733 *
27734 * // The `_.property` iteratee shorthand.
27735 * _.countBy(['one', 'two', 'three'], 'length');
27736 * // => { '3': 2, '5': 1 }
27737 */
27738 var countBy = createAggregator(function(result, value, key) {
27739 if (hasOwnProperty.call(result, key)) {
27740 ++result[key];
27741 } else {
27742 baseAssignValue(result, key, 1);
27743 }
27744 });
27745
27746 /**
27747 * Checks if `predicate` returns truthy for **all** elements of `collection`.
27748 * Iteration is stopped once `predicate` returns falsey. The predicate is
27749 * invoked with three arguments: (value, index|key, collection).
27750 *
27751 * **Note:** This method returns `true` for
27752 * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because
27753 * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
27754 * elements of empty collections.
27755 *
27756 * @static
27757 * @memberOf _
27758 * @since 0.1.0
27759 * @category Collection
27760 * @param {Array|Object} collection The collection to iterate over.
27761 * @param {Function} [predicate=_.identity] The function invoked per iteration.
27762 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
27763 * @returns {boolean} Returns `true` if all elements pass the predicate check,
27764 * else `false`.
27765 * @example
27766 *
27767 * _.every([true, 1, null, 'yes'], Boolean);
27768 * // => false
27769 *
27770 * var users = [
27771 * { 'user': 'barney', 'age': 36, 'active': false },
27772 * { 'user': 'fred', 'age': 40, 'active': false }
27773 * ];
27774 *
27775 * // The `_.matches` iteratee shorthand.
27776 * _.every(users, { 'user': 'barney', 'active': false });
27777 * // => false
27778 *
27779 * // The `_.matchesProperty` iteratee shorthand.
27780 * _.every(users, ['active', false]);
27781 * // => true
27782 *
27783 * // The `_.property` iteratee shorthand.
27784 * _.every(users, 'active');
27785 * // => false
27786 */
27787 function every(collection, predicate, guard) {
27788 var func = isArray(collection) ? arrayEvery : baseEvery;
27789 if (guard && isIterateeCall(collection, predicate, guard)) {
27790 predicate = undefined;
27791 }
27792 return func(collection, getIteratee(predicate, 3));
27793 }
27794
27795 /**
27796 * Iterates over elements of `collection`, returning an array of all elements
27797 * `predicate` returns truthy for. The predicate is invoked with three
27798 * arguments: (value, index|key, collection).
27799 *
27800 * **Note:** Unlike `_.remove`, this method returns a new array.
27801 *
27802 * @static
27803 * @memberOf _
27804 * @since 0.1.0
27805 * @category Collection
27806 * @param {Array|Object} collection The collection to iterate over.
27807 * @param {Function} [predicate=_.identity] The function invoked per iteration.
27808 * @returns {Array} Returns the new filtered array.
27809 * @see _.reject
27810 * @example
27811 *
27812 * var users = [
27813 * { 'user': 'barney', 'age': 36, 'active': true },
27814 * { 'user': 'fred', 'age': 40, 'active': false }
27815 * ];
27816 *
27817 * _.filter(users, function(o) { return !o.active; });
27818 * // => objects for ['fred']
27819 *
27820 * // The `_.matches` iteratee shorthand.
27821 * _.filter(users, { 'age': 36, 'active': true });
27822 * // => objects for ['barney']
27823 *
27824 * // The `_.matchesProperty` iteratee shorthand.
27825 * _.filter(users, ['active', false]);
27826 * // => objects for ['fred']
27827 *
27828 * // The `_.property` iteratee shorthand.
27829 * _.filter(users, 'active');
27830 * // => objects for ['barney']
27831 */
27832 function filter(collection, predicate) {
27833 var func = isArray(collection) ? arrayFilter : baseFilter;
27834 return func(collection, getIteratee(predicate, 3));
27835 }
27836
27837 /**
27838 * Iterates over elements of `collection`, returning the first element
27839 * `predicate` returns truthy for. The predicate is invoked with three
27840 * arguments: (value, index|key, collection).
27841 *
27842 * @static
27843 * @memberOf _
27844 * @since 0.1.0
27845 * @category Collection
27846 * @param {Array|Object} collection The collection to inspect.
27847 * @param {Function} [predicate=_.identity] The function invoked per iteration.
27848 * @param {number} [fromIndex=0] The index to search from.
27849 * @returns {*} Returns the matched element, else `undefined`.
27850 * @example
27851 *
27852 * var users = [
27853 * { 'user': 'barney', 'age': 36, 'active': true },
27854 * { 'user': 'fred', 'age': 40, 'active': false },
27855 * { 'user': 'pebbles', 'age': 1, 'active': true }
27856 * ];
27857 *
27858 * _.find(users, function(o) { return o.age < 40; });
27859 * // => object for 'barney'
27860 *
27861 * // The `_.matches` iteratee shorthand.
27862 * _.find(users, { 'age': 1, 'active': true });
27863 * // => object for 'pebbles'
27864 *
27865 * // The `_.matchesProperty` iteratee shorthand.
27866 * _.find(users, ['active', false]);
27867 * // => object for 'fred'
27868 *
27869 * // The `_.property` iteratee shorthand.
27870 * _.find(users, 'active');
27871 * // => object for 'barney'
27872 */
27873 var find = createFind(findIndex);
27874
27875 /**
27876 * This method is like `_.find` except that it iterates over elements of
27877 * `collection` from right to left.
27878 *
27879 * @static
27880 * @memberOf _
27881 * @since 2.0.0
27882 * @category Collection
27883 * @param {Array|Object} collection The collection to inspect.
27884 * @param {Function} [predicate=_.identity] The function invoked per iteration.
27885 * @param {number} [fromIndex=collection.length-1] The index to search from.
27886 * @returns {*} Returns the matched element, else `undefined`.
27887 * @example
27888 *
27889 * _.findLast([1, 2, 3, 4], function(n) {
27890 * return n % 2 == 1;
27891 * });
27892 * // => 3
27893 */
27894 var findLast = createFind(findLastIndex);
27895
27896 /**
27897 * Creates a flattened array of values by running each element in `collection`
27898 * thru `iteratee` and flattening the mapped results. The iteratee is invoked
27899 * with three arguments: (value, index|key, collection).
27900 *
27901 * @static
27902 * @memberOf _
27903 * @since 4.0.0
27904 * @category Collection
27905 * @param {Array|Object} collection The collection to iterate over.
27906 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
27907 * @returns {Array} Returns the new flattened array.
27908 * @example
27909 *
27910 * function duplicate(n) {
27911 * return [n, n];
27912 * }
27913 *
27914 * _.flatMap([1, 2], duplicate);
27915 * // => [1, 1, 2, 2]
27916 */
27917 function flatMap(collection, iteratee) {
27918 return baseFlatten(map(collection, iteratee), 1);
27919 }
27920
27921 /**
27922 * This method is like `_.flatMap` except that it recursively flattens the
27923 * mapped results.
27924 *
27925 * @static
27926 * @memberOf _
27927 * @since 4.7.0
27928 * @category Collection
27929 * @param {Array|Object} collection The collection to iterate over.
27930 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
27931 * @returns {Array} Returns the new flattened array.
27932 * @example
27933 *
27934 * function duplicate(n) {
27935 * return [[[n, n]]];
27936 * }
27937 *
27938 * _.flatMapDeep([1, 2], duplicate);
27939 * // => [1, 1, 2, 2]
27940 */
27941 function flatMapDeep(collection, iteratee) {
27942 return baseFlatten(map(collection, iteratee), INFINITY);
27943 }
27944
27945 /**
27946 * This method is like `_.flatMap` except that it recursively flattens the
27947 * mapped results up to `depth` times.
27948 *
27949 * @static
27950 * @memberOf _
27951 * @since 4.7.0
27952 * @category Collection
27953 * @param {Array|Object} collection The collection to iterate over.
27954 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
27955 * @param {number} [depth=1] The maximum recursion depth.
27956 * @returns {Array} Returns the new flattened array.
27957 * @example
27958 *
27959 * function duplicate(n) {
27960 * return [[[n, n]]];
27961 * }
27962 *
27963 * _.flatMapDepth([1, 2], duplicate, 2);
27964 * // => [[1, 1], [2, 2]]
27965 */
27966 function flatMapDepth(collection, iteratee, depth) {
27967 depth = depth === undefined ? 1 : toInteger(depth);
27968 return baseFlatten(map(collection, iteratee), depth);
27969 }
27970
27971 /**
27972 * Iterates over elements of `collection` and invokes `iteratee` for each element.
27973 * The iteratee is invoked with three arguments: (value, index|key, collection).
27974 * Iteratee functions may exit iteration early by explicitly returning `false`.
27975 *
27976 * **Note:** As with other "Collections" methods, objects with a "length"
27977 * property are iterated like arrays. To avoid this behavior use `_.forIn`
27978 * or `_.forOwn` for object iteration.
27979 *
27980 * @static
27981 * @memberOf _
27982 * @since 0.1.0
27983 * @alias each
27984 * @category Collection
27985 * @param {Array|Object} collection The collection to iterate over.
27986 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
27987 * @returns {Array|Object} Returns `collection`.
27988 * @see _.forEachRight
27989 * @example
27990 *
27991 * _.forEach([1, 2], function(value) {
27992 * console.log(value);
27993 * });
27994 * // => Logs `1` then `2`.
27995 *
27996 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
27997 * console.log(key);
27998 * });
27999 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
28000 */
28001 function forEach(collection, iteratee) {
28002 var func = isArray(collection) ? arrayEach : baseEach;
28003 return func(collection, getIteratee(iteratee, 3));
28004 }
28005
28006 /**
28007 * This method is like `_.forEach` except that it iterates over elements of
28008 * `collection` from right to left.
28009 *
28010 * @static
28011 * @memberOf _
28012 * @since 2.0.0
28013 * @alias eachRight
28014 * @category Collection
28015 * @param {Array|Object} collection The collection to iterate over.
28016 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
28017 * @returns {Array|Object} Returns `collection`.
28018 * @see _.forEach
28019 * @example
28020 *
28021 * _.forEachRight([1, 2], function(value) {
28022 * console.log(value);
28023 * });
28024 * // => Logs `2` then `1`.
28025 */
28026 function forEachRight(collection, iteratee) {
28027 var func = isArray(collection) ? arrayEachRight : baseEachRight;
28028 return func(collection, getIteratee(iteratee, 3));
28029 }
28030
28031 /**
28032 * Creates an object composed of keys generated from the results of running
28033 * each element of `collection` thru `iteratee`. The order of grouped values
28034 * is determined by the order they occur in `collection`. The corresponding
28035 * value of each key is an array of elements responsible for generating the
28036 * key. The iteratee is invoked with one argument: (value).
28037 *
28038 * @static
28039 * @memberOf _
28040 * @since 0.1.0
28041 * @category Collection
28042 * @param {Array|Object} collection The collection to iterate over.
28043 * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
28044 * @returns {Object} Returns the composed aggregate object.
28045 * @example
28046 *
28047 * _.groupBy([6.1, 4.2, 6.3], Math.floor);
28048 * // => { '4': [4.2], '6': [6.1, 6.3] }
28049 *
28050 * // The `_.property` iteratee shorthand.
28051 * _.groupBy(['one', 'two', 'three'], 'length');
28052 * // => { '3': ['one', 'two'], '5': ['three'] }
28053 */
28054 var groupBy = createAggregator(function(result, value, key) {
28055 if (hasOwnProperty.call(result, key)) {
28056 result[key].push(value);
28057 } else {
28058 baseAssignValue(result, key, [value]);
28059 }
28060 });
28061
28062 /**
28063 * Checks if `value` is in `collection`. If `collection` is a string, it's
28064 * checked for a substring of `value`, otherwise
28065 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
28066 * is used for equality comparisons. If `fromIndex` is negative, it's used as
28067 * the offset from the end of `collection`.
28068 *
28069 * @static
28070 * @memberOf _
28071 * @since 0.1.0
28072 * @category Collection
28073 * @param {Array|Object|string} collection The collection to inspect.
28074 * @param {*} value The value to search for.
28075 * @param {number} [fromIndex=0] The index to search from.
28076 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
28077 * @returns {boolean} Returns `true` if `value` is found, else `false`.
28078 * @example
28079 *
28080 * _.includes([1, 2, 3], 1);
28081 * // => true
28082 *
28083 * _.includes([1, 2, 3], 1, 2);
28084 * // => false
28085 *
28086 * _.includes({ 'a': 1, 'b': 2 }, 1);
28087 * // => true
28088 *
28089 * _.includes('abcd', 'bc');
28090 * // => true
28091 */
28092 function includes(collection, value, fromIndex, guard) {
28093 collection = isArrayLike(collection) ? collection : values(collection);
28094 fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;
28095
28096 var length = collection.length;
28097 if (fromIndex < 0) {
28098 fromIndex = nativeMax(length + fromIndex, 0);
28099 }
28100 return isString(collection)
28101 ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)
28102 : (!!length && baseIndexOf(collection, value, fromIndex) > -1);
28103 }
28104
28105 /**
28106 * Invokes the method at `path` of each element in `collection`, returning
28107 * an array of the results of each invoked method. Any additional arguments
28108 * are provided to each invoked method. If `path` is a function, it's invoked
28109 * for, and `this` bound to, each element in `collection`.
28110 *
28111 * @static
28112 * @memberOf _
28113 * @since 4.0.0
28114 * @category Collection
28115 * @param {Array|Object} collection The collection to iterate over.
28116 * @param {Array|Function|string} path The path of the method to invoke or
28117 * the function invoked per iteration.
28118 * @param {...*} [args] The arguments to invoke each method with.
28119 * @returns {Array} Returns the array of results.
28120 * @example
28121 *
28122 * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');
28123 * // => [[1, 5, 7], [1, 2, 3]]
28124 *
28125 * _.invokeMap([123, 456], String.prototype.split, '');
28126 * // => [['1', '2', '3'], ['4', '5', '6']]
28127 */
28128 var invokeMap = baseRest(function(collection, path, args) {
28129 var index = -1,
28130 isFunc = typeof path == 'function',
28131 result = isArrayLike(collection) ? Array(collection.length) : [];
28132
28133 baseEach(collection, function(value) {
28134 result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);
28135 });
28136 return result;
28137 });
28138
28139 /**
28140 * Creates an object composed of keys generated from the results of running
28141 * each element of `collection` thru `iteratee`. The corresponding value of
28142 * each key is the last element responsible for generating the key. The
28143 * iteratee is invoked with one argument: (value).
28144 *
28145 * @static
28146 * @memberOf _
28147 * @since 4.0.0
28148 * @category Collection
28149 * @param {Array|Object} collection The collection to iterate over.
28150 * @param {Function} [iteratee=_.identity] The iteratee to transform keys.
28151 * @returns {Object} Returns the composed aggregate object.
28152 * @example
28153 *
28154 * var array = [
28155 * { 'dir': 'left', 'code': 97 },
28156 * { 'dir': 'right', 'code': 100 }
28157 * ];
28158 *
28159 * _.keyBy(array, function(o) {
28160 * return String.fromCharCode(o.code);
28161 * });
28162 * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
28163 *
28164 * _.keyBy(array, 'dir');
28165 * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }
28166 */
28167 var keyBy = createAggregator(function(result, value, key) {
28168 baseAssignValue(result, key, value);
28169 });
28170
28171 /**
28172 * Creates an array of values by running each element in `collection` thru
28173 * `iteratee`. The iteratee is invoked with three arguments:
28174 * (value, index|key, collection).
28175 *
28176 * Many lodash methods are guarded to work as iteratees for methods like
28177 * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.
28178 *
28179 * The guarded methods are:
28180 * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,
28181 * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,
28182 * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,
28183 * `template`, `trim`, `trimEnd`, `trimStart`, and `words`
28184 *
28185 * @static
28186 * @memberOf _
28187 * @since 0.1.0
28188 * @category Collection
28189 * @param {Array|Object} collection The collection to iterate over.
28190 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
28191 * @returns {Array} Returns the new mapped array.
28192 * @example
28193 *
28194 * function square(n) {
28195 * return n * n;
28196 * }
28197 *
28198 * _.map([4, 8], square);
28199 * // => [16, 64]
28200 *
28201 * _.map({ 'a': 4, 'b': 8 }, square);
28202 * // => [16, 64] (iteration order is not guaranteed)
28203 *
28204 * var users = [
28205 * { 'user': 'barney' },
28206 * { 'user': 'fred' }
28207 * ];
28208 *
28209 * // The `_.property` iteratee shorthand.
28210 * _.map(users, 'user');
28211 * // => ['barney', 'fred']
28212 */
28213 function map(collection, iteratee) {
28214 var func = isArray(collection) ? arrayMap : baseMap;
28215 return func(collection, getIteratee(iteratee, 3));
28216 }
28217
28218 /**
28219 * This method is like `_.sortBy` except that it allows specifying the sort
28220 * orders of the iteratees to sort by. If `orders` is unspecified, all values
28221 * are sorted in ascending order. Otherwise, specify an order of "desc" for
28222 * descending or "asc" for ascending sort order of corresponding values.
28223 *
28224 * @static
28225 * @memberOf _
28226 * @since 4.0.0
28227 * @category Collection
28228 * @param {Array|Object} collection The collection to iterate over.
28229 * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]
28230 * The iteratees to sort by.
28231 * @param {string[]} [orders] The sort orders of `iteratees`.
28232 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
28233 * @returns {Array} Returns the new sorted array.
28234 * @example
28235 *
28236 * var users = [
28237 * { 'user': 'fred', 'age': 48 },
28238 * { 'user': 'barney', 'age': 34 },
28239 * { 'user': 'fred', 'age': 40 },
28240 * { 'user': 'barney', 'age': 36 }
28241 * ];
28242 *
28243 * // Sort by `user` in ascending order and by `age` in descending order.
28244 * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
28245 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
28246 */
28247 function orderBy(collection, iteratees, orders, guard) {
28248 if (collection == null) {
28249 return [];
28250 }
28251 if (!isArray(iteratees)) {
28252 iteratees = iteratees == null ? [] : [iteratees];
28253 }
28254 orders = guard ? undefined : orders;
28255 if (!isArray(orders)) {
28256 orders = orders == null ? [] : [orders];
28257 }
28258 return baseOrderBy(collection, iteratees, orders);
28259 }
28260
28261 /**
28262 * Creates an array of elements split into two groups, the first of which
28263 * contains elements `predicate` returns truthy for, the second of which
28264 * contains elements `predicate` returns falsey for. The predicate is
28265 * invoked with one argument: (value).
28266 *
28267 * @static
28268 * @memberOf _
28269 * @since 3.0.0
28270 * @category Collection
28271 * @param {Array|Object} collection The collection to iterate over.
28272 * @param {Function} [predicate=_.identity] The function invoked per iteration.
28273 * @returns {Array} Returns the array of grouped elements.
28274 * @example
28275 *
28276 * var users = [
28277 * { 'user': 'barney', 'age': 36, 'active': false },
28278 * { 'user': 'fred', 'age': 40, 'active': true },
28279 * { 'user': 'pebbles', 'age': 1, 'active': false }
28280 * ];
28281 *
28282 * _.partition(users, function(o) { return o.active; });
28283 * // => objects for [['fred'], ['barney', 'pebbles']]
28284 *
28285 * // The `_.matches` iteratee shorthand.
28286 * _.partition(users, { 'age': 1, 'active': false });
28287 * // => objects for [['pebbles'], ['barney', 'fred']]
28288 *
28289 * // The `_.matchesProperty` iteratee shorthand.
28290 * _.partition(users, ['active', false]);
28291 * // => objects for [['barney', 'pebbles'], ['fred']]
28292 *
28293 * // The `_.property` iteratee shorthand.
28294 * _.partition(users, 'active');
28295 * // => objects for [['fred'], ['barney', 'pebbles']]
28296 */
28297 var partition = createAggregator(function(result, value, key) {
28298 result[key ? 0 : 1].push(value);
28299 }, function() { return [[], []]; });
28300
28301 /**
28302 * Reduces `collection` to a value which is the accumulated result of running
28303 * each element in `collection` thru `iteratee`, where each successive
28304 * invocation is supplied the return value of the previous. If `accumulator`
28305 * is not given, the first element of `collection` is used as the initial
28306 * value. The iteratee is invoked with four arguments:
28307 * (accumulator, value, index|key, collection).
28308 *
28309 * Many lodash methods are guarded to work as iteratees for methods like
28310 * `_.reduce`, `_.reduceRight`, and `_.transform`.
28311 *
28312 * The guarded methods are:
28313 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,
28314 * and `sortBy`
28315 *
28316 * @static
28317 * @memberOf _
28318 * @since 0.1.0
28319 * @category Collection
28320 * @param {Array|Object} collection The collection to iterate over.
28321 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
28322 * @param {*} [accumulator] The initial value.
28323 * @returns {*} Returns the accumulated value.
28324 * @see _.reduceRight
28325 * @example
28326 *
28327 * _.reduce([1, 2], function(sum, n) {
28328 * return sum + n;
28329 * }, 0);
28330 * // => 3
28331 *
28332 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
28333 * (result[value] || (result[value] = [])).push(key);
28334 * return result;
28335 * }, {});
28336 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
28337 */
28338 function reduce(collection, iteratee, accumulator) {
28339 var func = isArray(collection) ? arrayReduce : baseReduce,
28340 initAccum = arguments.length < 3;
28341
28342 return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);
28343 }
28344
28345 /**
28346 * This method is like `_.reduce` except that it iterates over elements of
28347 * `collection` from right to left.
28348 *
28349 * @static
28350 * @memberOf _
28351 * @since 0.1.0
28352 * @category Collection
28353 * @param {Array|Object} collection The collection to iterate over.
28354 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
28355 * @param {*} [accumulator] The initial value.
28356 * @returns {*} Returns the accumulated value.
28357 * @see _.reduce
28358 * @example
28359 *
28360 * var array = [[0, 1], [2, 3], [4, 5]];
28361 *
28362 * _.reduceRight(array, function(flattened, other) {
28363 * return flattened.concat(other);
28364 * }, []);
28365 * // => [4, 5, 2, 3, 0, 1]
28366 */
28367 function reduceRight(collection, iteratee, accumulator) {
28368 var func = isArray(collection) ? arrayReduceRight : baseReduce,
28369 initAccum = arguments.length < 3;
28370
28371 return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);
28372 }
28373
28374 /**
28375 * The opposite of `_.filter`; this method returns the elements of `collection`
28376 * that `predicate` does **not** return truthy for.
28377 *
28378 * @static
28379 * @memberOf _
28380 * @since 0.1.0
28381 * @category Collection
28382 * @param {Array|Object} collection The collection to iterate over.
28383 * @param {Function} [predicate=_.identity] The function invoked per iteration.
28384 * @returns {Array} Returns the new filtered array.
28385 * @see _.filter
28386 * @example
28387 *
28388 * var users = [
28389 * { 'user': 'barney', 'age': 36, 'active': false },
28390 * { 'user': 'fred', 'age': 40, 'active': true }
28391 * ];
28392 *
28393 * _.reject(users, function(o) { return !o.active; });
28394 * // => objects for ['fred']
28395 *
28396 * // The `_.matches` iteratee shorthand.
28397 * _.reject(users, { 'age': 40, 'active': true });
28398 * // => objects for ['barney']
28399 *
28400 * // The `_.matchesProperty` iteratee shorthand.
28401 * _.reject(users, ['active', false]);
28402 * // => objects for ['fred']
28403 *
28404 * // The `_.property` iteratee shorthand.
28405 * _.reject(users, 'active');
28406 * // => objects for ['barney']
28407 */
28408 function reject(collection, predicate) {
28409 var func = isArray(collection) ? arrayFilter : baseFilter;
28410 return func(collection, negate(getIteratee(predicate, 3)));
28411 }
28412
28413 /**
28414 * Gets a random element from `collection`.
28415 *
28416 * @static
28417 * @memberOf _
28418 * @since 2.0.0
28419 * @category Collection
28420 * @param {Array|Object} collection The collection to sample.
28421 * @returns {*} Returns the random element.
28422 * @example
28423 *
28424 * _.sample([1, 2, 3, 4]);
28425 * // => 2
28426 */
28427 function sample(collection) {
28428 var func = isArray(collection) ? arraySample : baseSample;
28429 return func(collection);
28430 }
28431
28432 /**
28433 * Gets `n` random elements at unique keys from `collection` up to the
28434 * size of `collection`.
28435 *
28436 * @static
28437 * @memberOf _
28438 * @since 4.0.0
28439 * @category Collection
28440 * @param {Array|Object} collection The collection to sample.
28441 * @param {number} [n=1] The number of elements to sample.
28442 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
28443 * @returns {Array} Returns the random elements.
28444 * @example
28445 *
28446 * _.sampleSize([1, 2, 3], 2);
28447 * // => [3, 1]
28448 *
28449 * _.sampleSize([1, 2, 3], 4);
28450 * // => [2, 3, 1]
28451 */
28452 function sampleSize(collection, n, guard) {
28453 if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {
28454 n = 1;
28455 } else {
28456 n = toInteger(n);
28457 }
28458 var func = isArray(collection) ? arraySampleSize : baseSampleSize;
28459 return func(collection, n);
28460 }
28461
28462 /**
28463 * Creates an array of shuffled values, using a version of the
28464 * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).
28465 *
28466 * @static
28467 * @memberOf _
28468 * @since 0.1.0
28469 * @category Collection
28470 * @param {Array|Object} collection The collection to shuffle.
28471 * @returns {Array} Returns the new shuffled array.
28472 * @example
28473 *
28474 * _.shuffle([1, 2, 3, 4]);
28475 * // => [4, 1, 3, 2]
28476 */
28477 function shuffle(collection) {
28478 var func = isArray(collection) ? arrayShuffle : baseShuffle;
28479 return func(collection);
28480 }
28481
28482 /**
28483 * Gets the size of `collection` by returning its length for array-like
28484 * values or the number of own enumerable string keyed properties for objects.
28485 *
28486 * @static
28487 * @memberOf _
28488 * @since 0.1.0
28489 * @category Collection
28490 * @param {Array|Object|string} collection The collection to inspect.
28491 * @returns {number} Returns the collection size.
28492 * @example
28493 *
28494 * _.size([1, 2, 3]);
28495 * // => 3
28496 *
28497 * _.size({ 'a': 1, 'b': 2 });
28498 * // => 2
28499 *
28500 * _.size('pebbles');
28501 * // => 7
28502 */
28503 function size(collection) {
28504 if (collection == null) {
28505 return 0;
28506 }
28507 if (isArrayLike(collection)) {
28508 return isString(collection) ? stringSize(collection) : collection.length;
28509 }
28510 var tag = getTag(collection);
28511 if (tag == mapTag || tag == setTag) {
28512 return collection.size;
28513 }
28514 return baseKeys(collection).length;
28515 }
28516
28517 /**
28518 * Checks if `predicate` returns truthy for **any** element of `collection`.
28519 * Iteration is stopped once `predicate` returns truthy. The predicate is
28520 * invoked with three arguments: (value, index|key, collection).
28521 *
28522 * @static
28523 * @memberOf _
28524 * @since 0.1.0
28525 * @category Collection
28526 * @param {Array|Object} collection The collection to iterate over.
28527 * @param {Function} [predicate=_.identity] The function invoked per iteration.
28528 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
28529 * @returns {boolean} Returns `true` if any element passes the predicate check,
28530 * else `false`.
28531 * @example
28532 *
28533 * _.some([null, 0, 'yes', false], Boolean);
28534 * // => true
28535 *
28536 * var users = [
28537 * { 'user': 'barney', 'active': true },
28538 * { 'user': 'fred', 'active': false }
28539 * ];
28540 *
28541 * // The `_.matches` iteratee shorthand.
28542 * _.some(users, { 'user': 'barney', 'active': false });
28543 * // => false
28544 *
28545 * // The `_.matchesProperty` iteratee shorthand.
28546 * _.some(users, ['active', false]);
28547 * // => true
28548 *
28549 * // The `_.property` iteratee shorthand.
28550 * _.some(users, 'active');
28551 * // => true
28552 */
28553 function some(collection, predicate, guard) {
28554 var func = isArray(collection) ? arraySome : baseSome;
28555 if (guard && isIterateeCall(collection, predicate, guard)) {
28556 predicate = undefined;
28557 }
28558 return func(collection, getIteratee(predicate, 3));
28559 }
28560
28561 /**
28562 * Creates an array of elements, sorted in ascending order by the results of
28563 * running each element in a collection thru each iteratee. This method
28564 * performs a stable sort, that is, it preserves the original sort order of
28565 * equal elements. The iteratees are invoked with one argument: (value).
28566 *
28567 * @static
28568 * @memberOf _
28569 * @since 0.1.0
28570 * @category Collection
28571 * @param {Array|Object} collection The collection to iterate over.
28572 * @param {...(Function|Function[])} [iteratees=[_.identity]]
28573 * The iteratees to sort by.
28574 * @returns {Array} Returns the new sorted array.
28575 * @example
28576 *
28577 * var users = [
28578 * { 'user': 'fred', 'age': 48 },
28579 * { 'user': 'barney', 'age': 36 },
28580 * { 'user': 'fred', 'age': 40 },
28581 * { 'user': 'barney', 'age': 34 }
28582 * ];
28583 *
28584 * _.sortBy(users, [function(o) { return o.user; }]);
28585 * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]
28586 *
28587 * _.sortBy(users, ['user', 'age']);
28588 * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]
28589 */
28590 var sortBy = baseRest(function(collection, iteratees) {
28591 if (collection == null) {
28592 return [];
28593 }
28594 var length = iteratees.length;
28595 if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
28596 iteratees = [];
28597 } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
28598 iteratees = [iteratees[0]];
28599 }
28600 return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
28601 });
28602
28603 /*------------------------------------------------------------------------*/
28604
28605 /**
28606 * Gets the timestamp of the number of milliseconds that have elapsed since
28607 * the Unix epoch (1 January 1970 00:00:00 UTC).
28608 *
28609 * @static
28610 * @memberOf _
28611 * @since 2.4.0
28612 * @category Date
28613 * @returns {number} Returns the timestamp.
28614 * @example
28615 *
28616 * _.defer(function(stamp) {
28617 * console.log(_.now() - stamp);
28618 * }, _.now());
28619 * // => Logs the number of milliseconds it took for the deferred invocation.
28620 */
28621 var now = ctxNow || function() {
28622 return root.Date.now();
28623 };
28624
28625 /*------------------------------------------------------------------------*/
28626
28627 /**
28628 * The opposite of `_.before`; this method creates a function that invokes
28629 * `func` once it's called `n` or more times.
28630 *
28631 * @static
28632 * @memberOf _
28633 * @since 0.1.0
28634 * @category Function
28635 * @param {number} n The number of calls before `func` is invoked.
28636 * @param {Function} func The function to restrict.
28637 * @returns {Function} Returns the new restricted function.
28638 * @example
28639 *
28640 * var saves = ['profile', 'settings'];
28641 *
28642 * var done = _.after(saves.length, function() {
28643 * console.log('done saving!');
28644 * });
28645 *
28646 * _.forEach(saves, function(type) {
28647 * asyncSave({ 'type': type, 'complete': done });
28648 * });
28649 * // => Logs 'done saving!' after the two async saves have completed.
28650 */
28651 function after(n, func) {
28652 if (typeof func != 'function') {
28653 throw new TypeError(FUNC_ERROR_TEXT);
28654 }
28655 n = toInteger(n);
28656 return function() {
28657 if (--n < 1) {
28658 return func.apply(this, arguments);
28659 }
28660 };
28661 }
28662
28663 /**
28664 * Creates a function that invokes `func`, with up to `n` arguments,
28665 * ignoring any additional arguments.
28666 *
28667 * @static
28668 * @memberOf _
28669 * @since 3.0.0
28670 * @category Function
28671 * @param {Function} func The function to cap arguments for.
28672 * @param {number} [n=func.length] The arity cap.
28673 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
28674 * @returns {Function} Returns the new capped function.
28675 * @example
28676 *
28677 * _.map(['6', '8', '10'], _.ary(parseInt, 1));
28678 * // => [6, 8, 10]
28679 */
28680 function ary(func, n, guard) {
28681 n = guard ? undefined : n;
28682 n = (func && n == null) ? func.length : n;
28683 return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);
28684 }
28685
28686 /**
28687 * Creates a function that invokes `func`, with the `this` binding and arguments
28688 * of the created function, while it's called less than `n` times. Subsequent
28689 * calls to the created function return the result of the last `func` invocation.
28690 *
28691 * @static
28692 * @memberOf _
28693 * @since 3.0.0
28694 * @category Function
28695 * @param {number} n The number of calls at which `func` is no longer invoked.
28696 * @param {Function} func The function to restrict.
28697 * @returns {Function} Returns the new restricted function.
28698 * @example
28699 *
28700 * jQuery(element).on('click', _.before(5, addContactToList));
28701 * // => Allows adding up to 4 contacts to the list.
28702 */
28703 function before(n, func) {
28704 var result;
28705 if (typeof func != 'function') {
28706 throw new TypeError(FUNC_ERROR_TEXT);
28707 }
28708 n = toInteger(n);
28709 return function() {
28710 if (--n > 0) {
28711 result = func.apply(this, arguments);
28712 }
28713 if (n <= 1) {
28714 func = undefined;
28715 }
28716 return result;
28717 };
28718 }
28719
28720 /**
28721 * Creates a function that invokes `func` with the `this` binding of `thisArg`
28722 * and `partials` prepended to the arguments it receives.
28723 *
28724 * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,
28725 * may be used as a placeholder for partially applied arguments.
28726 *
28727 * **Note:** Unlike native `Function#bind`, this method doesn't set the "length"
28728 * property of bound functions.
28729 *
28730 * @static
28731 * @memberOf _
28732 * @since 0.1.0
28733 * @category Function
28734 * @param {Function} func The function to bind.
28735 * @param {*} thisArg The `this` binding of `func`.
28736 * @param {...*} [partials] The arguments to be partially applied.
28737 * @returns {Function} Returns the new bound function.
28738 * @example
28739 *
28740 * function greet(greeting, punctuation) {
28741 * return greeting + ' ' + this.user + punctuation;
28742 * }
28743 *
28744 * var object = { 'user': 'fred' };
28745 *
28746 * var bound = _.bind(greet, object, 'hi');
28747 * bound('!');
28748 * // => 'hi fred!'
28749 *
28750 * // Bound with placeholders.
28751 * var bound = _.bind(greet, object, _, '!');
28752 * bound('hi');
28753 * // => 'hi fred!'
28754 */
28755 var bind = baseRest(function(func, thisArg, partials) {
28756 var bitmask = WRAP_BIND_FLAG;
28757 if (partials.length) {
28758 var holders = replaceHolders(partials, getHolder(bind));
28759 bitmask |= WRAP_PARTIAL_FLAG;
28760 }
28761 return createWrap(func, bitmask, thisArg, partials, holders);
28762 });
28763
28764 /**
28765 * Creates a function that invokes the method at `object[key]` with `partials`
28766 * prepended to the arguments it receives.
28767 *
28768 * This method differs from `_.bind` by allowing bound functions to reference
28769 * methods that may be redefined or don't yet exist. See
28770 * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)
28771 * for more details.
28772 *
28773 * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic
28774 * builds, may be used as a placeholder for partially applied arguments.
28775 *
28776 * @static
28777 * @memberOf _
28778 * @since 0.10.0
28779 * @category Function
28780 * @param {Object} object The object to invoke the method on.
28781 * @param {string} key The key of the method.
28782 * @param {...*} [partials] The arguments to be partially applied.
28783 * @returns {Function} Returns the new bound function.
28784 * @example
28785 *
28786 * var object = {
28787 * 'user': 'fred',
28788 * 'greet': function(greeting, punctuation) {
28789 * return greeting + ' ' + this.user + punctuation;
28790 * }
28791 * };
28792 *
28793 * var bound = _.bindKey(object, 'greet', 'hi');
28794 * bound('!');
28795 * // => 'hi fred!'
28796 *
28797 * object.greet = function(greeting, punctuation) {
28798 * return greeting + 'ya ' + this.user + punctuation;
28799 * };
28800 *
28801 * bound('!');
28802 * // => 'hiya fred!'
28803 *
28804 * // Bound with placeholders.
28805 * var bound = _.bindKey(object, 'greet', _, '!');
28806 * bound('hi');
28807 * // => 'hiya fred!'
28808 */
28809 var bindKey = baseRest(function(object, key, partials) {
28810 var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;
28811 if (partials.length) {
28812 var holders = replaceHolders(partials, getHolder(bindKey));
28813 bitmask |= WRAP_PARTIAL_FLAG;
28814 }
28815 return createWrap(key, bitmask, object, partials, holders);
28816 });
28817
28818 /**
28819 * Creates a function that accepts arguments of `func` and either invokes
28820 * `func` returning its result, if at least `arity` number of arguments have
28821 * been provided, or returns a function that accepts the remaining `func`
28822 * arguments, and so on. The arity of `func` may be specified if `func.length`
28823 * is not sufficient.
28824 *
28825 * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,
28826 * may be used as a placeholder for provided arguments.
28827 *
28828 * **Note:** This method doesn't set the "length" property of curried functions.
28829 *
28830 * @static
28831 * @memberOf _
28832 * @since 2.0.0
28833 * @category Function
28834 * @param {Function} func The function to curry.
28835 * @param {number} [arity=func.length] The arity of `func`.
28836 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
28837 * @returns {Function} Returns the new curried function.
28838 * @example
28839 *
28840 * var abc = function(a, b, c) {
28841 * return [a, b, c];
28842 * };
28843 *
28844 * var curried = _.curry(abc);
28845 *
28846 * curried(1)(2)(3);
28847 * // => [1, 2, 3]
28848 *
28849 * curried(1, 2)(3);
28850 * // => [1, 2, 3]
28851 *
28852 * curried(1, 2, 3);
28853 * // => [1, 2, 3]
28854 *
28855 * // Curried with placeholders.
28856 * curried(1)(_, 3)(2);
28857 * // => [1, 2, 3]
28858 */
28859 function curry(func, arity, guard) {
28860 arity = guard ? undefined : arity;
28861 var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
28862 result.placeholder = curry.placeholder;
28863 return result;
28864 }
28865
28866 /**
28867 * This method is like `_.curry` except that arguments are applied to `func`
28868 * in the manner of `_.partialRight` instead of `_.partial`.
28869 *
28870 * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic
28871 * builds, may be used as a placeholder for provided arguments.
28872 *
28873 * **Note:** This method doesn't set the "length" property of curried functions.
28874 *
28875 * @static
28876 * @memberOf _
28877 * @since 3.0.0
28878 * @category Function
28879 * @param {Function} func The function to curry.
28880 * @param {number} [arity=func.length] The arity of `func`.
28881 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
28882 * @returns {Function} Returns the new curried function.
28883 * @example
28884 *
28885 * var abc = function(a, b, c) {
28886 * return [a, b, c];
28887 * };
28888 *
28889 * var curried = _.curryRight(abc);
28890 *
28891 * curried(3)(2)(1);
28892 * // => [1, 2, 3]
28893 *
28894 * curried(2, 3)(1);
28895 * // => [1, 2, 3]
28896 *
28897 * curried(1, 2, 3);
28898 * // => [1, 2, 3]
28899 *
28900 * // Curried with placeholders.
28901 * curried(3)(1, _)(2);
28902 * // => [1, 2, 3]
28903 */
28904 function curryRight(func, arity, guard) {
28905 arity = guard ? undefined : arity;
28906 var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);
28907 result.placeholder = curryRight.placeholder;
28908 return result;
28909 }
28910
28911 /**
28912 * Creates a debounced function that delays invoking `func` until after `wait`
28913 * milliseconds have elapsed since the last time the debounced function was
28914 * invoked. The debounced function comes with a `cancel` method to cancel
28915 * delayed `func` invocations and a `flush` method to immediately invoke them.
28916 * Provide `options` to indicate whether `func` should be invoked on the
28917 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
28918 * with the last arguments provided to the debounced function. Subsequent
28919 * calls to the debounced function return the result of the last `func`
28920 * invocation.
28921 *
28922 * **Note:** If `leading` and `trailing` options are `true`, `func` is
28923 * invoked on the trailing edge of the timeout only if the debounced function
28924 * is invoked more than once during the `wait` timeout.
28925 *
28926 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
28927 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
28928 *
28929 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
28930 * for details over the differences between `_.debounce` and `_.throttle`.
28931 *
28932 * @static
28933 * @memberOf _
28934 * @since 0.1.0
28935 * @category Function
28936 * @param {Function} func The function to debounce.
28937 * @param {number} [wait=0] The number of milliseconds to delay.
28938 * @param {Object} [options={}] The options object.
28939 * @param {boolean} [options.leading=false]
28940 * Specify invoking on the leading edge of the timeout.
28941 * @param {number} [options.maxWait]
28942 * The maximum time `func` is allowed to be delayed before it's invoked.
28943 * @param {boolean} [options.trailing=true]
28944 * Specify invoking on the trailing edge of the timeout.
28945 * @returns {Function} Returns the new debounced function.
28946 * @example
28947 *
28948 * // Avoid costly calculations while the window size is in flux.
28949 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
28950 *
28951 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
28952 * jQuery(element).on('click', _.debounce(sendMail, 300, {
28953 * 'leading': true,
28954 * 'trailing': false
28955 * }));
28956 *
28957 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
28958 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
28959 * var source = new EventSource('/stream');
28960 * jQuery(source).on('message', debounced);
28961 *
28962 * // Cancel the trailing debounced invocation.
28963 * jQuery(window).on('popstate', debounced.cancel);
28964 */
28965 function debounce(func, wait, options) {
28966 var lastArgs,
28967 lastThis,
28968 maxWait,
28969 result,
28970 timerId,
28971 lastCallTime,
28972 lastInvokeTime = 0,
28973 leading = false,
28974 maxing = false,
28975 trailing = true;
28976
28977 if (typeof func != 'function') {
28978 throw new TypeError(FUNC_ERROR_TEXT);
28979 }
28980 wait = toNumber(wait) || 0;
28981 if (isObject(options)) {
28982 leading = !!options.leading;
28983 maxing = 'maxWait' in options;
28984 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
28985 trailing = 'trailing' in options ? !!options.trailing : trailing;
28986 }
28987
28988 function invokeFunc(time) {
28989 var args = lastArgs,
28990 thisArg = lastThis;
28991
28992 lastArgs = lastThis = undefined;
28993 lastInvokeTime = time;
28994 result = func.apply(thisArg, args);
28995 return result;
28996 }
28997
28998 function leadingEdge(time) {
28999 // Reset any `maxWait` timer.
29000 lastInvokeTime = time;
29001 // Start the timer for the trailing edge.
29002 timerId = setTimeout(timerExpired, wait);
29003 // Invoke the leading edge.
29004 return leading ? invokeFunc(time) : result;
29005 }
29006
29007 function remainingWait(time) {
29008 var timeSinceLastCall = time - lastCallTime,
29009 timeSinceLastInvoke = time - lastInvokeTime,
29010 timeWaiting = wait - timeSinceLastCall;
29011
29012 return maxing
29013 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)
29014 : timeWaiting;
29015 }
29016
29017 function shouldInvoke(time) {
29018 var timeSinceLastCall = time - lastCallTime,
29019 timeSinceLastInvoke = time - lastInvokeTime;
29020
29021 // Either this is the first call, activity has stopped and we're at the
29022 // trailing edge, the system time has gone backwards and we're treating
29023 // it as the trailing edge, or we've hit the `maxWait` limit.
29024 return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
29025 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
29026 }
29027
29028 function timerExpired() {
29029 var time = now();
29030 if (shouldInvoke(time)) {
29031 return trailingEdge(time);
29032 }
29033 // Restart the timer.
29034 timerId = setTimeout(timerExpired, remainingWait(time));
29035 }
29036
29037 function trailingEdge(time) {
29038 timerId = undefined;
29039
29040 // Only invoke if we have `lastArgs` which means `func` has been
29041 // debounced at least once.
29042 if (trailing && lastArgs) {
29043 return invokeFunc(time);
29044 }
29045 lastArgs = lastThis = undefined;
29046 return result;
29047 }
29048
29049 function cancel() {
29050 if (timerId !== undefined) {
29051 clearTimeout(timerId);
29052 }
29053 lastInvokeTime = 0;
29054 lastArgs = lastCallTime = lastThis = timerId = undefined;
29055 }
29056
29057 function flush() {
29058 return timerId === undefined ? result : trailingEdge(now());
29059 }
29060
29061 function debounced() {
29062 var time = now(),
29063 isInvoking = shouldInvoke(time);
29064
29065 lastArgs = arguments;
29066 lastThis = this;
29067 lastCallTime = time;
29068
29069 if (isInvoking) {
29070 if (timerId === undefined) {
29071 return leadingEdge(lastCallTime);
29072 }
29073 if (maxing) {
29074 // Handle invocations in a tight loop.
29075 timerId = setTimeout(timerExpired, wait);
29076 return invokeFunc(lastCallTime);
29077 }
29078 }
29079 if (timerId === undefined) {
29080 timerId = setTimeout(timerExpired, wait);
29081 }
29082 return result;
29083 }
29084 debounced.cancel = cancel;
29085 debounced.flush = flush;
29086 return debounced;
29087 }
29088
29089 /**
29090 * Defers invoking the `func` until the current call stack has cleared. Any
29091 * additional arguments are provided to `func` when it's invoked.
29092 *
29093 * @static
29094 * @memberOf _
29095 * @since 0.1.0
29096 * @category Function
29097 * @param {Function} func The function to defer.
29098 * @param {...*} [args] The arguments to invoke `func` with.
29099 * @returns {number} Returns the timer id.
29100 * @example
29101 *
29102 * _.defer(function(text) {
29103 * console.log(text);
29104 * }, 'deferred');
29105 * // => Logs 'deferred' after one millisecond.
29106 */
29107 var defer = baseRest(function(func, args) {
29108 return baseDelay(func, 1, args);
29109 });
29110
29111 /**
29112 * Invokes `func` after `wait` milliseconds. Any additional arguments are
29113 * provided to `func` when it's invoked.
29114 *
29115 * @static
29116 * @memberOf _
29117 * @since 0.1.0
29118 * @category Function
29119 * @param {Function} func The function to delay.
29120 * @param {number} wait The number of milliseconds to delay invocation.
29121 * @param {...*} [args] The arguments to invoke `func` with.
29122 * @returns {number} Returns the timer id.
29123 * @example
29124 *
29125 * _.delay(function(text) {
29126 * console.log(text);
29127 * }, 1000, 'later');
29128 * // => Logs 'later' after one second.
29129 */
29130 var delay = baseRest(function(func, wait, args) {
29131 return baseDelay(func, toNumber(wait) || 0, args);
29132 });
29133
29134 /**
29135 * Creates a function that invokes `func` with arguments reversed.
29136 *
29137 * @static
29138 * @memberOf _
29139 * @since 4.0.0
29140 * @category Function
29141 * @param {Function} func The function to flip arguments for.
29142 * @returns {Function} Returns the new flipped function.
29143 * @example
29144 *
29145 * var flipped = _.flip(function() {
29146 * return _.toArray(arguments);
29147 * });
29148 *
29149 * flipped('a', 'b', 'c', 'd');
29150 * // => ['d', 'c', 'b', 'a']
29151 */
29152 function flip(func) {
29153 return createWrap(func, WRAP_FLIP_FLAG);
29154 }
29155
29156 /**
29157 * Creates a function that memoizes the result of `func`. If `resolver` is
29158 * provided, it determines the cache key for storing the result based on the
29159 * arguments provided to the memoized function. By default, the first argument
29160 * provided to the memoized function is used as the map cache key. The `func`
29161 * is invoked with the `this` binding of the memoized function.
29162 *
29163 * **Note:** The cache is exposed as the `cache` property on the memoized
29164 * function. Its creation may be customized by replacing the `_.memoize.Cache`
29165 * constructor with one whose instances implement the
29166 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
29167 * method interface of `clear`, `delete`, `get`, `has`, and `set`.
29168 *
29169 * @static
29170 * @memberOf _
29171 * @since 0.1.0
29172 * @category Function
29173 * @param {Function} func The function to have its output memoized.
29174 * @param {Function} [resolver] The function to resolve the cache key.
29175 * @returns {Function} Returns the new memoized function.
29176 * @example
29177 *
29178 * var object = { 'a': 1, 'b': 2 };
29179 * var other = { 'c': 3, 'd': 4 };
29180 *
29181 * var values = _.memoize(_.values);
29182 * values(object);
29183 * // => [1, 2]
29184 *
29185 * values(other);
29186 * // => [3, 4]
29187 *
29188 * object.a = 2;
29189 * values(object);
29190 * // => [1, 2]
29191 *
29192 * // Modify the result cache.
29193 * values.cache.set(object, ['a', 'b']);
29194 * values(object);
29195 * // => ['a', 'b']
29196 *
29197 * // Replace `_.memoize.Cache`.
29198 * _.memoize.Cache = WeakMap;
29199 */
29200 function memoize(func, resolver) {
29201 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
29202 throw new TypeError(FUNC_ERROR_TEXT);
29203 }
29204 var memoized = function() {
29205 var args = arguments,
29206 key = resolver ? resolver.apply(this, args) : args[0],
29207 cache = memoized.cache;
29208
29209 if (cache.has(key)) {
29210 return cache.get(key);
29211 }
29212 var result = func.apply(this, args);
29213 memoized.cache = cache.set(key, result) || cache;
29214 return result;
29215 };
29216 memoized.cache = new (memoize.Cache || MapCache);
29217 return memoized;
29218 }
29219
29220 // Expose `MapCache`.
29221 memoize.Cache = MapCache;
29222
29223 /**
29224 * Creates a function that negates the result of the predicate `func`. The
29225 * `func` predicate is invoked with the `this` binding and arguments of the
29226 * created function.
29227 *
29228 * @static
29229 * @memberOf _
29230 * @since 3.0.0
29231 * @category Function
29232 * @param {Function} predicate The predicate to negate.
29233 * @returns {Function} Returns the new negated function.
29234 * @example
29235 *
29236 * function isEven(n) {
29237 * return n % 2 == 0;
29238 * }
29239 *
29240 * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));
29241 * // => [1, 3, 5]
29242 */
29243 function negate(predicate) {
29244 if (typeof predicate != 'function') {
29245 throw new TypeError(FUNC_ERROR_TEXT);
29246 }
29247 return function() {
29248 var args = arguments;
29249 switch (args.length) {
29250 case 0: return !predicate.call(this);
29251 case 1: return !predicate.call(this, args[0]);
29252 case 2: return !predicate.call(this, args[0], args[1]);
29253 case 3: return !predicate.call(this, args[0], args[1], args[2]);
29254 }
29255 return !predicate.apply(this, args);
29256 };
29257 }
29258
29259 /**
29260 * Creates a function that is restricted to invoking `func` once. Repeat calls
29261 * to the function return the value of the first invocation. The `func` is
29262 * invoked with the `this` binding and arguments of the created function.
29263 *
29264 * @static
29265 * @memberOf _
29266 * @since 0.1.0
29267 * @category Function
29268 * @param {Function} func The function to restrict.
29269 * @returns {Function} Returns the new restricted function.
29270 * @example
29271 *
29272 * var initialize = _.once(createApplication);
29273 * initialize();
29274 * initialize();
29275 * // => `createApplication` is invoked once
29276 */
29277 function once(func) {
29278 return before(2, func);
29279 }
29280
29281 /**
29282 * Creates a function that invokes `func` with its arguments transformed.
29283 *
29284 * @static
29285 * @since 4.0.0
29286 * @memberOf _
29287 * @category Function
29288 * @param {Function} func The function to wrap.
29289 * @param {...(Function|Function[])} [transforms=[_.identity]]
29290 * The argument transforms.
29291 * @returns {Function} Returns the new function.
29292 * @example
29293 *
29294 * function doubled(n) {
29295 * return n * 2;
29296 * }
29297 *
29298 * function square(n) {
29299 * return n * n;
29300 * }
29301 *
29302 * var func = _.overArgs(function(x, y) {
29303 * return [x, y];
29304 * }, [square, doubled]);
29305 *
29306 * func(9, 3);
29307 * // => [81, 6]
29308 *
29309 * func(10, 5);
29310 * // => [100, 10]
29311 */
29312 var overArgs = castRest(function(func, transforms) {
29313 transforms = (transforms.length == 1 && isArray(transforms[0]))
29314 ? arrayMap(transforms[0], baseUnary(getIteratee()))
29315 : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));
29316
29317 var funcsLength = transforms.length;
29318 return baseRest(function(args) {
29319 var index = -1,
29320 length = nativeMin(args.length, funcsLength);
29321
29322 while (++index < length) {
29323 args[index] = transforms[index].call(this, args[index]);
29324 }
29325 return apply(func, this, args);
29326 });
29327 });
29328
29329 /**
29330 * Creates a function that invokes `func` with `partials` prepended to the
29331 * arguments it receives. This method is like `_.bind` except it does **not**
29332 * alter the `this` binding.
29333 *
29334 * The `_.partial.placeholder` value, which defaults to `_` in monolithic
29335 * builds, may be used as a placeholder for partially applied arguments.
29336 *
29337 * **Note:** This method doesn't set the "length" property of partially
29338 * applied functions.
29339 *
29340 * @static
29341 * @memberOf _
29342 * @since 0.2.0
29343 * @category Function
29344 * @param {Function} func The function to partially apply arguments to.
29345 * @param {...*} [partials] The arguments to be partially applied.
29346 * @returns {Function} Returns the new partially applied function.
29347 * @example
29348 *
29349 * function greet(greeting, name) {
29350 * return greeting + ' ' + name;
29351 * }
29352 *
29353 * var sayHelloTo = _.partial(greet, 'hello');
29354 * sayHelloTo('fred');
29355 * // => 'hello fred'
29356 *
29357 * // Partially applied with placeholders.
29358 * var greetFred = _.partial(greet, _, 'fred');
29359 * greetFred('hi');
29360 * // => 'hi fred'
29361 */
29362 var partial = baseRest(function(func, partials) {
29363 var holders = replaceHolders(partials, getHolder(partial));
29364 return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);
29365 });
29366
29367 /**
29368 * This method is like `_.partial` except that partially applied arguments
29369 * are appended to the arguments it receives.
29370 *
29371 * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic
29372 * builds, may be used as a placeholder for partially applied arguments.
29373 *
29374 * **Note:** This method doesn't set the "length" property of partially
29375 * applied functions.
29376 *
29377 * @static
29378 * @memberOf _
29379 * @since 1.0.0
29380 * @category Function
29381 * @param {Function} func The function to partially apply arguments to.
29382 * @param {...*} [partials] The arguments to be partially applied.
29383 * @returns {Function} Returns the new partially applied function.
29384 * @example
29385 *
29386 * function greet(greeting, name) {
29387 * return greeting + ' ' + name;
29388 * }
29389 *
29390 * var greetFred = _.partialRight(greet, 'fred');
29391 * greetFred('hi');
29392 * // => 'hi fred'
29393 *
29394 * // Partially applied with placeholders.
29395 * var sayHelloTo = _.partialRight(greet, 'hello', _);
29396 * sayHelloTo('fred');
29397 * // => 'hello fred'
29398 */
29399 var partialRight = baseRest(function(func, partials) {
29400 var holders = replaceHolders(partials, getHolder(partialRight));
29401 return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);
29402 });
29403
29404 /**
29405 * Creates a function that invokes `func` with arguments arranged according
29406 * to the specified `indexes` where the argument value at the first index is
29407 * provided as the first argument, the argument value at the second index is
29408 * provided as the second argument, and so on.
29409 *
29410 * @static
29411 * @memberOf _
29412 * @since 3.0.0
29413 * @category Function
29414 * @param {Function} func The function to rearrange arguments for.
29415 * @param {...(number|number[])} indexes The arranged argument indexes.
29416 * @returns {Function} Returns the new function.
29417 * @example
29418 *
29419 * var rearged = _.rearg(function(a, b, c) {
29420 * return [a, b, c];
29421 * }, [2, 0, 1]);
29422 *
29423 * rearged('b', 'c', 'a')
29424 * // => ['a', 'b', 'c']
29425 */
29426 var rearg = flatRest(function(func, indexes) {
29427 return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);
29428 });
29429
29430 /**
29431 * Creates a function that invokes `func` with the `this` binding of the
29432 * created function and arguments from `start` and beyond provided as
29433 * an array.
29434 *
29435 * **Note:** This method is based on the
29436 * [rest parameter](https://mdn.io/rest_parameters).
29437 *
29438 * @static
29439 * @memberOf _
29440 * @since 4.0.0
29441 * @category Function
29442 * @param {Function} func The function to apply a rest parameter to.
29443 * @param {number} [start=func.length-1] The start position of the rest parameter.
29444 * @returns {Function} Returns the new function.
29445 * @example
29446 *
29447 * var say = _.rest(function(what, names) {
29448 * return what + ' ' + _.initial(names).join(', ') +
29449 * (_.size(names) > 1 ? ', & ' : '') + _.last(names);
29450 * });
29451 *
29452 * say('hello', 'fred', 'barney', 'pebbles');
29453 * // => 'hello fred, barney, & pebbles'
29454 */
29455 function rest(func, start) {
29456 if (typeof func != 'function') {
29457 throw new TypeError(FUNC_ERROR_TEXT);
29458 }
29459 start = start === undefined ? start : toInteger(start);
29460 return baseRest(func, start);
29461 }
29462
29463 /**
29464 * Creates a function that invokes `func` with the `this` binding of the
29465 * create function and an array of arguments much like
29466 * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).
29467 *
29468 * **Note:** This method is based on the
29469 * [spread operator](https://mdn.io/spread_operator).
29470 *
29471 * @static
29472 * @memberOf _
29473 * @since 3.2.0
29474 * @category Function
29475 * @param {Function} func The function to spread arguments over.
29476 * @param {number} [start=0] The start position of the spread.
29477 * @returns {Function} Returns the new function.
29478 * @example
29479 *
29480 * var say = _.spread(function(who, what) {
29481 * return who + ' says ' + what;
29482 * });
29483 *
29484 * say(['fred', 'hello']);
29485 * // => 'fred says hello'
29486 *
29487 * var numbers = Promise.all([
29488 * Promise.resolve(40),
29489 * Promise.resolve(36)
29490 * ]);
29491 *
29492 * numbers.then(_.spread(function(x, y) {
29493 * return x + y;
29494 * }));
29495 * // => a Promise of 76
29496 */
29497 function spread(func, start) {
29498 if (typeof func != 'function') {
29499 throw new TypeError(FUNC_ERROR_TEXT);
29500 }
29501 start = start == null ? 0 : nativeMax(toInteger(start), 0);
29502 return baseRest(function(args) {
29503 var array = args[start],
29504 otherArgs = castSlice(args, 0, start);
29505
29506 if (array) {
29507 arrayPush(otherArgs, array);
29508 }
29509 return apply(func, this, otherArgs);
29510 });
29511 }
29512
29513 /**
29514 * Creates a throttled function that only invokes `func` at most once per
29515 * every `wait` milliseconds. The throttled function comes with a `cancel`
29516 * method to cancel delayed `func` invocations and a `flush` method to
29517 * immediately invoke them. Provide `options` to indicate whether `func`
29518 * should be invoked on the leading and/or trailing edge of the `wait`
29519 * timeout. The `func` is invoked with the last arguments provided to the
29520 * throttled function. Subsequent calls to the throttled function return the
29521 * result of the last `func` invocation.
29522 *
29523 * **Note:** If `leading` and `trailing` options are `true`, `func` is
29524 * invoked on the trailing edge of the timeout only if the throttled function
29525 * is invoked more than once during the `wait` timeout.
29526 *
29527 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
29528 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
29529 *
29530 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
29531 * for details over the differences between `_.throttle` and `_.debounce`.
29532 *
29533 * @static
29534 * @memberOf _
29535 * @since 0.1.0
29536 * @category Function
29537 * @param {Function} func The function to throttle.
29538 * @param {number} [wait=0] The number of milliseconds to throttle invocations to.
29539 * @param {Object} [options={}] The options object.
29540 * @param {boolean} [options.leading=true]
29541 * Specify invoking on the leading edge of the timeout.
29542 * @param {boolean} [options.trailing=true]
29543 * Specify invoking on the trailing edge of the timeout.
29544 * @returns {Function} Returns the new throttled function.
29545 * @example
29546 *
29547 * // Avoid excessively updating the position while scrolling.
29548 * jQuery(window).on('scroll', _.throttle(updatePosition, 100));
29549 *
29550 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.
29551 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });
29552 * jQuery(element).on('click', throttled);
29553 *
29554 * // Cancel the trailing throttled invocation.
29555 * jQuery(window).on('popstate', throttled.cancel);
29556 */
29557 function throttle(func, wait, options) {
29558 var leading = true,
29559 trailing = true;
29560
29561 if (typeof func != 'function') {
29562 throw new TypeError(FUNC_ERROR_TEXT);
29563 }
29564 if (isObject(options)) {
29565 leading = 'leading' in options ? !!options.leading : leading;
29566 trailing = 'trailing' in options ? !!options.trailing : trailing;
29567 }
29568 return debounce(func, wait, {
29569 'leading': leading,
29570 'maxWait': wait,
29571 'trailing': trailing
29572 });
29573 }
29574
29575 /**
29576 * Creates a function that accepts up to one argument, ignoring any
29577 * additional arguments.
29578 *
29579 * @static
29580 * @memberOf _
29581 * @since 4.0.0
29582 * @category Function
29583 * @param {Function} func The function to cap arguments for.
29584 * @returns {Function} Returns the new capped function.
29585 * @example
29586 *
29587 * _.map(['6', '8', '10'], _.unary(parseInt));
29588 * // => [6, 8, 10]
29589 */
29590 function unary(func) {
29591 return ary(func, 1);
29592 }
29593
29594 /**
29595 * Creates a function that provides `value` to `wrapper` as its first
29596 * argument. Any additional arguments provided to the function are appended
29597 * to those provided to the `wrapper`. The wrapper is invoked with the `this`
29598 * binding of the created function.
29599 *
29600 * @static
29601 * @memberOf _
29602 * @since 0.1.0
29603 * @category Function
29604 * @param {*} value The value to wrap.
29605 * @param {Function} [wrapper=identity] The wrapper function.
29606 * @returns {Function} Returns the new function.
29607 * @example
29608 *
29609 * var p = _.wrap(_.escape, function(func, text) {
29610 * return '<p>' + func(text) + '</p>';
29611 * });
29612 *
29613 * p('fred, barney, & pebbles');
29614 * // => '<p>fred, barney, &amp; pebbles</p>'
29615 */
29616 function wrap(value, wrapper) {
29617 return partial(castFunction(wrapper), value);
29618 }
29619
29620 /*------------------------------------------------------------------------*/
29621
29622 /**
29623 * Casts `value` as an array if it's not one.
29624 *
29625 * @static
29626 * @memberOf _
29627 * @since 4.4.0
29628 * @category Lang
29629 * @param {*} value The value to inspect.
29630 * @returns {Array} Returns the cast array.
29631 * @example
29632 *
29633 * _.castArray(1);
29634 * // => [1]
29635 *
29636 * _.castArray({ 'a': 1 });
29637 * // => [{ 'a': 1 }]
29638 *
29639 * _.castArray('abc');
29640 * // => ['abc']
29641 *
29642 * _.castArray(null);
29643 * // => [null]
29644 *
29645 * _.castArray(undefined);
29646 * // => [undefined]
29647 *
29648 * _.castArray();
29649 * // => []
29650 *
29651 * var array = [1, 2, 3];
29652 * console.log(_.castArray(array) === array);
29653 * // => true
29654 */
29655 function castArray() {
29656 if (!arguments.length) {
29657 return [];
29658 }
29659 var value = arguments[0];
29660 return isArray(value) ? value : [value];
29661 }
29662
29663 /**
29664 * Creates a shallow clone of `value`.
29665 *
29666 * **Note:** This method is loosely based on the
29667 * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)
29668 * and supports cloning arrays, array buffers, booleans, date objects, maps,
29669 * numbers, `Object` objects, regexes, sets, strings, symbols, and typed
29670 * arrays. The own enumerable properties of `arguments` objects are cloned
29671 * as plain objects. An empty object is returned for uncloneable values such
29672 * as error objects, functions, DOM nodes, and WeakMaps.
29673 *
29674 * @static
29675 * @memberOf _
29676 * @since 0.1.0
29677 * @category Lang
29678 * @param {*} value The value to clone.
29679 * @returns {*} Returns the cloned value.
29680 * @see _.cloneDeep
29681 * @example
29682 *
29683 * var objects = [{ 'a': 1 }, { 'b': 2 }];
29684 *
29685 * var shallow = _.clone(objects);
29686 * console.log(shallow[0] === objects[0]);
29687 * // => true
29688 */
29689 function clone(value) {
29690 return baseClone(value, CLONE_SYMBOLS_FLAG);
29691 }
29692
29693 /**
29694 * This method is like `_.clone` except that it accepts `customizer` which
29695 * is invoked to produce the cloned value. If `customizer` returns `undefined`,
29696 * cloning is handled by the method instead. The `customizer` is invoked with
29697 * up to four arguments; (value [, index|key, object, stack]).
29698 *
29699 * @static
29700 * @memberOf _
29701 * @since 4.0.0
29702 * @category Lang
29703 * @param {*} value The value to clone.
29704 * @param {Function} [customizer] The function to customize cloning.
29705 * @returns {*} Returns the cloned value.
29706 * @see _.cloneDeepWith
29707 * @example
29708 *
29709 * function customizer(value) {
29710 * if (_.isElement(value)) {
29711 * return value.cloneNode(false);
29712 * }
29713 * }
29714 *
29715 * var el = _.cloneWith(document.body, customizer);
29716 *
29717 * console.log(el === document.body);
29718 * // => false
29719 * console.log(el.nodeName);
29720 * // => 'BODY'
29721 * console.log(el.childNodes.length);
29722 * // => 0
29723 */
29724 function cloneWith(value, customizer) {
29725 customizer = typeof customizer == 'function' ? customizer : undefined;
29726 return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);
29727 }
29728
29729 /**
29730 * This method is like `_.clone` except that it recursively clones `value`.
29731 *
29732 * @static
29733 * @memberOf _
29734 * @since 1.0.0
29735 * @category Lang
29736 * @param {*} value The value to recursively clone.
29737 * @returns {*} Returns the deep cloned value.
29738 * @see _.clone
29739 * @example
29740 *
29741 * var objects = [{ 'a': 1 }, { 'b': 2 }];
29742 *
29743 * var deep = _.cloneDeep(objects);
29744 * console.log(deep[0] === objects[0]);
29745 * // => false
29746 */
29747 function cloneDeep(value) {
29748 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
29749 }
29750
29751 /**
29752 * This method is like `_.cloneWith` except that it recursively clones `value`.
29753 *
29754 * @static
29755 * @memberOf _
29756 * @since 4.0.0
29757 * @category Lang
29758 * @param {*} value The value to recursively clone.
29759 * @param {Function} [customizer] The function to customize cloning.
29760 * @returns {*} Returns the deep cloned value.
29761 * @see _.cloneWith
29762 * @example
29763 *
29764 * function customizer(value) {
29765 * if (_.isElement(value)) {
29766 * return value.cloneNode(true);
29767 * }
29768 * }
29769 *
29770 * var el = _.cloneDeepWith(document.body, customizer);
29771 *
29772 * console.log(el === document.body);
29773 * // => false
29774 * console.log(el.nodeName);
29775 * // => 'BODY'
29776 * console.log(el.childNodes.length);
29777 * // => 20
29778 */
29779 function cloneDeepWith(value, customizer) {
29780 customizer = typeof customizer == 'function' ? customizer : undefined;
29781 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);
29782 }
29783
29784 /**
29785 * Checks if `object` conforms to `source` by invoking the predicate
29786 * properties of `source` with the corresponding property values of `object`.
29787 *
29788 * **Note:** This method is equivalent to `_.conforms` when `source` is
29789 * partially applied.
29790 *
29791 * @static
29792 * @memberOf _
29793 * @since 4.14.0
29794 * @category Lang
29795 * @param {Object} object The object to inspect.
29796 * @param {Object} source The object of property predicates to conform to.
29797 * @returns {boolean} Returns `true` if `object` conforms, else `false`.
29798 * @example
29799 *
29800 * var object = { 'a': 1, 'b': 2 };
29801 *
29802 * _.conformsTo(object, { 'b': function(n) { return n > 1; } });
29803 * // => true
29804 *
29805 * _.conformsTo(object, { 'b': function(n) { return n > 2; } });
29806 * // => false
29807 */
29808 function conformsTo(object, source) {
29809 return source == null || baseConformsTo(object, source, keys(source));
29810 }
29811
29812 /**
29813 * Performs a
29814 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
29815 * comparison between two values to determine if they are equivalent.
29816 *
29817 * @static
29818 * @memberOf _
29819 * @since 4.0.0
29820 * @category Lang
29821 * @param {*} value The value to compare.
29822 * @param {*} other The other value to compare.
29823 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
29824 * @example
29825 *
29826 * var object = { 'a': 1 };
29827 * var other = { 'a': 1 };
29828 *
29829 * _.eq(object, object);
29830 * // => true
29831 *
29832 * _.eq(object, other);
29833 * // => false
29834 *
29835 * _.eq('a', 'a');
29836 * // => true
29837 *
29838 * _.eq('a', Object('a'));
29839 * // => false
29840 *
29841 * _.eq(NaN, NaN);
29842 * // => true
29843 */
29844 function eq(value, other) {
29845 return value === other || (value !== value && other !== other);
29846 }
29847
29848 /**
29849 * Checks if `value` is greater than `other`.
29850 *
29851 * @static
29852 * @memberOf _
29853 * @since 3.9.0
29854 * @category Lang
29855 * @param {*} value The value to compare.
29856 * @param {*} other The other value to compare.
29857 * @returns {boolean} Returns `true` if `value` is greater than `other`,
29858 * else `false`.
29859 * @see _.lt
29860 * @example
29861 *
29862 * _.gt(3, 1);
29863 * // => true
29864 *
29865 * _.gt(3, 3);
29866 * // => false
29867 *
29868 * _.gt(1, 3);
29869 * // => false
29870 */
29871 var gt = createRelationalOperation(baseGt);
29872
29873 /**
29874 * Checks if `value` is greater than or equal to `other`.
29875 *
29876 * @static
29877 * @memberOf _
29878 * @since 3.9.0
29879 * @category Lang
29880 * @param {*} value The value to compare.
29881 * @param {*} other The other value to compare.
29882 * @returns {boolean} Returns `true` if `value` is greater than or equal to
29883 * `other`, else `false`.
29884 * @see _.lte
29885 * @example
29886 *
29887 * _.gte(3, 1);
29888 * // => true
29889 *
29890 * _.gte(3, 3);
29891 * // => true
29892 *
29893 * _.gte(1, 3);
29894 * // => false
29895 */
29896 var gte = createRelationalOperation(function(value, other) {
29897 return value >= other;
29898 });
29899
29900 /**
29901 * Checks if `value` is likely an `arguments` object.
29902 *
29903 * @static
29904 * @memberOf _
29905 * @since 0.1.0
29906 * @category Lang
29907 * @param {*} value The value to check.
29908 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
29909 * else `false`.
29910 * @example
29911 *
29912 * _.isArguments(function() { return arguments; }());
29913 * // => true
29914 *
29915 * _.isArguments([1, 2, 3]);
29916 * // => false
29917 */
29918 var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
29919 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
29920 !propertyIsEnumerable.call(value, 'callee');
29921 };
29922
29923 /**
29924 * Checks if `value` is classified as an `Array` object.
29925 *
29926 * @static
29927 * @memberOf _
29928 * @since 0.1.0
29929 * @category Lang
29930 * @param {*} value The value to check.
29931 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
29932 * @example
29933 *
29934 * _.isArray([1, 2, 3]);
29935 * // => true
29936 *
29937 * _.isArray(document.body.children);
29938 * // => false
29939 *
29940 * _.isArray('abc');
29941 * // => false
29942 *
29943 * _.isArray(_.noop);
29944 * // => false
29945 */
29946 var isArray = Array.isArray;
29947
29948 /**
29949 * Checks if `value` is classified as an `ArrayBuffer` object.
29950 *
29951 * @static
29952 * @memberOf _
29953 * @since 4.3.0
29954 * @category Lang
29955 * @param {*} value The value to check.
29956 * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.
29957 * @example
29958 *
29959 * _.isArrayBuffer(new ArrayBuffer(2));
29960 * // => true
29961 *
29962 * _.isArrayBuffer(new Array(2));
29963 * // => false
29964 */
29965 var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;
29966
29967 /**
29968 * Checks if `value` is array-like. A value is considered array-like if it's
29969 * not a function and has a `value.length` that's an integer greater than or
29970 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
29971 *
29972 * @static
29973 * @memberOf _
29974 * @since 4.0.0
29975 * @category Lang
29976 * @param {*} value The value to check.
29977 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
29978 * @example
29979 *
29980 * _.isArrayLike([1, 2, 3]);
29981 * // => true
29982 *
29983 * _.isArrayLike(document.body.children);
29984 * // => true
29985 *
29986 * _.isArrayLike('abc');
29987 * // => true
29988 *
29989 * _.isArrayLike(_.noop);
29990 * // => false
29991 */
29992 function isArrayLike(value) {
29993 return value != null && isLength(value.length) && !isFunction(value);
29994 }
29995
29996 /**
29997 * This method is like `_.isArrayLike` except that it also checks if `value`
29998 * is an object.
29999 *
30000 * @static
30001 * @memberOf _
30002 * @since 4.0.0
30003 * @category Lang
30004 * @param {*} value The value to check.
30005 * @returns {boolean} Returns `true` if `value` is an array-like object,
30006 * else `false`.
30007 * @example
30008 *
30009 * _.isArrayLikeObject([1, 2, 3]);
30010 * // => true
30011 *
30012 * _.isArrayLikeObject(document.body.children);
30013 * // => true
30014 *
30015 * _.isArrayLikeObject('abc');
30016 * // => false
30017 *
30018 * _.isArrayLikeObject(_.noop);
30019 * // => false
30020 */
30021 function isArrayLikeObject(value) {
30022 return isObjectLike(value) && isArrayLike(value);
30023 }
30024
30025 /**
30026 * Checks if `value` is classified as a boolean primitive or object.
30027 *
30028 * @static
30029 * @memberOf _
30030 * @since 0.1.0
30031 * @category Lang
30032 * @param {*} value The value to check.
30033 * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.
30034 * @example
30035 *
30036 * _.isBoolean(false);
30037 * // => true
30038 *
30039 * _.isBoolean(null);
30040 * // => false
30041 */
30042 function isBoolean(value) {
30043 return value === true || value === false ||
30044 (isObjectLike(value) && baseGetTag(value) == boolTag);
30045 }
30046
30047 /**
30048 * Checks if `value` is a buffer.
30049 *
30050 * @static
30051 * @memberOf _
30052 * @since 4.3.0
30053 * @category Lang
30054 * @param {*} value The value to check.
30055 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
30056 * @example
30057 *
30058 * _.isBuffer(new Buffer(2));
30059 * // => true
30060 *
30061 * _.isBuffer(new Uint8Array(2));
30062 * // => false
30063 */
30064 var isBuffer = nativeIsBuffer || stubFalse;
30065
30066 /**
30067 * Checks if `value` is classified as a `Date` object.
30068 *
30069 * @static
30070 * @memberOf _
30071 * @since 0.1.0
30072 * @category Lang
30073 * @param {*} value The value to check.
30074 * @returns {boolean} Returns `true` if `value` is a date object, else `false`.
30075 * @example
30076 *
30077 * _.isDate(new Date);
30078 * // => true
30079 *
30080 * _.isDate('Mon April 23 2012');
30081 * // => false
30082 */
30083 var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;
30084
30085 /**
30086 * Checks if `value` is likely a DOM element.
30087 *
30088 * @static
30089 * @memberOf _
30090 * @since 0.1.0
30091 * @category Lang
30092 * @param {*} value The value to check.
30093 * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.
30094 * @example
30095 *
30096 * _.isElement(document.body);
30097 * // => true
30098 *
30099 * _.isElement('<body>');
30100 * // => false
30101 */
30102 function isElement(value) {
30103 return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);
30104 }
30105
30106 /**
30107 * Checks if `value` is an empty object, collection, map, or set.
30108 *
30109 * Objects are considered empty if they have no own enumerable string keyed
30110 * properties.
30111 *
30112 * Array-like values such as `arguments` objects, arrays, buffers, strings, or
30113 * jQuery-like collections are considered empty if they have a `length` of `0`.
30114 * Similarly, maps and sets are considered empty if they have a `size` of `0`.
30115 *
30116 * @static
30117 * @memberOf _
30118 * @since 0.1.0
30119 * @category Lang
30120 * @param {*} value The value to check.
30121 * @returns {boolean} Returns `true` if `value` is empty, else `false`.
30122 * @example
30123 *
30124 * _.isEmpty(null);
30125 * // => true
30126 *
30127 * _.isEmpty(true);
30128 * // => true
30129 *
30130 * _.isEmpty(1);
30131 * // => true
30132 *
30133 * _.isEmpty([1, 2, 3]);
30134 * // => false
30135 *
30136 * _.isEmpty({ 'a': 1 });
30137 * // => false
30138 */
30139 function isEmpty(value) {
30140 if (value == null) {
30141 return true;
30142 }
30143 if (isArrayLike(value) &&
30144 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
30145 isBuffer(value) || isTypedArray(value) || isArguments(value))) {
30146 return !value.length;
30147 }
30148 var tag = getTag(value);
30149 if (tag == mapTag || tag == setTag) {
30150 return !value.size;
30151 }
30152 if (isPrototype(value)) {
30153 return !baseKeys(value).length;
30154 }
30155 for (var key in value) {
30156 if (hasOwnProperty.call(value, key)) {
30157 return false;
30158 }
30159 }
30160 return true;
30161 }
30162
30163 /**
30164 * Performs a deep comparison between two values to determine if they are
30165 * equivalent.
30166 *
30167 * **Note:** This method supports comparing arrays, array buffers, booleans,
30168 * date objects, error objects, maps, numbers, `Object` objects, regexes,
30169 * sets, strings, symbols, and typed arrays. `Object` objects are compared
30170 * by their own, not inherited, enumerable properties. Functions and DOM
30171 * nodes are compared by strict equality, i.e. `===`.
30172 *
30173 * @static
30174 * @memberOf _
30175 * @since 0.1.0
30176 * @category Lang
30177 * @param {*} value The value to compare.
30178 * @param {*} other The other value to compare.
30179 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
30180 * @example
30181 *
30182 * var object = { 'a': 1 };
30183 * var other = { 'a': 1 };
30184 *
30185 * _.isEqual(object, other);
30186 * // => true
30187 *
30188 * object === other;
30189 * // => false
30190 */
30191 function isEqual(value, other) {
30192 return baseIsEqual(value, other);
30193 }
30194
30195 /**
30196 * This method is like `_.isEqual` except that it accepts `customizer` which
30197 * is invoked to compare values. If `customizer` returns `undefined`, comparisons
30198 * are handled by the method instead. The `customizer` is invoked with up to
30199 * six arguments: (objValue, othValue [, index|key, object, other, stack]).
30200 *
30201 * @static
30202 * @memberOf _
30203 * @since 4.0.0
30204 * @category Lang
30205 * @param {*} value The value to compare.
30206 * @param {*} other The other value to compare.
30207 * @param {Function} [customizer] The function to customize comparisons.
30208 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
30209 * @example
30210 *
30211 * function isGreeting(value) {
30212 * return /^h(?:i|ello)$/.test(value);
30213 * }
30214 *
30215 * function customizer(objValue, othValue) {
30216 * if (isGreeting(objValue) && isGreeting(othValue)) {
30217 * return true;
30218 * }
30219 * }
30220 *
30221 * var array = ['hello', 'goodbye'];
30222 * var other = ['hi', 'goodbye'];
30223 *
30224 * _.isEqualWith(array, other, customizer);
30225 * // => true
30226 */
30227 function isEqualWith(value, other, customizer) {
30228 customizer = typeof customizer == 'function' ? customizer : undefined;
30229 var result = customizer ? customizer(value, other) : undefined;
30230 return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;
30231 }
30232
30233 /**
30234 * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
30235 * `SyntaxError`, `TypeError`, or `URIError` object.
30236 *
30237 * @static
30238 * @memberOf _
30239 * @since 3.0.0
30240 * @category Lang
30241 * @param {*} value The value to check.
30242 * @returns {boolean} Returns `true` if `value` is an error object, else `false`.
30243 * @example
30244 *
30245 * _.isError(new Error);
30246 * // => true
30247 *
30248 * _.isError(Error);
30249 * // => false
30250 */
30251 function isError(value) {
30252 if (!isObjectLike(value)) {
30253 return false;
30254 }
30255 var tag = baseGetTag(value);
30256 return tag == errorTag || tag == domExcTag ||
30257 (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));
30258 }
30259
30260 /**
30261 * Checks if `value` is a finite primitive number.
30262 *
30263 * **Note:** This method is based on
30264 * [`Number.isFinite`](https://mdn.io/Number/isFinite).
30265 *
30266 * @static
30267 * @memberOf _
30268 * @since 0.1.0
30269 * @category Lang
30270 * @param {*} value The value to check.
30271 * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.
30272 * @example
30273 *
30274 * _.isFinite(3);
30275 * // => true
30276 *
30277 * _.isFinite(Number.MIN_VALUE);
30278 * // => true
30279 *
30280 * _.isFinite(Infinity);
30281 * // => false
30282 *
30283 * _.isFinite('3');
30284 * // => false
30285 */
30286 function isFinite(value) {
30287 return typeof value == 'number' && nativeIsFinite(value);
30288 }
30289
30290 /**
30291 * Checks if `value` is classified as a `Function` object.
30292 *
30293 * @static
30294 * @memberOf _
30295 * @since 0.1.0
30296 * @category Lang
30297 * @param {*} value The value to check.
30298 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
30299 * @example
30300 *
30301 * _.isFunction(_);
30302 * // => true
30303 *
30304 * _.isFunction(/abc/);
30305 * // => false
30306 */
30307 function isFunction(value) {
30308 if (!isObject(value)) {
30309 return false;
30310 }
30311 // The use of `Object#toString` avoids issues with the `typeof` operator
30312 // in Safari 9 which returns 'object' for typed arrays and other constructors.
30313 var tag = baseGetTag(value);
30314 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
30315 }
30316
30317 /**
30318 * Checks if `value` is an integer.
30319 *
30320 * **Note:** This method is based on
30321 * [`Number.isInteger`](https://mdn.io/Number/isInteger).
30322 *
30323 * @static
30324 * @memberOf _
30325 * @since 4.0.0
30326 * @category Lang
30327 * @param {*} value The value to check.
30328 * @returns {boolean} Returns `true` if `value` is an integer, else `false`.
30329 * @example
30330 *
30331 * _.isInteger(3);
30332 * // => true
30333 *
30334 * _.isInteger(Number.MIN_VALUE);
30335 * // => false
30336 *
30337 * _.isInteger(Infinity);
30338 * // => false
30339 *
30340 * _.isInteger('3');
30341 * // => false
30342 */
30343 function isInteger(value) {
30344 return typeof value == 'number' && value == toInteger(value);
30345 }
30346
30347 /**
30348 * Checks if `value` is a valid array-like length.
30349 *
30350 * **Note:** This method is loosely based on
30351 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
30352 *
30353 * @static
30354 * @memberOf _
30355 * @since 4.0.0
30356 * @category Lang
30357 * @param {*} value The value to check.
30358 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
30359 * @example
30360 *
30361 * _.isLength(3);
30362 * // => true
30363 *
30364 * _.isLength(Number.MIN_VALUE);
30365 * // => false
30366 *
30367 * _.isLength(Infinity);
30368 * // => false
30369 *
30370 * _.isLength('3');
30371 * // => false
30372 */
30373 function isLength(value) {
30374 return typeof value == 'number' &&
30375 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
30376 }
30377
30378 /**
30379 * Checks if `value` is the
30380 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
30381 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
30382 *
30383 * @static
30384 * @memberOf _
30385 * @since 0.1.0
30386 * @category Lang
30387 * @param {*} value The value to check.
30388 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
30389 * @example
30390 *
30391 * _.isObject({});
30392 * // => true
30393 *
30394 * _.isObject([1, 2, 3]);
30395 * // => true
30396 *
30397 * _.isObject(_.noop);
30398 * // => true
30399 *
30400 * _.isObject(null);
30401 * // => false
30402 */
30403 function isObject(value) {
30404 var type = typeof value;
30405 return value != null && (type == 'object' || type == 'function');
30406 }
30407
30408 /**
30409 * Checks if `value` is object-like. A value is object-like if it's not `null`
30410 * and has a `typeof` result of "object".
30411 *
30412 * @static
30413 * @memberOf _
30414 * @since 4.0.0
30415 * @category Lang
30416 * @param {*} value The value to check.
30417 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
30418 * @example
30419 *
30420 * _.isObjectLike({});
30421 * // => true
30422 *
30423 * _.isObjectLike([1, 2, 3]);
30424 * // => true
30425 *
30426 * _.isObjectLike(_.noop);
30427 * // => false
30428 *
30429 * _.isObjectLike(null);
30430 * // => false
30431 */
30432 function isObjectLike(value) {
30433 return value != null && typeof value == 'object';
30434 }
30435
30436 /**
30437 * Checks if `value` is classified as a `Map` object.
30438 *
30439 * @static
30440 * @memberOf _
30441 * @since 4.3.0
30442 * @category Lang
30443 * @param {*} value The value to check.
30444 * @returns {boolean} Returns `true` if `value` is a map, else `false`.
30445 * @example
30446 *
30447 * _.isMap(new Map);
30448 * // => true
30449 *
30450 * _.isMap(new WeakMap);
30451 * // => false
30452 */
30453 var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
30454
30455 /**
30456 * Performs a partial deep comparison between `object` and `source` to
30457 * determine if `object` contains equivalent property values.
30458 *
30459 * **Note:** This method is equivalent to `_.matches` when `source` is
30460 * partially applied.
30461 *
30462 * Partial comparisons will match empty array and empty object `source`
30463 * values against any array or object value, respectively. See `_.isEqual`
30464 * for a list of supported value comparisons.
30465 *
30466 * @static
30467 * @memberOf _
30468 * @since 3.0.0
30469 * @category Lang
30470 * @param {Object} object The object to inspect.
30471 * @param {Object} source The object of property values to match.
30472 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
30473 * @example
30474 *
30475 * var object = { 'a': 1, 'b': 2 };
30476 *
30477 * _.isMatch(object, { 'b': 2 });
30478 * // => true
30479 *
30480 * _.isMatch(object, { 'b': 1 });
30481 * // => false
30482 */
30483 function isMatch(object, source) {
30484 return object === source || baseIsMatch(object, source, getMatchData(source));
30485 }
30486
30487 /**
30488 * This method is like `_.isMatch` except that it accepts `customizer` which
30489 * is invoked to compare values. If `customizer` returns `undefined`, comparisons
30490 * are handled by the method instead. The `customizer` is invoked with five
30491 * arguments: (objValue, srcValue, index|key, object, source).
30492 *
30493 * @static
30494 * @memberOf _
30495 * @since 4.0.0
30496 * @category Lang
30497 * @param {Object} object The object to inspect.
30498 * @param {Object} source The object of property values to match.
30499 * @param {Function} [customizer] The function to customize comparisons.
30500 * @returns {boolean} Returns `true` if `object` is a match, else `false`.
30501 * @example
30502 *
30503 * function isGreeting(value) {
30504 * return /^h(?:i|ello)$/.test(value);
30505 * }
30506 *
30507 * function customizer(objValue, srcValue) {
30508 * if (isGreeting(objValue) && isGreeting(srcValue)) {
30509 * return true;
30510 * }
30511 * }
30512 *
30513 * var object = { 'greeting': 'hello' };
30514 * var source = { 'greeting': 'hi' };
30515 *
30516 * _.isMatchWith(object, source, customizer);
30517 * // => true
30518 */
30519 function isMatchWith(object, source, customizer) {
30520 customizer = typeof customizer == 'function' ? customizer : undefined;
30521 return baseIsMatch(object, source, getMatchData(source), customizer);
30522 }
30523
30524 /**
30525 * Checks if `value` is `NaN`.
30526 *
30527 * **Note:** This method is based on
30528 * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as
30529 * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for
30530 * `undefined` and other non-number values.
30531 *
30532 * @static
30533 * @memberOf _
30534 * @since 0.1.0
30535 * @category Lang
30536 * @param {*} value The value to check.
30537 * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
30538 * @example
30539 *
30540 * _.isNaN(NaN);
30541 * // => true
30542 *
30543 * _.isNaN(new Number(NaN));
30544 * // => true
30545 *
30546 * isNaN(undefined);
30547 * // => true
30548 *
30549 * _.isNaN(undefined);
30550 * // => false
30551 */
30552 function isNaN(value) {
30553 // An `NaN` primitive is the only value that is not equal to itself.
30554 // Perform the `toStringTag` check first to avoid errors with some
30555 // ActiveX objects in IE.
30556 return isNumber(value) && value != +value;
30557 }
30558
30559 /**
30560 * Checks if `value` is a pristine native function.
30561 *
30562 * **Note:** This method can't reliably detect native functions in the presence
30563 * of the core-js package because core-js circumvents this kind of detection.
30564 * Despite multiple requests, the core-js maintainer has made it clear: any
30565 * attempt to fix the detection will be obstructed. As a result, we're left
30566 * with little choice but to throw an error. Unfortunately, this also affects
30567 * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),
30568 * which rely on core-js.
30569 *
30570 * @static
30571 * @memberOf _
30572 * @since 3.0.0
30573 * @category Lang
30574 * @param {*} value The value to check.
30575 * @returns {boolean} Returns `true` if `value` is a native function,
30576 * else `false`.
30577 * @example
30578 *
30579 * _.isNative(Array.prototype.push);
30580 * // => true
30581 *
30582 * _.isNative(_);
30583 * // => false
30584 */
30585 function isNative(value) {
30586 if (isMaskable(value)) {
30587 throw new Error(CORE_ERROR_TEXT);
30588 }
30589 return baseIsNative(value);
30590 }
30591
30592 /**
30593 * Checks if `value` is `null`.
30594 *
30595 * @static
30596 * @memberOf _
30597 * @since 0.1.0
30598 * @category Lang
30599 * @param {*} value The value to check.
30600 * @returns {boolean} Returns `true` if `value` is `null`, else `false`.
30601 * @example
30602 *
30603 * _.isNull(null);
30604 * // => true
30605 *
30606 * _.isNull(void 0);
30607 * // => false
30608 */
30609 function isNull(value) {
30610 return value === null;
30611 }
30612
30613 /**
30614 * Checks if `value` is `null` or `undefined`.
30615 *
30616 * @static
30617 * @memberOf _
30618 * @since 4.0.0
30619 * @category Lang
30620 * @param {*} value The value to check.
30621 * @returns {boolean} Returns `true` if `value` is nullish, else `false`.
30622 * @example
30623 *
30624 * _.isNil(null);
30625 * // => true
30626 *
30627 * _.isNil(void 0);
30628 * // => true
30629 *
30630 * _.isNil(NaN);
30631 * // => false
30632 */
30633 function isNil(value) {
30634 return value == null;
30635 }
30636
30637 /**
30638 * Checks if `value` is classified as a `Number` primitive or object.
30639 *
30640 * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are
30641 * classified as numbers, use the `_.isFinite` method.
30642 *
30643 * @static
30644 * @memberOf _
30645 * @since 0.1.0
30646 * @category Lang
30647 * @param {*} value The value to check.
30648 * @returns {boolean} Returns `true` if `value` is a number, else `false`.
30649 * @example
30650 *
30651 * _.isNumber(3);
30652 * // => true
30653 *
30654 * _.isNumber(Number.MIN_VALUE);
30655 * // => true
30656 *
30657 * _.isNumber(Infinity);
30658 * // => true
30659 *
30660 * _.isNumber('3');
30661 * // => false
30662 */
30663 function isNumber(value) {
30664 return typeof value == 'number' ||
30665 (isObjectLike(value) && baseGetTag(value) == numberTag);
30666 }
30667
30668 /**
30669 * Checks if `value` is a plain object, that is, an object created by the
30670 * `Object` constructor or one with a `[[Prototype]]` of `null`.
30671 *
30672 * @static
30673 * @memberOf _
30674 * @since 0.8.0
30675 * @category Lang
30676 * @param {*} value The value to check.
30677 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
30678 * @example
30679 *
30680 * function Foo() {
30681 * this.a = 1;
30682 * }
30683 *
30684 * _.isPlainObject(new Foo);
30685 * // => false
30686 *
30687 * _.isPlainObject([1, 2, 3]);
30688 * // => false
30689 *
30690 * _.isPlainObject({ 'x': 0, 'y': 0 });
30691 * // => true
30692 *
30693 * _.isPlainObject(Object.create(null));
30694 * // => true
30695 */
30696 function isPlainObject(value) {
30697 if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
30698 return false;
30699 }
30700 var proto = getPrototype(value);
30701 if (proto === null) {
30702 return true;
30703 }
30704 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
30705 return typeof Ctor == 'function' && Ctor instanceof Ctor &&
30706 funcToString.call(Ctor) == objectCtorString;
30707 }
30708
30709 /**
30710 * Checks if `value` is classified as a `RegExp` object.
30711 *
30712 * @static
30713 * @memberOf _
30714 * @since 0.1.0
30715 * @category Lang
30716 * @param {*} value The value to check.
30717 * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.
30718 * @example
30719 *
30720 * _.isRegExp(/abc/);
30721 * // => true
30722 *
30723 * _.isRegExp('/abc/');
30724 * // => false
30725 */
30726 var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;
30727
30728 /**
30729 * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754
30730 * double precision number which isn't the result of a rounded unsafe integer.
30731 *
30732 * **Note:** This method is based on
30733 * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).
30734 *
30735 * @static
30736 * @memberOf _
30737 * @since 4.0.0
30738 * @category Lang
30739 * @param {*} value The value to check.
30740 * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.
30741 * @example
30742 *
30743 * _.isSafeInteger(3);
30744 * // => true
30745 *
30746 * _.isSafeInteger(Number.MIN_VALUE);
30747 * // => false
30748 *
30749 * _.isSafeInteger(Infinity);
30750 * // => false
30751 *
30752 * _.isSafeInteger('3');
30753 * // => false
30754 */
30755 function isSafeInteger(value) {
30756 return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
30757 }
30758
30759 /**
30760 * Checks if `value` is classified as a `Set` object.
30761 *
30762 * @static
30763 * @memberOf _
30764 * @since 4.3.0
30765 * @category Lang
30766 * @param {*} value The value to check.
30767 * @returns {boolean} Returns `true` if `value` is a set, else `false`.
30768 * @example
30769 *
30770 * _.isSet(new Set);
30771 * // => true
30772 *
30773 * _.isSet(new WeakSet);
30774 * // => false
30775 */
30776 var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
30777
30778 /**
30779 * Checks if `value` is classified as a `String` primitive or object.
30780 *
30781 * @static
30782 * @since 0.1.0
30783 * @memberOf _
30784 * @category Lang
30785 * @param {*} value The value to check.
30786 * @returns {boolean} Returns `true` if `value` is a string, else `false`.
30787 * @example
30788 *
30789 * _.isString('abc');
30790 * // => true
30791 *
30792 * _.isString(1);
30793 * // => false
30794 */
30795 function isString(value) {
30796 return typeof value == 'string' ||
30797 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
30798 }
30799
30800 /**
30801 * Checks if `value` is classified as a `Symbol` primitive or object.
30802 *
30803 * @static
30804 * @memberOf _
30805 * @since 4.0.0
30806 * @category Lang
30807 * @param {*} value The value to check.
30808 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
30809 * @example
30810 *
30811 * _.isSymbol(Symbol.iterator);
30812 * // => true
30813 *
30814 * _.isSymbol('abc');
30815 * // => false
30816 */
30817 function isSymbol(value) {
30818 return typeof value == 'symbol' ||
30819 (isObjectLike(value) && baseGetTag(value) == symbolTag);
30820 }
30821
30822 /**
30823 * Checks if `value` is classified as a typed array.
30824 *
30825 * @static
30826 * @memberOf _
30827 * @since 3.0.0
30828 * @category Lang
30829 * @param {*} value The value to check.
30830 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
30831 * @example
30832 *
30833 * _.isTypedArray(new Uint8Array);
30834 * // => true
30835 *
30836 * _.isTypedArray([]);
30837 * // => false
30838 */
30839 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
30840
30841 /**
30842 * Checks if `value` is `undefined`.
30843 *
30844 * @static
30845 * @since 0.1.0
30846 * @memberOf _
30847 * @category Lang
30848 * @param {*} value The value to check.
30849 * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
30850 * @example
30851 *
30852 * _.isUndefined(void 0);
30853 * // => true
30854 *
30855 * _.isUndefined(null);
30856 * // => false
30857 */
30858 function isUndefined(value) {
30859 return value === undefined;
30860 }
30861
30862 /**
30863 * Checks if `value` is classified as a `WeakMap` object.
30864 *
30865 * @static
30866 * @memberOf _
30867 * @since 4.3.0
30868 * @category Lang
30869 * @param {*} value The value to check.
30870 * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.
30871 * @example
30872 *
30873 * _.isWeakMap(new WeakMap);
30874 * // => true
30875 *
30876 * _.isWeakMap(new Map);
30877 * // => false
30878 */
30879 function isWeakMap(value) {
30880 return isObjectLike(value) && getTag(value) == weakMapTag;
30881 }
30882
30883 /**
30884 * Checks if `value` is classified as a `WeakSet` object.
30885 *
30886 * @static
30887 * @memberOf _
30888 * @since 4.3.0
30889 * @category Lang
30890 * @param {*} value The value to check.
30891 * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.
30892 * @example
30893 *
30894 * _.isWeakSet(new WeakSet);
30895 * // => true
30896 *
30897 * _.isWeakSet(new Set);
30898 * // => false
30899 */
30900 function isWeakSet(value) {
30901 return isObjectLike(value) && baseGetTag(value) == weakSetTag;
30902 }
30903
30904 /**
30905 * Checks if `value` is less than `other`.
30906 *
30907 * @static
30908 * @memberOf _
30909 * @since 3.9.0
30910 * @category Lang
30911 * @param {*} value The value to compare.
30912 * @param {*} other The other value to compare.
30913 * @returns {boolean} Returns `true` if `value` is less than `other`,
30914 * else `false`.
30915 * @see _.gt
30916 * @example
30917 *
30918 * _.lt(1, 3);
30919 * // => true
30920 *
30921 * _.lt(3, 3);
30922 * // => false
30923 *
30924 * _.lt(3, 1);
30925 * // => false
30926 */
30927 var lt = createRelationalOperation(baseLt);
30928
30929 /**
30930 * Checks if `value` is less than or equal to `other`.
30931 *
30932 * @static
30933 * @memberOf _
30934 * @since 3.9.0
30935 * @category Lang
30936 * @param {*} value The value to compare.
30937 * @param {*} other The other value to compare.
30938 * @returns {boolean} Returns `true` if `value` is less than or equal to
30939 * `other`, else `false`.
30940 * @see _.gte
30941 * @example
30942 *
30943 * _.lte(1, 3);
30944 * // => true
30945 *
30946 * _.lte(3, 3);
30947 * // => true
30948 *
30949 * _.lte(3, 1);
30950 * // => false
30951 */
30952 var lte = createRelationalOperation(function(value, other) {
30953 return value <= other;
30954 });
30955
30956 /**
30957 * Converts `value` to an array.
30958 *
30959 * @static
30960 * @since 0.1.0
30961 * @memberOf _
30962 * @category Lang
30963 * @param {*} value The value to convert.
30964 * @returns {Array} Returns the converted array.
30965 * @example
30966 *
30967 * _.toArray({ 'a': 1, 'b': 2 });
30968 * // => [1, 2]
30969 *
30970 * _.toArray('abc');
30971 * // => ['a', 'b', 'c']
30972 *
30973 * _.toArray(1);
30974 * // => []
30975 *
30976 * _.toArray(null);
30977 * // => []
30978 */
30979 function toArray(value) {
30980 if (!value) {
30981 return [];
30982 }
30983 if (isArrayLike(value)) {
30984 return isString(value) ? stringToArray(value) : copyArray(value);
30985 }
30986 if (symIterator && value[symIterator]) {
30987 return iteratorToArray(value[symIterator]());
30988 }
30989 var tag = getTag(value),
30990 func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);
30991
30992 return func(value);
30993 }
30994
30995 /**
30996 * Converts `value` to a finite number.
30997 *
30998 * @static
30999 * @memberOf _
31000 * @since 4.12.0
31001 * @category Lang
31002 * @param {*} value The value to convert.
31003 * @returns {number} Returns the converted number.
31004 * @example
31005 *
31006 * _.toFinite(3.2);
31007 * // => 3.2
31008 *
31009 * _.toFinite(Number.MIN_VALUE);
31010 * // => 5e-324
31011 *
31012 * _.toFinite(Infinity);
31013 * // => 1.7976931348623157e+308
31014 *
31015 * _.toFinite('3.2');
31016 * // => 3.2
31017 */
31018 function toFinite(value) {
31019 if (!value) {
31020 return value === 0 ? value : 0;
31021 }
31022 value = toNumber(value);
31023 if (value === INFINITY || value === -INFINITY) {
31024 var sign = (value < 0 ? -1 : 1);
31025 return sign * MAX_INTEGER;
31026 }
31027 return value === value ? value : 0;
31028 }
31029
31030 /**
31031 * Converts `value` to an integer.
31032 *
31033 * **Note:** This method is loosely based on
31034 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
31035 *
31036 * @static
31037 * @memberOf _
31038 * @since 4.0.0
31039 * @category Lang
31040 * @param {*} value The value to convert.
31041 * @returns {number} Returns the converted integer.
31042 * @example
31043 *
31044 * _.toInteger(3.2);
31045 * // => 3
31046 *
31047 * _.toInteger(Number.MIN_VALUE);
31048 * // => 0
31049 *
31050 * _.toInteger(Infinity);
31051 * // => 1.7976931348623157e+308
31052 *
31053 * _.toInteger('3.2');
31054 * // => 3
31055 */
31056 function toInteger(value) {
31057 var result = toFinite(value),
31058 remainder = result % 1;
31059
31060 return result === result ? (remainder ? result - remainder : result) : 0;
31061 }
31062
31063 /**
31064 * Converts `value` to an integer suitable for use as the length of an
31065 * array-like object.
31066 *
31067 * **Note:** This method is based on
31068 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
31069 *
31070 * @static
31071 * @memberOf _
31072 * @since 4.0.0
31073 * @category Lang
31074 * @param {*} value The value to convert.
31075 * @returns {number} Returns the converted integer.
31076 * @example
31077 *
31078 * _.toLength(3.2);
31079 * // => 3
31080 *
31081 * _.toLength(Number.MIN_VALUE);
31082 * // => 0
31083 *
31084 * _.toLength(Infinity);
31085 * // => 4294967295
31086 *
31087 * _.toLength('3.2');
31088 * // => 3
31089 */
31090 function toLength(value) {
31091 return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;
31092 }
31093
31094 /**
31095 * Converts `value` to a number.
31096 *
31097 * @static
31098 * @memberOf _
31099 * @since 4.0.0
31100 * @category Lang
31101 * @param {*} value The value to process.
31102 * @returns {number} Returns the number.
31103 * @example
31104 *
31105 * _.toNumber(3.2);
31106 * // => 3.2
31107 *
31108 * _.toNumber(Number.MIN_VALUE);
31109 * // => 5e-324
31110 *
31111 * _.toNumber(Infinity);
31112 * // => Infinity
31113 *
31114 * _.toNumber('3.2');
31115 * // => 3.2
31116 */
31117 function toNumber(value) {
31118 if (typeof value == 'number') {
31119 return value;
31120 }
31121 if (isSymbol(value)) {
31122 return NAN;
31123 }
31124 if (isObject(value)) {
31125 var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
31126 value = isObject(other) ? (other + '') : other;
31127 }
31128 if (typeof value != 'string') {
31129 return value === 0 ? value : +value;
31130 }
31131 value = value.replace(reTrim, '');
31132 var isBinary = reIsBinary.test(value);
31133 return (isBinary || reIsOctal.test(value))
31134 ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
31135 : (reIsBadHex.test(value) ? NAN : +value);
31136 }
31137
31138 /**
31139 * Converts `value` to a plain object flattening inherited enumerable string
31140 * keyed properties of `value` to own properties of the plain object.
31141 *
31142 * @static
31143 * @memberOf _
31144 * @since 3.0.0
31145 * @category Lang
31146 * @param {*} value The value to convert.
31147 * @returns {Object} Returns the converted plain object.
31148 * @example
31149 *
31150 * function Foo() {
31151 * this.b = 2;
31152 * }
31153 *
31154 * Foo.prototype.c = 3;
31155 *
31156 * _.assign({ 'a': 1 }, new Foo);
31157 * // => { 'a': 1, 'b': 2 }
31158 *
31159 * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
31160 * // => { 'a': 1, 'b': 2, 'c': 3 }
31161 */
31162 function toPlainObject(value) {
31163 return copyObject(value, keysIn(value));
31164 }
31165
31166 /**
31167 * Converts `value` to a safe integer. A safe integer can be compared and
31168 * represented correctly.
31169 *
31170 * @static
31171 * @memberOf _
31172 * @since 4.0.0
31173 * @category Lang
31174 * @param {*} value The value to convert.
31175 * @returns {number} Returns the converted integer.
31176 * @example
31177 *
31178 * _.toSafeInteger(3.2);
31179 * // => 3
31180 *
31181 * _.toSafeInteger(Number.MIN_VALUE);
31182 * // => 0
31183 *
31184 * _.toSafeInteger(Infinity);
31185 * // => 9007199254740991
31186 *
31187 * _.toSafeInteger('3.2');
31188 * // => 3
31189 */
31190 function toSafeInteger(value) {
31191 return value
31192 ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)
31193 : (value === 0 ? value : 0);
31194 }
31195
31196 /**
31197 * Converts `value` to a string. An empty string is returned for `null`
31198 * and `undefined` values. The sign of `-0` is preserved.
31199 *
31200 * @static
31201 * @memberOf _
31202 * @since 4.0.0
31203 * @category Lang
31204 * @param {*} value The value to convert.
31205 * @returns {string} Returns the converted string.
31206 * @example
31207 *
31208 * _.toString(null);
31209 * // => ''
31210 *
31211 * _.toString(-0);
31212 * // => '-0'
31213 *
31214 * _.toString([1, 2, 3]);
31215 * // => '1,2,3'
31216 */
31217 function toString(value) {
31218 return value == null ? '' : baseToString(value);
31219 }
31220
31221 /*------------------------------------------------------------------------*/
31222
31223 /**
31224 * Assigns own enumerable string keyed properties of source objects to the
31225 * destination object. Source objects are applied from left to right.
31226 * Subsequent sources overwrite property assignments of previous sources.
31227 *
31228 * **Note:** This method mutates `object` and is loosely based on
31229 * [`Object.assign`](https://mdn.io/Object/assign).
31230 *
31231 * @static
31232 * @memberOf _
31233 * @since 0.10.0
31234 * @category Object
31235 * @param {Object} object The destination object.
31236 * @param {...Object} [sources] The source objects.
31237 * @returns {Object} Returns `object`.
31238 * @see _.assignIn
31239 * @example
31240 *
31241 * function Foo() {
31242 * this.a = 1;
31243 * }
31244 *
31245 * function Bar() {
31246 * this.c = 3;
31247 * }
31248 *
31249 * Foo.prototype.b = 2;
31250 * Bar.prototype.d = 4;
31251 *
31252 * _.assign({ 'a': 0 }, new Foo, new Bar);
31253 * // => { 'a': 1, 'c': 3 }
31254 */
31255 var assign = createAssigner(function(object, source) {
31256 if (isPrototype(source) || isArrayLike(source)) {
31257 copyObject(source, keys(source), object);
31258 return;
31259 }
31260 for (var key in source) {
31261 if (hasOwnProperty.call(source, key)) {
31262 assignValue(object, key, source[key]);
31263 }
31264 }
31265 });
31266
31267 /**
31268 * This method is like `_.assign` except that it iterates over own and
31269 * inherited source properties.
31270 *
31271 * **Note:** This method mutates `object`.
31272 *
31273 * @static
31274 * @memberOf _
31275 * @since 4.0.0
31276 * @alias extend
31277 * @category Object
31278 * @param {Object} object The destination object.
31279 * @param {...Object} [sources] The source objects.
31280 * @returns {Object} Returns `object`.
31281 * @see _.assign
31282 * @example
31283 *
31284 * function Foo() {
31285 * this.a = 1;
31286 * }
31287 *
31288 * function Bar() {
31289 * this.c = 3;
31290 * }
31291 *
31292 * Foo.prototype.b = 2;
31293 * Bar.prototype.d = 4;
31294 *
31295 * _.assignIn({ 'a': 0 }, new Foo, new Bar);
31296 * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }
31297 */
31298 var assignIn = createAssigner(function(object, source) {
31299 copyObject(source, keysIn(source), object);
31300 });
31301
31302 /**
31303 * This method is like `_.assignIn` except that it accepts `customizer`
31304 * which is invoked to produce the assigned values. If `customizer` returns
31305 * `undefined`, assignment is handled by the method instead. The `customizer`
31306 * is invoked with five arguments: (objValue, srcValue, key, object, source).
31307 *
31308 * **Note:** This method mutates `object`.
31309 *
31310 * @static
31311 * @memberOf _
31312 * @since 4.0.0
31313 * @alias extendWith
31314 * @category Object
31315 * @param {Object} object The destination object.
31316 * @param {...Object} sources The source objects.
31317 * @param {Function} [customizer] The function to customize assigned values.
31318 * @returns {Object} Returns `object`.
31319 * @see _.assignWith
31320 * @example
31321 *
31322 * function customizer(objValue, srcValue) {
31323 * return _.isUndefined(objValue) ? srcValue : objValue;
31324 * }
31325 *
31326 * var defaults = _.partialRight(_.assignInWith, customizer);
31327 *
31328 * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
31329 * // => { 'a': 1, 'b': 2 }
31330 */
31331 var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {
31332 copyObject(source, keysIn(source), object, customizer);
31333 });
31334
31335 /**
31336 * This method is like `_.assign` except that it accepts `customizer`
31337 * which is invoked to produce the assigned values. If `customizer` returns
31338 * `undefined`, assignment is handled by the method instead. The `customizer`
31339 * is invoked with five arguments: (objValue, srcValue, key, object, source).
31340 *
31341 * **Note:** This method mutates `object`.
31342 *
31343 * @static
31344 * @memberOf _
31345 * @since 4.0.0
31346 * @category Object
31347 * @param {Object} object The destination object.
31348 * @param {...Object} sources The source objects.
31349 * @param {Function} [customizer] The function to customize assigned values.
31350 * @returns {Object} Returns `object`.
31351 * @see _.assignInWith
31352 * @example
31353 *
31354 * function customizer(objValue, srcValue) {
31355 * return _.isUndefined(objValue) ? srcValue : objValue;
31356 * }
31357 *
31358 * var defaults = _.partialRight(_.assignWith, customizer);
31359 *
31360 * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
31361 * // => { 'a': 1, 'b': 2 }
31362 */
31363 var assignWith = createAssigner(function(object, source, srcIndex, customizer) {
31364 copyObject(source, keys(source), object, customizer);
31365 });
31366
31367 /**
31368 * Creates an array of values corresponding to `paths` of `object`.
31369 *
31370 * @static
31371 * @memberOf _
31372 * @since 1.0.0
31373 * @category Object
31374 * @param {Object} object The object to iterate over.
31375 * @param {...(string|string[])} [paths] The property paths to pick.
31376 * @returns {Array} Returns the picked values.
31377 * @example
31378 *
31379 * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };
31380 *
31381 * _.at(object, ['a[0].b.c', 'a[1]']);
31382 * // => [3, 4]
31383 */
31384 var at = flatRest(baseAt);
31385
31386 /**
31387 * Creates an object that inherits from the `prototype` object. If a
31388 * `properties` object is given, its own enumerable string keyed properties
31389 * are assigned to the created object.
31390 *
31391 * @static
31392 * @memberOf _
31393 * @since 2.3.0
31394 * @category Object
31395 * @param {Object} prototype The object to inherit from.
31396 * @param {Object} [properties] The properties to assign to the object.
31397 * @returns {Object} Returns the new object.
31398 * @example
31399 *
31400 * function Shape() {
31401 * this.x = 0;
31402 * this.y = 0;
31403 * }
31404 *
31405 * function Circle() {
31406 * Shape.call(this);
31407 * }
31408 *
31409 * Circle.prototype = _.create(Shape.prototype, {
31410 * 'constructor': Circle
31411 * });
31412 *
31413 * var circle = new Circle;
31414 * circle instanceof Circle;
31415 * // => true
31416 *
31417 * circle instanceof Shape;
31418 * // => true
31419 */
31420 function create(prototype, properties) {
31421 var result = baseCreate(prototype);
31422 return properties == null ? result : baseAssign(result, properties);
31423 }
31424
31425 /**
31426 * Assigns own and inherited enumerable string keyed properties of source
31427 * objects to the destination object for all destination properties that
31428 * resolve to `undefined`. Source objects are applied from left to right.
31429 * Once a property is set, additional values of the same property are ignored.
31430 *
31431 * **Note:** This method mutates `object`.
31432 *
31433 * @static
31434 * @since 0.1.0
31435 * @memberOf _
31436 * @category Object
31437 * @param {Object} object The destination object.
31438 * @param {...Object} [sources] The source objects.
31439 * @returns {Object} Returns `object`.
31440 * @see _.defaultsDeep
31441 * @example
31442 *
31443 * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
31444 * // => { 'a': 1, 'b': 2 }
31445 */
31446 var defaults = baseRest(function(object, sources) {
31447 object = Object(object);
31448
31449 var index = -1;
31450 var length = sources.length;
31451 var guard = length > 2 ? sources[2] : undefined;
31452
31453 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
31454 length = 1;
31455 }
31456
31457 while (++index < length) {
31458 var source = sources[index];
31459 var props = keysIn(source);
31460 var propsIndex = -1;
31461 var propsLength = props.length;
31462
31463 while (++propsIndex < propsLength) {
31464 var key = props[propsIndex];
31465 var value = object[key];
31466
31467 if (value === undefined ||
31468 (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {
31469 object[key] = source[key];
31470 }
31471 }
31472 }
31473
31474 return object;
31475 });
31476
31477 /**
31478 * This method is like `_.defaults` except that it recursively assigns
31479 * default properties.
31480 *
31481 * **Note:** This method mutates `object`.
31482 *
31483 * @static
31484 * @memberOf _
31485 * @since 3.10.0
31486 * @category Object
31487 * @param {Object} object The destination object.
31488 * @param {...Object} [sources] The source objects.
31489 * @returns {Object} Returns `object`.
31490 * @see _.defaults
31491 * @example
31492 *
31493 * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });
31494 * // => { 'a': { 'b': 2, 'c': 3 } }
31495 */
31496 var defaultsDeep = baseRest(function(args) {
31497 args.push(undefined, customDefaultsMerge);
31498 return apply(mergeWith, undefined, args);
31499 });
31500
31501 /**
31502 * This method is like `_.find` except that it returns the key of the first
31503 * element `predicate` returns truthy for instead of the element itself.
31504 *
31505 * @static
31506 * @memberOf _
31507 * @since 1.1.0
31508 * @category Object
31509 * @param {Object} object The object to inspect.
31510 * @param {Function} [predicate=_.identity] The function invoked per iteration.
31511 * @returns {string|undefined} Returns the key of the matched element,
31512 * else `undefined`.
31513 * @example
31514 *
31515 * var users = {
31516 * 'barney': { 'age': 36, 'active': true },
31517 * 'fred': { 'age': 40, 'active': false },
31518 * 'pebbles': { 'age': 1, 'active': true }
31519 * };
31520 *
31521 * _.findKey(users, function(o) { return o.age < 40; });
31522 * // => 'barney' (iteration order is not guaranteed)
31523 *
31524 * // The `_.matches` iteratee shorthand.
31525 * _.findKey(users, { 'age': 1, 'active': true });
31526 * // => 'pebbles'
31527 *
31528 * // The `_.matchesProperty` iteratee shorthand.
31529 * _.findKey(users, ['active', false]);
31530 * // => 'fred'
31531 *
31532 * // The `_.property` iteratee shorthand.
31533 * _.findKey(users, 'active');
31534 * // => 'barney'
31535 */
31536 function findKey(object, predicate) {
31537 return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);
31538 }
31539
31540 /**
31541 * This method is like `_.findKey` except that it iterates over elements of
31542 * a collection in the opposite order.
31543 *
31544 * @static
31545 * @memberOf _
31546 * @since 2.0.0
31547 * @category Object
31548 * @param {Object} object The object to inspect.
31549 * @param {Function} [predicate=_.identity] The function invoked per iteration.
31550 * @returns {string|undefined} Returns the key of the matched element,
31551 * else `undefined`.
31552 * @example
31553 *
31554 * var users = {
31555 * 'barney': { 'age': 36, 'active': true },
31556 * 'fred': { 'age': 40, 'active': false },
31557 * 'pebbles': { 'age': 1, 'active': true }
31558 * };
31559 *
31560 * _.findLastKey(users, function(o) { return o.age < 40; });
31561 * // => returns 'pebbles' assuming `_.findKey` returns 'barney'
31562 *
31563 * // The `_.matches` iteratee shorthand.
31564 * _.findLastKey(users, { 'age': 36, 'active': true });
31565 * // => 'barney'
31566 *
31567 * // The `_.matchesProperty` iteratee shorthand.
31568 * _.findLastKey(users, ['active', false]);
31569 * // => 'fred'
31570 *
31571 * // The `_.property` iteratee shorthand.
31572 * _.findLastKey(users, 'active');
31573 * // => 'pebbles'
31574 */
31575 function findLastKey(object, predicate) {
31576 return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);
31577 }
31578
31579 /**
31580 * Iterates over own and inherited enumerable string keyed properties of an
31581 * object and invokes `iteratee` for each property. The iteratee is invoked
31582 * with three arguments: (value, key, object). Iteratee functions may exit
31583 * iteration early by explicitly returning `false`.
31584 *
31585 * @static
31586 * @memberOf _
31587 * @since 0.3.0
31588 * @category Object
31589 * @param {Object} object The object to iterate over.
31590 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
31591 * @returns {Object} Returns `object`.
31592 * @see _.forInRight
31593 * @example
31594 *
31595 * function Foo() {
31596 * this.a = 1;
31597 * this.b = 2;
31598 * }
31599 *
31600 * Foo.prototype.c = 3;
31601 *
31602 * _.forIn(new Foo, function(value, key) {
31603 * console.log(key);
31604 * });
31605 * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).
31606 */
31607 function forIn(object, iteratee) {
31608 return object == null
31609 ? object
31610 : baseFor(object, getIteratee(iteratee, 3), keysIn);
31611 }
31612
31613 /**
31614 * This method is like `_.forIn` except that it iterates over properties of
31615 * `object` in the opposite order.
31616 *
31617 * @static
31618 * @memberOf _
31619 * @since 2.0.0
31620 * @category Object
31621 * @param {Object} object The object to iterate over.
31622 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
31623 * @returns {Object} Returns `object`.
31624 * @see _.forIn
31625 * @example
31626 *
31627 * function Foo() {
31628 * this.a = 1;
31629 * this.b = 2;
31630 * }
31631 *
31632 * Foo.prototype.c = 3;
31633 *
31634 * _.forInRight(new Foo, function(value, key) {
31635 * console.log(key);
31636 * });
31637 * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.
31638 */
31639 function forInRight(object, iteratee) {
31640 return object == null
31641 ? object
31642 : baseForRight(object, getIteratee(iteratee, 3), keysIn);
31643 }
31644
31645 /**
31646 * Iterates over own enumerable string keyed properties of an object and
31647 * invokes `iteratee` for each property. The iteratee is invoked with three
31648 * arguments: (value, key, object). Iteratee functions may exit iteration
31649 * early by explicitly returning `false`.
31650 *
31651 * @static
31652 * @memberOf _
31653 * @since 0.3.0
31654 * @category Object
31655 * @param {Object} object The object to iterate over.
31656 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
31657 * @returns {Object} Returns `object`.
31658 * @see _.forOwnRight
31659 * @example
31660 *
31661 * function Foo() {
31662 * this.a = 1;
31663 * this.b = 2;
31664 * }
31665 *
31666 * Foo.prototype.c = 3;
31667 *
31668 * _.forOwn(new Foo, function(value, key) {
31669 * console.log(key);
31670 * });
31671 * // => Logs 'a' then 'b' (iteration order is not guaranteed).
31672 */
31673 function forOwn(object, iteratee) {
31674 return object && baseForOwn(object, getIteratee(iteratee, 3));
31675 }
31676
31677 /**
31678 * This method is like `_.forOwn` except that it iterates over properties of
31679 * `object` in the opposite order.
31680 *
31681 * @static
31682 * @memberOf _
31683 * @since 2.0.0
31684 * @category Object
31685 * @param {Object} object The object to iterate over.
31686 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
31687 * @returns {Object} Returns `object`.
31688 * @see _.forOwn
31689 * @example
31690 *
31691 * function Foo() {
31692 * this.a = 1;
31693 * this.b = 2;
31694 * }
31695 *
31696 * Foo.prototype.c = 3;
31697 *
31698 * _.forOwnRight(new Foo, function(value, key) {
31699 * console.log(key);
31700 * });
31701 * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.
31702 */
31703 function forOwnRight(object, iteratee) {
31704 return object && baseForOwnRight(object, getIteratee(iteratee, 3));
31705 }
31706
31707 /**
31708 * Creates an array of function property names from own enumerable properties
31709 * of `object`.
31710 *
31711 * @static
31712 * @since 0.1.0
31713 * @memberOf _
31714 * @category Object
31715 * @param {Object} object The object to inspect.
31716 * @returns {Array} Returns the function names.
31717 * @see _.functionsIn
31718 * @example
31719 *
31720 * function Foo() {
31721 * this.a = _.constant('a');
31722 * this.b = _.constant('b');
31723 * }
31724 *
31725 * Foo.prototype.c = _.constant('c');
31726 *
31727 * _.functions(new Foo);
31728 * // => ['a', 'b']
31729 */
31730 function functions(object) {
31731 return object == null ? [] : baseFunctions(object, keys(object));
31732 }
31733
31734 /**
31735 * Creates an array of function property names from own and inherited
31736 * enumerable properties of `object`.
31737 *
31738 * @static
31739 * @memberOf _
31740 * @since 4.0.0
31741 * @category Object
31742 * @param {Object} object The object to inspect.
31743 * @returns {Array} Returns the function names.
31744 * @see _.functions
31745 * @example
31746 *
31747 * function Foo() {
31748 * this.a = _.constant('a');
31749 * this.b = _.constant('b');
31750 * }
31751 *
31752 * Foo.prototype.c = _.constant('c');
31753 *
31754 * _.functionsIn(new Foo);
31755 * // => ['a', 'b', 'c']
31756 */
31757 function functionsIn(object) {
31758 return object == null ? [] : baseFunctions(object, keysIn(object));
31759 }
31760
31761 /**
31762 * Gets the value at `path` of `object`. If the resolved value is
31763 * `undefined`, the `defaultValue` is returned in its place.
31764 *
31765 * @static
31766 * @memberOf _
31767 * @since 3.7.0
31768 * @category Object
31769 * @param {Object} object The object to query.
31770 * @param {Array|string} path The path of the property to get.
31771 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
31772 * @returns {*} Returns the resolved value.
31773 * @example
31774 *
31775 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
31776 *
31777 * _.get(object, 'a[0].b.c');
31778 * // => 3
31779 *
31780 * _.get(object, ['a', '0', 'b', 'c']);
31781 * // => 3
31782 *
31783 * _.get(object, 'a.b.c', 'default');
31784 * // => 'default'
31785 */
31786 function get(object, path, defaultValue) {
31787 var result = object == null ? undefined : baseGet(object, path);
31788 return result === undefined ? defaultValue : result;
31789 }
31790
31791 /**
31792 * Checks if `path` is a direct property of `object`.
31793 *
31794 * @static
31795 * @since 0.1.0
31796 * @memberOf _
31797 * @category Object
31798 * @param {Object} object The object to query.
31799 * @param {Array|string} path The path to check.
31800 * @returns {boolean} Returns `true` if `path` exists, else `false`.
31801 * @example
31802 *
31803 * var object = { 'a': { 'b': 2 } };
31804 * var other = _.create({ 'a': _.create({ 'b': 2 }) });
31805 *
31806 * _.has(object, 'a');
31807 * // => true
31808 *
31809 * _.has(object, 'a.b');
31810 * // => true
31811 *
31812 * _.has(object, ['a', 'b']);
31813 * // => true
31814 *
31815 * _.has(other, 'a');
31816 * // => false
31817 */
31818 function has(object, path) {
31819 return object != null && hasPath(object, path, baseHas);
31820 }
31821
31822 /**
31823 * Checks if `path` is a direct or inherited property of `object`.
31824 *
31825 * @static
31826 * @memberOf _
31827 * @since 4.0.0
31828 * @category Object
31829 * @param {Object} object The object to query.
31830 * @param {Array|string} path The path to check.
31831 * @returns {boolean} Returns `true` if `path` exists, else `false`.
31832 * @example
31833 *
31834 * var object = _.create({ 'a': _.create({ 'b': 2 }) });
31835 *
31836 * _.hasIn(object, 'a');
31837 * // => true
31838 *
31839 * _.hasIn(object, 'a.b');
31840 * // => true
31841 *
31842 * _.hasIn(object, ['a', 'b']);
31843 * // => true
31844 *
31845 * _.hasIn(object, 'b');
31846 * // => false
31847 */
31848 function hasIn(object, path) {
31849 return object != null && hasPath(object, path, baseHasIn);
31850 }
31851
31852 /**
31853 * Creates an object composed of the inverted keys and values of `object`.
31854 * If `object` contains duplicate values, subsequent values overwrite
31855 * property assignments of previous values.
31856 *
31857 * @static
31858 * @memberOf _
31859 * @since 0.7.0
31860 * @category Object
31861 * @param {Object} object The object to invert.
31862 * @returns {Object} Returns the new inverted object.
31863 * @example
31864 *
31865 * var object = { 'a': 1, 'b': 2, 'c': 1 };
31866 *
31867 * _.invert(object);
31868 * // => { '1': 'c', '2': 'b' }
31869 */
31870 var invert = createInverter(function(result, value, key) {
31871 if (value != null &&
31872 typeof value.toString != 'function') {
31873 value = nativeObjectToString.call(value);
31874 }
31875
31876 result[value] = key;
31877 }, constant(identity));
31878
31879 /**
31880 * This method is like `_.invert` except that the inverted object is generated
31881 * from the results of running each element of `object` thru `iteratee`. The
31882 * corresponding inverted value of each inverted key is an array of keys
31883 * responsible for generating the inverted value. The iteratee is invoked
31884 * with one argument: (value).
31885 *
31886 * @static
31887 * @memberOf _
31888 * @since 4.1.0
31889 * @category Object
31890 * @param {Object} object The object to invert.
31891 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
31892 * @returns {Object} Returns the new inverted object.
31893 * @example
31894 *
31895 * var object = { 'a': 1, 'b': 2, 'c': 1 };
31896 *
31897 * _.invertBy(object);
31898 * // => { '1': ['a', 'c'], '2': ['b'] }
31899 *
31900 * _.invertBy(object, function(value) {
31901 * return 'group' + value;
31902 * });
31903 * // => { 'group1': ['a', 'c'], 'group2': ['b'] }
31904 */
31905 var invertBy = createInverter(function(result, value, key) {
31906 if (value != null &&
31907 typeof value.toString != 'function') {
31908 value = nativeObjectToString.call(value);
31909 }
31910
31911 if (hasOwnProperty.call(result, value)) {
31912 result[value].push(key);
31913 } else {
31914 result[value] = [key];
31915 }
31916 }, getIteratee);
31917
31918 /**
31919 * Invokes the method at `path` of `object`.
31920 *
31921 * @static
31922 * @memberOf _
31923 * @since 4.0.0
31924 * @category Object
31925 * @param {Object} object The object to query.
31926 * @param {Array|string} path The path of the method to invoke.
31927 * @param {...*} [args] The arguments to invoke the method with.
31928 * @returns {*} Returns the result of the invoked method.
31929 * @example
31930 *
31931 * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };
31932 *
31933 * _.invoke(object, 'a[0].b.c.slice', 1, 3);
31934 * // => [2, 3]
31935 */
31936 var invoke = baseRest(baseInvoke);
31937
31938 /**
31939 * Creates an array of the own enumerable property names of `object`.
31940 *
31941 * **Note:** Non-object values are coerced to objects. See the
31942 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
31943 * for more details.
31944 *
31945 * @static
31946 * @since 0.1.0
31947 * @memberOf _
31948 * @category Object
31949 * @param {Object} object The object to query.
31950 * @returns {Array} Returns the array of property names.
31951 * @example
31952 *
31953 * function Foo() {
31954 * this.a = 1;
31955 * this.b = 2;
31956 * }
31957 *
31958 * Foo.prototype.c = 3;
31959 *
31960 * _.keys(new Foo);
31961 * // => ['a', 'b'] (iteration order is not guaranteed)
31962 *
31963 * _.keys('hi');
31964 * // => ['0', '1']
31965 */
31966 function keys(object) {
31967 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
31968 }
31969
31970 /**
31971 * Creates an array of the own and inherited enumerable property names of `object`.
31972 *
31973 * **Note:** Non-object values are coerced to objects.
31974 *
31975 * @static
31976 * @memberOf _
31977 * @since 3.0.0
31978 * @category Object
31979 * @param {Object} object The object to query.
31980 * @returns {Array} Returns the array of property names.
31981 * @example
31982 *
31983 * function Foo() {
31984 * this.a = 1;
31985 * this.b = 2;
31986 * }
31987 *
31988 * Foo.prototype.c = 3;
31989 *
31990 * _.keysIn(new Foo);
31991 * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
31992 */
31993 function keysIn(object) {
31994 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);
31995 }
31996
31997 /**
31998 * The opposite of `_.mapValues`; this method creates an object with the
31999 * same values as `object` and keys generated by running each own enumerable
32000 * string keyed property of `object` thru `iteratee`. The iteratee is invoked
32001 * with three arguments: (value, key, object).
32002 *
32003 * @static
32004 * @memberOf _
32005 * @since 3.8.0
32006 * @category Object
32007 * @param {Object} object The object to iterate over.
32008 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
32009 * @returns {Object} Returns the new mapped object.
32010 * @see _.mapValues
32011 * @example
32012 *
32013 * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {
32014 * return key + value;
32015 * });
32016 * // => { 'a1': 1, 'b2': 2 }
32017 */
32018 function mapKeys(object, iteratee) {
32019 var result = {};
32020 iteratee = getIteratee(iteratee, 3);
32021
32022 baseForOwn(object, function(value, key, object) {
32023 baseAssignValue(result, iteratee(value, key, object), value);
32024 });
32025 return result;
32026 }
32027
32028 /**
32029 * Creates an object with the same keys as `object` and values generated
32030 * by running each own enumerable string keyed property of `object` thru
32031 * `iteratee`. The iteratee is invoked with three arguments:
32032 * (value, key, object).
32033 *
32034 * @static
32035 * @memberOf _
32036 * @since 2.4.0
32037 * @category Object
32038 * @param {Object} object The object to iterate over.
32039 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
32040 * @returns {Object} Returns the new mapped object.
32041 * @see _.mapKeys
32042 * @example
32043 *
32044 * var users = {
32045 * 'fred': { 'user': 'fred', 'age': 40 },
32046 * 'pebbles': { 'user': 'pebbles', 'age': 1 }
32047 * };
32048 *
32049 * _.mapValues(users, function(o) { return o.age; });
32050 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
32051 *
32052 * // The `_.property` iteratee shorthand.
32053 * _.mapValues(users, 'age');
32054 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
32055 */
32056 function mapValues(object, iteratee) {
32057 var result = {};
32058 iteratee = getIteratee(iteratee, 3);
32059
32060 baseForOwn(object, function(value, key, object) {
32061 baseAssignValue(result, key, iteratee(value, key, object));
32062 });
32063 return result;
32064 }
32065
32066 /**
32067 * This method is like `_.assign` except that it recursively merges own and
32068 * inherited enumerable string keyed properties of source objects into the
32069 * destination object. Source properties that resolve to `undefined` are
32070 * skipped if a destination value exists. Array and plain object properties
32071 * are merged recursively. Other objects and value types are overridden by
32072 * assignment. Source objects are applied from left to right. Subsequent
32073 * sources overwrite property assignments of previous sources.
32074 *
32075 * **Note:** This method mutates `object`.
32076 *
32077 * @static
32078 * @memberOf _
32079 * @since 0.5.0
32080 * @category Object
32081 * @param {Object} object The destination object.
32082 * @param {...Object} [sources] The source objects.
32083 * @returns {Object} Returns `object`.
32084 * @example
32085 *
32086 * var object = {
32087 * 'a': [{ 'b': 2 }, { 'd': 4 }]
32088 * };
32089 *
32090 * var other = {
32091 * 'a': [{ 'c': 3 }, { 'e': 5 }]
32092 * };
32093 *
32094 * _.merge(object, other);
32095 * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }
32096 */
32097 var merge = createAssigner(function(object, source, srcIndex) {
32098 baseMerge(object, source, srcIndex);
32099 });
32100
32101 /**
32102 * This method is like `_.merge` except that it accepts `customizer` which
32103 * is invoked to produce the merged values of the destination and source
32104 * properties. If `customizer` returns `undefined`, merging is handled by the
32105 * method instead. The `customizer` is invoked with six arguments:
32106 * (objValue, srcValue, key, object, source, stack).
32107 *
32108 * **Note:** This method mutates `object`.
32109 *
32110 * @static
32111 * @memberOf _
32112 * @since 4.0.0
32113 * @category Object
32114 * @param {Object} object The destination object.
32115 * @param {...Object} sources The source objects.
32116 * @param {Function} customizer The function to customize assigned values.
32117 * @returns {Object} Returns `object`.
32118 * @example
32119 *
32120 * function customizer(objValue, srcValue) {
32121 * if (_.isArray(objValue)) {
32122 * return objValue.concat(srcValue);
32123 * }
32124 * }
32125 *
32126 * var object = { 'a': [1], 'b': [2] };
32127 * var other = { 'a': [3], 'b': [4] };
32128 *
32129 * _.mergeWith(object, other, customizer);
32130 * // => { 'a': [1, 3], 'b': [2, 4] }
32131 */
32132 var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {
32133 baseMerge(object, source, srcIndex, customizer);
32134 });
32135
32136 /**
32137 * The opposite of `_.pick`; this method creates an object composed of the
32138 * own and inherited enumerable property paths of `object` that are not omitted.
32139 *
32140 * **Note:** This method is considerably slower than `_.pick`.
32141 *
32142 * @static
32143 * @since 0.1.0
32144 * @memberOf _
32145 * @category Object
32146 * @param {Object} object The source object.
32147 * @param {...(string|string[])} [paths] The property paths to omit.
32148 * @returns {Object} Returns the new object.
32149 * @example
32150 *
32151 * var object = { 'a': 1, 'b': '2', 'c': 3 };
32152 *
32153 * _.omit(object, ['a', 'c']);
32154 * // => { 'b': '2' }
32155 */
32156 var omit = flatRest(function(object, paths) {
32157 var result = {};
32158 if (object == null) {
32159 return result;
32160 }
32161 var isDeep = false;
32162 paths = arrayMap(paths, function(path) {
32163 path = castPath(path, object);
32164 isDeep || (isDeep = path.length > 1);
32165 return path;
32166 });
32167 copyObject(object, getAllKeysIn(object), result);
32168 if (isDeep) {
32169 result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);
32170 }
32171 var length = paths.length;
32172 while (length--) {
32173 baseUnset(result, paths[length]);
32174 }
32175 return result;
32176 });
32177
32178 /**
32179 * The opposite of `_.pickBy`; this method creates an object composed of
32180 * the own and inherited enumerable string keyed properties of `object` that
32181 * `predicate` doesn't return truthy for. The predicate is invoked with two
32182 * arguments: (value, key).
32183 *
32184 * @static
32185 * @memberOf _
32186 * @since 4.0.0
32187 * @category Object
32188 * @param {Object} object The source object.
32189 * @param {Function} [predicate=_.identity] The function invoked per property.
32190 * @returns {Object} Returns the new object.
32191 * @example
32192 *
32193 * var object = { 'a': 1, 'b': '2', 'c': 3 };
32194 *
32195 * _.omitBy(object, _.isNumber);
32196 * // => { 'b': '2' }
32197 */
32198 function omitBy(object, predicate) {
32199 return pickBy(object, negate(getIteratee(predicate)));
32200 }
32201
32202 /**
32203 * Creates an object composed of the picked `object` properties.
32204 *
32205 * @static
32206 * @since 0.1.0
32207 * @memberOf _
32208 * @category Object
32209 * @param {Object} object The source object.
32210 * @param {...(string|string[])} [paths] The property paths to pick.
32211 * @returns {Object} Returns the new object.
32212 * @example
32213 *
32214 * var object = { 'a': 1, 'b': '2', 'c': 3 };
32215 *
32216 * _.pick(object, ['a', 'c']);
32217 * // => { 'a': 1, 'c': 3 }
32218 */
32219 var pick = flatRest(function(object, paths) {
32220 return object == null ? {} : basePick(object, paths);
32221 });
32222
32223 /**
32224 * Creates an object composed of the `object` properties `predicate` returns
32225 * truthy for. The predicate is invoked with two arguments: (value, key).
32226 *
32227 * @static
32228 * @memberOf _
32229 * @since 4.0.0
32230 * @category Object
32231 * @param {Object} object The source object.
32232 * @param {Function} [predicate=_.identity] The function invoked per property.
32233 * @returns {Object} Returns the new object.
32234 * @example
32235 *
32236 * var object = { 'a': 1, 'b': '2', 'c': 3 };
32237 *
32238 * _.pickBy(object, _.isNumber);
32239 * // => { 'a': 1, 'c': 3 }
32240 */
32241 function pickBy(object, predicate) {
32242 if (object == null) {
32243 return {};
32244 }
32245 var props = arrayMap(getAllKeysIn(object), function(prop) {
32246 return [prop];
32247 });
32248 predicate = getIteratee(predicate);
32249 return basePickBy(object, props, function(value, path) {
32250 return predicate(value, path[0]);
32251 });
32252 }
32253
32254 /**
32255 * This method is like `_.get` except that if the resolved value is a
32256 * function it's invoked with the `this` binding of its parent object and
32257 * its result is returned.
32258 *
32259 * @static
32260 * @since 0.1.0
32261 * @memberOf _
32262 * @category Object
32263 * @param {Object} object The object to query.
32264 * @param {Array|string} path The path of the property to resolve.
32265 * @param {*} [defaultValue] The value returned for `undefined` resolved values.
32266 * @returns {*} Returns the resolved value.
32267 * @example
32268 *
32269 * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };
32270 *
32271 * _.result(object, 'a[0].b.c1');
32272 * // => 3
32273 *
32274 * _.result(object, 'a[0].b.c2');
32275 * // => 4
32276 *
32277 * _.result(object, 'a[0].b.c3', 'default');
32278 * // => 'default'
32279 *
32280 * _.result(object, 'a[0].b.c3', _.constant('default'));
32281 * // => 'default'
32282 */
32283 function result(object, path, defaultValue) {
32284 path = castPath(path, object);
32285
32286 var index = -1,
32287 length = path.length;
32288
32289 // Ensure the loop is entered when path is empty.
32290 if (!length) {
32291 length = 1;
32292 object = undefined;
32293 }
32294 while (++index < length) {
32295 var value = object == null ? undefined : object[toKey(path[index])];
32296 if (value === undefined) {
32297 index = length;
32298 value = defaultValue;
32299 }
32300 object = isFunction(value) ? value.call(object) : value;
32301 }
32302 return object;
32303 }
32304
32305 /**
32306 * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,
32307 * it's created. Arrays are created for missing index properties while objects
32308 * are created for all other missing properties. Use `_.setWith` to customize
32309 * `path` creation.
32310 *
32311 * **Note:** This method mutates `object`.
32312 *
32313 * @static
32314 * @memberOf _
32315 * @since 3.7.0
32316 * @category Object
32317 * @param {Object} object The object to modify.
32318 * @param {Array|string} path The path of the property to set.
32319 * @param {*} value The value to set.
32320 * @returns {Object} Returns `object`.
32321 * @example
32322 *
32323 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
32324 *
32325 * _.set(object, 'a[0].b.c', 4);
32326 * console.log(object.a[0].b.c);
32327 * // => 4
32328 *
32329 * _.set(object, ['x', '0', 'y', 'z'], 5);
32330 * console.log(object.x[0].y.z);
32331 * // => 5
32332 */
32333 function set(object, path, value) {
32334 return object == null ? object : baseSet(object, path, value);
32335 }
32336
32337 /**
32338 * This method is like `_.set` except that it accepts `customizer` which is
32339 * invoked to produce the objects of `path`. If `customizer` returns `undefined`
32340 * path creation is handled by the method instead. The `customizer` is invoked
32341 * with three arguments: (nsValue, key, nsObject).
32342 *
32343 * **Note:** This method mutates `object`.
32344 *
32345 * @static
32346 * @memberOf _
32347 * @since 4.0.0
32348 * @category Object
32349 * @param {Object} object The object to modify.
32350 * @param {Array|string} path The path of the property to set.
32351 * @param {*} value The value to set.
32352 * @param {Function} [customizer] The function to customize assigned values.
32353 * @returns {Object} Returns `object`.
32354 * @example
32355 *
32356 * var object = {};
32357 *
32358 * _.setWith(object, '[0][1]', 'a', Object);
32359 * // => { '0': { '1': 'a' } }
32360 */
32361 function setWith(object, path, value, customizer) {
32362 customizer = typeof customizer == 'function' ? customizer : undefined;
32363 return object == null ? object : baseSet(object, path, value, customizer);
32364 }
32365
32366 /**
32367 * Creates an array of own enumerable string keyed-value pairs for `object`
32368 * which can be consumed by `_.fromPairs`. If `object` is a map or set, its
32369 * entries are returned.
32370 *
32371 * @static
32372 * @memberOf _
32373 * @since 4.0.0
32374 * @alias entries
32375 * @category Object
32376 * @param {Object} object The object to query.
32377 * @returns {Array} Returns the key-value pairs.
32378 * @example
32379 *
32380 * function Foo() {
32381 * this.a = 1;
32382 * this.b = 2;
32383 * }
32384 *
32385 * Foo.prototype.c = 3;
32386 *
32387 * _.toPairs(new Foo);
32388 * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)
32389 */
32390 var toPairs = createToPairs(keys);
32391
32392 /**
32393 * Creates an array of own and inherited enumerable string keyed-value pairs
32394 * for `object` which can be consumed by `_.fromPairs`. If `object` is a map
32395 * or set, its entries are returned.
32396 *
32397 * @static
32398 * @memberOf _
32399 * @since 4.0.0
32400 * @alias entriesIn
32401 * @category Object
32402 * @param {Object} object The object to query.
32403 * @returns {Array} Returns the key-value pairs.
32404 * @example
32405 *
32406 * function Foo() {
32407 * this.a = 1;
32408 * this.b = 2;
32409 * }
32410 *
32411 * Foo.prototype.c = 3;
32412 *
32413 * _.toPairsIn(new Foo);
32414 * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)
32415 */
32416 var toPairsIn = createToPairs(keysIn);
32417
32418 /**
32419 * An alternative to `_.reduce`; this method transforms `object` to a new
32420 * `accumulator` object which is the result of running each of its own
32421 * enumerable string keyed properties thru `iteratee`, with each invocation
32422 * potentially mutating the `accumulator` object. If `accumulator` is not
32423 * provided, a new object with the same `[[Prototype]]` will be used. The
32424 * iteratee is invoked with four arguments: (accumulator, value, key, object).
32425 * Iteratee functions may exit iteration early by explicitly returning `false`.
32426 *
32427 * @static
32428 * @memberOf _
32429 * @since 1.3.0
32430 * @category Object
32431 * @param {Object} object The object to iterate over.
32432 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
32433 * @param {*} [accumulator] The custom accumulator value.
32434 * @returns {*} Returns the accumulated value.
32435 * @example
32436 *
32437 * _.transform([2, 3, 4], function(result, n) {
32438 * result.push(n *= n);
32439 * return n % 2 == 0;
32440 * }, []);
32441 * // => [4, 9]
32442 *
32443 * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
32444 * (result[value] || (result[value] = [])).push(key);
32445 * }, {});
32446 * // => { '1': ['a', 'c'], '2': ['b'] }
32447 */
32448 function transform(object, iteratee, accumulator) {
32449 var isArr = isArray(object),
32450 isArrLike = isArr || isBuffer(object) || isTypedArray(object);
32451
32452 iteratee = getIteratee(iteratee, 4);
32453 if (accumulator == null) {
32454 var Ctor = object && object.constructor;
32455 if (isArrLike) {
32456 accumulator = isArr ? new Ctor : [];
32457 }
32458 else if (isObject(object)) {
32459 accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};
32460 }
32461 else {
32462 accumulator = {};
32463 }
32464 }
32465 (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {
32466 return iteratee(accumulator, value, index, object);
32467 });
32468 return accumulator;
32469 }
32470
32471 /**
32472 * Removes the property at `path` of `object`.
32473 *
32474 * **Note:** This method mutates `object`.
32475 *
32476 * @static
32477 * @memberOf _
32478 * @since 4.0.0
32479 * @category Object
32480 * @param {Object} object The object to modify.
32481 * @param {Array|string} path The path of the property to unset.
32482 * @returns {boolean} Returns `true` if the property is deleted, else `false`.
32483 * @example
32484 *
32485 * var object = { 'a': [{ 'b': { 'c': 7 } }] };
32486 * _.unset(object, 'a[0].b.c');
32487 * // => true
32488 *
32489 * console.log(object);
32490 * // => { 'a': [{ 'b': {} }] };
32491 *
32492 * _.unset(object, ['a', '0', 'b', 'c']);
32493 * // => true
32494 *
32495 * console.log(object);
32496 * // => { 'a': [{ 'b': {} }] };
32497 */
32498 function unset(object, path) {
32499 return object == null ? true : baseUnset(object, path);
32500 }
32501
32502 /**
32503 * This method is like `_.set` except that accepts `updater` to produce the
32504 * value to set. Use `_.updateWith` to customize `path` creation. The `updater`
32505 * is invoked with one argument: (value).
32506 *
32507 * **Note:** This method mutates `object`.
32508 *
32509 * @static
32510 * @memberOf _
32511 * @since 4.6.0
32512 * @category Object
32513 * @param {Object} object The object to modify.
32514 * @param {Array|string} path The path of the property to set.
32515 * @param {Function} updater The function to produce the updated value.
32516 * @returns {Object} Returns `object`.
32517 * @example
32518 *
32519 * var object = { 'a': [{ 'b': { 'c': 3 } }] };
32520 *
32521 * _.update(object, 'a[0].b.c', function(n) { return n * n; });
32522 * console.log(object.a[0].b.c);
32523 * // => 9
32524 *
32525 * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });
32526 * console.log(object.x[0].y.z);
32527 * // => 0
32528 */
32529 function update(object, path, updater) {
32530 return object == null ? object : baseUpdate(object, path, castFunction(updater));
32531 }
32532
32533 /**
32534 * This method is like `_.update` except that it accepts `customizer` which is
32535 * invoked to produce the objects of `path`. If `customizer` returns `undefined`
32536 * path creation is handled by the method instead. The `customizer` is invoked
32537 * with three arguments: (nsValue, key, nsObject).
32538 *
32539 * **Note:** This method mutates `object`.
32540 *
32541 * @static
32542 * @memberOf _
32543 * @since 4.6.0
32544 * @category Object
32545 * @param {Object} object The object to modify.
32546 * @param {Array|string} path The path of the property to set.
32547 * @param {Function} updater The function to produce the updated value.
32548 * @param {Function} [customizer] The function to customize assigned values.
32549 * @returns {Object} Returns `object`.
32550 * @example
32551 *
32552 * var object = {};
32553 *
32554 * _.updateWith(object, '[0][1]', _.constant('a'), Object);
32555 * // => { '0': { '1': 'a' } }
32556 */
32557 function updateWith(object, path, updater, customizer) {
32558 customizer = typeof customizer == 'function' ? customizer : undefined;
32559 return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);
32560 }
32561
32562 /**
32563 * Creates an array of the own enumerable string keyed property values of `object`.
32564 *
32565 * **Note:** Non-object values are coerced to objects.
32566 *
32567 * @static
32568 * @since 0.1.0
32569 * @memberOf _
32570 * @category Object
32571 * @param {Object} object The object to query.
32572 * @returns {Array} Returns the array of property values.
32573 * @example
32574 *
32575 * function Foo() {
32576 * this.a = 1;
32577 * this.b = 2;
32578 * }
32579 *
32580 * Foo.prototype.c = 3;
32581 *
32582 * _.values(new Foo);
32583 * // => [1, 2] (iteration order is not guaranteed)
32584 *
32585 * _.values('hi');
32586 * // => ['h', 'i']
32587 */
32588 function values(object) {
32589 return object == null ? [] : baseValues(object, keys(object));
32590 }
32591
32592 /**
32593 * Creates an array of the own and inherited enumerable string keyed property
32594 * values of `object`.
32595 *
32596 * **Note:** Non-object values are coerced to objects.
32597 *
32598 * @static
32599 * @memberOf _
32600 * @since 3.0.0
32601 * @category Object
32602 * @param {Object} object The object to query.
32603 * @returns {Array} Returns the array of property values.
32604 * @example
32605 *
32606 * function Foo() {
32607 * this.a = 1;
32608 * this.b = 2;
32609 * }
32610 *
32611 * Foo.prototype.c = 3;
32612 *
32613 * _.valuesIn(new Foo);
32614 * // => [1, 2, 3] (iteration order is not guaranteed)
32615 */
32616 function valuesIn(object) {
32617 return object == null ? [] : baseValues(object, keysIn(object));
32618 }
32619
32620 /*------------------------------------------------------------------------*/
32621
32622 /**
32623 * Clamps `number` within the inclusive `lower` and `upper` bounds.
32624 *
32625 * @static
32626 * @memberOf _
32627 * @since 4.0.0
32628 * @category Number
32629 * @param {number} number The number to clamp.
32630 * @param {number} [lower] The lower bound.
32631 * @param {number} upper The upper bound.
32632 * @returns {number} Returns the clamped number.
32633 * @example
32634 *
32635 * _.clamp(-10, -5, 5);
32636 * // => -5
32637 *
32638 * _.clamp(10, -5, 5);
32639 * // => 5
32640 */
32641 function clamp(number, lower, upper) {
32642 if (upper === undefined) {
32643 upper = lower;
32644 lower = undefined;
32645 }
32646 if (upper !== undefined) {
32647 upper = toNumber(upper);
32648 upper = upper === upper ? upper : 0;
32649 }
32650 if (lower !== undefined) {
32651 lower = toNumber(lower);
32652 lower = lower === lower ? lower : 0;
32653 }
32654 return baseClamp(toNumber(number), lower, upper);
32655 }
32656
32657 /**
32658 * Checks if `n` is between `start` and up to, but not including, `end`. If
32659 * `end` is not specified, it's set to `start` with `start` then set to `0`.
32660 * If `start` is greater than `end` the params are swapped to support
32661 * negative ranges.
32662 *
32663 * @static
32664 * @memberOf _
32665 * @since 3.3.0
32666 * @category Number
32667 * @param {number} number The number to check.
32668 * @param {number} [start=0] The start of the range.
32669 * @param {number} end The end of the range.
32670 * @returns {boolean} Returns `true` if `number` is in the range, else `false`.
32671 * @see _.range, _.rangeRight
32672 * @example
32673 *
32674 * _.inRange(3, 2, 4);
32675 * // => true
32676 *
32677 * _.inRange(4, 8);
32678 * // => true
32679 *
32680 * _.inRange(4, 2);
32681 * // => false
32682 *
32683 * _.inRange(2, 2);
32684 * // => false
32685 *
32686 * _.inRange(1.2, 2);
32687 * // => true
32688 *
32689 * _.inRange(5.2, 4);
32690 * // => false
32691 *
32692 * _.inRange(-3, -2, -6);
32693 * // => true
32694 */
32695 function inRange(number, start, end) {
32696 start = toFinite(start);
32697 if (end === undefined) {
32698 end = start;
32699 start = 0;
32700 } else {
32701 end = toFinite(end);
32702 }
32703 number = toNumber(number);
32704 return baseInRange(number, start, end);
32705 }
32706
32707 /**
32708 * Produces a random number between the inclusive `lower` and `upper` bounds.
32709 * If only one argument is provided a number between `0` and the given number
32710 * is returned. If `floating` is `true`, or either `lower` or `upper` are
32711 * floats, a floating-point number is returned instead of an integer.
32712 *
32713 * **Note:** JavaScript follows the IEEE-754 standard for resolving
32714 * floating-point values which can produce unexpected results.
32715 *
32716 * @static
32717 * @memberOf _
32718 * @since 0.7.0
32719 * @category Number
32720 * @param {number} [lower=0] The lower bound.
32721 * @param {number} [upper=1] The upper bound.
32722 * @param {boolean} [floating] Specify returning a floating-point number.
32723 * @returns {number} Returns the random number.
32724 * @example
32725 *
32726 * _.random(0, 5);
32727 * // => an integer between 0 and 5
32728 *
32729 * _.random(5);
32730 * // => also an integer between 0 and 5
32731 *
32732 * _.random(5, true);
32733 * // => a floating-point number between 0 and 5
32734 *
32735 * _.random(1.2, 5.2);
32736 * // => a floating-point number between 1.2 and 5.2
32737 */
32738 function random(lower, upper, floating) {
32739 if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {
32740 upper = floating = undefined;
32741 }
32742 if (floating === undefined) {
32743 if (typeof upper == 'boolean') {
32744 floating = upper;
32745 upper = undefined;
32746 }
32747 else if (typeof lower == 'boolean') {
32748 floating = lower;
32749 lower = undefined;
32750 }
32751 }
32752 if (lower === undefined && upper === undefined) {
32753 lower = 0;
32754 upper = 1;
32755 }
32756 else {
32757 lower = toFinite(lower);
32758 if (upper === undefined) {
32759 upper = lower;
32760 lower = 0;
32761 } else {
32762 upper = toFinite(upper);
32763 }
32764 }
32765 if (lower > upper) {
32766 var temp = lower;
32767 lower = upper;
32768 upper = temp;
32769 }
32770 if (floating || lower % 1 || upper % 1) {
32771 var rand = nativeRandom();
32772 return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);
32773 }
32774 return baseRandom(lower, upper);
32775 }
32776
32777 /*------------------------------------------------------------------------*/
32778
32779 /**
32780 * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).
32781 *
32782 * @static
32783 * @memberOf _
32784 * @since 3.0.0
32785 * @category String
32786 * @param {string} [string=''] The string to convert.
32787 * @returns {string} Returns the camel cased string.
32788 * @example
32789 *
32790 * _.camelCase('Foo Bar');
32791 * // => 'fooBar'
32792 *
32793 * _.camelCase('--foo-bar--');
32794 * // => 'fooBar'
32795 *
32796 * _.camelCase('__FOO_BAR__');
32797 * // => 'fooBar'
32798 */
32799 var camelCase = createCompounder(function(result, word, index) {
32800 word = word.toLowerCase();
32801 return result + (index ? capitalize(word) : word);
32802 });
32803
32804 /**
32805 * Converts the first character of `string` to upper case and the remaining
32806 * to lower case.
32807 *
32808 * @static
32809 * @memberOf _
32810 * @since 3.0.0
32811 * @category String
32812 * @param {string} [string=''] The string to capitalize.
32813 * @returns {string} Returns the capitalized string.
32814 * @example
32815 *
32816 * _.capitalize('FRED');
32817 * // => 'Fred'
32818 */
32819 function capitalize(string) {
32820 return upperFirst(toString(string).toLowerCase());
32821 }
32822
32823 /**
32824 * Deburrs `string` by converting
32825 * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
32826 * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)
32827 * letters to basic Latin letters and removing
32828 * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).
32829 *
32830 * @static
32831 * @memberOf _
32832 * @since 3.0.0
32833 * @category String
32834 * @param {string} [string=''] The string to deburr.
32835 * @returns {string} Returns the deburred string.
32836 * @example
32837 *
32838 * _.deburr('déjà vu');
32839 * // => 'deja vu'
32840 */
32841 function deburr(string) {
32842 string = toString(string);
32843 return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');
32844 }
32845
32846 /**
32847 * Checks if `string` ends with the given target string.
32848 *
32849 * @static
32850 * @memberOf _
32851 * @since 3.0.0
32852 * @category String
32853 * @param {string} [string=''] The string to inspect.
32854 * @param {string} [target] The string to search for.
32855 * @param {number} [position=string.length] The position to search up to.
32856 * @returns {boolean} Returns `true` if `string` ends with `target`,
32857 * else `false`.
32858 * @example
32859 *
32860 * _.endsWith('abc', 'c');
32861 * // => true
32862 *
32863 * _.endsWith('abc', 'b');
32864 * // => false
32865 *
32866 * _.endsWith('abc', 'b', 2);
32867 * // => true
32868 */
32869 function endsWith(string, target, position) {
32870 string = toString(string);
32871 target = baseToString(target);
32872
32873 var length = string.length;
32874 position = position === undefined
32875 ? length
32876 : baseClamp(toInteger(position), 0, length);
32877
32878 var end = position;
32879 position -= target.length;
32880 return position >= 0 && string.slice(position, end) == target;
32881 }
32882
32883 /**
32884 * Converts the characters "&", "<", ">", '"', and "'" in `string` to their
32885 * corresponding HTML entities.
32886 *
32887 * **Note:** No other characters are escaped. To escape additional
32888 * characters use a third-party library like [_he_](https://mths.be/he).
32889 *
32890 * Though the ">" character is escaped for symmetry, characters like
32891 * ">" and "/" don't need escaping in HTML and have no special meaning
32892 * unless they're part of a tag or unquoted attribute value. See
32893 * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)
32894 * (under "semi-related fun fact") for more details.
32895 *
32896 * When working with HTML you should always
32897 * [quote attribute values](http://wonko.com/post/html-escaping) to reduce
32898 * XSS vectors.
32899 *
32900 * @static
32901 * @since 0.1.0
32902 * @memberOf _
32903 * @category String
32904 * @param {string} [string=''] The string to escape.
32905 * @returns {string} Returns the escaped string.
32906 * @example
32907 *
32908 * _.escape('fred, barney, & pebbles');
32909 * // => 'fred, barney, &amp; pebbles'
32910 */
32911 function escape(string) {
32912 string = toString(string);
32913 return (string && reHasUnescapedHtml.test(string))
32914 ? string.replace(reUnescapedHtml, escapeHtmlChar)
32915 : string;
32916 }
32917
32918 /**
32919 * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+",
32920 * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`.
32921 *
32922 * @static
32923 * @memberOf _
32924 * @since 3.0.0
32925 * @category String
32926 * @param {string} [string=''] The string to escape.
32927 * @returns {string} Returns the escaped string.
32928 * @example
32929 *
32930 * _.escapeRegExp('[lodash](https://lodash.com/)');
32931 * // => '\[lodash\]\(https://lodash\.com/\)'
32932 */
32933 function escapeRegExp(string) {
32934 string = toString(string);
32935 return (string && reHasRegExpChar.test(string))
32936 ? string.replace(reRegExpChar, '\\$&')
32937 : string;
32938 }
32939
32940 /**
32941 * Converts `string` to
32942 * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).
32943 *
32944 * @static
32945 * @memberOf _
32946 * @since 3.0.0
32947 * @category String
32948 * @param {string} [string=''] The string to convert.
32949 * @returns {string} Returns the kebab cased string.
32950 * @example
32951 *
32952 * _.kebabCase('Foo Bar');
32953 * // => 'foo-bar'
32954 *
32955 * _.kebabCase('fooBar');
32956 * // => 'foo-bar'
32957 *
32958 * _.kebabCase('__FOO_BAR__');
32959 * // => 'foo-bar'
32960 */
32961 var kebabCase = createCompounder(function(result, word, index) {
32962 return result + (index ? '-' : '') + word.toLowerCase();
32963 });
32964
32965 /**
32966 * Converts `string`, as space separated words, to lower case.
32967 *
32968 * @static
32969 * @memberOf _
32970 * @since 4.0.0
32971 * @category String
32972 * @param {string} [string=''] The string to convert.
32973 * @returns {string} Returns the lower cased string.
32974 * @example
32975 *
32976 * _.lowerCase('--Foo-Bar--');
32977 * // => 'foo bar'
32978 *
32979 * _.lowerCase('fooBar');
32980 * // => 'foo bar'
32981 *
32982 * _.lowerCase('__FOO_BAR__');
32983 * // => 'foo bar'
32984 */
32985 var lowerCase = createCompounder(function(result, word, index) {
32986 return result + (index ? ' ' : '') + word.toLowerCase();
32987 });
32988
32989 /**
32990 * Converts the first character of `string` to lower case.
32991 *
32992 * @static
32993 * @memberOf _
32994 * @since 4.0.0
32995 * @category String
32996 * @param {string} [string=''] The string to convert.
32997 * @returns {string} Returns the converted string.
32998 * @example
32999 *
33000 * _.lowerFirst('Fred');
33001 * // => 'fred'
33002 *
33003 * _.lowerFirst('FRED');
33004 * // => 'fRED'
33005 */
33006 var lowerFirst = createCaseFirst('toLowerCase');
33007
33008 /**
33009 * Pads `string` on the left and right sides if it's shorter than `length`.
33010 * Padding characters are truncated if they can't be evenly divided by `length`.
33011 *
33012 * @static
33013 * @memberOf _
33014 * @since 3.0.0
33015 * @category String
33016 * @param {string} [string=''] The string to pad.
33017 * @param {number} [length=0] The padding length.
33018 * @param {string} [chars=' '] The string used as padding.
33019 * @returns {string} Returns the padded string.
33020 * @example
33021 *
33022 * _.pad('abc', 8);
33023 * // => ' abc '
33024 *
33025 * _.pad('abc', 8, '_-');
33026 * // => '_-abc_-_'
33027 *
33028 * _.pad('abc', 3);
33029 * // => 'abc'
33030 */
33031 function pad(string, length, chars) {
33032 string = toString(string);
33033 length = toInteger(length);
33034
33035 var strLength = length ? stringSize(string) : 0;
33036 if (!length || strLength >= length) {
33037 return string;
33038 }
33039 var mid = (length - strLength) / 2;
33040 return (
33041 createPadding(nativeFloor(mid), chars) +
33042 string +
33043 createPadding(nativeCeil(mid), chars)
33044 );
33045 }
33046
33047 /**
33048 * Pads `string` on the right side if it's shorter than `length`. Padding
33049 * characters are truncated if they exceed `length`.
33050 *
33051 * @static
33052 * @memberOf _
33053 * @since 4.0.0
33054 * @category String
33055 * @param {string} [string=''] The string to pad.
33056 * @param {number} [length=0] The padding length.
33057 * @param {string} [chars=' '] The string used as padding.
33058 * @returns {string} Returns the padded string.
33059 * @example
33060 *
33061 * _.padEnd('abc', 6);
33062 * // => 'abc '
33063 *
33064 * _.padEnd('abc', 6, '_-');
33065 * // => 'abc_-_'
33066 *
33067 * _.padEnd('abc', 3);
33068 * // => 'abc'
33069 */
33070 function padEnd(string, length, chars) {
33071 string = toString(string);
33072 length = toInteger(length);
33073
33074 var strLength = length ? stringSize(string) : 0;
33075 return (length && strLength < length)
33076 ? (string + createPadding(length - strLength, chars))
33077 : string;
33078 }
33079
33080 /**
33081 * Pads `string` on the left side if it's shorter than `length`. Padding
33082 * characters are truncated if they exceed `length`.
33083 *
33084 * @static
33085 * @memberOf _
33086 * @since 4.0.0
33087 * @category String
33088 * @param {string} [string=''] The string to pad.
33089 * @param {number} [length=0] The padding length.
33090 * @param {string} [chars=' '] The string used as padding.
33091 * @returns {string} Returns the padded string.
33092 * @example
33093 *
33094 * _.padStart('abc', 6);
33095 * // => ' abc'
33096 *
33097 * _.padStart('abc', 6, '_-');
33098 * // => '_-_abc'
33099 *
33100 * _.padStart('abc', 3);
33101 * // => 'abc'
33102 */
33103 function padStart(string, length, chars) {
33104 string = toString(string);
33105 length = toInteger(length);
33106
33107 var strLength = length ? stringSize(string) : 0;
33108 return (length && strLength < length)
33109 ? (createPadding(length - strLength, chars) + string)
33110 : string;
33111 }
33112
33113 /**
33114 * Converts `string` to an integer of the specified radix. If `radix` is
33115 * `undefined` or `0`, a `radix` of `10` is used unless `value` is a
33116 * hexadecimal, in which case a `radix` of `16` is used.
33117 *
33118 * **Note:** This method aligns with the
33119 * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.
33120 *
33121 * @static
33122 * @memberOf _
33123 * @since 1.1.0
33124 * @category String
33125 * @param {string} string The string to convert.
33126 * @param {number} [radix=10] The radix to interpret `value` by.
33127 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
33128 * @returns {number} Returns the converted integer.
33129 * @example
33130 *
33131 * _.parseInt('08');
33132 * // => 8
33133 *
33134 * _.map(['6', '08', '10'], _.parseInt);
33135 * // => [6, 8, 10]
33136 */
33137 function parseInt(string, radix, guard) {
33138 if (guard || radix == null) {
33139 radix = 0;
33140 } else if (radix) {
33141 radix = +radix;
33142 }
33143 return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);
33144 }
33145
33146 /**
33147 * Repeats the given string `n` times.
33148 *
33149 * @static
33150 * @memberOf _
33151 * @since 3.0.0
33152 * @category String
33153 * @param {string} [string=''] The string to repeat.
33154 * @param {number} [n=1] The number of times to repeat the string.
33155 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
33156 * @returns {string} Returns the repeated string.
33157 * @example
33158 *
33159 * _.repeat('*', 3);
33160 * // => '***'
33161 *
33162 * _.repeat('abc', 2);
33163 * // => 'abcabc'
33164 *
33165 * _.repeat('abc', 0);
33166 * // => ''
33167 */
33168 function repeat(string, n, guard) {
33169 if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {
33170 n = 1;
33171 } else {
33172 n = toInteger(n);
33173 }
33174 return baseRepeat(toString(string), n);
33175 }
33176
33177 /**
33178 * Replaces matches for `pattern` in `string` with `replacement`.
33179 *
33180 * **Note:** This method is based on
33181 * [`String#replace`](https://mdn.io/String/replace).
33182 *
33183 * @static
33184 * @memberOf _
33185 * @since 4.0.0
33186 * @category String
33187 * @param {string} [string=''] The string to modify.
33188 * @param {RegExp|string} pattern The pattern to replace.
33189 * @param {Function|string} replacement The match replacement.
33190 * @returns {string} Returns the modified string.
33191 * @example
33192 *
33193 * _.replace('Hi Fred', 'Fred', 'Barney');
33194 * // => 'Hi Barney'
33195 */
33196 function replace() {
33197 var args = arguments,
33198 string = toString(args[0]);
33199
33200 return args.length < 3 ? string : string.replace(args[1], args[2]);
33201 }
33202
33203 /**
33204 * Converts `string` to
33205 * [snake case](https://en.wikipedia.org/wiki/Snake_case).
33206 *
33207 * @static
33208 * @memberOf _
33209 * @since 3.0.0
33210 * @category String
33211 * @param {string} [string=''] The string to convert.
33212 * @returns {string} Returns the snake cased string.
33213 * @example
33214 *
33215 * _.snakeCase('Foo Bar');
33216 * // => 'foo_bar'
33217 *
33218 * _.snakeCase('fooBar');
33219 * // => 'foo_bar'
33220 *
33221 * _.snakeCase('--FOO-BAR--');
33222 * // => 'foo_bar'
33223 */
33224 var snakeCase = createCompounder(function(result, word, index) {
33225 return result + (index ? '_' : '') + word.toLowerCase();
33226 });
33227
33228 /**
33229 * Splits `string` by `separator`.
33230 *
33231 * **Note:** This method is based on
33232 * [`String#split`](https://mdn.io/String/split).
33233 *
33234 * @static
33235 * @memberOf _
33236 * @since 4.0.0
33237 * @category String
33238 * @param {string} [string=''] The string to split.
33239 * @param {RegExp|string} separator The separator pattern to split by.
33240 * @param {number} [limit] The length to truncate results to.
33241 * @returns {Array} Returns the string segments.
33242 * @example
33243 *
33244 * _.split('a-b-c', '-', 2);
33245 * // => ['a', 'b']
33246 */
33247 function split(string, separator, limit) {
33248 if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {
33249 separator = limit = undefined;
33250 }
33251 limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;
33252 if (!limit) {
33253 return [];
33254 }
33255 string = toString(string);
33256 if (string && (
33257 typeof separator == 'string' ||
33258 (separator != null && !isRegExp(separator))
33259 )) {
33260 separator = baseToString(separator);
33261 if (!separator && hasUnicode(string)) {
33262 return castSlice(stringToArray(string), 0, limit);
33263 }
33264 }
33265 return string.split(separator, limit);
33266 }
33267
33268 /**
33269 * Converts `string` to
33270 * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).
33271 *
33272 * @static
33273 * @memberOf _
33274 * @since 3.1.0
33275 * @category String
33276 * @param {string} [string=''] The string to convert.
33277 * @returns {string} Returns the start cased string.
33278 * @example
33279 *
33280 * _.startCase('--foo-bar--');
33281 * // => 'Foo Bar'
33282 *
33283 * _.startCase('fooBar');
33284 * // => 'Foo Bar'
33285 *
33286 * _.startCase('__FOO_BAR__');
33287 * // => 'FOO BAR'
33288 */
33289 var startCase = createCompounder(function(result, word, index) {
33290 return result + (index ? ' ' : '') + upperFirst(word);
33291 });
33292
33293 /**
33294 * Checks if `string` starts with the given target string.
33295 *
33296 * @static
33297 * @memberOf _
33298 * @since 3.0.0
33299 * @category String
33300 * @param {string} [string=''] The string to inspect.
33301 * @param {string} [target] The string to search for.
33302 * @param {number} [position=0] The position to search from.
33303 * @returns {boolean} Returns `true` if `string` starts with `target`,
33304 * else `false`.
33305 * @example
33306 *
33307 * _.startsWith('abc', 'a');
33308 * // => true
33309 *
33310 * _.startsWith('abc', 'b');
33311 * // => false
33312 *
33313 * _.startsWith('abc', 'b', 1);
33314 * // => true
33315 */
33316 function startsWith(string, target, position) {
33317 string = toString(string);
33318 position = position == null
33319 ? 0
33320 : baseClamp(toInteger(position), 0, string.length);
33321
33322 target = baseToString(target);
33323 return string.slice(position, position + target.length) == target;
33324 }
33325
33326 /**
33327 * Creates a compiled template function that can interpolate data properties
33328 * in "interpolate" delimiters, HTML-escape interpolated data properties in
33329 * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data
33330 * properties may be accessed as free variables in the template. If a setting
33331 * object is given, it takes precedence over `_.templateSettings` values.
33332 *
33333 * **Note:** In the development build `_.template` utilizes
33334 * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)
33335 * for easier debugging.
33336 *
33337 * For more information on precompiling templates see
33338 * [lodash's custom builds documentation](https://lodash.com/custom-builds).
33339 *
33340 * For more information on Chrome extension sandboxes see
33341 * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).
33342 *
33343 * @static
33344 * @since 0.1.0
33345 * @memberOf _
33346 * @category String
33347 * @param {string} [string=''] The template string.
33348 * @param {Object} [options={}] The options object.
33349 * @param {RegExp} [options.escape=_.templateSettings.escape]
33350 * The HTML "escape" delimiter.
33351 * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]
33352 * The "evaluate" delimiter.
33353 * @param {Object} [options.imports=_.templateSettings.imports]
33354 * An object to import into the template as free variables.
33355 * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]
33356 * The "interpolate" delimiter.
33357 * @param {string} [options.sourceURL='lodash.templateSources[n]']
33358 * The sourceURL of the compiled template.
33359 * @param {string} [options.variable='obj']
33360 * The data object variable name.
33361 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
33362 * @returns {Function} Returns the compiled template function.
33363 * @example
33364 *
33365 * // Use the "interpolate" delimiter to create a compiled template.
33366 * var compiled = _.template('hello <%= user %>!');
33367 * compiled({ 'user': 'fred' });
33368 * // => 'hello fred!'
33369 *
33370 * // Use the HTML "escape" delimiter to escape data property values.
33371 * var compiled = _.template('<b><%- value %></b>');
33372 * compiled({ 'value': '<script>' });
33373 * // => '<b>&lt;script&gt;</b>'
33374 *
33375 * // Use the "evaluate" delimiter to execute JavaScript and generate HTML.
33376 * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');
33377 * compiled({ 'users': ['fred', 'barney'] });
33378 * // => '<li>fred</li><li>barney</li>'
33379 *
33380 * // Use the internal `print` function in "evaluate" delimiters.
33381 * var compiled = _.template('<% print("hello " + user); %>!');
33382 * compiled({ 'user': 'barney' });
33383 * // => 'hello barney!'
33384 *
33385 * // Use the ES template literal delimiter as an "interpolate" delimiter.
33386 * // Disable support by replacing the "interpolate" delimiter.
33387 * var compiled = _.template('hello ${ user }!');
33388 * compiled({ 'user': 'pebbles' });
33389 * // => 'hello pebbles!'
33390 *
33391 * // Use backslashes to treat delimiters as plain text.
33392 * var compiled = _.template('<%= "\\<%- value %\\>" %>');
33393 * compiled({ 'value': 'ignored' });
33394 * // => '<%- value %>'
33395 *
33396 * // Use the `imports` option to import `jQuery` as `jq`.
33397 * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';
33398 * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });
33399 * compiled({ 'users': ['fred', 'barney'] });
33400 * // => '<li>fred</li><li>barney</li>'
33401 *
33402 * // Use the `sourceURL` option to specify a custom sourceURL for the template.
33403 * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });
33404 * compiled(data);
33405 * // => Find the source of "greeting.jst" under the Sources tab or Resources panel of the web inspector.
33406 *
33407 * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.
33408 * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });
33409 * compiled.source;
33410 * // => function(data) {
33411 * // var __t, __p = '';
33412 * // __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';
33413 * // return __p;
33414 * // }
33415 *
33416 * // Use custom template delimiters.
33417 * _.templateSettings.interpolate = /{{([\s\S]+?)}}/g;
33418 * var compiled = _.template('hello {{ user }}!');
33419 * compiled({ 'user': 'mustache' });
33420 * // => 'hello mustache!'
33421 *
33422 * // Use the `source` property to inline compiled templates for meaningful
33423 * // line numbers in error messages and stack traces.
33424 * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\
33425 * var JST = {\
33426 * "main": ' + _.template(mainText).source + '\
33427 * };\
33428 * ');
33429 */
33430 function template(string, options, guard) {
33431 // Based on John Resig's `tmpl` implementation
33432 // (http://ejohn.org/blog/javascript-micro-templating/)
33433 // and Laura Doktorova's doT.js (https://github.com/olado/doT).
33434 var settings = lodash.templateSettings;
33435
33436 if (guard && isIterateeCall(string, options, guard)) {
33437 options = undefined;
33438 }
33439 string = toString(string);
33440 options = assignInWith({}, options, settings, customDefaultsAssignIn);
33441
33442 var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),
33443 importsKeys = keys(imports),
33444 importsValues = baseValues(imports, importsKeys);
33445
33446 var isEscaping,
33447 isEvaluating,
33448 index = 0,
33449 interpolate = options.interpolate || reNoMatch,
33450 source = "__p += '";
33451
33452 // Compile the regexp to match each delimiter.
33453 var reDelimiters = RegExp(
33454 (options.escape || reNoMatch).source + '|' +
33455 interpolate.source + '|' +
33456 (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +
33457 (options.evaluate || reNoMatch).source + '|$'
33458 , 'g');
33459
33460 // Use a sourceURL for easier debugging.
33461 var sourceURL = '//# sourceURL=' +
33462 ('sourceURL' in options
33463 ? options.sourceURL
33464 : ('lodash.templateSources[' + (++templateCounter) + ']')
33465 ) + '\n';
33466
33467 string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {
33468 interpolateValue || (interpolateValue = esTemplateValue);
33469
33470 // Escape characters that can't be included in string literals.
33471 source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);
33472
33473 // Replace delimiters with snippets.
33474 if (escapeValue) {
33475 isEscaping = true;
33476 source += "' +\n__e(" + escapeValue + ") +\n'";
33477 }
33478 if (evaluateValue) {
33479 isEvaluating = true;
33480 source += "';\n" + evaluateValue + ";\n__p += '";
33481 }
33482 if (interpolateValue) {
33483 source += "' +\n((__t = (" + interpolateValue + ")) == null ? '' : __t) +\n'";
33484 }
33485 index = offset + match.length;
33486
33487 // The JS engine embedded in Adobe products needs `match` returned in
33488 // order to produce the correct `offset` value.
33489 return match;
33490 });
33491
33492 source += "';\n";
33493
33494 // If `variable` is not specified wrap a with-statement around the generated
33495 // code to add the data object to the top of the scope chain.
33496 var variable = options.variable;
33497 if (!variable) {
33498 source = 'with (obj) {\n' + source + '\n}\n';
33499 }
33500 // Cleanup code by stripping empty strings.
33501 source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)
33502 .replace(reEmptyStringMiddle, '$1')
33503 .replace(reEmptyStringTrailing, '$1;');
33504
33505 // Frame code as the function body.
33506 source = 'function(' + (variable || 'obj') + ') {\n' +
33507 (variable
33508 ? ''
33509 : 'obj || (obj = {});\n'
33510 ) +
33511 "var __t, __p = ''" +
33512 (isEscaping
33513 ? ', __e = _.escape'
33514 : ''
33515 ) +
33516 (isEvaluating
33517 ? ', __j = Array.prototype.join;\n' +
33518 "function print() { __p += __j.call(arguments, '') }\n"
33519 : ';\n'
33520 ) +
33521 source +
33522 'return __p\n}';
33523
33524 var result = attempt(function() {
33525 return Function(importsKeys, sourceURL + 'return ' + source)
33526 .apply(undefined, importsValues);
33527 });
33528
33529 // Provide the compiled function's source by its `toString` method or
33530 // the `source` property as a convenience for inlining compiled templates.
33531 result.source = source;
33532 if (isError(result)) {
33533 throw result;
33534 }
33535 return result;
33536 }
33537
33538 /**
33539 * Converts `string`, as a whole, to lower case just like
33540 * [String#toLowerCase](https://mdn.io/toLowerCase).
33541 *
33542 * @static
33543 * @memberOf _
33544 * @since 4.0.0
33545 * @category String
33546 * @param {string} [string=''] The string to convert.
33547 * @returns {string} Returns the lower cased string.
33548 * @example
33549 *
33550 * _.toLower('--Foo-Bar--');
33551 * // => '--foo-bar--'
33552 *
33553 * _.toLower('fooBar');
33554 * // => 'foobar'
33555 *
33556 * _.toLower('__FOO_BAR__');
33557 * // => '__foo_bar__'
33558 */
33559 function toLower(value) {
33560 return toString(value).toLowerCase();
33561 }
33562
33563 /**
33564 * Converts `string`, as a whole, to upper case just like
33565 * [String#toUpperCase](https://mdn.io/toUpperCase).
33566 *
33567 * @static
33568 * @memberOf _
33569 * @since 4.0.0
33570 * @category String
33571 * @param {string} [string=''] The string to convert.
33572 * @returns {string} Returns the upper cased string.
33573 * @example
33574 *
33575 * _.toUpper('--foo-bar--');
33576 * // => '--FOO-BAR--'
33577 *
33578 * _.toUpper('fooBar');
33579 * // => 'FOOBAR'
33580 *
33581 * _.toUpper('__foo_bar__');
33582 * // => '__FOO_BAR__'
33583 */
33584 function toUpper(value) {
33585 return toString(value).toUpperCase();
33586 }
33587
33588 /**
33589 * Removes leading and trailing whitespace or specified characters from `string`.
33590 *
33591 * @static
33592 * @memberOf _
33593 * @since 3.0.0
33594 * @category String
33595 * @param {string} [string=''] The string to trim.
33596 * @param {string} [chars=whitespace] The characters to trim.
33597 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
33598 * @returns {string} Returns the trimmed string.
33599 * @example
33600 *
33601 * _.trim(' abc ');
33602 * // => 'abc'
33603 *
33604 * _.trim('-_-abc-_-', '_-');
33605 * // => 'abc'
33606 *
33607 * _.map([' foo ', ' bar '], _.trim);
33608 * // => ['foo', 'bar']
33609 */
33610 function trim(string, chars, guard) {
33611 string = toString(string);
33612 if (string && (guard || chars === undefined)) {
33613 return string.replace(reTrim, '');
33614 }
33615 if (!string || !(chars = baseToString(chars))) {
33616 return string;
33617 }
33618 var strSymbols = stringToArray(string),
33619 chrSymbols = stringToArray(chars),
33620 start = charsStartIndex(strSymbols, chrSymbols),
33621 end = charsEndIndex(strSymbols, chrSymbols) + 1;
33622
33623 return castSlice(strSymbols, start, end).join('');
33624 }
33625
33626 /**
33627 * Removes trailing whitespace or specified characters from `string`.
33628 *
33629 * @static
33630 * @memberOf _
33631 * @since 4.0.0
33632 * @category String
33633 * @param {string} [string=''] The string to trim.
33634 * @param {string} [chars=whitespace] The characters to trim.
33635 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
33636 * @returns {string} Returns the trimmed string.
33637 * @example
33638 *
33639 * _.trimEnd(' abc ');
33640 * // => ' abc'
33641 *
33642 * _.trimEnd('-_-abc-_-', '_-');
33643 * // => '-_-abc'
33644 */
33645 function trimEnd(string, chars, guard) {
33646 string = toString(string);
33647 if (string && (guard || chars === undefined)) {
33648 return string.replace(reTrimEnd, '');
33649 }
33650 if (!string || !(chars = baseToString(chars))) {
33651 return string;
33652 }
33653 var strSymbols = stringToArray(string),
33654 end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;
33655
33656 return castSlice(strSymbols, 0, end).join('');
33657 }
33658
33659 /**
33660 * Removes leading whitespace or specified characters from `string`.
33661 *
33662 * @static
33663 * @memberOf _
33664 * @since 4.0.0
33665 * @category String
33666 * @param {string} [string=''] The string to trim.
33667 * @param {string} [chars=whitespace] The characters to trim.
33668 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
33669 * @returns {string} Returns the trimmed string.
33670 * @example
33671 *
33672 * _.trimStart(' abc ');
33673 * // => 'abc '
33674 *
33675 * _.trimStart('-_-abc-_-', '_-');
33676 * // => 'abc-_-'
33677 */
33678 function trimStart(string, chars, guard) {
33679 string = toString(string);
33680 if (string && (guard || chars === undefined)) {
33681 return string.replace(reTrimStart, '');
33682 }
33683 if (!string || !(chars = baseToString(chars))) {
33684 return string;
33685 }
33686 var strSymbols = stringToArray(string),
33687 start = charsStartIndex(strSymbols, stringToArray(chars));
33688
33689 return castSlice(strSymbols, start).join('');
33690 }
33691
33692 /**
33693 * Truncates `string` if it's longer than the given maximum string length.
33694 * The last characters of the truncated string are replaced with the omission
33695 * string which defaults to "...".
33696 *
33697 * @static
33698 * @memberOf _
33699 * @since 4.0.0
33700 * @category String
33701 * @param {string} [string=''] The string to truncate.
33702 * @param {Object} [options={}] The options object.
33703 * @param {number} [options.length=30] The maximum string length.
33704 * @param {string} [options.omission='...'] The string to indicate text is omitted.
33705 * @param {RegExp|string} [options.separator] The separator pattern to truncate to.
33706 * @returns {string} Returns the truncated string.
33707 * @example
33708 *
33709 * _.truncate('hi-diddly-ho there, neighborino');
33710 * // => 'hi-diddly-ho there, neighbo...'
33711 *
33712 * _.truncate('hi-diddly-ho there, neighborino', {
33713 * 'length': 24,
33714 * 'separator': ' '
33715 * });
33716 * // => 'hi-diddly-ho there,...'
33717 *
33718 * _.truncate('hi-diddly-ho there, neighborino', {
33719 * 'length': 24,
33720 * 'separator': /,? +/
33721 * });
33722 * // => 'hi-diddly-ho there...'
33723 *
33724 * _.truncate('hi-diddly-ho there, neighborino', {
33725 * 'omission': ' [...]'
33726 * });
33727 * // => 'hi-diddly-ho there, neig [...]'
33728 */
33729 function truncate(string, options) {
33730 var length = DEFAULT_TRUNC_LENGTH,
33731 omission = DEFAULT_TRUNC_OMISSION;
33732
33733 if (isObject(options)) {
33734 var separator = 'separator' in options ? options.separator : separator;
33735 length = 'length' in options ? toInteger(options.length) : length;
33736 omission = 'omission' in options ? baseToString(options.omission) : omission;
33737 }
33738 string = toString(string);
33739
33740 var strLength = string.length;
33741 if (hasUnicode(string)) {
33742 var strSymbols = stringToArray(string);
33743 strLength = strSymbols.length;
33744 }
33745 if (length >= strLength) {
33746 return string;
33747 }
33748 var end = length - stringSize(omission);
33749 if (end < 1) {
33750 return omission;
33751 }
33752 var result = strSymbols
33753 ? castSlice(strSymbols, 0, end).join('')
33754 : string.slice(0, end);
33755
33756 if (separator === undefined) {
33757 return result + omission;
33758 }
33759 if (strSymbols) {
33760 end += (result.length - end);
33761 }
33762 if (isRegExp(separator)) {
33763 if (string.slice(end).search(separator)) {
33764 var match,
33765 substring = result;
33766
33767 if (!separator.global) {
33768 separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');
33769 }
33770 separator.lastIndex = 0;
33771 while ((match = separator.exec(substring))) {
33772 var newEnd = match.index;
33773 }
33774 result = result.slice(0, newEnd === undefined ? end : newEnd);
33775 }
33776 } else if (string.indexOf(baseToString(separator), end) != end) {
33777 var index = result.lastIndexOf(separator);
33778 if (index > -1) {
33779 result = result.slice(0, index);
33780 }
33781 }
33782 return result + omission;
33783 }
33784
33785 /**
33786 * The inverse of `_.escape`; this method converts the HTML entities
33787 * `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `string` to
33788 * their corresponding characters.
33789 *
33790 * **Note:** No other HTML entities are unescaped. To unescape additional
33791 * HTML entities use a third-party library like [_he_](https://mths.be/he).
33792 *
33793 * @static
33794 * @memberOf _
33795 * @since 0.6.0
33796 * @category String
33797 * @param {string} [string=''] The string to unescape.
33798 * @returns {string} Returns the unescaped string.
33799 * @example
33800 *
33801 * _.unescape('fred, barney, &amp; pebbles');
33802 * // => 'fred, barney, & pebbles'
33803 */
33804 function unescape(string) {
33805 string = toString(string);
33806 return (string && reHasEscapedHtml.test(string))
33807 ? string.replace(reEscapedHtml, unescapeHtmlChar)
33808 : string;
33809 }
33810
33811 /**
33812 * Converts `string`, as space separated words, to upper case.
33813 *
33814 * @static
33815 * @memberOf _
33816 * @since 4.0.0
33817 * @category String
33818 * @param {string} [string=''] The string to convert.
33819 * @returns {string} Returns the upper cased string.
33820 * @example
33821 *
33822 * _.upperCase('--foo-bar');
33823 * // => 'FOO BAR'
33824 *
33825 * _.upperCase('fooBar');
33826 * // => 'FOO BAR'
33827 *
33828 * _.upperCase('__foo_bar__');
33829 * // => 'FOO BAR'
33830 */
33831 var upperCase = createCompounder(function(result, word, index) {
33832 return result + (index ? ' ' : '') + word.toUpperCase();
33833 });
33834
33835 /**
33836 * Converts the first character of `string` to upper case.
33837 *
33838 * @static
33839 * @memberOf _
33840 * @since 4.0.0
33841 * @category String
33842 * @param {string} [string=''] The string to convert.
33843 * @returns {string} Returns the converted string.
33844 * @example
33845 *
33846 * _.upperFirst('fred');
33847 * // => 'Fred'
33848 *
33849 * _.upperFirst('FRED');
33850 * // => 'FRED'
33851 */
33852 var upperFirst = createCaseFirst('toUpperCase');
33853
33854 /**
33855 * Splits `string` into an array of its words.
33856 *
33857 * @static
33858 * @memberOf _
33859 * @since 3.0.0
33860 * @category String
33861 * @param {string} [string=''] The string to inspect.
33862 * @param {RegExp|string} [pattern] The pattern to match words.
33863 * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.
33864 * @returns {Array} Returns the words of `string`.
33865 * @example
33866 *
33867 * _.words('fred, barney, & pebbles');
33868 * // => ['fred', 'barney', 'pebbles']
33869 *
33870 * _.words('fred, barney, & pebbles', /[^, ]+/g);
33871 * // => ['fred', 'barney', '&', 'pebbles']
33872 */
33873 function words(string, pattern, guard) {
33874 string = toString(string);
33875 pattern = guard ? undefined : pattern;
33876
33877 if (pattern === undefined) {
33878 return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
33879 }
33880 return string.match(pattern) || [];
33881 }
33882
33883 /*------------------------------------------------------------------------*/
33884
33885 /**
33886 * Attempts to invoke `func`, returning either the result or the caught error
33887 * object. Any additional arguments are provided to `func` when it's invoked.
33888 *
33889 * @static
33890 * @memberOf _
33891 * @since 3.0.0
33892 * @category Util
33893 * @param {Function} func The function to attempt.
33894 * @param {...*} [args] The arguments to invoke `func` with.
33895 * @returns {*} Returns the `func` result or error object.
33896 * @example
33897 *
33898 * // Avoid throwing errors for invalid selectors.
33899 * var elements = _.attempt(function(selector) {
33900 * return document.querySelectorAll(selector);
33901 * }, '>_>');
33902 *
33903 * if (_.isError(elements)) {
33904 * elements = [];
33905 * }
33906 */
33907 var attempt = baseRest(function(func, args) {
33908 try {
33909 return apply(func, undefined, args);
33910 } catch (e) {
33911 return isError(e) ? e : new Error(e);
33912 }
33913 });
33914
33915 /**
33916 * Binds methods of an object to the object itself, overwriting the existing
33917 * method.
33918 *
33919 * **Note:** This method doesn't set the "length" property of bound functions.
33920 *
33921 * @static
33922 * @since 0.1.0
33923 * @memberOf _
33924 * @category Util
33925 * @param {Object} object The object to bind and assign the bound methods to.
33926 * @param {...(string|string[])} methodNames The object method names to bind.
33927 * @returns {Object} Returns `object`.
33928 * @example
33929 *
33930 * var view = {
33931 * 'label': 'docs',
33932 * 'click': function() {
33933 * console.log('clicked ' + this.label);
33934 * }
33935 * };
33936 *
33937 * _.bindAll(view, ['click']);
33938 * jQuery(element).on('click', view.click);
33939 * // => Logs 'clicked docs' when clicked.
33940 */
33941 var bindAll = flatRest(function(object, methodNames) {
33942 arrayEach(methodNames, function(key) {
33943 key = toKey(key);
33944 baseAssignValue(object, key, bind(object[key], object));
33945 });
33946 return object;
33947 });
33948
33949 /**
33950 * Creates a function that iterates over `pairs` and invokes the corresponding
33951 * function of the first predicate to return truthy. The predicate-function
33952 * pairs are invoked with the `this` binding and arguments of the created
33953 * function.
33954 *
33955 * @static
33956 * @memberOf _
33957 * @since 4.0.0
33958 * @category Util
33959 * @param {Array} pairs The predicate-function pairs.
33960 * @returns {Function} Returns the new composite function.
33961 * @example
33962 *
33963 * var func = _.cond([
33964 * [_.matches({ 'a': 1 }), _.constant('matches A')],
33965 * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],
33966 * [_.stubTrue, _.constant('no match')]
33967 * ]);
33968 *
33969 * func({ 'a': 1, 'b': 2 });
33970 * // => 'matches A'
33971 *
33972 * func({ 'a': 0, 'b': 1 });
33973 * // => 'matches B'
33974 *
33975 * func({ 'a': '1', 'b': '2' });
33976 * // => 'no match'
33977 */
33978 function cond(pairs) {
33979 var length = pairs == null ? 0 : pairs.length,
33980 toIteratee = getIteratee();
33981
33982 pairs = !length ? [] : arrayMap(pairs, function(pair) {
33983 if (typeof pair[1] != 'function') {
33984 throw new TypeError(FUNC_ERROR_TEXT);
33985 }
33986 return [toIteratee(pair[0]), pair[1]];
33987 });
33988
33989 return baseRest(function(args) {
33990 var index = -1;
33991 while (++index < length) {
33992 var pair = pairs[index];
33993 if (apply(pair[0], this, args)) {
33994 return apply(pair[1], this, args);
33995 }
33996 }
33997 });
33998 }
33999
34000 /**
34001 * Creates a function that invokes the predicate properties of `source` with
34002 * the corresponding property values of a given object, returning `true` if
34003 * all predicates return truthy, else `false`.
34004 *
34005 * **Note:** The created function is equivalent to `_.conformsTo` with
34006 * `source` partially applied.
34007 *
34008 * @static
34009 * @memberOf _
34010 * @since 4.0.0
34011 * @category Util
34012 * @param {Object} source The object of property predicates to conform to.
34013 * @returns {Function} Returns the new spec function.
34014 * @example
34015 *
34016 * var objects = [
34017 * { 'a': 2, 'b': 1 },
34018 * { 'a': 1, 'b': 2 }
34019 * ];
34020 *
34021 * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));
34022 * // => [{ 'a': 1, 'b': 2 }]
34023 */
34024 function conforms(source) {
34025 return baseConforms(baseClone(source, CLONE_DEEP_FLAG));
34026 }
34027
34028 /**
34029 * Creates a function that returns `value`.
34030 *
34031 * @static
34032 * @memberOf _
34033 * @since 2.4.0
34034 * @category Util
34035 * @param {*} value The value to return from the new function.
34036 * @returns {Function} Returns the new constant function.
34037 * @example
34038 *
34039 * var objects = _.times(2, _.constant({ 'a': 1 }));
34040 *
34041 * console.log(objects);
34042 * // => [{ 'a': 1 }, { 'a': 1 }]
34043 *
34044 * console.log(objects[0] === objects[1]);
34045 * // => true
34046 */
34047 function constant(value) {
34048 return function() {
34049 return value;
34050 };
34051 }
34052
34053 /**
34054 * Checks `value` to determine whether a default value should be returned in
34055 * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,
34056 * or `undefined`.
34057 *
34058 * @static
34059 * @memberOf _
34060 * @since 4.14.0
34061 * @category Util
34062 * @param {*} value The value to check.
34063 * @param {*} defaultValue The default value.
34064 * @returns {*} Returns the resolved value.
34065 * @example
34066 *
34067 * _.defaultTo(1, 10);
34068 * // => 1
34069 *
34070 * _.defaultTo(undefined, 10);
34071 * // => 10
34072 */
34073 function defaultTo(value, defaultValue) {
34074 return (value == null || value !== value) ? defaultValue : value;
34075 }
34076
34077 /**
34078 * Creates a function that returns the result of invoking the given functions
34079 * with the `this` binding of the created function, where each successive
34080 * invocation is supplied the return value of the previous.
34081 *
34082 * @static
34083 * @memberOf _
34084 * @since 3.0.0
34085 * @category Util
34086 * @param {...(Function|Function[])} [funcs] The functions to invoke.
34087 * @returns {Function} Returns the new composite function.
34088 * @see _.flowRight
34089 * @example
34090 *
34091 * function square(n) {
34092 * return n * n;
34093 * }
34094 *
34095 * var addSquare = _.flow([_.add, square]);
34096 * addSquare(1, 2);
34097 * // => 9
34098 */
34099 var flow = createFlow();
34100
34101 /**
34102 * This method is like `_.flow` except that it creates a function that
34103 * invokes the given functions from right to left.
34104 *
34105 * @static
34106 * @since 3.0.0
34107 * @memberOf _
34108 * @category Util
34109 * @param {...(Function|Function[])} [funcs] The functions to invoke.
34110 * @returns {Function} Returns the new composite function.
34111 * @see _.flow
34112 * @example
34113 *
34114 * function square(n) {
34115 * return n * n;
34116 * }
34117 *
34118 * var addSquare = _.flowRight([square, _.add]);
34119 * addSquare(1, 2);
34120 * // => 9
34121 */
34122 var flowRight = createFlow(true);
34123
34124 /**
34125 * This method returns the first argument it receives.
34126 *
34127 * @static
34128 * @since 0.1.0
34129 * @memberOf _
34130 * @category Util
34131 * @param {*} value Any value.
34132 * @returns {*} Returns `value`.
34133 * @example
34134 *
34135 * var object = { 'a': 1 };
34136 *
34137 * console.log(_.identity(object) === object);
34138 * // => true
34139 */
34140 function identity(value) {
34141 return value;
34142 }
34143
34144 /**
34145 * Creates a function that invokes `func` with the arguments of the created
34146 * function. If `func` is a property name, the created function returns the
34147 * property value for a given element. If `func` is an array or object, the
34148 * created function returns `true` for elements that contain the equivalent
34149 * source properties, otherwise it returns `false`.
34150 *
34151 * @static
34152 * @since 4.0.0
34153 * @memberOf _
34154 * @category Util
34155 * @param {*} [func=_.identity] The value to convert to a callback.
34156 * @returns {Function} Returns the callback.
34157 * @example
34158 *
34159 * var users = [
34160 * { 'user': 'barney', 'age': 36, 'active': true },
34161 * { 'user': 'fred', 'age': 40, 'active': false }
34162 * ];
34163 *
34164 * // The `_.matches` iteratee shorthand.
34165 * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));
34166 * // => [{ 'user': 'barney', 'age': 36, 'active': true }]
34167 *
34168 * // The `_.matchesProperty` iteratee shorthand.
34169 * _.filter(users, _.iteratee(['user', 'fred']));
34170 * // => [{ 'user': 'fred', 'age': 40 }]
34171 *
34172 * // The `_.property` iteratee shorthand.
34173 * _.map(users, _.iteratee('user'));
34174 * // => ['barney', 'fred']
34175 *
34176 * // Create custom iteratee shorthands.
34177 * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {
34178 * return !_.isRegExp(func) ? iteratee(func) : function(string) {
34179 * return func.test(string);
34180 * };
34181 * });
34182 *
34183 * _.filter(['abc', 'def'], /ef/);
34184 * // => ['def']
34185 */
34186 function iteratee(func) {
34187 return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));
34188 }
34189
34190 /**
34191 * Creates a function that performs a partial deep comparison between a given
34192 * object and `source`, returning `true` if the given object has equivalent
34193 * property values, else `false`.
34194 *
34195 * **Note:** The created function is equivalent to `_.isMatch` with `source`
34196 * partially applied.
34197 *
34198 * Partial comparisons will match empty array and empty object `source`
34199 * values against any array or object value, respectively. See `_.isEqual`
34200 * for a list of supported value comparisons.
34201 *
34202 * @static
34203 * @memberOf _
34204 * @since 3.0.0
34205 * @category Util
34206 * @param {Object} source The object of property values to match.
34207 * @returns {Function} Returns the new spec function.
34208 * @example
34209 *
34210 * var objects = [
34211 * { 'a': 1, 'b': 2, 'c': 3 },
34212 * { 'a': 4, 'b': 5, 'c': 6 }
34213 * ];
34214 *
34215 * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));
34216 * // => [{ 'a': 4, 'b': 5, 'c': 6 }]
34217 */
34218 function matches(source) {
34219 return baseMatches(baseClone(source, CLONE_DEEP_FLAG));
34220 }
34221
34222 /**
34223 * Creates a function that performs a partial deep comparison between the
34224 * value at `path` of a given object to `srcValue`, returning `true` if the
34225 * object value is equivalent, else `false`.
34226 *
34227 * **Note:** Partial comparisons will match empty array and empty object
34228 * `srcValue` values against any array or object value, respectively. See
34229 * `_.isEqual` for a list of supported value comparisons.
34230 *
34231 * @static
34232 * @memberOf _
34233 * @since 3.2.0
34234 * @category Util
34235 * @param {Array|string} path The path of the property to get.
34236 * @param {*} srcValue The value to match.
34237 * @returns {Function} Returns the new spec function.
34238 * @example
34239 *
34240 * var objects = [
34241 * { 'a': 1, 'b': 2, 'c': 3 },
34242 * { 'a': 4, 'b': 5, 'c': 6 }
34243 * ];
34244 *
34245 * _.find(objects, _.matchesProperty('a', 4));
34246 * // => { 'a': 4, 'b': 5, 'c': 6 }
34247 */
34248 function matchesProperty(path, srcValue) {
34249 return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));
34250 }
34251
34252 /**
34253 * Creates a function that invokes the method at `path` of a given object.
34254 * Any additional arguments are provided to the invoked method.
34255 *
34256 * @static
34257 * @memberOf _
34258 * @since 3.7.0
34259 * @category Util
34260 * @param {Array|string} path The path of the method to invoke.
34261 * @param {...*} [args] The arguments to invoke the method with.
34262 * @returns {Function} Returns the new invoker function.
34263 * @example
34264 *
34265 * var objects = [
34266 * { 'a': { 'b': _.constant(2) } },
34267 * { 'a': { 'b': _.constant(1) } }
34268 * ];
34269 *
34270 * _.map(objects, _.method('a.b'));
34271 * // => [2, 1]
34272 *
34273 * _.map(objects, _.method(['a', 'b']));
34274 * // => [2, 1]
34275 */
34276 var method = baseRest(function(path, args) {
34277 return function(object) {
34278 return baseInvoke(object, path, args);
34279 };
34280 });
34281
34282 /**
34283 * The opposite of `_.method`; this method creates a function that invokes
34284 * the method at a given path of `object`. Any additional arguments are
34285 * provided to the invoked method.
34286 *
34287 * @static
34288 * @memberOf _
34289 * @since 3.7.0
34290 * @category Util
34291 * @param {Object} object The object to query.
34292 * @param {...*} [args] The arguments to invoke the method with.
34293 * @returns {Function} Returns the new invoker function.
34294 * @example
34295 *
34296 * var array = _.times(3, _.constant),
34297 * object = { 'a': array, 'b': array, 'c': array };
34298 *
34299 * _.map(['a[2]', 'c[0]'], _.methodOf(object));
34300 * // => [2, 0]
34301 *
34302 * _.map([['a', '2'], ['c', '0']], _.methodOf(object));
34303 * // => [2, 0]
34304 */
34305 var methodOf = baseRest(function(object, args) {
34306 return function(path) {
34307 return baseInvoke(object, path, args);
34308 };
34309 });
34310
34311 /**
34312 * Adds all own enumerable string keyed function properties of a source
34313 * object to the destination object. If `object` is a function, then methods
34314 * are added to its prototype as well.
34315 *
34316 * **Note:** Use `_.runInContext` to create a pristine `lodash` function to
34317 * avoid conflicts caused by modifying the original.
34318 *
34319 * @static
34320 * @since 0.1.0
34321 * @memberOf _
34322 * @category Util
34323 * @param {Function|Object} [object=lodash] The destination object.
34324 * @param {Object} source The object of functions to add.
34325 * @param {Object} [options={}] The options object.
34326 * @param {boolean} [options.chain=true] Specify whether mixins are chainable.
34327 * @returns {Function|Object} Returns `object`.
34328 * @example
34329 *
34330 * function vowels(string) {
34331 * return _.filter(string, function(v) {
34332 * return /[aeiou]/i.test(v);
34333 * });
34334 * }
34335 *
34336 * _.mixin({ 'vowels': vowels });
34337 * _.vowels('fred');
34338 * // => ['e']
34339 *
34340 * _('fred').vowels().value();
34341 * // => ['e']
34342 *
34343 * _.mixin({ 'vowels': vowels }, { 'chain': false });
34344 * _('fred').vowels();
34345 * // => ['e']
34346 */
34347 function mixin(object, source, options) {
34348 var props = keys(source),
34349 methodNames = baseFunctions(source, props);
34350
34351 if (options == null &&
34352 !(isObject(source) && (methodNames.length || !props.length))) {
34353 options = source;
34354 source = object;
34355 object = this;
34356 methodNames = baseFunctions(source, keys(source));
34357 }
34358 var chain = !(isObject(options) && 'chain' in options) || !!options.chain,
34359 isFunc = isFunction(object);
34360
34361 arrayEach(methodNames, function(methodName) {
34362 var func = source[methodName];
34363 object[methodName] = func;
34364 if (isFunc) {
34365 object.prototype[methodName] = function() {
34366 var chainAll = this.__chain__;
34367 if (chain || chainAll) {
34368 var result = object(this.__wrapped__),
34369 actions = result.__actions__ = copyArray(this.__actions__);
34370
34371 actions.push({ 'func': func, 'args': arguments, 'thisArg': object });
34372 result.__chain__ = chainAll;
34373 return result;
34374 }
34375 return func.apply(object, arrayPush([this.value()], arguments));
34376 };
34377 }
34378 });
34379
34380 return object;
34381 }
34382
34383 /**
34384 * Reverts the `_` variable to its previous value and returns a reference to
34385 * the `lodash` function.
34386 *
34387 * @static
34388 * @since 0.1.0
34389 * @memberOf _
34390 * @category Util
34391 * @returns {Function} Returns the `lodash` function.
34392 * @example
34393 *
34394 * var lodash = _.noConflict();
34395 */
34396 function noConflict() {
34397 if (root._ === this) {
34398 root._ = oldDash;
34399 }
34400 return this;
34401 }
34402
34403 /**
34404 * This method returns `undefined`.
34405 *
34406 * @static
34407 * @memberOf _
34408 * @since 2.3.0
34409 * @category Util
34410 * @example
34411 *
34412 * _.times(2, _.noop);
34413 * // => [undefined, undefined]
34414 */
34415 function noop() {
34416 // No operation performed.
34417 }
34418
34419 /**
34420 * Creates a function that gets the argument at index `n`. If `n` is negative,
34421 * the nth argument from the end is returned.
34422 *
34423 * @static
34424 * @memberOf _
34425 * @since 4.0.0
34426 * @category Util
34427 * @param {number} [n=0] The index of the argument to return.
34428 * @returns {Function} Returns the new pass-thru function.
34429 * @example
34430 *
34431 * var func = _.nthArg(1);
34432 * func('a', 'b', 'c', 'd');
34433 * // => 'b'
34434 *
34435 * var func = _.nthArg(-2);
34436 * func('a', 'b', 'c', 'd');
34437 * // => 'c'
34438 */
34439 function nthArg(n) {
34440 n = toInteger(n);
34441 return baseRest(function(args) {
34442 return baseNth(args, n);
34443 });
34444 }
34445
34446 /**
34447 * Creates a function that invokes `iteratees` with the arguments it receives
34448 * and returns their results.
34449 *
34450 * @static
34451 * @memberOf _
34452 * @since 4.0.0
34453 * @category Util
34454 * @param {...(Function|Function[])} [iteratees=[_.identity]]
34455 * The iteratees to invoke.
34456 * @returns {Function} Returns the new function.
34457 * @example
34458 *
34459 * var func = _.over([Math.max, Math.min]);
34460 *
34461 * func(1, 2, 3, 4);
34462 * // => [4, 1]
34463 */
34464 var over = createOver(arrayMap);
34465
34466 /**
34467 * Creates a function that checks if **all** of the `predicates` return
34468 * truthy when invoked with the arguments it receives.
34469 *
34470 * @static
34471 * @memberOf _
34472 * @since 4.0.0
34473 * @category Util
34474 * @param {...(Function|Function[])} [predicates=[_.identity]]
34475 * The predicates to check.
34476 * @returns {Function} Returns the new function.
34477 * @example
34478 *
34479 * var func = _.overEvery([Boolean, isFinite]);
34480 *
34481 * func('1');
34482 * // => true
34483 *
34484 * func(null);
34485 * // => false
34486 *
34487 * func(NaN);
34488 * // => false
34489 */
34490 var overEvery = createOver(arrayEvery);
34491
34492 /**
34493 * Creates a function that checks if **any** of the `predicates` return
34494 * truthy when invoked with the arguments it receives.
34495 *
34496 * @static
34497 * @memberOf _
34498 * @since 4.0.0
34499 * @category Util
34500 * @param {...(Function|Function[])} [predicates=[_.identity]]
34501 * The predicates to check.
34502 * @returns {Function} Returns the new function.
34503 * @example
34504 *
34505 * var func = _.overSome([Boolean, isFinite]);
34506 *
34507 * func('1');
34508 * // => true
34509 *
34510 * func(null);
34511 * // => true
34512 *
34513 * func(NaN);
34514 * // => false
34515 */
34516 var overSome = createOver(arraySome);
34517
34518 /**
34519 * Creates a function that returns the value at `path` of a given object.
34520 *
34521 * @static
34522 * @memberOf _
34523 * @since 2.4.0
34524 * @category Util
34525 * @param {Array|string} path The path of the property to get.
34526 * @returns {Function} Returns the new accessor function.
34527 * @example
34528 *
34529 * var objects = [
34530 * { 'a': { 'b': 2 } },
34531 * { 'a': { 'b': 1 } }
34532 * ];
34533 *
34534 * _.map(objects, _.property('a.b'));
34535 * // => [2, 1]
34536 *
34537 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');
34538 * // => [1, 2]
34539 */
34540 function property(path) {
34541 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);
34542 }
34543
34544 /**
34545 * The opposite of `_.property`; this method creates a function that returns
34546 * the value at a given path of `object`.
34547 *
34548 * @static
34549 * @memberOf _
34550 * @since 3.0.0
34551 * @category Util
34552 * @param {Object} object The object to query.
34553 * @returns {Function} Returns the new accessor function.
34554 * @example
34555 *
34556 * var array = [0, 1, 2],
34557 * object = { 'a': array, 'b': array, 'c': array };
34558 *
34559 * _.map(['a[2]', 'c[0]'], _.propertyOf(object));
34560 * // => [2, 0]
34561 *
34562 * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));
34563 * // => [2, 0]
34564 */
34565 function propertyOf(object) {
34566 return function(path) {
34567 return object == null ? undefined : baseGet(object, path);
34568 };
34569 }
34570
34571 /**
34572 * Creates an array of numbers (positive and/or negative) progressing from
34573 * `start` up to, but not including, `end`. A step of `-1` is used if a negative
34574 * `start` is specified without an `end` or `step`. If `end` is not specified,
34575 * it's set to `start` with `start` then set to `0`.
34576 *
34577 * **Note:** JavaScript follows the IEEE-754 standard for resolving
34578 * floating-point values which can produce unexpected results.
34579 *
34580 * @static
34581 * @since 0.1.0
34582 * @memberOf _
34583 * @category Util
34584 * @param {number} [start=0] The start of the range.
34585 * @param {number} end The end of the range.
34586 * @param {number} [step=1] The value to increment or decrement by.
34587 * @returns {Array} Returns the range of numbers.
34588 * @see _.inRange, _.rangeRight
34589 * @example
34590 *
34591 * _.range(4);
34592 * // => [0, 1, 2, 3]
34593 *
34594 * _.range(-4);
34595 * // => [0, -1, -2, -3]
34596 *
34597 * _.range(1, 5);
34598 * // => [1, 2, 3, 4]
34599 *
34600 * _.range(0, 20, 5);
34601 * // => [0, 5, 10, 15]
34602 *
34603 * _.range(0, -4, -1);
34604 * // => [0, -1, -2, -3]
34605 *
34606 * _.range(1, 4, 0);
34607 * // => [1, 1, 1]
34608 *
34609 * _.range(0);
34610 * // => []
34611 */
34612 var range = createRange();
34613
34614 /**
34615 * This method is like `_.range` except that it populates values in
34616 * descending order.
34617 *
34618 * @static
34619 * @memberOf _
34620 * @since 4.0.0
34621 * @category Util
34622 * @param {number} [start=0] The start of the range.
34623 * @param {number} end The end of the range.
34624 * @param {number} [step=1] The value to increment or decrement by.
34625 * @returns {Array} Returns the range of numbers.
34626 * @see _.inRange, _.range
34627 * @example
34628 *
34629 * _.rangeRight(4);
34630 * // => [3, 2, 1, 0]
34631 *
34632 * _.rangeRight(-4);
34633 * // => [-3, -2, -1, 0]
34634 *
34635 * _.rangeRight(1, 5);
34636 * // => [4, 3, 2, 1]
34637 *
34638 * _.rangeRight(0, 20, 5);
34639 * // => [15, 10, 5, 0]
34640 *
34641 * _.rangeRight(0, -4, -1);
34642 * // => [-3, -2, -1, 0]
34643 *
34644 * _.rangeRight(1, 4, 0);
34645 * // => [1, 1, 1]
34646 *
34647 * _.rangeRight(0);
34648 * // => []
34649 */
34650 var rangeRight = createRange(true);
34651
34652 /**
34653 * This method returns a new empty array.
34654 *
34655 * @static
34656 * @memberOf _
34657 * @since 4.13.0
34658 * @category Util
34659 * @returns {Array} Returns the new empty array.
34660 * @example
34661 *
34662 * var arrays = _.times(2, _.stubArray);
34663 *
34664 * console.log(arrays);
34665 * // => [[], []]
34666 *
34667 * console.log(arrays[0] === arrays[1]);
34668 * // => false
34669 */
34670 function stubArray() {
34671 return [];
34672 }
34673
34674 /**
34675 * This method returns `false`.
34676 *
34677 * @static
34678 * @memberOf _
34679 * @since 4.13.0
34680 * @category Util
34681 * @returns {boolean} Returns `false`.
34682 * @example
34683 *
34684 * _.times(2, _.stubFalse);
34685 * // => [false, false]
34686 */
34687 function stubFalse() {
34688 return false;
34689 }
34690
34691 /**
34692 * This method returns a new empty object.
34693 *
34694 * @static
34695 * @memberOf _
34696 * @since 4.13.0
34697 * @category Util
34698 * @returns {Object} Returns the new empty object.
34699 * @example
34700 *
34701 * var objects = _.times(2, _.stubObject);
34702 *
34703 * console.log(objects);
34704 * // => [{}, {}]
34705 *
34706 * console.log(objects[0] === objects[1]);
34707 * // => false
34708 */
34709 function stubObject() {
34710 return {};
34711 }
34712
34713 /**
34714 * This method returns an empty string.
34715 *
34716 * @static
34717 * @memberOf _
34718 * @since 4.13.0
34719 * @category Util
34720 * @returns {string} Returns the empty string.
34721 * @example
34722 *
34723 * _.times(2, _.stubString);
34724 * // => ['', '']
34725 */
34726 function stubString() {
34727 return '';
34728 }
34729
34730 /**
34731 * This method returns `true`.
34732 *
34733 * @static
34734 * @memberOf _
34735 * @since 4.13.0
34736 * @category Util
34737 * @returns {boolean} Returns `true`.
34738 * @example
34739 *
34740 * _.times(2, _.stubTrue);
34741 * // => [true, true]
34742 */
34743 function stubTrue() {
34744 return true;
34745 }
34746
34747 /**
34748 * Invokes the iteratee `n` times, returning an array of the results of
34749 * each invocation. The iteratee is invoked with one argument; (index).
34750 *
34751 * @static
34752 * @since 0.1.0
34753 * @memberOf _
34754 * @category Util
34755 * @param {number} n The number of times to invoke `iteratee`.
34756 * @param {Function} [iteratee=_.identity] The function invoked per iteration.
34757 * @returns {Array} Returns the array of results.
34758 * @example
34759 *
34760 * _.times(3, String);
34761 * // => ['0', '1', '2']
34762 *
34763 * _.times(4, _.constant(0));
34764 * // => [0, 0, 0, 0]
34765 */
34766 function times(n, iteratee) {
34767 n = toInteger(n);
34768 if (n < 1 || n > MAX_SAFE_INTEGER) {
34769 return [];
34770 }
34771 var index = MAX_ARRAY_LENGTH,
34772 length = nativeMin(n, MAX_ARRAY_LENGTH);
34773
34774 iteratee = getIteratee(iteratee);
34775 n -= MAX_ARRAY_LENGTH;
34776
34777 var result = baseTimes(length, iteratee);
34778 while (++index < n) {
34779 iteratee(index);
34780 }
34781 return result;
34782 }
34783
34784 /**
34785 * Converts `value` to a property path array.
34786 *
34787 * @static
34788 * @memberOf _
34789 * @since 4.0.0
34790 * @category Util
34791 * @param {*} value The value to convert.
34792 * @returns {Array} Returns the new property path array.
34793 * @example
34794 *
34795 * _.toPath('a.b.c');
34796 * // => ['a', 'b', 'c']
34797 *
34798 * _.toPath('a[0].b.c');
34799 * // => ['a', '0', 'b', 'c']
34800 */
34801 function toPath(value) {
34802 if (isArray(value)) {
34803 return arrayMap(value, toKey);
34804 }
34805 return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));
34806 }
34807
34808 /**
34809 * Generates a unique ID. If `prefix` is given, the ID is appended to it.
34810 *
34811 * @static
34812 * @since 0.1.0
34813 * @memberOf _
34814 * @category Util
34815 * @param {string} [prefix=''] The value to prefix the ID with.
34816 * @returns {string} Returns the unique ID.
34817 * @example
34818 *
34819 * _.uniqueId('contact_');
34820 * // => 'contact_104'
34821 *
34822 * _.uniqueId();
34823 * // => '105'
34824 */
34825 function uniqueId(prefix) {
34826 var id = ++idCounter;
34827 return toString(prefix) + id;
34828 }
34829
34830 /*------------------------------------------------------------------------*/
34831
34832 /**
34833 * Adds two numbers.
34834 *
34835 * @static
34836 * @memberOf _
34837 * @since 3.4.0
34838 * @category Math
34839 * @param {number} augend The first number in an addition.
34840 * @param {number} addend The second number in an addition.
34841 * @returns {number} Returns the total.
34842 * @example
34843 *
34844 * _.add(6, 4);
34845 * // => 10
34846 */
34847 var add = createMathOperation(function(augend, addend) {
34848 return augend + addend;
34849 }, 0);
34850
34851 /**
34852 * Computes `number` rounded up to `precision`.
34853 *
34854 * @static
34855 * @memberOf _
34856 * @since 3.10.0
34857 * @category Math
34858 * @param {number} number The number to round up.
34859 * @param {number} [precision=0] The precision to round up to.
34860 * @returns {number} Returns the rounded up number.
34861 * @example
34862 *
34863 * _.ceil(4.006);
34864 * // => 5
34865 *
34866 * _.ceil(6.004, 2);
34867 * // => 6.01
34868 *
34869 * _.ceil(6040, -2);
34870 * // => 6100
34871 */
34872 var ceil = createRound('ceil');
34873
34874 /**
34875 * Divide two numbers.
34876 *
34877 * @static
34878 * @memberOf _
34879 * @since 4.7.0
34880 * @category Math
34881 * @param {number} dividend The first number in a division.
34882 * @param {number} divisor The second number in a division.
34883 * @returns {number} Returns the quotient.
34884 * @example
34885 *
34886 * _.divide(6, 4);
34887 * // => 1.5
34888 */
34889 var divide = createMathOperation(function(dividend, divisor) {
34890 return dividend / divisor;
34891 }, 1);
34892
34893 /**
34894 * Computes `number` rounded down to `precision`.
34895 *
34896 * @static
34897 * @memberOf _
34898 * @since 3.10.0
34899 * @category Math
34900 * @param {number} number The number to round down.
34901 * @param {number} [precision=0] The precision to round down to.
34902 * @returns {number} Returns the rounded down number.
34903 * @example
34904 *
34905 * _.floor(4.006);
34906 * // => 4
34907 *
34908 * _.floor(0.046, 2);
34909 * // => 0.04
34910 *
34911 * _.floor(4060, -2);
34912 * // => 4000
34913 */
34914 var floor = createRound('floor');
34915
34916 /**
34917 * Computes the maximum value of `array`. If `array` is empty or falsey,
34918 * `undefined` is returned.
34919 *
34920 * @static
34921 * @since 0.1.0
34922 * @memberOf _
34923 * @category Math
34924 * @param {Array} array The array to iterate over.
34925 * @returns {*} Returns the maximum value.
34926 * @example
34927 *
34928 * _.max([4, 2, 8, 6]);
34929 * // => 8
34930 *
34931 * _.max([]);
34932 * // => undefined
34933 */
34934 function max(array) {
34935 return (array && array.length)
34936 ? baseExtremum(array, identity, baseGt)
34937 : undefined;
34938 }
34939
34940 /**
34941 * This method is like `_.max` except that it accepts `iteratee` which is
34942 * invoked for each element in `array` to generate the criterion by which
34943 * the value is ranked. The iteratee is invoked with one argument: (value).
34944 *
34945 * @static
34946 * @memberOf _
34947 * @since 4.0.0
34948 * @category Math
34949 * @param {Array} array The array to iterate over.
34950 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
34951 * @returns {*} Returns the maximum value.
34952 * @example
34953 *
34954 * var objects = [{ 'n': 1 }, { 'n': 2 }];
34955 *
34956 * _.maxBy(objects, function(o) { return o.n; });
34957 * // => { 'n': 2 }
34958 *
34959 * // The `_.property` iteratee shorthand.
34960 * _.maxBy(objects, 'n');
34961 * // => { 'n': 2 }
34962 */
34963 function maxBy(array, iteratee) {
34964 return (array && array.length)
34965 ? baseExtremum(array, getIteratee(iteratee, 2), baseGt)
34966 : undefined;
34967 }
34968
34969 /**
34970 * Computes the mean of the values in `array`.
34971 *
34972 * @static
34973 * @memberOf _
34974 * @since 4.0.0
34975 * @category Math
34976 * @param {Array} array The array to iterate over.
34977 * @returns {number} Returns the mean.
34978 * @example
34979 *
34980 * _.mean([4, 2, 8, 6]);
34981 * // => 5
34982 */
34983 function mean(array) {
34984 return baseMean(array, identity);
34985 }
34986
34987 /**
34988 * This method is like `_.mean` except that it accepts `iteratee` which is
34989 * invoked for each element in `array` to generate the value to be averaged.
34990 * The iteratee is invoked with one argument: (value).
34991 *
34992 * @static
34993 * @memberOf _
34994 * @since 4.7.0
34995 * @category Math
34996 * @param {Array} array The array to iterate over.
34997 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
34998 * @returns {number} Returns the mean.
34999 * @example
35000 *
35001 * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
35002 *
35003 * _.meanBy(objects, function(o) { return o.n; });
35004 * // => 5
35005 *
35006 * // The `_.property` iteratee shorthand.
35007 * _.meanBy(objects, 'n');
35008 * // => 5
35009 */
35010 function meanBy(array, iteratee) {
35011 return baseMean(array, getIteratee(iteratee, 2));
35012 }
35013
35014 /**
35015 * Computes the minimum value of `array`. If `array` is empty or falsey,
35016 * `undefined` is returned.
35017 *
35018 * @static
35019 * @since 0.1.0
35020 * @memberOf _
35021 * @category Math
35022 * @param {Array} array The array to iterate over.
35023 * @returns {*} Returns the minimum value.
35024 * @example
35025 *
35026 * _.min([4, 2, 8, 6]);
35027 * // => 2
35028 *
35029 * _.min([]);
35030 * // => undefined
35031 */
35032 function min(array) {
35033 return (array && array.length)
35034 ? baseExtremum(array, identity, baseLt)
35035 : undefined;
35036 }
35037
35038 /**
35039 * This method is like `_.min` except that it accepts `iteratee` which is
35040 * invoked for each element in `array` to generate the criterion by which
35041 * the value is ranked. The iteratee is invoked with one argument: (value).
35042 *
35043 * @static
35044 * @memberOf _
35045 * @since 4.0.0
35046 * @category Math
35047 * @param {Array} array The array to iterate over.
35048 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
35049 * @returns {*} Returns the minimum value.
35050 * @example
35051 *
35052 * var objects = [{ 'n': 1 }, { 'n': 2 }];
35053 *
35054 * _.minBy(objects, function(o) { return o.n; });
35055 * // => { 'n': 1 }
35056 *
35057 * // The `_.property` iteratee shorthand.
35058 * _.minBy(objects, 'n');
35059 * // => { 'n': 1 }
35060 */
35061 function minBy(array, iteratee) {
35062 return (array && array.length)
35063 ? baseExtremum(array, getIteratee(iteratee, 2), baseLt)
35064 : undefined;
35065 }
35066
35067 /**
35068 * Multiply two numbers.
35069 *
35070 * @static
35071 * @memberOf _
35072 * @since 4.7.0
35073 * @category Math
35074 * @param {number} multiplier The first number in a multiplication.
35075 * @param {number} multiplicand The second number in a multiplication.
35076 * @returns {number} Returns the product.
35077 * @example
35078 *
35079 * _.multiply(6, 4);
35080 * // => 24
35081 */
35082 var multiply = createMathOperation(function(multiplier, multiplicand) {
35083 return multiplier * multiplicand;
35084 }, 1);
35085
35086 /**
35087 * Computes `number` rounded to `precision`.
35088 *
35089 * @static
35090 * @memberOf _
35091 * @since 3.10.0
35092 * @category Math
35093 * @param {number} number The number to round.
35094 * @param {number} [precision=0] The precision to round to.
35095 * @returns {number} Returns the rounded number.
35096 * @example
35097 *
35098 * _.round(4.006);
35099 * // => 4
35100 *
35101 * _.round(4.006, 2);
35102 * // => 4.01
35103 *
35104 * _.round(4060, -2);
35105 * // => 4100
35106 */
35107 var round = createRound('round');
35108
35109 /**
35110 * Subtract two numbers.
35111 *
35112 * @static
35113 * @memberOf _
35114 * @since 4.0.0
35115 * @category Math
35116 * @param {number} minuend The first number in a subtraction.
35117 * @param {number} subtrahend The second number in a subtraction.
35118 * @returns {number} Returns the difference.
35119 * @example
35120 *
35121 * _.subtract(6, 4);
35122 * // => 2
35123 */
35124 var subtract = createMathOperation(function(minuend, subtrahend) {
35125 return minuend - subtrahend;
35126 }, 0);
35127
35128 /**
35129 * Computes the sum of the values in `array`.
35130 *
35131 * @static
35132 * @memberOf _
35133 * @since 3.4.0
35134 * @category Math
35135 * @param {Array} array The array to iterate over.
35136 * @returns {number} Returns the sum.
35137 * @example
35138 *
35139 * _.sum([4, 2, 8, 6]);
35140 * // => 20
35141 */
35142 function sum(array) {
35143 return (array && array.length)
35144 ? baseSum(array, identity)
35145 : 0;
35146 }
35147
35148 /**
35149 * This method is like `_.sum` except that it accepts `iteratee` which is
35150 * invoked for each element in `array` to generate the value to be summed.
35151 * The iteratee is invoked with one argument: (value).
35152 *
35153 * @static
35154 * @memberOf _
35155 * @since 4.0.0
35156 * @category Math
35157 * @param {Array} array The array to iterate over.
35158 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
35159 * @returns {number} Returns the sum.
35160 * @example
35161 *
35162 * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];
35163 *
35164 * _.sumBy(objects, function(o) { return o.n; });
35165 * // => 20
35166 *
35167 * // The `_.property` iteratee shorthand.
35168 * _.sumBy(objects, 'n');
35169 * // => 20
35170 */
35171 function sumBy(array, iteratee) {
35172 return (array && array.length)
35173 ? baseSum(array, getIteratee(iteratee, 2))
35174 : 0;
35175 }
35176
35177 /*------------------------------------------------------------------------*/
35178
35179 // Add methods that return wrapped values in chain sequences.
35180 lodash.after = after;
35181 lodash.ary = ary;
35182 lodash.assign = assign;
35183 lodash.assignIn = assignIn;
35184 lodash.assignInWith = assignInWith;
35185 lodash.assignWith = assignWith;
35186 lodash.at = at;
35187 lodash.before = before;
35188 lodash.bind = bind;
35189 lodash.bindAll = bindAll;
35190 lodash.bindKey = bindKey;
35191 lodash.castArray = castArray;
35192 lodash.chain = chain;
35193 lodash.chunk = chunk;
35194 lodash.compact = compact;
35195 lodash.concat = concat;
35196 lodash.cond = cond;
35197 lodash.conforms = conforms;
35198 lodash.constant = constant;
35199 lodash.countBy = countBy;
35200 lodash.create = create;
35201 lodash.curry = curry;
35202 lodash.curryRight = curryRight;
35203 lodash.debounce = debounce;
35204 lodash.defaults = defaults;
35205 lodash.defaultsDeep = defaultsDeep;
35206 lodash.defer = defer;
35207 lodash.delay = delay;
35208 lodash.difference = difference;
35209 lodash.differenceBy = differenceBy;
35210 lodash.differenceWith = differenceWith;
35211 lodash.drop = drop;
35212 lodash.dropRight = dropRight;
35213 lodash.dropRightWhile = dropRightWhile;
35214 lodash.dropWhile = dropWhile;
35215 lodash.fill = fill;
35216 lodash.filter = filter;
35217 lodash.flatMap = flatMap;
35218 lodash.flatMapDeep = flatMapDeep;
35219 lodash.flatMapDepth = flatMapDepth;
35220 lodash.flatten = flatten;
35221 lodash.flattenDeep = flattenDeep;
35222 lodash.flattenDepth = flattenDepth;
35223 lodash.flip = flip;
35224 lodash.flow = flow;
35225 lodash.flowRight = flowRight;
35226 lodash.fromPairs = fromPairs;
35227 lodash.functions = functions;
35228 lodash.functionsIn = functionsIn;
35229 lodash.groupBy = groupBy;
35230 lodash.initial = initial;
35231 lodash.intersection = intersection;
35232 lodash.intersectionBy = intersectionBy;
35233 lodash.intersectionWith = intersectionWith;
35234 lodash.invert = invert;
35235 lodash.invertBy = invertBy;
35236 lodash.invokeMap = invokeMap;
35237 lodash.iteratee = iteratee;
35238 lodash.keyBy = keyBy;
35239 lodash.keys = keys;
35240 lodash.keysIn = keysIn;
35241 lodash.map = map;
35242 lodash.mapKeys = mapKeys;
35243 lodash.mapValues = mapValues;
35244 lodash.matches = matches;
35245 lodash.matchesProperty = matchesProperty;
35246 lodash.memoize = memoize;
35247 lodash.merge = merge;
35248 lodash.mergeWith = mergeWith;
35249 lodash.method = method;
35250 lodash.methodOf = methodOf;
35251 lodash.mixin = mixin;
35252 lodash.negate = negate;
35253 lodash.nthArg = nthArg;
35254 lodash.omit = omit;
35255 lodash.omitBy = omitBy;
35256 lodash.once = once;
35257 lodash.orderBy = orderBy;
35258 lodash.over = over;
35259 lodash.overArgs = overArgs;
35260 lodash.overEvery = overEvery;
35261 lodash.overSome = overSome;
35262 lodash.partial = partial;
35263 lodash.partialRight = partialRight;
35264 lodash.partition = partition;
35265 lodash.pick = pick;
35266 lodash.pickBy = pickBy;
35267 lodash.property = property;
35268 lodash.propertyOf = propertyOf;
35269 lodash.pull = pull;
35270 lodash.pullAll = pullAll;
35271 lodash.pullAllBy = pullAllBy;
35272 lodash.pullAllWith = pullAllWith;
35273 lodash.pullAt = pullAt;
35274 lodash.range = range;
35275 lodash.rangeRight = rangeRight;
35276 lodash.rearg = rearg;
35277 lodash.reject = reject;
35278 lodash.remove = remove;
35279 lodash.rest = rest;
35280 lodash.reverse = reverse;
35281 lodash.sampleSize = sampleSize;
35282 lodash.set = set;
35283 lodash.setWith = setWith;
35284 lodash.shuffle = shuffle;
35285 lodash.slice = slice;
35286 lodash.sortBy = sortBy;
35287 lodash.sortedUniq = sortedUniq;
35288 lodash.sortedUniqBy = sortedUniqBy;
35289 lodash.split = split;
35290 lodash.spread = spread;
35291 lodash.tail = tail;
35292 lodash.take = take;
35293 lodash.takeRight = takeRight;
35294 lodash.takeRightWhile = takeRightWhile;
35295 lodash.takeWhile = takeWhile;
35296 lodash.tap = tap;
35297 lodash.throttle = throttle;
35298 lodash.thru = thru;
35299 lodash.toArray = toArray;
35300 lodash.toPairs = toPairs;
35301 lodash.toPairsIn = toPairsIn;
35302 lodash.toPath = toPath;
35303 lodash.toPlainObject = toPlainObject;
35304 lodash.transform = transform;
35305 lodash.unary = unary;
35306 lodash.union = union;
35307 lodash.unionBy = unionBy;
35308 lodash.unionWith = unionWith;
35309 lodash.uniq = uniq;
35310 lodash.uniqBy = uniqBy;
35311 lodash.uniqWith = uniqWith;
35312 lodash.unset = unset;
35313 lodash.unzip = unzip;
35314 lodash.unzipWith = unzipWith;
35315 lodash.update = update;
35316 lodash.updateWith = updateWith;
35317 lodash.values = values;
35318 lodash.valuesIn = valuesIn;
35319 lodash.without = without;
35320 lodash.words = words;
35321 lodash.wrap = wrap;
35322 lodash.xor = xor;
35323 lodash.xorBy = xorBy;
35324 lodash.xorWith = xorWith;
35325 lodash.zip = zip;
35326 lodash.zipObject = zipObject;
35327 lodash.zipObjectDeep = zipObjectDeep;
35328 lodash.zipWith = zipWith;
35329
35330 // Add aliases.
35331 lodash.entries = toPairs;
35332 lodash.entriesIn = toPairsIn;
35333 lodash.extend = assignIn;
35334 lodash.extendWith = assignInWith;
35335
35336 // Add methods to `lodash.prototype`.
35337 mixin(lodash, lodash);
35338
35339 /*------------------------------------------------------------------------*/
35340
35341 // Add methods that return unwrapped values in chain sequences.
35342 lodash.add = add;
35343 lodash.attempt = attempt;
35344 lodash.camelCase = camelCase;
35345 lodash.capitalize = capitalize;
35346 lodash.ceil = ceil;
35347 lodash.clamp = clamp;
35348 lodash.clone = clone;
35349 lodash.cloneDeep = cloneDeep;
35350 lodash.cloneDeepWith = cloneDeepWith;
35351 lodash.cloneWith = cloneWith;
35352 lodash.conformsTo = conformsTo;
35353 lodash.deburr = deburr;
35354 lodash.defaultTo = defaultTo;
35355 lodash.divide = divide;
35356 lodash.endsWith = endsWith;
35357 lodash.eq = eq;
35358 lodash.escape = escape;
35359 lodash.escapeRegExp = escapeRegExp;
35360 lodash.every = every;
35361 lodash.find = find;
35362 lodash.findIndex = findIndex;
35363 lodash.findKey = findKey;
35364 lodash.findLast = findLast;
35365 lodash.findLastIndex = findLastIndex;
35366 lodash.findLastKey = findLastKey;
35367 lodash.floor = floor;
35368 lodash.forEach = forEach;
35369 lodash.forEachRight = forEachRight;
35370 lodash.forIn = forIn;
35371 lodash.forInRight = forInRight;
35372 lodash.forOwn = forOwn;
35373 lodash.forOwnRight = forOwnRight;
35374 lodash.get = get;
35375 lodash.gt = gt;
35376 lodash.gte = gte;
35377 lodash.has = has;
35378 lodash.hasIn = hasIn;
35379 lodash.head = head;
35380 lodash.identity = identity;
35381 lodash.includes = includes;
35382 lodash.indexOf = indexOf;
35383 lodash.inRange = inRange;
35384 lodash.invoke = invoke;
35385 lodash.isArguments = isArguments;
35386 lodash.isArray = isArray;
35387 lodash.isArrayBuffer = isArrayBuffer;
35388 lodash.isArrayLike = isArrayLike;
35389 lodash.isArrayLikeObject = isArrayLikeObject;
35390 lodash.isBoolean = isBoolean;
35391 lodash.isBuffer = isBuffer;
35392 lodash.isDate = isDate;
35393 lodash.isElement = isElement;
35394 lodash.isEmpty = isEmpty;
35395 lodash.isEqual = isEqual;
35396 lodash.isEqualWith = isEqualWith;
35397 lodash.isError = isError;
35398 lodash.isFinite = isFinite;
35399 lodash.isFunction = isFunction;
35400 lodash.isInteger = isInteger;
35401 lodash.isLength = isLength;
35402 lodash.isMap = isMap;
35403 lodash.isMatch = isMatch;
35404 lodash.isMatchWith = isMatchWith;
35405 lodash.isNaN = isNaN;
35406 lodash.isNative = isNative;
35407 lodash.isNil = isNil;
35408 lodash.isNull = isNull;
35409 lodash.isNumber = isNumber;
35410 lodash.isObject = isObject;
35411 lodash.isObjectLike = isObjectLike;
35412 lodash.isPlainObject = isPlainObject;
35413 lodash.isRegExp = isRegExp;
35414 lodash.isSafeInteger = isSafeInteger;
35415 lodash.isSet = isSet;
35416 lodash.isString = isString;
35417 lodash.isSymbol = isSymbol;
35418 lodash.isTypedArray = isTypedArray;
35419 lodash.isUndefined = isUndefined;
35420 lodash.isWeakMap = isWeakMap;
35421 lodash.isWeakSet = isWeakSet;
35422 lodash.join = join;
35423 lodash.kebabCase = kebabCase;
35424 lodash.last = last;
35425 lodash.lastIndexOf = lastIndexOf;
35426 lodash.lowerCase = lowerCase;
35427 lodash.lowerFirst = lowerFirst;
35428 lodash.lt = lt;
35429 lodash.lte = lte;
35430 lodash.max = max;
35431 lodash.maxBy = maxBy;
35432 lodash.mean = mean;
35433 lodash.meanBy = meanBy;
35434 lodash.min = min;
35435 lodash.minBy = minBy;
35436 lodash.stubArray = stubArray;
35437 lodash.stubFalse = stubFalse;
35438 lodash.stubObject = stubObject;
35439 lodash.stubString = stubString;
35440 lodash.stubTrue = stubTrue;
35441 lodash.multiply = multiply;
35442 lodash.nth = nth;
35443 lodash.noConflict = noConflict;
35444 lodash.noop = noop;
35445 lodash.now = now;
35446 lodash.pad = pad;
35447 lodash.padEnd = padEnd;
35448 lodash.padStart = padStart;
35449 lodash.parseInt = parseInt;
35450 lodash.random = random;
35451 lodash.reduce = reduce;
35452 lodash.reduceRight = reduceRight;
35453 lodash.repeat = repeat;
35454 lodash.replace = replace;
35455 lodash.result = result;
35456 lodash.round = round;
35457 lodash.runInContext = runInContext;
35458 lodash.sample = sample;
35459 lodash.size = size;
35460 lodash.snakeCase = snakeCase;
35461 lodash.some = some;
35462 lodash.sortedIndex = sortedIndex;
35463 lodash.sortedIndexBy = sortedIndexBy;
35464 lodash.sortedIndexOf = sortedIndexOf;
35465 lodash.sortedLastIndex = sortedLastIndex;
35466 lodash.sortedLastIndexBy = sortedLastIndexBy;
35467 lodash.sortedLastIndexOf = sortedLastIndexOf;
35468 lodash.startCase = startCase;
35469 lodash.startsWith = startsWith;
35470 lodash.subtract = subtract;
35471 lodash.sum = sum;
35472 lodash.sumBy = sumBy;
35473 lodash.template = template;
35474 lodash.times = times;
35475 lodash.toFinite = toFinite;
35476 lodash.toInteger = toInteger;
35477 lodash.toLength = toLength;
35478 lodash.toLower = toLower;
35479 lodash.toNumber = toNumber;
35480 lodash.toSafeInteger = toSafeInteger;
35481 lodash.toString = toString;
35482 lodash.toUpper = toUpper;
35483 lodash.trim = trim;
35484 lodash.trimEnd = trimEnd;
35485 lodash.trimStart = trimStart;
35486 lodash.truncate = truncate;
35487 lodash.unescape = unescape;
35488 lodash.uniqueId = uniqueId;
35489 lodash.upperCase = upperCase;
35490 lodash.upperFirst = upperFirst;
35491
35492 // Add aliases.
35493 lodash.each = forEach;
35494 lodash.eachRight = forEachRight;
35495 lodash.first = head;
35496
35497 mixin(lodash, (function() {
35498 var source = {};
35499 baseForOwn(lodash, function(func, methodName) {
35500 if (!hasOwnProperty.call(lodash.prototype, methodName)) {
35501 source[methodName] = func;
35502 }
35503 });
35504 return source;
35505 }()), { 'chain': false });
35506
35507 /*------------------------------------------------------------------------*/
35508
35509 /**
35510 * The semantic version number.
35511 *
35512 * @static
35513 * @memberOf _
35514 * @type {string}
35515 */
35516 lodash.VERSION = VERSION;
35517
35518 // Assign default placeholders.
35519 arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {
35520 lodash[methodName].placeholder = lodash;
35521 });
35522
35523 // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.
35524 arrayEach(['drop', 'take'], function(methodName, index) {
35525 LazyWrapper.prototype[methodName] = function(n) {
35526 n = n === undefined ? 1 : nativeMax(toInteger(n), 0);
35527
35528 var result = (this.__filtered__ && !index)
35529 ? new LazyWrapper(this)
35530 : this.clone();
35531
35532 if (result.__filtered__) {
35533 result.__takeCount__ = nativeMin(n, result.__takeCount__);
35534 } else {
35535 result.__views__.push({
35536 'size': nativeMin(n, MAX_ARRAY_LENGTH),
35537 'type': methodName + (result.__dir__ < 0 ? 'Right' : '')
35538 });
35539 }
35540 return result;
35541 };
35542
35543 LazyWrapper.prototype[methodName + 'Right'] = function(n) {
35544 return this.reverse()[methodName](n).reverse();
35545 };
35546 });
35547
35548 // Add `LazyWrapper` methods that accept an `iteratee` value.
35549 arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {
35550 var type = index + 1,
35551 isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;
35552
35553 LazyWrapper.prototype[methodName] = function(iteratee) {
35554 var result = this.clone();
35555 result.__iteratees__.push({
35556 'iteratee': getIteratee(iteratee, 3),
35557 'type': type
35558 });
35559 result.__filtered__ = result.__filtered__ || isFilter;
35560 return result;
35561 };
35562 });
35563
35564 // Add `LazyWrapper` methods for `_.head` and `_.last`.
35565 arrayEach(['head', 'last'], function(methodName, index) {
35566 var takeName = 'take' + (index ? 'Right' : '');
35567
35568 LazyWrapper.prototype[methodName] = function() {
35569 return this[takeName](1).value()[0];
35570 };
35571 });
35572
35573 // Add `LazyWrapper` methods for `_.initial` and `_.tail`.
35574 arrayEach(['initial', 'tail'], function(methodName, index) {
35575 var dropName = 'drop' + (index ? '' : 'Right');
35576
35577 LazyWrapper.prototype[methodName] = function() {
35578 return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);
35579 };
35580 });
35581
35582 LazyWrapper.prototype.compact = function() {
35583 return this.filter(identity);
35584 };
35585
35586 LazyWrapper.prototype.find = function(predicate) {
35587 return this.filter(predicate).head();
35588 };
35589
35590 LazyWrapper.prototype.findLast = function(predicate) {
35591 return this.reverse().find(predicate);
35592 };
35593
35594 LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {
35595 if (typeof path == 'function') {
35596 return new LazyWrapper(this);
35597 }
35598 return this.map(function(value) {
35599 return baseInvoke(value, path, args);
35600 });
35601 });
35602
35603 LazyWrapper.prototype.reject = function(predicate) {
35604 return this.filter(negate(getIteratee(predicate)));
35605 };
35606
35607 LazyWrapper.prototype.slice = function(start, end) {
35608 start = toInteger(start);
35609
35610 var result = this;
35611 if (result.__filtered__ && (start > 0 || end < 0)) {
35612 return new LazyWrapper(result);
35613 }
35614 if (start < 0) {
35615 result = result.takeRight(-start);
35616 } else if (start) {
35617 result = result.drop(start);
35618 }
35619 if (end !== undefined) {
35620 end = toInteger(end);
35621 result = end < 0 ? result.dropRight(-end) : result.take(end - start);
35622 }
35623 return result;
35624 };
35625
35626 LazyWrapper.prototype.takeRightWhile = function(predicate) {
35627 return this.reverse().takeWhile(predicate).reverse();
35628 };
35629
35630 LazyWrapper.prototype.toArray = function() {
35631 return this.take(MAX_ARRAY_LENGTH);
35632 };
35633
35634 // Add `LazyWrapper` methods to `lodash.prototype`.
35635 baseForOwn(LazyWrapper.prototype, function(func, methodName) {
35636 var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),
35637 isTaker = /^(?:head|last)$/.test(methodName),
35638 lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],
35639 retUnwrapped = isTaker || /^find/.test(methodName);
35640
35641 if (!lodashFunc) {
35642 return;
35643 }
35644 lodash.prototype[methodName] = function() {
35645 var value = this.__wrapped__,
35646 args = isTaker ? [1] : arguments,
35647 isLazy = value instanceof LazyWrapper,
35648 iteratee = args[0],
35649 useLazy = isLazy || isArray(value);
35650
35651 var interceptor = function(value) {
35652 var result = lodashFunc.apply(lodash, arrayPush([value], args));
35653 return (isTaker && chainAll) ? result[0] : result;
35654 };
35655
35656 if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {
35657 // Avoid lazy use if the iteratee has a "length" value other than `1`.
35658 isLazy = useLazy = false;
35659 }
35660 var chainAll = this.__chain__,
35661 isHybrid = !!this.__actions__.length,
35662 isUnwrapped = retUnwrapped && !chainAll,
35663 onlyLazy = isLazy && !isHybrid;
35664
35665 if (!retUnwrapped && useLazy) {
35666 value = onlyLazy ? value : new LazyWrapper(this);
35667 var result = func.apply(value, args);
35668 result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });
35669 return new LodashWrapper(result, chainAll);
35670 }
35671 if (isUnwrapped && onlyLazy) {
35672 return func.apply(this, args);
35673 }
35674 result = this.thru(interceptor);
35675 return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;
35676 };
35677 });
35678
35679 // Add `Array` methods to `lodash.prototype`.
35680 arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {
35681 var func = arrayProto[methodName],
35682 chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',
35683 retUnwrapped = /^(?:pop|shift)$/.test(methodName);
35684
35685 lodash.prototype[methodName] = function() {
35686 var args = arguments;
35687 if (retUnwrapped && !this.__chain__) {
35688 var value = this.value();
35689 return func.apply(isArray(value) ? value : [], args);
35690 }
35691 return this[chainName](function(value) {
35692 return func.apply(isArray(value) ? value : [], args);
35693 });
35694 };
35695 });
35696
35697 // Map minified method names to their real names.
35698 baseForOwn(LazyWrapper.prototype, function(func, methodName) {
35699 var lodashFunc = lodash[methodName];
35700 if (lodashFunc) {
35701 var key = (lodashFunc.name + ''),
35702 names = realNames[key] || (realNames[key] = []);
35703
35704 names.push({ 'name': methodName, 'func': lodashFunc });
35705 }
35706 });
35707
35708 realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{
35709 'name': 'wrapper',
35710 'func': undefined
35711 }];
35712
35713 // Add methods to `LazyWrapper`.
35714 LazyWrapper.prototype.clone = lazyClone;
35715 LazyWrapper.prototype.reverse = lazyReverse;
35716 LazyWrapper.prototype.value = lazyValue;
35717
35718 // Add chain sequence methods to the `lodash` wrapper.
35719 lodash.prototype.at = wrapperAt;
35720 lodash.prototype.chain = wrapperChain;
35721 lodash.prototype.commit = wrapperCommit;
35722 lodash.prototype.next = wrapperNext;
35723 lodash.prototype.plant = wrapperPlant;
35724 lodash.prototype.reverse = wrapperReverse;
35725 lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;
35726
35727 // Add lazy aliases.
35728 lodash.prototype.first = lodash.prototype.head;
35729
35730 if (symIterator) {
35731 lodash.prototype[symIterator] = wrapperToIterator;
35732 }
35733 return lodash;
35734 });
35735
35736 /*--------------------------------------------------------------------------*/
35737
35738 // Export lodash.
35739 var _ = runInContext();
35740
35741 // Some AMD build optimizers, like r.js, check for condition patterns like:
35742 if (true) {
35743 // Expose Lodash on the global object to prevent errors when Lodash is
35744 // loaded by a script tag in the presence of an AMD loader.
35745 // See http://requirejs.org/docs/errors.html#mismatch for more details.
35746 // Use `_.noConflict` to remove Lodash from the global object.
35747 root._ = _;
35748
35749 // Define as an anonymous module so, through path mapping, it can be
35750 // referenced as the "underscore" module.
35751 !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {
35752 return _;
35753 }).call(exports, __webpack_require__, exports, module),
35754 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
35755 }
35756 // Check for `exports` after `define` in case a build optimizer adds it.
35757 else {}
35758}.call(this));
35759
35760/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module)))
35761
35762/***/ }),
35763
35764/***/ "./node_modules/mimic-fn/index.js":
35765/*!****************************************!*\
35766 !*** ./node_modules/mimic-fn/index.js ***!
35767 \****************************************/
35768/*! no static exports found */
35769/***/ (function(module, exports, __webpack_require__) {
35770
35771"use strict";
35772
35773module.exports = (to, from) => {
35774 // TODO: use `Reflect.ownKeys()` when targeting Node.js 6
35775 for (const prop of Object.getOwnPropertyNames(from).concat(Object.getOwnPropertySymbols(from))) {
35776 Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));
35777 }
35778
35779 return to;
35780};
35781
35782
35783/***/ }),
35784
35785/***/ "./node_modules/minimatch/minimatch.js":
35786/*!*********************************************!*\
35787 !*** ./node_modules/minimatch/minimatch.js ***!
35788 \*********************************************/
35789/*! no static exports found */
35790/***/ (function(module, exports, __webpack_require__) {
35791
35792module.exports = minimatch
35793minimatch.Minimatch = Minimatch
35794
35795var path = { sep: '/' }
35796try {
35797 path = __webpack_require__(/*! path */ "path")
35798} catch (er) {}
35799
35800var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
35801var expand = __webpack_require__(/*! brace-expansion */ "./node_modules/brace-expansion/index.js")
35802
35803var plTypes = {
35804 '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
35805 '?': { open: '(?:', close: ')?' },
35806 '+': { open: '(?:', close: ')+' },
35807 '*': { open: '(?:', close: ')*' },
35808 '@': { open: '(?:', close: ')' }
35809}
35810
35811// any single thing other than /
35812// don't need to escape / when using new RegExp()
35813var qmark = '[^/]'
35814
35815// * => any number of characters
35816var star = qmark + '*?'
35817
35818// ** when dots are allowed. Anything goes, except .. and .
35819// not (^ or / followed by one or two dots followed by $ or /),
35820// followed by anything, any number of times.
35821var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
35822
35823// not a ^ or / followed by a dot,
35824// followed by anything, any number of times.
35825var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
35826
35827// characters that need to be escaped in RegExp.
35828var reSpecials = charSet('().*{}+?[]^$\\!')
35829
35830// "abc" -> { a:true, b:true, c:true }
35831function charSet (s) {
35832 return s.split('').reduce(function (set, c) {
35833 set[c] = true
35834 return set
35835 }, {})
35836}
35837
35838// normalizes slashes.
35839var slashSplit = /\/+/
35840
35841minimatch.filter = filter
35842function filter (pattern, options) {
35843 options = options || {}
35844 return function (p, i, list) {
35845 return minimatch(p, pattern, options)
35846 }
35847}
35848
35849function ext (a, b) {
35850 a = a || {}
35851 b = b || {}
35852 var t = {}
35853 Object.keys(b).forEach(function (k) {
35854 t[k] = b[k]
35855 })
35856 Object.keys(a).forEach(function (k) {
35857 t[k] = a[k]
35858 })
35859 return t
35860}
35861
35862minimatch.defaults = function (def) {
35863 if (!def || !Object.keys(def).length) return minimatch
35864
35865 var orig = minimatch
35866
35867 var m = function minimatch (p, pattern, options) {
35868 return orig.minimatch(p, pattern, ext(def, options))
35869 }
35870
35871 m.Minimatch = function Minimatch (pattern, options) {
35872 return new orig.Minimatch(pattern, ext(def, options))
35873 }
35874
35875 return m
35876}
35877
35878Minimatch.defaults = function (def) {
35879 if (!def || !Object.keys(def).length) return Minimatch
35880 return minimatch.defaults(def).Minimatch
35881}
35882
35883function minimatch (p, pattern, options) {
35884 if (typeof pattern !== 'string') {
35885 throw new TypeError('glob pattern string required')
35886 }
35887
35888 if (!options) options = {}
35889
35890 // shortcut: comments match nothing.
35891 if (!options.nocomment && pattern.charAt(0) === '#') {
35892 return false
35893 }
35894
35895 // "" only matches ""
35896 if (pattern.trim() === '') return p === ''
35897
35898 return new Minimatch(pattern, options).match(p)
35899}
35900
35901function Minimatch (pattern, options) {
35902 if (!(this instanceof Minimatch)) {
35903 return new Minimatch(pattern, options)
35904 }
35905
35906 if (typeof pattern !== 'string') {
35907 throw new TypeError('glob pattern string required')
35908 }
35909
35910 if (!options) options = {}
35911 pattern = pattern.trim()
35912
35913 // windows support: need to use /, not \
35914 if (path.sep !== '/') {
35915 pattern = pattern.split(path.sep).join('/')
35916 }
35917
35918 this.options = options
35919 this.set = []
35920 this.pattern = pattern
35921 this.regexp = null
35922 this.negate = false
35923 this.comment = false
35924 this.empty = false
35925
35926 // make the set of regexps etc.
35927 this.make()
35928}
35929
35930Minimatch.prototype.debug = function () {}
35931
35932Minimatch.prototype.make = make
35933function make () {
35934 // don't do it more than once.
35935 if (this._made) return
35936
35937 var pattern = this.pattern
35938 var options = this.options
35939
35940 // empty patterns and comments match nothing.
35941 if (!options.nocomment && pattern.charAt(0) === '#') {
35942 this.comment = true
35943 return
35944 }
35945 if (!pattern) {
35946 this.empty = true
35947 return
35948 }
35949
35950 // step 1: figure out negation, etc.
35951 this.parseNegate()
35952
35953 // step 2: expand braces
35954 var set = this.globSet = this.braceExpand()
35955
35956 if (options.debug) this.debug = console.error
35957
35958 this.debug(this.pattern, set)
35959
35960 // step 3: now we have a set, so turn each one into a series of path-portion
35961 // matching patterns.
35962 // These will be regexps, except in the case of "**", which is
35963 // set to the GLOBSTAR object for globstar behavior,
35964 // and will not contain any / characters
35965 set = this.globParts = set.map(function (s) {
35966 return s.split(slashSplit)
35967 })
35968
35969 this.debug(this.pattern, set)
35970
35971 // glob --> regexps
35972 set = set.map(function (s, si, set) {
35973 return s.map(this.parse, this)
35974 }, this)
35975
35976 this.debug(this.pattern, set)
35977
35978 // filter out everything that didn't compile properly.
35979 set = set.filter(function (s) {
35980 return s.indexOf(false) === -1
35981 })
35982
35983 this.debug(this.pattern, set)
35984
35985 this.set = set
35986}
35987
35988Minimatch.prototype.parseNegate = parseNegate
35989function parseNegate () {
35990 var pattern = this.pattern
35991 var negate = false
35992 var options = this.options
35993 var negateOffset = 0
35994
35995 if (options.nonegate) return
35996
35997 for (var i = 0, l = pattern.length
35998 ; i < l && pattern.charAt(i) === '!'
35999 ; i++) {
36000 negate = !negate
36001 negateOffset++
36002 }
36003
36004 if (negateOffset) this.pattern = pattern.substr(negateOffset)
36005 this.negate = negate
36006}
36007
36008// Brace expansion:
36009// a{b,c}d -> abd acd
36010// a{b,}c -> abc ac
36011// a{0..3}d -> a0d a1d a2d a3d
36012// a{b,c{d,e}f}g -> abg acdfg acefg
36013// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
36014//
36015// Invalid sets are not expanded.
36016// a{2..}b -> a{2..}b
36017// a{b}c -> a{b}c
36018minimatch.braceExpand = function (pattern, options) {
36019 return braceExpand(pattern, options)
36020}
36021
36022Minimatch.prototype.braceExpand = braceExpand
36023
36024function braceExpand (pattern, options) {
36025 if (!options) {
36026 if (this instanceof Minimatch) {
36027 options = this.options
36028 } else {
36029 options = {}
36030 }
36031 }
36032
36033 pattern = typeof pattern === 'undefined'
36034 ? this.pattern : pattern
36035
36036 if (typeof pattern === 'undefined') {
36037 throw new TypeError('undefined pattern')
36038 }
36039
36040 if (options.nobrace ||
36041 !pattern.match(/\{.*\}/)) {
36042 // shortcut. no need to expand.
36043 return [pattern]
36044 }
36045
36046 return expand(pattern)
36047}
36048
36049// parse a component of the expanded set.
36050// At this point, no pattern may contain "/" in it
36051// so we're going to return a 2d array, where each entry is the full
36052// pattern, split on '/', and then turned into a regular expression.
36053// A regexp is made at the end which joins each array with an
36054// escaped /, and another full one which joins each regexp with |.
36055//
36056// Following the lead of Bash 4.1, note that "**" only has special meaning
36057// when it is the *only* thing in a path portion. Otherwise, any series
36058// of * is equivalent to a single *. Globstar behavior is enabled by
36059// default, and can be disabled by setting options.noglobstar.
36060Minimatch.prototype.parse = parse
36061var SUBPARSE = {}
36062function parse (pattern, isSub) {
36063 if (pattern.length > 1024 * 64) {
36064 throw new TypeError('pattern is too long')
36065 }
36066
36067 var options = this.options
36068
36069 // shortcuts
36070 if (!options.noglobstar && pattern === '**') return GLOBSTAR
36071 if (pattern === '') return ''
36072
36073 var re = ''
36074 var hasMagic = !!options.nocase
36075 var escaping = false
36076 // ? => one single character
36077 var patternListStack = []
36078 var negativeLists = []
36079 var stateChar
36080 var inClass = false
36081 var reClassStart = -1
36082 var classStart = -1
36083 // . and .. never match anything that doesn't start with .,
36084 // even when options.dot is set.
36085 var patternStart = pattern.charAt(0) === '.' ? '' // anything
36086 // not (start or / followed by . or .. followed by / or end)
36087 : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
36088 : '(?!\\.)'
36089 var self = this
36090
36091 function clearStateChar () {
36092 if (stateChar) {
36093 // we had some state-tracking character
36094 // that wasn't consumed by this pass.
36095 switch (stateChar) {
36096 case '*':
36097 re += star
36098 hasMagic = true
36099 break
36100 case '?':
36101 re += qmark
36102 hasMagic = true
36103 break
36104 default:
36105 re += '\\' + stateChar
36106 break
36107 }
36108 self.debug('clearStateChar %j %j', stateChar, re)
36109 stateChar = false
36110 }
36111 }
36112
36113 for (var i = 0, len = pattern.length, c
36114 ; (i < len) && (c = pattern.charAt(i))
36115 ; i++) {
36116 this.debug('%s\t%s %s %j', pattern, i, re, c)
36117
36118 // skip over any that are escaped.
36119 if (escaping && reSpecials[c]) {
36120 re += '\\' + c
36121 escaping = false
36122 continue
36123 }
36124
36125 switch (c) {
36126 case '/':
36127 // completely not allowed, even escaped.
36128 // Should already be path-split by now.
36129 return false
36130
36131 case '\\':
36132 clearStateChar()
36133 escaping = true
36134 continue
36135
36136 // the various stateChar values
36137 // for the "extglob" stuff.
36138 case '?':
36139 case '*':
36140 case '+':
36141 case '@':
36142 case '!':
36143 this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
36144
36145 // all of those are literals inside a class, except that
36146 // the glob [!a] means [^a] in regexp
36147 if (inClass) {
36148 this.debug(' in class')
36149 if (c === '!' && i === classStart + 1) c = '^'
36150 re += c
36151 continue
36152 }
36153
36154 // if we already have a stateChar, then it means
36155 // that there was something like ** or +? in there.
36156 // Handle the stateChar, then proceed with this one.
36157 self.debug('call clearStateChar %j', stateChar)
36158 clearStateChar()
36159 stateChar = c
36160 // if extglob is disabled, then +(asdf|foo) isn't a thing.
36161 // just clear the statechar *now*, rather than even diving into
36162 // the patternList stuff.
36163 if (options.noext) clearStateChar()
36164 continue
36165
36166 case '(':
36167 if (inClass) {
36168 re += '('
36169 continue
36170 }
36171
36172 if (!stateChar) {
36173 re += '\\('
36174 continue
36175 }
36176
36177 patternListStack.push({
36178 type: stateChar,
36179 start: i - 1,
36180 reStart: re.length,
36181 open: plTypes[stateChar].open,
36182 close: plTypes[stateChar].close
36183 })
36184 // negation is (?:(?!js)[^/]*)
36185 re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
36186 this.debug('plType %j %j', stateChar, re)
36187 stateChar = false
36188 continue
36189
36190 case ')':
36191 if (inClass || !patternListStack.length) {
36192 re += '\\)'
36193 continue
36194 }
36195
36196 clearStateChar()
36197 hasMagic = true
36198 var pl = patternListStack.pop()
36199 // negation is (?:(?!js)[^/]*)
36200 // The others are (?:<pattern>)<type>
36201 re += pl.close
36202 if (pl.type === '!') {
36203 negativeLists.push(pl)
36204 }
36205 pl.reEnd = re.length
36206 continue
36207
36208 case '|':
36209 if (inClass || !patternListStack.length || escaping) {
36210 re += '\\|'
36211 escaping = false
36212 continue
36213 }
36214
36215 clearStateChar()
36216 re += '|'
36217 continue
36218
36219 // these are mostly the same in regexp and glob
36220 case '[':
36221 // swallow any state-tracking char before the [
36222 clearStateChar()
36223
36224 if (inClass) {
36225 re += '\\' + c
36226 continue
36227 }
36228
36229 inClass = true
36230 classStart = i
36231 reClassStart = re.length
36232 re += c
36233 continue
36234
36235 case ']':
36236 // a right bracket shall lose its special
36237 // meaning and represent itself in
36238 // a bracket expression if it occurs
36239 // first in the list. -- POSIX.2 2.8.3.2
36240 if (i === classStart + 1 || !inClass) {
36241 re += '\\' + c
36242 escaping = false
36243 continue
36244 }
36245
36246 // handle the case where we left a class open.
36247 // "[z-a]" is valid, equivalent to "\[z-a\]"
36248 if (inClass) {
36249 // split where the last [ was, make sure we don't have
36250 // an invalid re. if so, re-walk the contents of the
36251 // would-be class to re-translate any characters that
36252 // were passed through as-is
36253 // TODO: It would probably be faster to determine this
36254 // without a try/catch and a new RegExp, but it's tricky
36255 // to do safely. For now, this is safe and works.
36256 var cs = pattern.substring(classStart + 1, i)
36257 try {
36258 RegExp('[' + cs + ']')
36259 } catch (er) {
36260 // not a valid class!
36261 var sp = this.parse(cs, SUBPARSE)
36262 re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
36263 hasMagic = hasMagic || sp[1]
36264 inClass = false
36265 continue
36266 }
36267 }
36268
36269 // finish up the class.
36270 hasMagic = true
36271 inClass = false
36272 re += c
36273 continue
36274
36275 default:
36276 // swallow any state char that wasn't consumed
36277 clearStateChar()
36278
36279 if (escaping) {
36280 // no need
36281 escaping = false
36282 } else if (reSpecials[c]
36283 && !(c === '^' && inClass)) {
36284 re += '\\'
36285 }
36286
36287 re += c
36288
36289 } // switch
36290 } // for
36291
36292 // handle the case where we left a class open.
36293 // "[abc" is valid, equivalent to "\[abc"
36294 if (inClass) {
36295 // split where the last [ was, and escape it
36296 // this is a huge pita. We now have to re-walk
36297 // the contents of the would-be class to re-translate
36298 // any characters that were passed through as-is
36299 cs = pattern.substr(classStart + 1)
36300 sp = this.parse(cs, SUBPARSE)
36301 re = re.substr(0, reClassStart) + '\\[' + sp[0]
36302 hasMagic = hasMagic || sp[1]
36303 }
36304
36305 // handle the case where we had a +( thing at the *end*
36306 // of the pattern.
36307 // each pattern list stack adds 3 chars, and we need to go through
36308 // and escape any | chars that were passed through as-is for the regexp.
36309 // Go through and escape them, taking care not to double-escape any
36310 // | chars that were already escaped.
36311 for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
36312 var tail = re.slice(pl.reStart + pl.open.length)
36313 this.debug('setting tail', re, pl)
36314 // maybe some even number of \, then maybe 1 \, followed by a |
36315 tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) {
36316 if (!$2) {
36317 // the | isn't already escaped, so escape it.
36318 $2 = '\\'
36319 }
36320
36321 // need to escape all those slashes *again*, without escaping the
36322 // one that we need for escaping the | character. As it works out,
36323 // escaping an even number of slashes can be done by simply repeating
36324 // it exactly after itself. That's why this trick works.
36325 //
36326 // I am sorry that you have to see this.
36327 return $1 + $1 + $2 + '|'
36328 })
36329
36330 this.debug('tail=%j\n %s', tail, tail, pl, re)
36331 var t = pl.type === '*' ? star
36332 : pl.type === '?' ? qmark
36333 : '\\' + pl.type
36334
36335 hasMagic = true
36336 re = re.slice(0, pl.reStart) + t + '\\(' + tail
36337 }
36338
36339 // handle trailing things that only matter at the very end.
36340 clearStateChar()
36341 if (escaping) {
36342 // trailing \\
36343 re += '\\\\'
36344 }
36345
36346 // only need to apply the nodot start if the re starts with
36347 // something that could conceivably capture a dot
36348 var addPatternStart = false
36349 switch (re.charAt(0)) {
36350 case '.':
36351 case '[':
36352 case '(': addPatternStart = true
36353 }
36354
36355 // Hack to work around lack of negative lookbehind in JS
36356 // A pattern like: *.!(x).!(y|z) needs to ensure that a name
36357 // like 'a.xyz.yz' doesn't match. So, the first negative
36358 // lookahead, has to look ALL the way ahead, to the end of
36359 // the pattern.
36360 for (var n = negativeLists.length - 1; n > -1; n--) {
36361 var nl = negativeLists[n]
36362
36363 var nlBefore = re.slice(0, nl.reStart)
36364 var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
36365 var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
36366 var nlAfter = re.slice(nl.reEnd)
36367
36368 nlLast += nlAfter
36369
36370 // Handle nested stuff like *(*.js|!(*.json)), where open parens
36371 // mean that we should *not* include the ) in the bit that is considered
36372 // "after" the negated section.
36373 var openParensBefore = nlBefore.split('(').length - 1
36374 var cleanAfter = nlAfter
36375 for (i = 0; i < openParensBefore; i++) {
36376 cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
36377 }
36378 nlAfter = cleanAfter
36379
36380 var dollar = ''
36381 if (nlAfter === '' && isSub !== SUBPARSE) {
36382 dollar = '$'
36383 }
36384 var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
36385 re = newRe
36386 }
36387
36388 // if the re is not "" at this point, then we need to make sure
36389 // it doesn't match against an empty path part.
36390 // Otherwise a/* will match a/, which it should not.
36391 if (re !== '' && hasMagic) {
36392 re = '(?=.)' + re
36393 }
36394
36395 if (addPatternStart) {
36396 re = patternStart + re
36397 }
36398
36399 // parsing just a piece of a larger pattern.
36400 if (isSub === SUBPARSE) {
36401 return [re, hasMagic]
36402 }
36403
36404 // skip the regexp for non-magical patterns
36405 // unescape anything in it, though, so that it'll be
36406 // an exact match against a file etc.
36407 if (!hasMagic) {
36408 return globUnescape(pattern)
36409 }
36410
36411 var flags = options.nocase ? 'i' : ''
36412 try {
36413 var regExp = new RegExp('^' + re + '$', flags)
36414 } catch (er) {
36415 // If it was an invalid regular expression, then it can't match
36416 // anything. This trick looks for a character after the end of
36417 // the string, which is of course impossible, except in multi-line
36418 // mode, but it's not a /m regex.
36419 return new RegExp('$.')
36420 }
36421
36422 regExp._glob = pattern
36423 regExp._src = re
36424
36425 return regExp
36426}
36427
36428minimatch.makeRe = function (pattern, options) {
36429 return new Minimatch(pattern, options || {}).makeRe()
36430}
36431
36432Minimatch.prototype.makeRe = makeRe
36433function makeRe () {
36434 if (this.regexp || this.regexp === false) return this.regexp
36435
36436 // at this point, this.set is a 2d array of partial
36437 // pattern strings, or "**".
36438 //
36439 // It's better to use .match(). This function shouldn't
36440 // be used, really, but it's pretty convenient sometimes,
36441 // when you just want to work with a regex.
36442 var set = this.set
36443
36444 if (!set.length) {
36445 this.regexp = false
36446 return this.regexp
36447 }
36448 var options = this.options
36449
36450 var twoStar = options.noglobstar ? star
36451 : options.dot ? twoStarDot
36452 : twoStarNoDot
36453 var flags = options.nocase ? 'i' : ''
36454
36455 var re = set.map(function (pattern) {
36456 return pattern.map(function (p) {
36457 return (p === GLOBSTAR) ? twoStar
36458 : (typeof p === 'string') ? regExpEscape(p)
36459 : p._src
36460 }).join('\\\/')
36461 }).join('|')
36462
36463 // must match entire pattern
36464 // ending in a * or ** will make it less strict.
36465 re = '^(?:' + re + ')$'
36466
36467 // can match anything, as long as it's not this.
36468 if (this.negate) re = '^(?!' + re + ').*$'
36469
36470 try {
36471 this.regexp = new RegExp(re, flags)
36472 } catch (ex) {
36473 this.regexp = false
36474 }
36475 return this.regexp
36476}
36477
36478minimatch.match = function (list, pattern, options) {
36479 options = options || {}
36480 var mm = new Minimatch(pattern, options)
36481 list = list.filter(function (f) {
36482 return mm.match(f)
36483 })
36484 if (mm.options.nonull && !list.length) {
36485 list.push(pattern)
36486 }
36487 return list
36488}
36489
36490Minimatch.prototype.match = match
36491function match (f, partial) {
36492 this.debug('match', f, this.pattern)
36493 // short-circuit in the case of busted things.
36494 // comments, etc.
36495 if (this.comment) return false
36496 if (this.empty) return f === ''
36497
36498 if (f === '/' && partial) return true
36499
36500 var options = this.options
36501
36502 // windows: need to use /, not \
36503 if (path.sep !== '/') {
36504 f = f.split(path.sep).join('/')
36505 }
36506
36507 // treat the test path as a set of pathparts.
36508 f = f.split(slashSplit)
36509 this.debug(this.pattern, 'split', f)
36510
36511 // just ONE of the pattern sets in this.set needs to match
36512 // in order for it to be valid. If negating, then just one
36513 // match means that we have failed.
36514 // Either way, return on the first hit.
36515
36516 var set = this.set
36517 this.debug(this.pattern, 'set', set)
36518
36519 // Find the basename of the path by looking for the last non-empty segment
36520 var filename
36521 var i
36522 for (i = f.length - 1; i >= 0; i--) {
36523 filename = f[i]
36524 if (filename) break
36525 }
36526
36527 for (i = 0; i < set.length; i++) {
36528 var pattern = set[i]
36529 var file = f
36530 if (options.matchBase && pattern.length === 1) {
36531 file = [filename]
36532 }
36533 var hit = this.matchOne(file, pattern, partial)
36534 if (hit) {
36535 if (options.flipNegate) return true
36536 return !this.negate
36537 }
36538 }
36539
36540 // didn't get any hits. this is success if it's a negative
36541 // pattern, failure otherwise.
36542 if (options.flipNegate) return false
36543 return this.negate
36544}
36545
36546// set partial to true to test if, for example,
36547// "/a/b" matches the start of "/*/b/*/d"
36548// Partial means, if you run out of file before you run
36549// out of pattern, then that's fine, as long as all
36550// the parts match.
36551Minimatch.prototype.matchOne = function (file, pattern, partial) {
36552 var options = this.options
36553
36554 this.debug('matchOne',
36555 { 'this': this, file: file, pattern: pattern })
36556
36557 this.debug('matchOne', file.length, pattern.length)
36558
36559 for (var fi = 0,
36560 pi = 0,
36561 fl = file.length,
36562 pl = pattern.length
36563 ; (fi < fl) && (pi < pl)
36564 ; fi++, pi++) {
36565 this.debug('matchOne loop')
36566 var p = pattern[pi]
36567 var f = file[fi]
36568
36569 this.debug(pattern, p, f)
36570
36571 // should be impossible.
36572 // some invalid regexp stuff in the set.
36573 if (p === false) return false
36574
36575 if (p === GLOBSTAR) {
36576 this.debug('GLOBSTAR', [pattern, p, f])
36577
36578 // "**"
36579 // a/**/b/**/c would match the following:
36580 // a/b/x/y/z/c
36581 // a/x/y/z/b/c
36582 // a/b/x/b/x/c
36583 // a/b/c
36584 // To do this, take the rest of the pattern after
36585 // the **, and see if it would match the file remainder.
36586 // If so, return success.
36587 // If not, the ** "swallows" a segment, and try again.
36588 // This is recursively awful.
36589 //
36590 // a/**/b/**/c matching a/b/x/y/z/c
36591 // - a matches a
36592 // - doublestar
36593 // - matchOne(b/x/y/z/c, b/**/c)
36594 // - b matches b
36595 // - doublestar
36596 // - matchOne(x/y/z/c, c) -> no
36597 // - matchOne(y/z/c, c) -> no
36598 // - matchOne(z/c, c) -> no
36599 // - matchOne(c, c) yes, hit
36600 var fr = fi
36601 var pr = pi + 1
36602 if (pr === pl) {
36603 this.debug('** at the end')
36604 // a ** at the end will just swallow the rest.
36605 // We have found a match.
36606 // however, it will not swallow /.x, unless
36607 // options.dot is set.
36608 // . and .. are *never* matched by **, for explosively
36609 // exponential reasons.
36610 for (; fi < fl; fi++) {
36611 if (file[fi] === '.' || file[fi] === '..' ||
36612 (!options.dot && file[fi].charAt(0) === '.')) return false
36613 }
36614 return true
36615 }
36616
36617 // ok, let's see if we can swallow whatever we can.
36618 while (fr < fl) {
36619 var swallowee = file[fr]
36620
36621 this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
36622
36623 // XXX remove this slice. Just pass the start index.
36624 if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
36625 this.debug('globstar found match!', fr, fl, swallowee)
36626 // found a match.
36627 return true
36628 } else {
36629 // can't swallow "." or ".." ever.
36630 // can only swallow ".foo" when explicitly asked.
36631 if (swallowee === '.' || swallowee === '..' ||
36632 (!options.dot && swallowee.charAt(0) === '.')) {
36633 this.debug('dot detected!', file, fr, pattern, pr)
36634 break
36635 }
36636
36637 // ** swallows a segment, and continue.
36638 this.debug('globstar swallow a segment, and continue')
36639 fr++
36640 }
36641 }
36642
36643 // no match was found.
36644 // However, in partial mode, we can't say this is necessarily over.
36645 // If there's more *pattern* left, then
36646 if (partial) {
36647 // ran out of file
36648 this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
36649 if (fr === fl) return true
36650 }
36651 return false
36652 }
36653
36654 // something other than **
36655 // non-magic patterns just have to match exactly
36656 // patterns with magic have been turned into regexps.
36657 var hit
36658 if (typeof p === 'string') {
36659 if (options.nocase) {
36660 hit = f.toLowerCase() === p.toLowerCase()
36661 } else {
36662 hit = f === p
36663 }
36664 this.debug('string match', p, f, hit)
36665 } else {
36666 hit = f.match(p)
36667 this.debug('pattern match', p, f, hit)
36668 }
36669
36670 if (!hit) return false
36671 }
36672
36673 // Note: ending in / means that we'll get a final ""
36674 // at the end of the pattern. This can only match a
36675 // corresponding "" at the end of the file.
36676 // If the file ends in /, then it can only match a
36677 // a pattern that ends in /, unless the pattern just
36678 // doesn't have any more for it. But, a/b/ should *not*
36679 // match "a/b/*", even though "" matches against the
36680 // [^/]*? pattern, except in partial mode, where it might
36681 // simply not be reached yet.
36682 // However, a/b/ should still satisfy a/*
36683
36684 // now either we fell off the end of the pattern, or we're done.
36685 if (fi === fl && pi === pl) {
36686 // ran out of pattern and filename at the same time.
36687 // an exact hit!
36688 return true
36689 } else if (fi === fl) {
36690 // ran out of file, but still had pattern left.
36691 // this is ok if we're doing the match as part of
36692 // a glob fs traversal.
36693 return partial
36694 } else if (pi === pl) {
36695 // ran out of pattern, still have file left.
36696 // this is only acceptable if we're on the very last
36697 // empty segment of a file with a trailing slash.
36698 // a/* should match a/b/
36699 var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
36700 return emptyFileEnd
36701 }
36702
36703 // should be unreachable.
36704 throw new Error('wtf?')
36705}
36706
36707// replace stuff like \* with *
36708function globUnescape (s) {
36709 return s.replace(/\\(.)/g, '$1')
36710}
36711
36712function regExpEscape (s) {
36713 return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
36714}
36715
36716
36717/***/ }),
36718
36719/***/ "./node_modules/mute-stream/mute.js":
36720/*!******************************************!*\
36721 !*** ./node_modules/mute-stream/mute.js ***!
36722 \******************************************/
36723/*! no static exports found */
36724/***/ (function(module, exports, __webpack_require__) {
36725
36726var Stream = __webpack_require__(/*! stream */ "stream")
36727
36728module.exports = MuteStream
36729
36730// var out = new MuteStream(process.stdout)
36731// argument auto-pipes
36732function MuteStream (opts) {
36733 Stream.apply(this)
36734 opts = opts || {}
36735 this.writable = this.readable = true
36736 this.muted = false
36737 this.on('pipe', this._onpipe)
36738 this.replace = opts.replace
36739
36740 // For readline-type situations
36741 // This much at the start of a line being redrawn after a ctrl char
36742 // is seen (such as backspace) won't be redrawn as the replacement
36743 this._prompt = opts.prompt || null
36744 this._hadControl = false
36745}
36746
36747MuteStream.prototype = Object.create(Stream.prototype)
36748
36749Object.defineProperty(MuteStream.prototype, 'constructor', {
36750 value: MuteStream,
36751 enumerable: false
36752})
36753
36754MuteStream.prototype.mute = function () {
36755 this.muted = true
36756}
36757
36758MuteStream.prototype.unmute = function () {
36759 this.muted = false
36760}
36761
36762Object.defineProperty(MuteStream.prototype, '_onpipe', {
36763 value: onPipe,
36764 enumerable: false,
36765 writable: true,
36766 configurable: true
36767})
36768
36769function onPipe (src) {
36770 this._src = src
36771}
36772
36773Object.defineProperty(MuteStream.prototype, 'isTTY', {
36774 get: getIsTTY,
36775 set: setIsTTY,
36776 enumerable: true,
36777 configurable: true
36778})
36779
36780function getIsTTY () {
36781 return( (this._dest) ? this._dest.isTTY
36782 : (this._src) ? this._src.isTTY
36783 : false
36784 )
36785}
36786
36787// basically just get replace the getter/setter with a regular value
36788function setIsTTY (isTTY) {
36789 Object.defineProperty(this, 'isTTY', {
36790 value: isTTY,
36791 enumerable: true,
36792 writable: true,
36793 configurable: true
36794 })
36795}
36796
36797Object.defineProperty(MuteStream.prototype, 'rows', {
36798 get: function () {
36799 return( this._dest ? this._dest.rows
36800 : this._src ? this._src.rows
36801 : undefined )
36802 }, enumerable: true, configurable: true })
36803
36804Object.defineProperty(MuteStream.prototype, 'columns', {
36805 get: function () {
36806 return( this._dest ? this._dest.columns
36807 : this._src ? this._src.columns
36808 : undefined )
36809 }, enumerable: true, configurable: true })
36810
36811
36812MuteStream.prototype.pipe = function (dest, options) {
36813 this._dest = dest
36814 return Stream.prototype.pipe.call(this, dest, options)
36815}
36816
36817MuteStream.prototype.pause = function () {
36818 if (this._src) return this._src.pause()
36819}
36820
36821MuteStream.prototype.resume = function () {
36822 if (this._src) return this._src.resume()
36823}
36824
36825MuteStream.prototype.write = function (c) {
36826 if (this.muted) {
36827 if (!this.replace) return true
36828 if (c.match(/^\u001b/)) {
36829 if(c.indexOf(this._prompt) === 0) {
36830 c = c.substr(this._prompt.length);
36831 c = c.replace(/./g, this.replace);
36832 c = this._prompt + c;
36833 }
36834 this._hadControl = true
36835 return this.emit('data', c)
36836 } else {
36837 if (this._prompt && this._hadControl &&
36838 c.indexOf(this._prompt) === 0) {
36839 this._hadControl = false
36840 this.emit('data', this._prompt)
36841 c = c.substr(this._prompt.length)
36842 }
36843 c = c.toString().replace(/./g, this.replace)
36844 }
36845 }
36846 this.emit('data', c)
36847}
36848
36849MuteStream.prototype.end = function (c) {
36850 if (this.muted) {
36851 if (c && this.replace) {
36852 c = c.toString().replace(/./g, this.replace)
36853 } else {
36854 c = null
36855 }
36856 }
36857 if (c) this.emit('data', c)
36858 this.emit('end')
36859}
36860
36861function proxy (fn) { return function () {
36862 var d = this._dest
36863 var s = this._src
36864 if (d && d[fn]) d[fn].apply(d, arguments)
36865 if (s && s[fn]) s[fn].apply(s, arguments)
36866}}
36867
36868MuteStream.prototype.destroy = proxy('destroy')
36869MuteStream.prototype.destroySoon = proxy('destroySoon')
36870MuteStream.prototype.close = proxy('close')
36871
36872
36873/***/ }),
36874
36875/***/ "./node_modules/node-fetch/lib/index.mjs":
36876/*!***********************************************!*\
36877 !*** ./node_modules/node-fetch/lib/index.mjs ***!
36878 \***********************************************/
36879/*! exports provided: default, Headers, Request, Response, FetchError */
36880/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {
36881
36882"use strict";
36883__webpack_require__.r(__webpack_exports__);
36884/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Headers", function() { return Headers; });
36885/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Request", function() { return Request; });
36886/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Response", function() { return Response; });
36887/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FetchError", function() { return FetchError; });
36888/* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! stream */ "stream");
36889/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! http */ "http");
36890/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! url */ "url");
36891/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! https */ "https");
36892/* harmony import */ var zlib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! zlib */ "zlib");
36893
36894
36895
36896
36897
36898
36899// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js
36900// (MIT licensed)
36901
36902const BUFFER = Symbol('buffer');
36903const TYPE = Symbol('type');
36904
36905class Blob {
36906 constructor() {
36907 this[TYPE] = '';
36908
36909 const blobParts = arguments[0];
36910 const options = arguments[1];
36911
36912 const buffers = [];
36913
36914 if (blobParts) {
36915 const a = blobParts;
36916 const length = Number(a.length);
36917 for (let i = 0; i < length; i++) {
36918 const element = a[i];
36919 let buffer;
36920 if (element instanceof Buffer) {
36921 buffer = element;
36922 } else if (ArrayBuffer.isView(element)) {
36923 buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);
36924 } else if (element instanceof ArrayBuffer) {
36925 buffer = Buffer.from(element);
36926 } else if (element instanceof Blob) {
36927 buffer = element[BUFFER];
36928 } else {
36929 buffer = Buffer.from(typeof element === 'string' ? element : String(element));
36930 }
36931 buffers.push(buffer);
36932 }
36933 }
36934
36935 this[BUFFER] = Buffer.concat(buffers);
36936
36937 let type = options && options.type !== undefined && String(options.type).toLowerCase();
36938 if (type && !/[^\u0020-\u007E]/.test(type)) {
36939 this[TYPE] = type;
36940 }
36941 }
36942 get size() {
36943 return this[BUFFER].length;
36944 }
36945 get type() {
36946 return this[TYPE];
36947 }
36948 slice() {
36949 const size = this.size;
36950
36951 const start = arguments[0];
36952 const end = arguments[1];
36953 let relativeStart, relativeEnd;
36954 if (start === undefined) {
36955 relativeStart = 0;
36956 } else if (start < 0) {
36957 relativeStart = Math.max(size + start, 0);
36958 } else {
36959 relativeStart = Math.min(start, size);
36960 }
36961 if (end === undefined) {
36962 relativeEnd = size;
36963 } else if (end < 0) {
36964 relativeEnd = Math.max(size + end, 0);
36965 } else {
36966 relativeEnd = Math.min(end, size);
36967 }
36968 const span = Math.max(relativeEnd - relativeStart, 0);
36969
36970 const buffer = this[BUFFER];
36971 const slicedBuffer = buffer.slice(relativeStart, relativeStart + span);
36972 const blob = new Blob([], { type: arguments[2] });
36973 blob[BUFFER] = slicedBuffer;
36974 return blob;
36975 }
36976}
36977
36978Object.defineProperties(Blob.prototype, {
36979 size: { enumerable: true },
36980 type: { enumerable: true },
36981 slice: { enumerable: true }
36982});
36983
36984Object.defineProperty(Blob.prototype, Symbol.toStringTag, {
36985 value: 'Blob',
36986 writable: false,
36987 enumerable: false,
36988 configurable: true
36989});
36990
36991/**
36992 * fetch-error.js
36993 *
36994 * FetchError interface for operational errors
36995 */
36996
36997/**
36998 * Create FetchError instance
36999 *
37000 * @param String message Error message for human
37001 * @param String type Error type for machine
37002 * @param String systemError For Node.js system error
37003 * @return FetchError
37004 */
37005function FetchError(message, type, systemError) {
37006 Error.call(this, message);
37007
37008 this.message = message;
37009 this.type = type;
37010
37011 // when err.type is `system`, err.code contains system error code
37012 if (systemError) {
37013 this.code = this.errno = systemError.code;
37014 }
37015
37016 // hide custom error implementation details from end-users
37017 Error.captureStackTrace(this, this.constructor);
37018}
37019
37020FetchError.prototype = Object.create(Error.prototype);
37021FetchError.prototype.constructor = FetchError;
37022FetchError.prototype.name = 'FetchError';
37023
37024let convert;
37025try {
37026 convert = require('encoding').convert;
37027} catch (e) {}
37028
37029const INTERNALS = Symbol('Body internals');
37030
37031// fix an issue where "PassThrough" isn't a named export for node <10
37032const PassThrough = stream__WEBPACK_IMPORTED_MODULE_0__.PassThrough;
37033
37034/**
37035 * Body mixin
37036 *
37037 * Ref: https://fetch.spec.whatwg.org/#body
37038 *
37039 * @param Stream body Readable stream
37040 * @param Object opts Response options
37041 * @return Void
37042 */
37043function Body(body) {
37044 var _this = this;
37045
37046 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
37047 _ref$size = _ref.size;
37048
37049 let size = _ref$size === undefined ? 0 : _ref$size;
37050 var _ref$timeout = _ref.timeout;
37051 let timeout = _ref$timeout === undefined ? 0 : _ref$timeout;
37052
37053 if (body == null) {
37054 // body is undefined or null
37055 body = null;
37056 } else if (typeof body === 'string') ; else if (isURLSearchParams(body)) ; else if (body instanceof Blob) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') ; else if (ArrayBuffer.isView(body)) ; else if (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__) ; else {
37057 // none of the above
37058 // coerce to string
37059 body = String(body);
37060 }
37061 this[INTERNALS] = {
37062 body,
37063 disturbed: false,
37064 error: null
37065 };
37066 this.size = size;
37067 this.timeout = timeout;
37068
37069 if (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__) {
37070 body.on('error', function (err) {
37071 const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);
37072 _this[INTERNALS].error = error;
37073 });
37074 }
37075}
37076
37077Body.prototype = {
37078 get body() {
37079 return this[INTERNALS].body;
37080 },
37081
37082 get bodyUsed() {
37083 return this[INTERNALS].disturbed;
37084 },
37085
37086 /**
37087 * Decode response as ArrayBuffer
37088 *
37089 * @return Promise
37090 */
37091 arrayBuffer() {
37092 return consumeBody.call(this).then(function (buf) {
37093 return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
37094 });
37095 },
37096
37097 /**
37098 * Return raw response as Blob
37099 *
37100 * @return Promise
37101 */
37102 blob() {
37103 let ct = this.headers && this.headers.get('content-type') || '';
37104 return consumeBody.call(this).then(function (buf) {
37105 return Object.assign(
37106 // Prevent copying
37107 new Blob([], {
37108 type: ct.toLowerCase()
37109 }), {
37110 [BUFFER]: buf
37111 });
37112 });
37113 },
37114
37115 /**
37116 * Decode response as json
37117 *
37118 * @return Promise
37119 */
37120 json() {
37121 var _this2 = this;
37122
37123 return consumeBody.call(this).then(function (buffer) {
37124 try {
37125 return JSON.parse(buffer.toString());
37126 } catch (err) {
37127 return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));
37128 }
37129 });
37130 },
37131
37132 /**
37133 * Decode response as text
37134 *
37135 * @return Promise
37136 */
37137 text() {
37138 return consumeBody.call(this).then(function (buffer) {
37139 return buffer.toString();
37140 });
37141 },
37142
37143 /**
37144 * Decode response as buffer (non-spec api)
37145 *
37146 * @return Promise
37147 */
37148 buffer() {
37149 return consumeBody.call(this);
37150 },
37151
37152 /**
37153 * Decode response as text, while automatically detecting the encoding and
37154 * trying to decode to UTF-8 (non-spec api)
37155 *
37156 * @return Promise
37157 */
37158 textConverted() {
37159 var _this3 = this;
37160
37161 return consumeBody.call(this).then(function (buffer) {
37162 return convertBody(buffer, _this3.headers);
37163 });
37164 }
37165
37166};
37167
37168// In browsers, all properties are enumerable.
37169Object.defineProperties(Body.prototype, {
37170 body: { enumerable: true },
37171 bodyUsed: { enumerable: true },
37172 arrayBuffer: { enumerable: true },
37173 blob: { enumerable: true },
37174 json: { enumerable: true },
37175 text: { enumerable: true }
37176});
37177
37178Body.mixIn = function (proto) {
37179 for (const name of Object.getOwnPropertyNames(Body.prototype)) {
37180 // istanbul ignore else: future proof
37181 if (!(name in proto)) {
37182 const desc = Object.getOwnPropertyDescriptor(Body.prototype, name);
37183 Object.defineProperty(proto, name, desc);
37184 }
37185 }
37186};
37187
37188/**
37189 * Consume and convert an entire Body to a Buffer.
37190 *
37191 * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body
37192 *
37193 * @return Promise
37194 */
37195function consumeBody() {
37196 var _this4 = this;
37197
37198 if (this[INTERNALS].disturbed) {
37199 return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));
37200 }
37201
37202 this[INTERNALS].disturbed = true;
37203
37204 if (this[INTERNALS].error) {
37205 return Body.Promise.reject(this[INTERNALS].error);
37206 }
37207
37208 // body is null
37209 if (this.body === null) {
37210 return Body.Promise.resolve(Buffer.alloc(0));
37211 }
37212
37213 // body is string
37214 if (typeof this.body === 'string') {
37215 return Body.Promise.resolve(Buffer.from(this.body));
37216 }
37217
37218 // body is blob
37219 if (this.body instanceof Blob) {
37220 return Body.Promise.resolve(this.body[BUFFER]);
37221 }
37222
37223 // body is buffer
37224 if (Buffer.isBuffer(this.body)) {
37225 return Body.Promise.resolve(this.body);
37226 }
37227
37228 // body is ArrayBuffer
37229 if (Object.prototype.toString.call(this.body) === '[object ArrayBuffer]') {
37230 return Body.Promise.resolve(Buffer.from(this.body));
37231 }
37232
37233 // body is ArrayBufferView
37234 if (ArrayBuffer.isView(this.body)) {
37235 return Body.Promise.resolve(Buffer.from(this.body.buffer, this.body.byteOffset, this.body.byteLength));
37236 }
37237
37238 // istanbul ignore if: should never happen
37239 if (!(this.body instanceof stream__WEBPACK_IMPORTED_MODULE_0__)) {
37240 return Body.Promise.resolve(Buffer.alloc(0));
37241 }
37242
37243 // body is stream
37244 // get ready to actually consume the body
37245 let accum = [];
37246 let accumBytes = 0;
37247 let abort = false;
37248
37249 return new Body.Promise(function (resolve, reject) {
37250 let resTimeout;
37251
37252 // allow timeout on slow response body
37253 if (_this4.timeout) {
37254 resTimeout = setTimeout(function () {
37255 abort = true;
37256 reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));
37257 }, _this4.timeout);
37258 }
37259
37260 // handle stream errors
37261 _this4.body.on('error', function (err) {
37262 if (err.name === 'AbortError') {
37263 // if the request was aborted, reject with this Error
37264 abort = true;
37265 reject(err);
37266 } else {
37267 // other errors, such as incorrect content-encoding
37268 reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));
37269 }
37270 });
37271
37272 _this4.body.on('data', function (chunk) {
37273 if (abort || chunk === null) {
37274 return;
37275 }
37276
37277 if (_this4.size && accumBytes + chunk.length > _this4.size) {
37278 abort = true;
37279 reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));
37280 return;
37281 }
37282
37283 accumBytes += chunk.length;
37284 accum.push(chunk);
37285 });
37286
37287 _this4.body.on('end', function () {
37288 if (abort) {
37289 return;
37290 }
37291
37292 clearTimeout(resTimeout);
37293
37294 try {
37295 resolve(Buffer.concat(accum));
37296 } catch (err) {
37297 // handle streams that have accumulated too much data (issue #414)
37298 reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));
37299 }
37300 });
37301 });
37302}
37303
37304/**
37305 * Detect buffer encoding and convert to target encoding
37306 * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding
37307 *
37308 * @param Buffer buffer Incoming buffer
37309 * @param String encoding Target encoding
37310 * @return String
37311 */
37312function convertBody(buffer, headers) {
37313 if (typeof convert !== 'function') {
37314 throw new Error('The package `encoding` must be installed to use the textConverted() function');
37315 }
37316
37317 const ct = headers.get('content-type');
37318 let charset = 'utf-8';
37319 let res, str;
37320
37321 // header
37322 if (ct) {
37323 res = /charset=([^;]*)/i.exec(ct);
37324 }
37325
37326 // no charset in content type, peek at response body for at most 1024 bytes
37327 str = buffer.slice(0, 1024).toString();
37328
37329 // html5
37330 if (!res && str) {
37331 res = /<meta.+?charset=(['"])(.+?)\1/i.exec(str);
37332 }
37333
37334 // html4
37335 if (!res && str) {
37336 res = /<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(str);
37337
37338 if (res) {
37339 res = /charset=(.*)/i.exec(res.pop());
37340 }
37341 }
37342
37343 // xml
37344 if (!res && str) {
37345 res = /<\?xml.+?encoding=(['"])(.+?)\1/i.exec(str);
37346 }
37347
37348 // found charset
37349 if (res) {
37350 charset = res.pop();
37351
37352 // prevent decode issues when sites use incorrect encoding
37353 // ref: https://hsivonen.fi/encoding-menu/
37354 if (charset === 'gb2312' || charset === 'gbk') {
37355 charset = 'gb18030';
37356 }
37357 }
37358
37359 // turn raw buffers into a single utf-8 buffer
37360 return convert(buffer, 'UTF-8', charset).toString();
37361}
37362
37363/**
37364 * Detect a URLSearchParams object
37365 * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143
37366 *
37367 * @param Object obj Object to detect by type or brand
37368 * @return String
37369 */
37370function isURLSearchParams(obj) {
37371 // Duck-typing as a necessary condition.
37372 if (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {
37373 return false;
37374 }
37375
37376 // Brand-checking and more duck-typing as optional condition.
37377 return obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';
37378}
37379
37380/**
37381 * Clone body given Res/Req instance
37382 *
37383 * @param Mixed instance Response or Request instance
37384 * @return Mixed
37385 */
37386function clone(instance) {
37387 let p1, p2;
37388 let body = instance.body;
37389
37390 // don't allow cloning a used body
37391 if (instance.bodyUsed) {
37392 throw new Error('cannot clone body after it is used');
37393 }
37394
37395 // check that body is a stream and not form-data object
37396 // note: we can't clone the form-data object without having it as a dependency
37397 if (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__ && typeof body.getBoundary !== 'function') {
37398 // tee instance body
37399 p1 = new PassThrough();
37400 p2 = new PassThrough();
37401 body.pipe(p1);
37402 body.pipe(p2);
37403 // set instance body to teed body and return the other teed body
37404 instance[INTERNALS].body = p1;
37405 body = p2;
37406 }
37407
37408 return body;
37409}
37410
37411/**
37412 * Performs the operation "extract a `Content-Type` value from |object|" as
37413 * specified in the specification:
37414 * https://fetch.spec.whatwg.org/#concept-bodyinit-extract
37415 *
37416 * This function assumes that instance.body is present.
37417 *
37418 * @param Mixed instance Response or Request instance
37419 */
37420function extractContentType(instance) {
37421 const body = instance.body;
37422
37423 // istanbul ignore if: Currently, because of a guard in Request, body
37424 // can never be null. Included here for completeness.
37425
37426 if (body === null) {
37427 // body is null
37428 return null;
37429 } else if (typeof body === 'string') {
37430 // body is string
37431 return 'text/plain;charset=UTF-8';
37432 } else if (isURLSearchParams(body)) {
37433 // body is a URLSearchParams
37434 return 'application/x-www-form-urlencoded;charset=UTF-8';
37435 } else if (body instanceof Blob) {
37436 // body is blob
37437 return body.type || null;
37438 } else if (Buffer.isBuffer(body)) {
37439 // body is buffer
37440 return null;
37441 } else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
37442 // body is ArrayBuffer
37443 return null;
37444 } else if (ArrayBuffer.isView(body)) {
37445 // body is ArrayBufferView
37446 return null;
37447 } else if (typeof body.getBoundary === 'function') {
37448 // detect form data input from form-data module
37449 return `multipart/form-data;boundary=${body.getBoundary()}`;
37450 } else {
37451 // body is stream
37452 // can't really do much about this
37453 return null;
37454 }
37455}
37456
37457/**
37458 * The Fetch Standard treats this as if "total bytes" is a property on the body.
37459 * For us, we have to explicitly get it with a function.
37460 *
37461 * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes
37462 *
37463 * @param Body instance Instance of Body
37464 * @return Number? Number of bytes, or null if not possible
37465 */
37466function getTotalBytes(instance) {
37467 const body = instance.body;
37468
37469 // istanbul ignore if: included for completion
37470
37471 if (body === null) {
37472 // body is null
37473 return 0;
37474 } else if (typeof body === 'string') {
37475 // body is string
37476 return Buffer.byteLength(body);
37477 } else if (isURLSearchParams(body)) {
37478 // body is URLSearchParams
37479 return Buffer.byteLength(String(body));
37480 } else if (body instanceof Blob) {
37481 // body is blob
37482 return body.size;
37483 } else if (Buffer.isBuffer(body)) {
37484 // body is buffer
37485 return body.length;
37486 } else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
37487 // body is ArrayBuffer
37488 return body.byteLength;
37489 } else if (ArrayBuffer.isView(body)) {
37490 // body is ArrayBufferView
37491 return body.byteLength;
37492 } else if (body && typeof body.getLengthSync === 'function') {
37493 // detect form data input from form-data module
37494 if (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x
37495 body.hasKnownLength && body.hasKnownLength()) {
37496 // 2.x
37497 return body.getLengthSync();
37498 }
37499 return null;
37500 } else {
37501 // body is stream
37502 // can't really do much about this
37503 return null;
37504 }
37505}
37506
37507/**
37508 * Write a Body to a Node.js WritableStream (e.g. http.Request) object.
37509 *
37510 * @param Body instance Instance of Body
37511 * @return Void
37512 */
37513function writeToStream(dest, instance) {
37514 const body = instance.body;
37515
37516
37517 if (body === null) {
37518 // body is null
37519 dest.end();
37520 } else if (typeof body === 'string') {
37521 // body is string
37522 dest.write(body);
37523 dest.end();
37524 } else if (isURLSearchParams(body)) {
37525 // body is URLSearchParams
37526 dest.write(Buffer.from(String(body)));
37527 dest.end();
37528 } else if (body instanceof Blob) {
37529 // body is blob
37530 dest.write(body[BUFFER]);
37531 dest.end();
37532 } else if (Buffer.isBuffer(body)) {
37533 // body is buffer
37534 dest.write(body);
37535 dest.end();
37536 } else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
37537 // body is ArrayBuffer
37538 dest.write(Buffer.from(body));
37539 dest.end();
37540 } else if (ArrayBuffer.isView(body)) {
37541 // body is ArrayBufferView
37542 dest.write(Buffer.from(body.buffer, body.byteOffset, body.byteLength));
37543 dest.end();
37544 } else {
37545 // body is stream
37546 body.pipe(dest);
37547 }
37548}
37549
37550// expose Promise
37551Body.Promise = global.Promise;
37552
37553/**
37554 * headers.js
37555 *
37556 * Headers class offers convenient helpers
37557 */
37558
37559const invalidTokenRegex = /[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/;
37560const invalidHeaderCharRegex = /[^\t\x20-\x7e\x80-\xff]/;
37561
37562function validateName(name) {
37563 name = `${name}`;
37564 if (invalidTokenRegex.test(name)) {
37565 throw new TypeError(`${name} is not a legal HTTP header name`);
37566 }
37567}
37568
37569function validateValue(value) {
37570 value = `${value}`;
37571 if (invalidHeaderCharRegex.test(value)) {
37572 throw new TypeError(`${value} is not a legal HTTP header value`);
37573 }
37574}
37575
37576/**
37577 * Find the key in the map object given a header name.
37578 *
37579 * Returns undefined if not found.
37580 *
37581 * @param String name Header name
37582 * @return String|Undefined
37583 */
37584function find(map, name) {
37585 name = name.toLowerCase();
37586 for (const key in map) {
37587 if (key.toLowerCase() === name) {
37588 return key;
37589 }
37590 }
37591 return undefined;
37592}
37593
37594const MAP = Symbol('map');
37595class Headers {
37596 /**
37597 * Headers class
37598 *
37599 * @param Object headers Response headers
37600 * @return Void
37601 */
37602 constructor() {
37603 let init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
37604
37605 this[MAP] = Object.create(null);
37606
37607 if (init instanceof Headers) {
37608 const rawHeaders = init.raw();
37609 const headerNames = Object.keys(rawHeaders);
37610
37611 for (const headerName of headerNames) {
37612 for (const value of rawHeaders[headerName]) {
37613 this.append(headerName, value);
37614 }
37615 }
37616
37617 return;
37618 }
37619
37620 // We don't worry about converting prop to ByteString here as append()
37621 // will handle it.
37622 if (init == null) ; else if (typeof init === 'object') {
37623 const method = init[Symbol.iterator];
37624 if (method != null) {
37625 if (typeof method !== 'function') {
37626 throw new TypeError('Header pairs must be iterable');
37627 }
37628
37629 // sequence<sequence<ByteString>>
37630 // Note: per spec we have to first exhaust the lists then process them
37631 const pairs = [];
37632 for (const pair of init) {
37633 if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {
37634 throw new TypeError('Each header pair must be iterable');
37635 }
37636 pairs.push(Array.from(pair));
37637 }
37638
37639 for (const pair of pairs) {
37640 if (pair.length !== 2) {
37641 throw new TypeError('Each header pair must be a name/value tuple');
37642 }
37643 this.append(pair[0], pair[1]);
37644 }
37645 } else {
37646 // record<ByteString, ByteString>
37647 for (const key of Object.keys(init)) {
37648 const value = init[key];
37649 this.append(key, value);
37650 }
37651 }
37652 } else {
37653 throw new TypeError('Provided initializer must be an object');
37654 }
37655 }
37656
37657 /**
37658 * Return combined header value given name
37659 *
37660 * @param String name Header name
37661 * @return Mixed
37662 */
37663 get(name) {
37664 name = `${name}`;
37665 validateName(name);
37666 const key = find(this[MAP], name);
37667 if (key === undefined) {
37668 return null;
37669 }
37670
37671 return this[MAP][key].join(', ');
37672 }
37673
37674 /**
37675 * Iterate over all headers
37676 *
37677 * @param Function callback Executed for each item with parameters (value, name, thisArg)
37678 * @param Boolean thisArg `this` context for callback function
37679 * @return Void
37680 */
37681 forEach(callback) {
37682 let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
37683
37684 let pairs = getHeaders(this);
37685 let i = 0;
37686 while (i < pairs.length) {
37687 var _pairs$i = pairs[i];
37688 const name = _pairs$i[0],
37689 value = _pairs$i[1];
37690
37691 callback.call(thisArg, value, name, this);
37692 pairs = getHeaders(this);
37693 i++;
37694 }
37695 }
37696
37697 /**
37698 * Overwrite header values given name
37699 *
37700 * @param String name Header name
37701 * @param String value Header value
37702 * @return Void
37703 */
37704 set(name, value) {
37705 name = `${name}`;
37706 value = `${value}`;
37707 validateName(name);
37708 validateValue(value);
37709 const key = find(this[MAP], name);
37710 this[MAP][key !== undefined ? key : name] = [value];
37711 }
37712
37713 /**
37714 * Append a value onto existing header
37715 *
37716 * @param String name Header name
37717 * @param String value Header value
37718 * @return Void
37719 */
37720 append(name, value) {
37721 name = `${name}`;
37722 value = `${value}`;
37723 validateName(name);
37724 validateValue(value);
37725 const key = find(this[MAP], name);
37726 if (key !== undefined) {
37727 this[MAP][key].push(value);
37728 } else {
37729 this[MAP][name] = [value];
37730 }
37731 }
37732
37733 /**
37734 * Check for header name existence
37735 *
37736 * @param String name Header name
37737 * @return Boolean
37738 */
37739 has(name) {
37740 name = `${name}`;
37741 validateName(name);
37742 return find(this[MAP], name) !== undefined;
37743 }
37744
37745 /**
37746 * Delete all header values given name
37747 *
37748 * @param String name Header name
37749 * @return Void
37750 */
37751 delete(name) {
37752 name = `${name}`;
37753 validateName(name);
37754 const key = find(this[MAP], name);
37755 if (key !== undefined) {
37756 delete this[MAP][key];
37757 }
37758 }
37759
37760 /**
37761 * Return raw headers (non-spec api)
37762 *
37763 * @return Object
37764 */
37765 raw() {
37766 return this[MAP];
37767 }
37768
37769 /**
37770 * Get an iterator on keys.
37771 *
37772 * @return Iterator
37773 */
37774 keys() {
37775 return createHeadersIterator(this, 'key');
37776 }
37777
37778 /**
37779 * Get an iterator on values.
37780 *
37781 * @return Iterator
37782 */
37783 values() {
37784 return createHeadersIterator(this, 'value');
37785 }
37786
37787 /**
37788 * Get an iterator on entries.
37789 *
37790 * This is the default iterator of the Headers object.
37791 *
37792 * @return Iterator
37793 */
37794 [Symbol.iterator]() {
37795 return createHeadersIterator(this, 'key+value');
37796 }
37797}
37798Headers.prototype.entries = Headers.prototype[Symbol.iterator];
37799
37800Object.defineProperty(Headers.prototype, Symbol.toStringTag, {
37801 value: 'Headers',
37802 writable: false,
37803 enumerable: false,
37804 configurable: true
37805});
37806
37807Object.defineProperties(Headers.prototype, {
37808 get: { enumerable: true },
37809 forEach: { enumerable: true },
37810 set: { enumerable: true },
37811 append: { enumerable: true },
37812 has: { enumerable: true },
37813 delete: { enumerable: true },
37814 keys: { enumerable: true },
37815 values: { enumerable: true },
37816 entries: { enumerable: true }
37817});
37818
37819function getHeaders(headers) {
37820 let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';
37821
37822 const keys = Object.keys(headers[MAP]).sort();
37823 return keys.map(kind === 'key' ? function (k) {
37824 return k.toLowerCase();
37825 } : kind === 'value' ? function (k) {
37826 return headers[MAP][k].join(', ');
37827 } : function (k) {
37828 return [k.toLowerCase(), headers[MAP][k].join(', ')];
37829 });
37830}
37831
37832const INTERNAL = Symbol('internal');
37833
37834function createHeadersIterator(target, kind) {
37835 const iterator = Object.create(HeadersIteratorPrototype);
37836 iterator[INTERNAL] = {
37837 target,
37838 kind,
37839 index: 0
37840 };
37841 return iterator;
37842}
37843
37844const HeadersIteratorPrototype = Object.setPrototypeOf({
37845 next() {
37846 // istanbul ignore if
37847 if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {
37848 throw new TypeError('Value of `this` is not a HeadersIterator');
37849 }
37850
37851 var _INTERNAL = this[INTERNAL];
37852 const target = _INTERNAL.target,
37853 kind = _INTERNAL.kind,
37854 index = _INTERNAL.index;
37855
37856 const values = getHeaders(target, kind);
37857 const len = values.length;
37858 if (index >= len) {
37859 return {
37860 value: undefined,
37861 done: true
37862 };
37863 }
37864
37865 this[INTERNAL].index = index + 1;
37866
37867 return {
37868 value: values[index],
37869 done: false
37870 };
37871 }
37872}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));
37873
37874Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {
37875 value: 'HeadersIterator',
37876 writable: false,
37877 enumerable: false,
37878 configurable: true
37879});
37880
37881/**
37882 * Export the Headers object in a form that Node.js can consume.
37883 *
37884 * @param Headers headers
37885 * @return Object
37886 */
37887function exportNodeCompatibleHeaders(headers) {
37888 const obj = Object.assign({ __proto__: null }, headers[MAP]);
37889
37890 // http.request() only supports string as Host header. This hack makes
37891 // specifying custom Host header possible.
37892 const hostHeaderKey = find(headers[MAP], 'Host');
37893 if (hostHeaderKey !== undefined) {
37894 obj[hostHeaderKey] = obj[hostHeaderKey][0];
37895 }
37896
37897 return obj;
37898}
37899
37900/**
37901 * Create a Headers object from an object of headers, ignoring those that do
37902 * not conform to HTTP grammar productions.
37903 *
37904 * @param Object obj Object of headers
37905 * @return Headers
37906 */
37907function createHeadersLenient(obj) {
37908 const headers = new Headers();
37909 for (const name of Object.keys(obj)) {
37910 if (invalidTokenRegex.test(name)) {
37911 continue;
37912 }
37913 if (Array.isArray(obj[name])) {
37914 for (const val of obj[name]) {
37915 if (invalidHeaderCharRegex.test(val)) {
37916 continue;
37917 }
37918 if (headers[MAP][name] === undefined) {
37919 headers[MAP][name] = [val];
37920 } else {
37921 headers[MAP][name].push(val);
37922 }
37923 }
37924 } else if (!invalidHeaderCharRegex.test(obj[name])) {
37925 headers[MAP][name] = [obj[name]];
37926 }
37927 }
37928 return headers;
37929}
37930
37931const INTERNALS$1 = Symbol('Response internals');
37932
37933// fix an issue where "STATUS_CODES" aren't a named export for node <10
37934const STATUS_CODES = http__WEBPACK_IMPORTED_MODULE_1__.STATUS_CODES;
37935
37936/**
37937 * Response class
37938 *
37939 * @param Stream body Readable stream
37940 * @param Object opts Response options
37941 * @return Void
37942 */
37943class Response {
37944 constructor() {
37945 let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
37946 let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
37947
37948 Body.call(this, body, opts);
37949
37950 const status = opts.status || 200;
37951
37952 this[INTERNALS$1] = {
37953 url: opts.url,
37954 status,
37955 statusText: opts.statusText || STATUS_CODES[status],
37956 headers: new Headers(opts.headers)
37957 };
37958 }
37959
37960 get url() {
37961 return this[INTERNALS$1].url;
37962 }
37963
37964 get status() {
37965 return this[INTERNALS$1].status;
37966 }
37967
37968 /**
37969 * Convenience property representing if the request ended normally
37970 */
37971 get ok() {
37972 return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;
37973 }
37974
37975 get statusText() {
37976 return this[INTERNALS$1].statusText;
37977 }
37978
37979 get headers() {
37980 return this[INTERNALS$1].headers;
37981 }
37982
37983 /**
37984 * Clone this response
37985 *
37986 * @return Response
37987 */
37988 clone() {
37989 return new Response(clone(this), {
37990 url: this.url,
37991 status: this.status,
37992 statusText: this.statusText,
37993 headers: this.headers,
37994 ok: this.ok
37995 });
37996 }
37997}
37998
37999Body.mixIn(Response.prototype);
38000
38001Object.defineProperties(Response.prototype, {
38002 url: { enumerable: true },
38003 status: { enumerable: true },
38004 ok: { enumerable: true },
38005 statusText: { enumerable: true },
38006 headers: { enumerable: true },
38007 clone: { enumerable: true }
38008});
38009
38010Object.defineProperty(Response.prototype, Symbol.toStringTag, {
38011 value: 'Response',
38012 writable: false,
38013 enumerable: false,
38014 configurable: true
38015});
38016
38017const INTERNALS$2 = Symbol('Request internals');
38018
38019// fix an issue where "format", "parse" aren't a named export for node <10
38020const parse_url = url__WEBPACK_IMPORTED_MODULE_2__.parse;
38021const format_url = url__WEBPACK_IMPORTED_MODULE_2__.format;
38022
38023const streamDestructionSupported = 'destroy' in stream__WEBPACK_IMPORTED_MODULE_0__.Readable.prototype;
38024
38025/**
38026 * Check if a value is an instance of Request.
38027 *
38028 * @param Mixed input
38029 * @return Boolean
38030 */
38031function isRequest(input) {
38032 return typeof input === 'object' && typeof input[INTERNALS$2] === 'object';
38033}
38034
38035function isAbortSignal(signal) {
38036 const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);
38037 return !!(proto && proto.constructor.name === 'AbortSignal');
38038}
38039
38040/**
38041 * Request class
38042 *
38043 * @param Mixed input Url or Request instance
38044 * @param Object init Custom options
38045 * @return Void
38046 */
38047class Request {
38048 constructor(input) {
38049 let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
38050
38051 let parsedURL;
38052
38053 // normalize input
38054 if (!isRequest(input)) {
38055 if (input && input.href) {
38056 // in order to support Node.js' Url objects; though WHATWG's URL objects
38057 // will fall into this branch also (since their `toString()` will return
38058 // `href` property anyway)
38059 parsedURL = parse_url(input.href);
38060 } else {
38061 // coerce input to a string before attempting to parse
38062 parsedURL = parse_url(`${input}`);
38063 }
38064 input = {};
38065 } else {
38066 parsedURL = parse_url(input.url);
38067 }
38068
38069 let method = init.method || input.method || 'GET';
38070 method = method.toUpperCase();
38071
38072 if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {
38073 throw new TypeError('Request with GET/HEAD method cannot have body');
38074 }
38075
38076 let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;
38077
38078 Body.call(this, inputBody, {
38079 timeout: init.timeout || input.timeout || 0,
38080 size: init.size || input.size || 0
38081 });
38082
38083 const headers = new Headers(init.headers || input.headers || {});
38084
38085 if (init.body != null) {
38086 const contentType = extractContentType(this);
38087 if (contentType !== null && !headers.has('Content-Type')) {
38088 headers.append('Content-Type', contentType);
38089 }
38090 }
38091
38092 let signal = isRequest(input) ? input.signal : null;
38093 if ('signal' in init) signal = init.signal;
38094
38095 if (signal != null && !isAbortSignal(signal)) {
38096 throw new TypeError('Expected signal to be an instanceof AbortSignal');
38097 }
38098
38099 this[INTERNALS$2] = {
38100 method,
38101 redirect: init.redirect || input.redirect || 'follow',
38102 headers,
38103 parsedURL,
38104 signal
38105 };
38106
38107 // node-fetch-only options
38108 this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;
38109 this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
38110 this.counter = init.counter || input.counter || 0;
38111 this.agent = init.agent || input.agent;
38112 }
38113
38114 get method() {
38115 return this[INTERNALS$2].method;
38116 }
38117
38118 get url() {
38119 return format_url(this[INTERNALS$2].parsedURL);
38120 }
38121
38122 get headers() {
38123 return this[INTERNALS$2].headers;
38124 }
38125
38126 get redirect() {
38127 return this[INTERNALS$2].redirect;
38128 }
38129
38130 get signal() {
38131 return this[INTERNALS$2].signal;
38132 }
38133
38134 /**
38135 * Clone this request
38136 *
38137 * @return Request
38138 */
38139 clone() {
38140 return new Request(this);
38141 }
38142}
38143
38144Body.mixIn(Request.prototype);
38145
38146Object.defineProperty(Request.prototype, Symbol.toStringTag, {
38147 value: 'Request',
38148 writable: false,
38149 enumerable: false,
38150 configurable: true
38151});
38152
38153Object.defineProperties(Request.prototype, {
38154 method: { enumerable: true },
38155 url: { enumerable: true },
38156 headers: { enumerable: true },
38157 redirect: { enumerable: true },
38158 clone: { enumerable: true },
38159 signal: { enumerable: true }
38160});
38161
38162/**
38163 * Convert a Request to Node.js http request options.
38164 *
38165 * @param Request A Request instance
38166 * @return Object The options object to be passed to http.request
38167 */
38168function getNodeRequestOptions(request) {
38169 const parsedURL = request[INTERNALS$2].parsedURL;
38170 const headers = new Headers(request[INTERNALS$2].headers);
38171
38172 // fetch step 1.3
38173 if (!headers.has('Accept')) {
38174 headers.set('Accept', '*/*');
38175 }
38176
38177 // Basic fetch
38178 if (!parsedURL.protocol || !parsedURL.hostname) {
38179 throw new TypeError('Only absolute URLs are supported');
38180 }
38181
38182 if (!/^https?:$/.test(parsedURL.protocol)) {
38183 throw new TypeError('Only HTTP(S) protocols are supported');
38184 }
38185
38186 if (request.signal && request.body instanceof stream__WEBPACK_IMPORTED_MODULE_0__.Readable && !streamDestructionSupported) {
38187 throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');
38188 }
38189
38190 // HTTP-network-or-cache fetch steps 2.4-2.7
38191 let contentLengthValue = null;
38192 if (request.body == null && /^(POST|PUT)$/i.test(request.method)) {
38193 contentLengthValue = '0';
38194 }
38195 if (request.body != null) {
38196 const totalBytes = getTotalBytes(request);
38197 if (typeof totalBytes === 'number') {
38198 contentLengthValue = String(totalBytes);
38199 }
38200 }
38201 if (contentLengthValue) {
38202 headers.set('Content-Length', contentLengthValue);
38203 }
38204
38205 // HTTP-network-or-cache fetch step 2.11
38206 if (!headers.has('User-Agent')) {
38207 headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');
38208 }
38209
38210 // HTTP-network-or-cache fetch step 2.15
38211 if (request.compress && !headers.has('Accept-Encoding')) {
38212 headers.set('Accept-Encoding', 'gzip,deflate');
38213 }
38214
38215 if (!headers.has('Connection') && !request.agent) {
38216 headers.set('Connection', 'close');
38217 }
38218
38219 // HTTP-network fetch step 4.2
38220 // chunked encoding is handled by Node.js
38221
38222 return Object.assign({}, parsedURL, {
38223 method: request.method,
38224 headers: exportNodeCompatibleHeaders(headers),
38225 agent: request.agent
38226 });
38227}
38228
38229/**
38230 * abort-error.js
38231 *
38232 * AbortError interface for cancelled requests
38233 */
38234
38235/**
38236 * Create AbortError instance
38237 *
38238 * @param String message Error message for human
38239 * @return AbortError
38240 */
38241function AbortError(message) {
38242 Error.call(this, message);
38243
38244 this.type = 'aborted';
38245 this.message = message;
38246
38247 // hide custom error implementation details from end-users
38248 Error.captureStackTrace(this, this.constructor);
38249}
38250
38251AbortError.prototype = Object.create(Error.prototype);
38252AbortError.prototype.constructor = AbortError;
38253AbortError.prototype.name = 'AbortError';
38254
38255// fix an issue where "PassThrough", "resolve" aren't a named export for node <10
38256const PassThrough$1 = stream__WEBPACK_IMPORTED_MODULE_0__.PassThrough;
38257const resolve_url = url__WEBPACK_IMPORTED_MODULE_2__.resolve;
38258
38259/**
38260 * Fetch function
38261 *
38262 * @param Mixed url Absolute url or Request instance
38263 * @param Object opts Fetch options
38264 * @return Promise
38265 */
38266function fetch(url, opts) {
38267
38268 // allow custom promise
38269 if (!fetch.Promise) {
38270 throw new Error('native promise missing, set fetch.Promise to your favorite alternative');
38271 }
38272
38273 Body.Promise = fetch.Promise;
38274
38275 // wrap http.request into fetch
38276 return new fetch.Promise(function (resolve, reject) {
38277 // build request object
38278 const request = new Request(url, opts);
38279 const options = getNodeRequestOptions(request);
38280
38281 const send = (options.protocol === 'https:' ? https__WEBPACK_IMPORTED_MODULE_3__ : http__WEBPACK_IMPORTED_MODULE_1__).request;
38282 const signal = request.signal;
38283
38284 let response = null;
38285
38286 const abort = function abort() {
38287 let error = new AbortError('The user aborted a request.');
38288 reject(error);
38289 if (request.body && request.body instanceof stream__WEBPACK_IMPORTED_MODULE_0__.Readable) {
38290 request.body.destroy(error);
38291 }
38292 if (!response || !response.body) return;
38293 response.body.emit('error', error);
38294 };
38295
38296 if (signal && signal.aborted) {
38297 abort();
38298 return;
38299 }
38300
38301 const abortAndFinalize = function abortAndFinalize() {
38302 abort();
38303 finalize();
38304 };
38305
38306 // send request
38307 const req = send(options);
38308 let reqTimeout;
38309
38310 if (signal) {
38311 signal.addEventListener('abort', abortAndFinalize);
38312 }
38313
38314 function finalize() {
38315 req.abort();
38316 if (signal) signal.removeEventListener('abort', abortAndFinalize);
38317 clearTimeout(reqTimeout);
38318 }
38319
38320 if (request.timeout) {
38321 req.once('socket', function (socket) {
38322 reqTimeout = setTimeout(function () {
38323 reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));
38324 finalize();
38325 }, request.timeout);
38326 });
38327 }
38328
38329 req.on('error', function (err) {
38330 reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));
38331 finalize();
38332 });
38333
38334 req.on('response', function (res) {
38335 clearTimeout(reqTimeout);
38336
38337 const headers = createHeadersLenient(res.headers);
38338
38339 // HTTP fetch step 5
38340 if (fetch.isRedirect(res.statusCode)) {
38341 // HTTP fetch step 5.2
38342 const location = headers.get('Location');
38343
38344 // HTTP fetch step 5.3
38345 const locationURL = location === null ? null : resolve_url(request.url, location);
38346
38347 // HTTP fetch step 5.5
38348 switch (request.redirect) {
38349 case 'error':
38350 reject(new FetchError(`redirect mode is set to error: ${request.url}`, 'no-redirect'));
38351 finalize();
38352 return;
38353 case 'manual':
38354 // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.
38355 if (locationURL !== null) {
38356 // handle corrupted header
38357 try {
38358 headers.set('Location', locationURL);
38359 } catch (err) {
38360 // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request
38361 reject(err);
38362 }
38363 }
38364 break;
38365 case 'follow':
38366 // HTTP-redirect fetch step 2
38367 if (locationURL === null) {
38368 break;
38369 }
38370
38371 // HTTP-redirect fetch step 5
38372 if (request.counter >= request.follow) {
38373 reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));
38374 finalize();
38375 return;
38376 }
38377
38378 // HTTP-redirect fetch step 6 (counter increment)
38379 // Create a new Request object.
38380 const requestOpts = {
38381 headers: new Headers(request.headers),
38382 follow: request.follow,
38383 counter: request.counter + 1,
38384 agent: request.agent,
38385 compress: request.compress,
38386 method: request.method,
38387 body: request.body,
38388 signal: request.signal
38389 };
38390
38391 // HTTP-redirect fetch step 9
38392 if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {
38393 reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));
38394 finalize();
38395 return;
38396 }
38397
38398 // HTTP-redirect fetch step 11
38399 if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {
38400 requestOpts.method = 'GET';
38401 requestOpts.body = undefined;
38402 requestOpts.headers.delete('content-length');
38403 }
38404
38405 // HTTP-redirect fetch step 15
38406 resolve(fetch(new Request(locationURL, requestOpts)));
38407 finalize();
38408 return;
38409 }
38410 }
38411
38412 // prepare response
38413 res.once('end', function () {
38414 if (signal) signal.removeEventListener('abort', abortAndFinalize);
38415 });
38416 let body = res.pipe(new PassThrough$1());
38417
38418 const response_options = {
38419 url: request.url,
38420 status: res.statusCode,
38421 statusText: res.statusMessage,
38422 headers: headers,
38423 size: request.size,
38424 timeout: request.timeout
38425 };
38426
38427 // HTTP-network fetch step 12.1.1.3
38428 const codings = headers.get('Content-Encoding');
38429
38430 // HTTP-network fetch step 12.1.1.4: handle content codings
38431
38432 // in following scenarios we ignore compression support
38433 // 1. compression support is disabled
38434 // 2. HEAD request
38435 // 3. no Content-Encoding header
38436 // 4. no content response (204)
38437 // 5. content not modified response (304)
38438 if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {
38439 response = new Response(body, response_options);
38440 resolve(response);
38441 return;
38442 }
38443
38444 // For Node v6+
38445 // Be less strict when decoding compressed responses, since sometimes
38446 // servers send slightly invalid responses that are still accepted
38447 // by common browsers.
38448 // Always using Z_SYNC_FLUSH is what cURL does.
38449 const zlibOptions = {
38450 flush: zlib__WEBPACK_IMPORTED_MODULE_4__.Z_SYNC_FLUSH,
38451 finishFlush: zlib__WEBPACK_IMPORTED_MODULE_4__.Z_SYNC_FLUSH
38452 };
38453
38454 // for gzip
38455 if (codings == 'gzip' || codings == 'x-gzip') {
38456 body = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_4__.createGunzip(zlibOptions));
38457 response = new Response(body, response_options);
38458 resolve(response);
38459 return;
38460 }
38461
38462 // for deflate
38463 if (codings == 'deflate' || codings == 'x-deflate') {
38464 // handle the infamous raw deflate response from old servers
38465 // a hack for old IIS and Apache servers
38466 const raw = res.pipe(new PassThrough$1());
38467 raw.once('data', function (chunk) {
38468 // see http://stackoverflow.com/questions/37519828
38469 if ((chunk[0] & 0x0F) === 0x08) {
38470 body = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_4__.createInflate());
38471 } else {
38472 body = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_4__.createInflateRaw());
38473 }
38474 response = new Response(body, response_options);
38475 resolve(response);
38476 });
38477 return;
38478 }
38479
38480 // otherwise, use response as-is
38481 response = new Response(body, response_options);
38482 resolve(response);
38483 });
38484
38485 writeToStream(req, request);
38486 });
38487}
38488/**
38489 * Redirect code matching
38490 *
38491 * @param Number code Status code
38492 * @return Boolean
38493 */
38494fetch.isRedirect = function (code) {
38495 return code === 301 || code === 302 || code === 303 || code === 307 || code === 308;
38496};
38497
38498// expose Promise
38499fetch.Promise = global.Promise;
38500
38501/* harmony default export */ __webpack_exports__["default"] = (fetch);
38502
38503
38504
38505/***/ }),
38506
38507/***/ "./node_modules/once/once.js":
38508/*!***********************************!*\
38509 !*** ./node_modules/once/once.js ***!
38510 \***********************************/
38511/*! no static exports found */
38512/***/ (function(module, exports, __webpack_require__) {
38513
38514var wrappy = __webpack_require__(/*! wrappy */ "./node_modules/wrappy/wrappy.js")
38515module.exports = wrappy(once)
38516module.exports.strict = wrappy(onceStrict)
38517
38518once.proto = once(function () {
38519 Object.defineProperty(Function.prototype, 'once', {
38520 value: function () {
38521 return once(this)
38522 },
38523 configurable: true
38524 })
38525
38526 Object.defineProperty(Function.prototype, 'onceStrict', {
38527 value: function () {
38528 return onceStrict(this)
38529 },
38530 configurable: true
38531 })
38532})
38533
38534function once (fn) {
38535 var f = function () {
38536 if (f.called) return f.value
38537 f.called = true
38538 return f.value = fn.apply(this, arguments)
38539 }
38540 f.called = false
38541 return f
38542}
38543
38544function onceStrict (fn) {
38545 var f = function () {
38546 if (f.called)
38547 throw new Error(f.onceError)
38548 f.called = true
38549 return f.value = fn.apply(this, arguments)
38550 }
38551 var name = fn.name || 'Function wrapped with `once`'
38552 f.onceError = name + " shouldn't be called more than once"
38553 f.called = false
38554 return f
38555}
38556
38557
38558/***/ }),
38559
38560/***/ "./node_modules/onetime/index.js":
38561/*!***************************************!*\
38562 !*** ./node_modules/onetime/index.js ***!
38563 \***************************************/
38564/*! no static exports found */
38565/***/ (function(module, exports, __webpack_require__) {
38566
38567"use strict";
38568
38569const mimicFn = __webpack_require__(/*! mimic-fn */ "./node_modules/mimic-fn/index.js");
38570
38571module.exports = (fn, opts) => {
38572 // TODO: Remove this in v3
38573 if (opts === true) {
38574 throw new TypeError('The second argument is now an options object');
38575 }
38576
38577 if (typeof fn !== 'function') {
38578 throw new TypeError('Expected a function');
38579 }
38580
38581 opts = opts || {};
38582
38583 let ret;
38584 let called = false;
38585 const fnName = fn.displayName || fn.name || '<anonymous>';
38586
38587 const onetime = function () {
38588 if (called) {
38589 if (opts.throw === true) {
38590 throw new Error(`Function \`${fnName}\` can only be called once`);
38591 }
38592
38593 return ret;
38594 }
38595
38596 called = true;
38597 ret = fn.apply(this, arguments);
38598 fn = null;
38599
38600 return ret;
38601 };
38602
38603 mimicFn(onetime, fn);
38604
38605 return onetime;
38606};
38607
38608
38609/***/ }),
38610
38611/***/ "./node_modules/os-tmpdir/index.js":
38612/*!*****************************************!*\
38613 !*** ./node_modules/os-tmpdir/index.js ***!
38614 \*****************************************/
38615/*! no static exports found */
38616/***/ (function(module, exports, __webpack_require__) {
38617
38618"use strict";
38619
38620var isWindows = process.platform === 'win32';
38621var trailingSlashRe = isWindows ? /[^:]\\$/ : /.\/$/;
38622
38623// https://github.com/nodejs/node/blob/3e7a14381497a3b73dda68d05b5130563cdab420/lib/os.js#L25-L43
38624module.exports = function () {
38625 var path;
38626
38627 if (isWindows) {
38628 path = process.env.TEMP ||
38629 process.env.TMP ||
38630 (process.env.SystemRoot || process.env.windir) + '\\temp';
38631 } else {
38632 path = process.env.TMPDIR ||
38633 process.env.TMP ||
38634 process.env.TEMP ||
38635 '/tmp';
38636 }
38637
38638 if (trailingSlashRe.test(path)) {
38639 path = path.slice(0, -1);
38640 }
38641
38642 return path;
38643};
38644
38645
38646/***/ }),
38647
38648/***/ "./node_modules/path-is-absolute/index.js":
38649/*!************************************************!*\
38650 !*** ./node_modules/path-is-absolute/index.js ***!
38651 \************************************************/
38652/*! no static exports found */
38653/***/ (function(module, exports, __webpack_require__) {
38654
38655"use strict";
38656
38657
38658function posix(path) {
38659 return path.charAt(0) === '/';
38660}
38661
38662function win32(path) {
38663 // https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56
38664 var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
38665 var result = splitDeviceRe.exec(path);
38666 var device = result[1] || '';
38667 var isUnc = Boolean(device && device.charAt(1) !== ':');
38668
38669 // UNC paths are always absolute
38670 return Boolean(result[2] || isUnc);
38671}
38672
38673module.exports = process.platform === 'win32' ? win32 : posix;
38674module.exports.posix = posix;
38675module.exports.win32 = win32;
38676
38677
38678/***/ }),
38679
38680/***/ "./node_modules/relaxed-json/relaxed-json.js":
38681/*!***************************************************!*\
38682 !*** ./node_modules/relaxed-json/relaxed-json.js ***!
38683 \***************************************************/
38684/*! no static exports found */
38685/***/ (function(module, exports, __webpack_require__) {
38686
38687/*
38688 Copyright (c) 2013, Oleg Grenrus
38689 All rights reserved.
38690
38691 Redistribution and use in source and binary forms, with or without
38692 modification, are permitted provided that the following conditions are met:
38693 * Redistributions of source code must retain the above copyright
38694 notice, this list of conditions and the following disclaimer.
38695 * Redistributions in binary form must reproduce the above copyright
38696 notice, this list of conditions and the following disclaimer in the
38697 documentation and/or other materials provided with the distribution.
38698 * Neither the name of the Oleg Grenrus nor the
38699 names of its contributors may be used to endorse or promote products
38700 derived from this software without specific prior written permission.
38701
38702 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
38703 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
38704 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38705 DISCLAIMED. IN NO EVENT SHALL OLEG GRENRUS BE LIABLE FOR ANY
38706 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
38707 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
38708 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
38709 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38710 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
38711 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38712*/
38713(function () {
38714 "use strict";
38715
38716 // slightly different from ES5 some, without cast to boolean
38717 // [x, y, z].some(f):
38718 // ES5: !! ( f(x) || f(y) || f(z) || false)
38719 // this: ( f(x) || f(y) || f(z) || false)
38720 function some(array, f) {
38721 var acc = false;
38722 for (var i = 0; i < array.length; i++) {
38723 acc = f(array[i], i, array);
38724 if (acc) {
38725 return acc;
38726 }
38727 }
38728 return acc;
38729 }
38730
38731 function makeLexer(tokenSpecs) {
38732 return function (contents) {
38733 var tokens = [];
38734 var line = 1;
38735
38736 function findToken() {
38737 return some(tokenSpecs, function (tokenSpec) {
38738 var m = tokenSpec.re.exec(contents);
38739 if (m) {
38740 var raw = m[0];
38741 contents = contents.slice(raw.length);
38742 return {
38743 raw: raw,
38744 matched: tokenSpec.f(m, line),
38745 };
38746 } else {
38747 return undefined;
38748 }
38749 });
38750 }
38751
38752 while (contents !== "") {
38753 var matched = findToken();
38754
38755 if (!matched) {
38756 var err = new SyntaxError("Unexpected character: " + contents[0] + "; input: " + contents.substr(0, 100));
38757 err.line = line;
38758 throw err;
38759 }
38760
38761 // add line to token
38762 matched.matched.line = line;
38763
38764 // count lines
38765 line += matched.raw.replace(/[^\n]/g, "").length;
38766
38767 tokens.push(matched.matched);
38768 }
38769
38770 return tokens;
38771 };
38772 }
38773
38774 function fStringSingle(m) {
38775 // String in single quotes
38776 var content = m[1].replace(/([^'\\]|\\['bnrtf\\]|\\u[0-9a-fA-F]{4})/g, function (mm) {
38777 if (mm === "\"") {
38778 return "\\\"";
38779 } else if (mm === "\\'") {
38780 return "'";
38781 } else {
38782 return mm;
38783 }
38784 });
38785
38786 return {
38787 type: "string",
38788 match: "\"" + content + "\"",
38789 value: JSON.parse("\"" + content + "\""), // abusing real JSON.parse to unquote string
38790 };
38791 }
38792
38793 function fStringDouble(m) {
38794 return {
38795 type: "string",
38796 match: m[0],
38797 value: JSON.parse(m[0]),
38798 };
38799 }
38800
38801 function fIdentifier(m) {
38802 // identifiers are transformed into strings
38803 return {
38804 type: "string",
38805 value: m[0],
38806 match: "\"" + m[0].replace(/./g, function (c) {
38807 return c === "\\" ? "\\\\" : c;
38808 }) + "\"",
38809 };
38810 }
38811
38812 function fComment(m) {
38813 // comments are whitespace, leave only linefeeds
38814 return {
38815 type: " ",
38816 match: m[0].replace(/./g, function (c) {
38817 return (/\s/).test(c) ? c : " ";
38818 }),
38819 };
38820 }
38821
38822 function fNumber(m) {
38823 return {
38824 type: "number",
38825 match: m[0],
38826 value: parseFloat(m[0]),
38827 };
38828 }
38829
38830 function fKeyword(m) {
38831 var value;
38832 switch (m[1]) {
38833 case "null": value = null; break;
38834 case "true": value = true; break;
38835 case "false": value = false; break;
38836 // no default
38837 }
38838 return {
38839 type: "atom",
38840 match: m[0],
38841 value: value,
38842 };
38843 }
38844
38845 function makeTokenSpecs(relaxed) {
38846 function f(type) {
38847 return function (m) {
38848 return { type: type, match: m[0] };
38849 };
38850 }
38851
38852 var ret = [
38853 { re: /^\s+/, f: f(" ") },
38854 { re: /^\{/, f: f("{") },
38855 { re: /^\}/, f: f("}") },
38856 { re: /^\[/, f: f("[") },
38857 { re: /^\]/, f: f("]") },
38858 { re: /^,/, f: f(",") },
38859 { re: /^:/, f: f(":") },
38860 { re: /^(true|false|null)/, f: fKeyword },
38861 { re: /^\-?\d+(\.\d+)?([eE][+-]?\d+)?/, f: fNumber },
38862 { re: /^"([^"\\]|\\["bnrtf\\\/]|\\u[0-9a-fA-F]{4})*"/, f: fStringDouble },
38863 ];
38864
38865 // additional stuff
38866 if (relaxed) {
38867 ret = ret.concat([
38868 { re: /^'(([^'\\]|\\['bnrtf\\\/]|\\u[0-9a-fA-F]{4})*)'/, f: fStringSingle },
38869 { re: /^\/\/.*?(?:\r\n|\r|\n)/, f: fComment },
38870 { re: /^\/\*[\s\S]*?\*\//, f: fComment },
38871 { re: /^[$a-zA-Z0-9_\-+\.\*\?!\|&%\^\/#\\]+/, f: fIdentifier },
38872 ]);
38873 }
38874
38875 return ret;
38876 }
38877
38878 var lexer = makeLexer(makeTokenSpecs(true));
38879 var strictLexer = makeLexer(makeTokenSpecs(false));
38880
38881 function previousNWSToken(tokens, index) {
38882 for (; index >= 0; index--) {
38883 if (tokens[index].type !== " ") {
38884 return index;
38885 }
38886 }
38887 return undefined;
38888 }
38889
38890 function stripTrailingComma(tokens) {
38891 var res = [];
38892
38893 tokens.forEach(function (token, index) {
38894 if (token.type === "]" || token.type === "}") {
38895 // go backwards as long as there is whitespace, until first comma
38896 var commaI = previousNWSToken(res, index - 1);
38897
38898 if (commaI && res[commaI].type === ",") {
38899 var preCommaI = previousNWSToken(res, commaI - 1);
38900 if (preCommaI && res[preCommaI].type !== "[" && res[preCommaI].type !== "{") {
38901 res[commaI] = {
38902 type: " ",
38903 match: " ",
38904 line: tokens[commaI].line,
38905 };
38906 }
38907 }
38908 }
38909
38910 res.push(token);
38911 });
38912
38913 return res;
38914 }
38915
38916 function transform(text) {
38917 // Tokenize contents
38918 var tokens = lexer(text);
38919
38920 // remove trailing commas
38921 tokens = stripTrailingComma(tokens);
38922
38923 // concat stuff
38924 return tokens.reduce(function (str, token) {
38925 return str + token.match;
38926 }, "");
38927 }
38928
38929 function popToken(tokens, state) {
38930 var token = tokens[state.pos];
38931 state.pos += 1;
38932
38933 if (!token) {
38934 var line = tokens.length !== 0 ? tokens[tokens.length - 1].line : 1;
38935 return { type: "eof", line: line };
38936 }
38937
38938 return token;
38939 }
38940
38941 function strToken(token) {
38942 switch (token.type) {
38943 case "atom":
38944 case "string":
38945 case "number":
38946 return token.type + " " + token.match;
38947 case "eof":
38948 return "end-of-file";
38949 default:
38950 return "'" + token.type + "'";
38951 }
38952 }
38953
38954 function skipColon(tokens, state) {
38955 var colon = popToken(tokens, state);
38956 if (colon.type !== ":") {
38957 var message = "Unexpected token: " + strToken(colon) + ", expected ':'";
38958 if (state.tolerant) {
38959 state.warnings.push({
38960 message: message,
38961 line: colon.line,
38962 });
38963
38964 state.pos -= 1;
38965 } else {
38966 var err = new SyntaxError(message);
38967 err.line = colon.line;
38968 throw err;
38969 }
38970 }
38971 }
38972
38973 function skipPunctuation(tokens, state, valid) {
38974 var punctuation = [",", ":", "]", "}"];
38975 var token = popToken(tokens, state);
38976 while (true) { // eslint-disable-line no-constant-condition
38977 if (valid && valid.indexOf(token.type) !== -1) {
38978 return token;
38979 } else if (token.type === "eof") {
38980 return token;
38981 } else if (punctuation.indexOf(token.type) !== -1) {
38982 var message = "Unexpected token: " + strToken(token) + ", expected '[', '{', number, string or atom";
38983 if (state.tolerant) {
38984 state.warnings.push({
38985 message: message,
38986 line: token.line,
38987 });
38988 token = popToken(tokens, state);
38989 } else {
38990 var err = new SyntaxError(message);
38991 err.line = token.line;
38992 throw err;
38993 }
38994 } else {
38995 return token;
38996 }
38997 }
38998 }
38999
39000 function raiseError(state, token, message) {
39001 if (state.tolerant) {
39002 state.warnings.push({
39003 message: message,
39004 line: token.line,
39005 });
39006 } else {
39007 var err = new SyntaxError(message);
39008 err.line = token.line;
39009 throw err;
39010 }
39011 }
39012
39013 function raiseUnexpected(state, token, expected) {
39014 raiseError(state, token, "Unexpected token: " + strToken(token) + ", expected " + expected);
39015 }
39016
39017 function checkDuplicates(state, obj, token) {
39018 var key = token.value;
39019
39020 if (state.duplicate && Object.prototype.hasOwnProperty.call(obj, key)) {
39021 raiseError(state, token, "Duplicate key: " + key);
39022 }
39023 }
39024
39025 function appendPair(state, obj, key, value) {
39026 value = state.reviver ? state.reviver(key, value) : value;
39027 if (value !== undefined) {
39028 obj[key] = value;
39029 }
39030 }
39031
39032 function parsePair(tokens, state, obj) {
39033 var token = skipPunctuation(tokens, state, [":"]);
39034 var key;
39035 var value;
39036
39037 if (token.type !== "string") {
39038 raiseUnexpected(state, token, "string");
39039 switch (token.type) {
39040 case ":":
39041 token = {
39042 type: "string",
39043 value: "null",
39044 line: token.line,
39045 };
39046
39047 state.pos -= 1;
39048 break;
39049
39050 case "number":
39051 case "atom":
39052 token = {
39053 type: "string",
39054 value: "" + token.value,
39055 line: token.line,
39056 };
39057 break;
39058
39059 case "[":
39060 case "{":
39061 state.pos -= 1;
39062 value = parseAny(tokens, state); // eslint-disable-line no-use-before-define
39063 appendPair(state, obj, "null", value);
39064 return;
39065 // no default
39066 }
39067 }
39068
39069 checkDuplicates(state, obj, token);
39070 key = token.value;
39071 skipColon(tokens, state);
39072 value = parseAny(tokens, state); // eslint-disable-line no-use-before-define
39073
39074 appendPair(state, obj, key, value);
39075 }
39076
39077 function parseElement(tokens, state, arr) {
39078 var key = arr.length;
39079 var value = parseAny(tokens, state); // eslint-disable-line no-use-before-define
39080 arr[key] = state.reviver ? state.reviver("" + key, value) : value;
39081 }
39082
39083 function parseObject(tokens, state) {
39084 return parseMany(tokens, state, {}, { // eslint-disable-line no-use-before-define
39085 skip: [":", "}"],
39086 elementParser: parsePair,
39087 elementName: "string",
39088 endSymbol: "}",
39089 });
39090 }
39091
39092 function parseArray(tokens, state) {
39093 return parseMany(tokens, state, [], { // eslint-disable-line no-use-before-define
39094 skip: ["]"],
39095 elementParser: parseElement,
39096 elementName: "json object",
39097 endSymbol: "]",
39098 });
39099 }
39100
39101 function parseMany(tokens, state, obj, opts) {
39102 var token = skipPunctuation(tokens, state, opts.skip);
39103
39104 if (token.type === "eof") {
39105 raiseUnexpected(state, token, "'" + opts.endSymbol + "' or " + opts.elementName);
39106
39107 token = {
39108 type: opts.endSymbol,
39109 line: token.line,
39110 };
39111 }
39112
39113 switch (token.type) {
39114 case opts.endSymbol:
39115 return obj;
39116
39117 default:
39118 state.pos -= 1; // push the token back
39119 opts.elementParser(tokens, state, obj);
39120 break;
39121 }
39122
39123 // Rest
39124 while (true) { // eslint-disable-line no-constant-condition
39125 token = popToken(tokens, state);
39126
39127 if (token.type !== opts.endSymbol && token.type !== ",") {
39128 raiseUnexpected(state, token, "',' or '" + opts.endSymbol + "'");
39129
39130 token = {
39131 type: token.type === "eof" ? opts.endSymbol : ",",
39132 line: token.line,
39133 };
39134
39135 state.pos -= 1;
39136 }
39137
39138 switch (token.type) {
39139 case opts.endSymbol:
39140 return obj;
39141
39142 case ",":
39143 opts.elementParser(tokens, state, obj);
39144 break;
39145 // no default
39146 }
39147 }
39148 }
39149
39150 function endChecks(tokens, state, ret) {
39151 if (state.pos < tokens.length) {
39152 raiseError(state, tokens[state.pos],
39153 "Unexpected token: " + strToken(tokens[state.pos]) + ", expected end-of-input");
39154 }
39155
39156 // Throw error at the end
39157 if (state.tolerant && state.warnings.length !== 0) {
39158 var message = state.warnings.length === 1 ? state.warnings[0].message : state.warnings.length + " parse warnings";
39159 var err = new SyntaxError(message);
39160 err.line = state.warnings[0].line;
39161 err.warnings = state.warnings;
39162 err.obj = ret;
39163 throw err;
39164 }
39165 }
39166
39167 function parseAny(tokens, state, end) {
39168 var token = skipPunctuation(tokens, state);
39169 var ret;
39170
39171 if (token.type === "eof") {
39172 raiseUnexpected(state, token, "json object");
39173 }
39174
39175 switch (token.type) {
39176 case "{":
39177 ret = parseObject(tokens, state);
39178 break;
39179 case "[":
39180 ret = parseArray(tokens, state);
39181 break;
39182 case "string":
39183 case "number":
39184 case "atom":
39185 ret = token.value;
39186 break;
39187 // no default
39188 }
39189
39190 if (end) {
39191 ret = state.reviver ? state.reviver("", ret) : ret;
39192 endChecks(tokens, state, ret);
39193 }
39194
39195 return ret;
39196 }
39197
39198 function parse(text, opts) {
39199 if (typeof opts === "function" || opts === undefined) {
39200 return JSON.parse(transform(text), opts);
39201 } else if (new Object(opts) !== opts) { // eslint-disable-line no-new-object
39202 throw new TypeError("opts/reviver should be undefined, a function or an object");
39203 }
39204
39205 opts.relaxed = opts.relaxed !== undefined ? opts.relaxed : true;
39206 opts.warnings = opts.warnings || opts.tolerant || false;
39207 opts.tolerant = opts.tolerant || false;
39208 opts.duplicate = opts.duplicate || false;
39209
39210 if (!opts.warnings && !opts.relaxed) {
39211 return JSON.parse(text, opts.reviver);
39212 }
39213
39214 var tokens = opts.relaxed ? lexer(text) : strictLexer(text);
39215
39216 if (opts.relaxed) {
39217 // Strip commas
39218 tokens = stripTrailingComma(tokens);
39219 }
39220
39221 if (opts.warnings) {
39222 // Strip whitespace
39223 tokens = tokens.filter(function (token) {
39224 return token.type !== " ";
39225 });
39226
39227 var state = { pos: 0, reviver: opts.reviver, tolerant: opts.tolerant, duplicate: opts.duplicate, warnings: [] };
39228 return parseAny(tokens, state, true);
39229 } else {
39230 var newtext = tokens.reduce(function (str, token) {
39231 return str + token.match;
39232 }, "");
39233
39234 return JSON.parse(newtext, opts.reviver);
39235 }
39236 }
39237
39238 function stringifyPair(obj, key) {
39239 return JSON.stringify(key) + ":" + stringify(obj[key]); // eslint-disable-line no-use-before-define
39240 }
39241
39242 function stringify(obj) {
39243 switch (typeof obj) {
39244 case "string":
39245 case "number":
39246 case "boolean":
39247 return JSON.stringify(obj);
39248 // no default
39249 }
39250 if (Array.isArray(obj)) {
39251 return "[" + obj.map(stringify).join(",") + "]";
39252 }
39253 if (new Object(obj) === obj) { // eslint-disable-line no-new-object
39254 var keys = Object.keys(obj);
39255 keys.sort();
39256 return "{" + keys.map(stringifyPair.bind(null, obj)) + "}";
39257 }
39258 return "null";
39259 }
39260
39261 // Export stuff
39262 var RJSON = {
39263 transform: transform,
39264 parse: parse,
39265 stringify: stringify,
39266 };
39267
39268 /* global window, module */
39269 if (typeof window !== "undefined") {
39270 window.RJSON = RJSON;
39271 }
39272
39273 if (true) {
39274 module.exports = RJSON;
39275 }
39276}());
39277
39278
39279/***/ }),
39280
39281/***/ "./node_modules/restore-cursor/index.js":
39282/*!**********************************************!*\
39283 !*** ./node_modules/restore-cursor/index.js ***!
39284 \**********************************************/
39285/*! no static exports found */
39286/***/ (function(module, exports, __webpack_require__) {
39287
39288"use strict";
39289
39290const onetime = __webpack_require__(/*! onetime */ "./node_modules/onetime/index.js");
39291const signalExit = __webpack_require__(/*! signal-exit */ "./node_modules/signal-exit/index.js");
39292
39293module.exports = onetime(() => {
39294 signalExit(() => {
39295 process.stderr.write('\u001b[?25h');
39296 }, {alwaysLast: true});
39297});
39298
39299
39300/***/ }),
39301
39302/***/ "./node_modules/rimraf/rimraf.js":
39303/*!***************************************!*\
39304 !*** ./node_modules/rimraf/rimraf.js ***!
39305 \***************************************/
39306/*! no static exports found */
39307/***/ (function(module, exports, __webpack_require__) {
39308
39309module.exports = rimraf
39310rimraf.sync = rimrafSync
39311
39312var assert = __webpack_require__(/*! assert */ "assert")
39313var path = __webpack_require__(/*! path */ "path")
39314var fs = __webpack_require__(/*! fs */ "fs")
39315var glob = __webpack_require__(/*! glob */ "./node_modules/glob/glob.js")
39316var _0666 = parseInt('666', 8)
39317
39318var defaultGlobOpts = {
39319 nosort: true,
39320 silent: true
39321}
39322
39323// for EMFILE handling
39324var timeout = 0
39325
39326var isWindows = (process.platform === "win32")
39327
39328function defaults (options) {
39329 var methods = [
39330 'unlink',
39331 'chmod',
39332 'stat',
39333 'lstat',
39334 'rmdir',
39335 'readdir'
39336 ]
39337 methods.forEach(function(m) {
39338 options[m] = options[m] || fs[m]
39339 m = m + 'Sync'
39340 options[m] = options[m] || fs[m]
39341 })
39342
39343 options.maxBusyTries = options.maxBusyTries || 3
39344 options.emfileWait = options.emfileWait || 1000
39345 if (options.glob === false) {
39346 options.disableGlob = true
39347 }
39348 options.disableGlob = options.disableGlob || false
39349 options.glob = options.glob || defaultGlobOpts
39350}
39351
39352function rimraf (p, options, cb) {
39353 if (typeof options === 'function') {
39354 cb = options
39355 options = {}
39356 }
39357
39358 assert(p, 'rimraf: missing path')
39359 assert.equal(typeof p, 'string', 'rimraf: path should be a string')
39360 assert.equal(typeof cb, 'function', 'rimraf: callback function required')
39361 assert(options, 'rimraf: invalid options argument provided')
39362 assert.equal(typeof options, 'object', 'rimraf: options should be object')
39363
39364 defaults(options)
39365
39366 var busyTries = 0
39367 var errState = null
39368 var n = 0
39369
39370 if (options.disableGlob || !glob.hasMagic(p))
39371 return afterGlob(null, [p])
39372
39373 options.lstat(p, function (er, stat) {
39374 if (!er)
39375 return afterGlob(null, [p])
39376
39377 glob(p, options.glob, afterGlob)
39378 })
39379
39380 function next (er) {
39381 errState = errState || er
39382 if (--n === 0)
39383 cb(errState)
39384 }
39385
39386 function afterGlob (er, results) {
39387 if (er)
39388 return cb(er)
39389
39390 n = results.length
39391 if (n === 0)
39392 return cb()
39393
39394 results.forEach(function (p) {
39395 rimraf_(p, options, function CB (er) {
39396 if (er) {
39397 if ((er.code === "EBUSY" || er.code === "ENOTEMPTY" || er.code === "EPERM") &&
39398 busyTries < options.maxBusyTries) {
39399 busyTries ++
39400 var time = busyTries * 100
39401 // try again, with the same exact callback as this one.
39402 return setTimeout(function () {
39403 rimraf_(p, options, CB)
39404 }, time)
39405 }
39406
39407 // this one won't happen if graceful-fs is used.
39408 if (er.code === "EMFILE" && timeout < options.emfileWait) {
39409 return setTimeout(function () {
39410 rimraf_(p, options, CB)
39411 }, timeout ++)
39412 }
39413
39414 // already gone
39415 if (er.code === "ENOENT") er = null
39416 }
39417
39418 timeout = 0
39419 next(er)
39420 })
39421 })
39422 }
39423}
39424
39425// Two possible strategies.
39426// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR
39427// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR
39428//
39429// Both result in an extra syscall when you guess wrong. However, there
39430// are likely far more normal files in the world than directories. This
39431// is based on the assumption that a the average number of files per
39432// directory is >= 1.
39433//
39434// If anyone ever complains about this, then I guess the strategy could
39435// be made configurable somehow. But until then, YAGNI.
39436function rimraf_ (p, options, cb) {
39437 assert(p)
39438 assert(options)
39439 assert(typeof cb === 'function')
39440
39441 // sunos lets the root user unlink directories, which is... weird.
39442 // so we have to lstat here and make sure it's not a dir.
39443 options.lstat(p, function (er, st) {
39444 if (er && er.code === "ENOENT")
39445 return cb(null)
39446
39447 // Windows can EPERM on stat. Life is suffering.
39448 if (er && er.code === "EPERM" && isWindows)
39449 fixWinEPERM(p, options, er, cb)
39450
39451 if (st && st.isDirectory())
39452 return rmdir(p, options, er, cb)
39453
39454 options.unlink(p, function (er) {
39455 if (er) {
39456 if (er.code === "ENOENT")
39457 return cb(null)
39458 if (er.code === "EPERM")
39459 return (isWindows)
39460 ? fixWinEPERM(p, options, er, cb)
39461 : rmdir(p, options, er, cb)
39462 if (er.code === "EISDIR")
39463 return rmdir(p, options, er, cb)
39464 }
39465 return cb(er)
39466 })
39467 })
39468}
39469
39470function fixWinEPERM (p, options, er, cb) {
39471 assert(p)
39472 assert(options)
39473 assert(typeof cb === 'function')
39474 if (er)
39475 assert(er instanceof Error)
39476
39477 options.chmod(p, _0666, function (er2) {
39478 if (er2)
39479 cb(er2.code === "ENOENT" ? null : er)
39480 else
39481 options.stat(p, function(er3, stats) {
39482 if (er3)
39483 cb(er3.code === "ENOENT" ? null : er)
39484 else if (stats.isDirectory())
39485 rmdir(p, options, er, cb)
39486 else
39487 options.unlink(p, cb)
39488 })
39489 })
39490}
39491
39492function fixWinEPERMSync (p, options, er) {
39493 assert(p)
39494 assert(options)
39495 if (er)
39496 assert(er instanceof Error)
39497
39498 try {
39499 options.chmodSync(p, _0666)
39500 } catch (er2) {
39501 if (er2.code === "ENOENT")
39502 return
39503 else
39504 throw er
39505 }
39506
39507 try {
39508 var stats = options.statSync(p)
39509 } catch (er3) {
39510 if (er3.code === "ENOENT")
39511 return
39512 else
39513 throw er
39514 }
39515
39516 if (stats.isDirectory())
39517 rmdirSync(p, options, er)
39518 else
39519 options.unlinkSync(p)
39520}
39521
39522function rmdir (p, options, originalEr, cb) {
39523 assert(p)
39524 assert(options)
39525 if (originalEr)
39526 assert(originalEr instanceof Error)
39527 assert(typeof cb === 'function')
39528
39529 // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
39530 // if we guessed wrong, and it's not a directory, then
39531 // raise the original error.
39532 options.rmdir(p, function (er) {
39533 if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM"))
39534 rmkids(p, options, cb)
39535 else if (er && er.code === "ENOTDIR")
39536 cb(originalEr)
39537 else
39538 cb(er)
39539 })
39540}
39541
39542function rmkids(p, options, cb) {
39543 assert(p)
39544 assert(options)
39545 assert(typeof cb === 'function')
39546
39547 options.readdir(p, function (er, files) {
39548 if (er)
39549 return cb(er)
39550 var n = files.length
39551 if (n === 0)
39552 return options.rmdir(p, cb)
39553 var errState
39554 files.forEach(function (f) {
39555 rimraf(path.join(p, f), options, function (er) {
39556 if (errState)
39557 return
39558 if (er)
39559 return cb(errState = er)
39560 if (--n === 0)
39561 options.rmdir(p, cb)
39562 })
39563 })
39564 })
39565}
39566
39567// this looks simpler, and is strictly *faster*, but will
39568// tie up the JavaScript thread and fail on excessively
39569// deep directory trees.
39570function rimrafSync (p, options) {
39571 options = options || {}
39572 defaults(options)
39573
39574 assert(p, 'rimraf: missing path')
39575 assert.equal(typeof p, 'string', 'rimraf: path should be a string')
39576 assert(options, 'rimraf: missing options')
39577 assert.equal(typeof options, 'object', 'rimraf: options should be object')
39578
39579 var results
39580
39581 if (options.disableGlob || !glob.hasMagic(p)) {
39582 results = [p]
39583 } else {
39584 try {
39585 options.lstatSync(p)
39586 results = [p]
39587 } catch (er) {
39588 results = glob.sync(p, options.glob)
39589 }
39590 }
39591
39592 if (!results.length)
39593 return
39594
39595 for (var i = 0; i < results.length; i++) {
39596 var p = results[i]
39597
39598 try {
39599 var st = options.lstatSync(p)
39600 } catch (er) {
39601 if (er.code === "ENOENT")
39602 return
39603
39604 // Windows can EPERM on stat. Life is suffering.
39605 if (er.code === "EPERM" && isWindows)
39606 fixWinEPERMSync(p, options, er)
39607 }
39608
39609 try {
39610 // sunos lets the root user unlink directories, which is... weird.
39611 if (st && st.isDirectory())
39612 rmdirSync(p, options, null)
39613 else
39614 options.unlinkSync(p)
39615 } catch (er) {
39616 if (er.code === "ENOENT")
39617 return
39618 if (er.code === "EPERM")
39619 return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
39620 if (er.code !== "EISDIR")
39621 throw er
39622
39623 rmdirSync(p, options, er)
39624 }
39625 }
39626}
39627
39628function rmdirSync (p, options, originalEr) {
39629 assert(p)
39630 assert(options)
39631 if (originalEr)
39632 assert(originalEr instanceof Error)
39633
39634 try {
39635 options.rmdirSync(p)
39636 } catch (er) {
39637 if (er.code === "ENOENT")
39638 return
39639 if (er.code === "ENOTDIR")
39640 throw originalEr
39641 if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")
39642 rmkidsSync(p, options)
39643 }
39644}
39645
39646function rmkidsSync (p, options) {
39647 assert(p)
39648 assert(options)
39649 options.readdirSync(p).forEach(function (f) {
39650 rimrafSync(path.join(p, f), options)
39651 })
39652
39653 // We only end up here once we got ENOTEMPTY at least once, and
39654 // at this point, we are guaranteed to have removed all the kids.
39655 // So, we know that it won't be ENOENT or ENOTDIR or anything else.
39656 // try really hard to delete stuff on windows, because it has a
39657 // PROFOUNDLY annoying habit of not closing handles promptly when
39658 // files are deleted, resulting in spurious ENOTEMPTY errors.
39659 var retries = isWindows ? 100 : 1
39660 var i = 0
39661 do {
39662 var threw = true
39663 try {
39664 var ret = options.rmdirSync(p, options)
39665 threw = false
39666 return ret
39667 } finally {
39668 if (++i < retries && threw)
39669 continue
39670 }
39671 } while (true)
39672}
39673
39674
39675/***/ }),
39676
39677/***/ "./node_modules/run-async/index.js":
39678/*!*****************************************!*\
39679 !*** ./node_modules/run-async/index.js ***!
39680 \*****************************************/
39681/*! no static exports found */
39682/***/ (function(module, exports, __webpack_require__) {
39683
39684"use strict";
39685
39686
39687var isPromise = __webpack_require__(/*! is-promise */ "./node_modules/is-promise/index.js");
39688
39689/**
39690 * Return a function that will run a function asynchronously or synchronously
39691 *
39692 * example:
39693 * runAsync(wrappedFunction, callback)(...args);
39694 *
39695 * @param {Function} func Function to run
39696 * @param {Function} cb Callback function passed the `func` returned value
39697 * @return {Function(arguments)} Arguments to pass to `func`. This function will in turn
39698 * return a Promise (Node >= 0.12) or call the callbacks.
39699 */
39700
39701var runAsync = module.exports = function (func, cb) {
39702 cb = cb || function () {};
39703
39704 return function () {
39705 var async = false;
39706 var args = arguments;
39707
39708 var promise = new Promise(function (resolve, reject) {
39709 var answer = func.apply({
39710 async: function () {
39711 async = true;
39712 return function (err, value) {
39713 if (err) {
39714 reject(err);
39715 } else {
39716 resolve(value);
39717 }
39718 };
39719 }
39720 }, Array.prototype.slice.call(args));
39721
39722 if (!async) {
39723 if (isPromise(answer)) {
39724 answer.then(resolve, reject);
39725 } else {
39726 resolve(answer);
39727 }
39728 }
39729 });
39730
39731 promise.then(cb.bind(null, null), cb);
39732
39733 return promise;
39734 }
39735};
39736
39737runAsync.cb = function (func, cb) {
39738 return runAsync(function () {
39739 var args = Array.prototype.slice.call(arguments);
39740 if (args.length === func.length - 1) {
39741 args.push(this.async());
39742 }
39743 return func.apply(this, args);
39744 }, cb);
39745};
39746
39747
39748/***/ }),
39749
39750/***/ "./node_modules/rxjs/_esm5/index.js":
39751/*!******************************************!*\
39752 !*** ./node_modules/rxjs/_esm5/index.js ***!
39753 \******************************************/
39754/*! exports provided: Observable, ConnectableObservable, GroupedObservable, observable, Subject, BehaviorSubject, ReplaySubject, AsyncSubject, asapScheduler, asyncScheduler, queueScheduler, animationFrameScheduler, VirtualTimeScheduler, VirtualAction, Scheduler, Subscription, Subscriber, Notification, pipe, noop, identity, isObservable, ArgumentOutOfRangeError, EmptyError, ObjectUnsubscribedError, UnsubscriptionError, TimeoutError, bindCallback, bindNodeCallback, combineLatest, concat, defer, empty, forkJoin, from, fromEvent, fromEventPattern, generate, iif, interval, merge, never, of, onErrorResumeNext, pairs, race, range, throwError, timer, using, zip, EMPTY, NEVER, config */
39755/***/ (function(module, __webpack_exports__, __webpack_require__) {
39756
39757"use strict";
39758__webpack_require__.r(__webpack_exports__);
39759/* harmony import */ var _internal_Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal/Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
39760/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return _internal_Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]; });
39761
39762/* harmony import */ var _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal/observable/ConnectableObservable */ "./node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js");
39763/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectableObservable", function() { return _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__["ConnectableObservable"]; });
39764
39765/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./internal/operators/groupBy */ "./node_modules/rxjs/_esm5/internal/operators/groupBy.js");
39766/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedObservable", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__["GroupedObservable"]; });
39767
39768/* harmony import */ var _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./internal/symbol/observable */ "./node_modules/rxjs/_esm5/internal/symbol/observable.js");
39769/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observable", function() { return _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__["observable"]; });
39770
39771/* harmony import */ var _internal_Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./internal/Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
39772/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subject", function() { return _internal_Subject__WEBPACK_IMPORTED_MODULE_4__["Subject"]; });
39773
39774/* harmony import */ var _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internal/BehaviorSubject */ "./node_modules/rxjs/_esm5/internal/BehaviorSubject.js");
39775/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BehaviorSubject", function() { return _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_5__["BehaviorSubject"]; });
39776
39777/* harmony import */ var _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./internal/ReplaySubject */ "./node_modules/rxjs/_esm5/internal/ReplaySubject.js");
39778/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReplaySubject", function() { return _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_6__["ReplaySubject"]; });
39779
39780/* harmony import */ var _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./internal/AsyncSubject */ "./node_modules/rxjs/_esm5/internal/AsyncSubject.js");
39781/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AsyncSubject", function() { return _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_7__["AsyncSubject"]; });
39782
39783/* harmony import */ var _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./internal/scheduler/asap */ "./node_modules/rxjs/_esm5/internal/scheduler/asap.js");
39784/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asapScheduler", function() { return _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_8__["asap"]; });
39785
39786/* harmony import */ var _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./internal/scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
39787/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asyncScheduler", function() { return _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_9__["async"]; });
39788
39789/* harmony import */ var _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./internal/scheduler/queue */ "./node_modules/rxjs/_esm5/internal/scheduler/queue.js");
39790/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "queueScheduler", function() { return _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_10__["queue"]; });
39791
39792/* harmony import */ var _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./internal/scheduler/animationFrame */ "./node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js");
39793/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "animationFrameScheduler", function() { return _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_11__["animationFrame"]; });
39794
39795/* harmony import */ var _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./internal/scheduler/VirtualTimeScheduler */ "./node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js");
39796/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualTimeScheduler", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__["VirtualTimeScheduler"]; });
39797
39798/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualAction", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__["VirtualAction"]; });
39799
39800/* harmony import */ var _internal_Scheduler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./internal/Scheduler */ "./node_modules/rxjs/_esm5/internal/Scheduler.js");
39801/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Scheduler", function() { return _internal_Scheduler__WEBPACK_IMPORTED_MODULE_13__["Scheduler"]; });
39802
39803/* harmony import */ var _internal_Subscription__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./internal/Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
39804/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subscription", function() { return _internal_Subscription__WEBPACK_IMPORTED_MODULE_14__["Subscription"]; });
39805
39806/* harmony import */ var _internal_Subscriber__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./internal/Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
39807/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subscriber", function() { return _internal_Subscriber__WEBPACK_IMPORTED_MODULE_15__["Subscriber"]; });
39808
39809/* harmony import */ var _internal_Notification__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./internal/Notification */ "./node_modules/rxjs/_esm5/internal/Notification.js");
39810/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Notification", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_16__["Notification"]; });
39811
39812/* harmony import */ var _internal_util_pipe__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./internal/util/pipe */ "./node_modules/rxjs/_esm5/internal/util/pipe.js");
39813/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return _internal_util_pipe__WEBPACK_IMPORTED_MODULE_17__["pipe"]; });
39814
39815/* harmony import */ var _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internal/util/noop */ "./node_modules/rxjs/_esm5/internal/util/noop.js");
39816/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__["noop"]; });
39817
39818/* harmony import */ var _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./internal/util/identity */ "./node_modules/rxjs/_esm5/internal/util/identity.js");
39819/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__["identity"]; });
39820
39821/* harmony import */ var _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./internal/util/isObservable */ "./node_modules/rxjs/_esm5/internal/util/isObservable.js");
39822/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isObservable", function() { return _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_20__["isObservable"]; });
39823
39824/* harmony import */ var _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./internal/util/ArgumentOutOfRangeError */ "./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js");
39825/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ArgumentOutOfRangeError", function() { return _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_21__["ArgumentOutOfRangeError"]; });
39826
39827/* harmony import */ var _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./internal/util/EmptyError */ "./node_modules/rxjs/_esm5/internal/util/EmptyError.js");
39828/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmptyError", function() { return _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_22__["EmptyError"]; });
39829
39830/* harmony import */ var _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./internal/util/ObjectUnsubscribedError */ "./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js");
39831/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ObjectUnsubscribedError", function() { return _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_23__["ObjectUnsubscribedError"]; });
39832
39833/* harmony import */ var _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./internal/util/UnsubscriptionError */ "./node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js");
39834/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UnsubscriptionError", function() { return _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_24__["UnsubscriptionError"]; });
39835
39836/* harmony import */ var _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./internal/util/TimeoutError */ "./node_modules/rxjs/_esm5/internal/util/TimeoutError.js");
39837/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TimeoutError", function() { return _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_25__["TimeoutError"]; });
39838
39839/* harmony import */ var _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./internal/observable/bindCallback */ "./node_modules/rxjs/_esm5/internal/observable/bindCallback.js");
39840/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindCallback", function() { return _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_26__["bindCallback"]; });
39841
39842/* harmony import */ var _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./internal/observable/bindNodeCallback */ "./node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js");
39843/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindNodeCallback", function() { return _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_27__["bindNodeCallback"]; });
39844
39845/* harmony import */ var _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./internal/observable/combineLatest */ "./node_modules/rxjs/_esm5/internal/observable/combineLatest.js");
39846/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_28__["combineLatest"]; });
39847
39848/* harmony import */ var _internal_observable_concat__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./internal/observable/concat */ "./node_modules/rxjs/_esm5/internal/observable/concat.js");
39849/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_observable_concat__WEBPACK_IMPORTED_MODULE_29__["concat"]; });
39850
39851/* harmony import */ var _internal_observable_defer__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./internal/observable/defer */ "./node_modules/rxjs/_esm5/internal/observable/defer.js");
39852/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defer", function() { return _internal_observable_defer__WEBPACK_IMPORTED_MODULE_30__["defer"]; });
39853
39854/* harmony import */ var _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./internal/observable/empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
39855/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__["empty"]; });
39856
39857/* harmony import */ var _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./internal/observable/forkJoin */ "./node_modules/rxjs/_esm5/internal/observable/forkJoin.js");
39858/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forkJoin", function() { return _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_32__["forkJoin"]; });
39859
39860/* harmony import */ var _internal_observable_from__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./internal/observable/from */ "./node_modules/rxjs/_esm5/internal/observable/from.js");
39861/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "from", function() { return _internal_observable_from__WEBPACK_IMPORTED_MODULE_33__["from"]; });
39862
39863/* harmony import */ var _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./internal/observable/fromEvent */ "./node_modules/rxjs/_esm5/internal/observable/fromEvent.js");
39864/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromEvent", function() { return _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_34__["fromEvent"]; });
39865
39866/* harmony import */ var _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./internal/observable/fromEventPattern */ "./node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js");
39867/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromEventPattern", function() { return _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_35__["fromEventPattern"]; });
39868
39869/* harmony import */ var _internal_observable_generate__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./internal/observable/generate */ "./node_modules/rxjs/_esm5/internal/observable/generate.js");
39870/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return _internal_observable_generate__WEBPACK_IMPORTED_MODULE_36__["generate"]; });
39871
39872/* harmony import */ var _internal_observable_iif__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./internal/observable/iif */ "./node_modules/rxjs/_esm5/internal/observable/iif.js");
39873/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "iif", function() { return _internal_observable_iif__WEBPACK_IMPORTED_MODULE_37__["iif"]; });
39874
39875/* harmony import */ var _internal_observable_interval__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./internal/observable/interval */ "./node_modules/rxjs/_esm5/internal/observable/interval.js");
39876/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return _internal_observable_interval__WEBPACK_IMPORTED_MODULE_38__["interval"]; });
39877
39878/* harmony import */ var _internal_observable_merge__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./internal/observable/merge */ "./node_modules/rxjs/_esm5/internal/observable/merge.js");
39879/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_observable_merge__WEBPACK_IMPORTED_MODULE_39__["merge"]; });
39880
39881/* harmony import */ var _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./internal/observable/never */ "./node_modules/rxjs/_esm5/internal/observable/never.js");
39882/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "never", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__["never"]; });
39883
39884/* harmony import */ var _internal_observable_of__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./internal/observable/of */ "./node_modules/rxjs/_esm5/internal/observable/of.js");
39885/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "of", function() { return _internal_observable_of__WEBPACK_IMPORTED_MODULE_41__["of"]; });
39886
39887/* harmony import */ var _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./internal/observable/onErrorResumeNext */ "./node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js");
39888/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_42__["onErrorResumeNext"]; });
39889
39890/* harmony import */ var _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./internal/observable/pairs */ "./node_modules/rxjs/_esm5/internal/observable/pairs.js");
39891/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_43__["pairs"]; });
39892
39893/* harmony import */ var _internal_observable_race__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./internal/observable/race */ "./node_modules/rxjs/_esm5/internal/observable/race.js");
39894/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_observable_race__WEBPACK_IMPORTED_MODULE_44__["race"]; });
39895
39896/* harmony import */ var _internal_observable_range__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./internal/observable/range */ "./node_modules/rxjs/_esm5/internal/observable/range.js");
39897/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return _internal_observable_range__WEBPACK_IMPORTED_MODULE_45__["range"]; });
39898
39899/* harmony import */ var _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./internal/observable/throwError */ "./node_modules/rxjs/_esm5/internal/observable/throwError.js");
39900/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwError", function() { return _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_46__["throwError"]; });
39901
39902/* harmony import */ var _internal_observable_timer__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./internal/observable/timer */ "./node_modules/rxjs/_esm5/internal/observable/timer.js");
39903/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return _internal_observable_timer__WEBPACK_IMPORTED_MODULE_47__["timer"]; });
39904
39905/* harmony import */ var _internal_observable_using__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./internal/observable/using */ "./node_modules/rxjs/_esm5/internal/observable/using.js");
39906/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "using", function() { return _internal_observable_using__WEBPACK_IMPORTED_MODULE_48__["using"]; });
39907
39908/* harmony import */ var _internal_observable_zip__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./internal/observable/zip */ "./node_modules/rxjs/_esm5/internal/observable/zip.js");
39909/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_observable_zip__WEBPACK_IMPORTED_MODULE_49__["zip"]; });
39910
39911/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EMPTY", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__["EMPTY"]; });
39912
39913/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NEVER", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__["NEVER"]; });
39914
39915/* harmony import */ var _internal_config__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./internal/config */ "./node_modules/rxjs/_esm5/internal/config.js");
39916/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "config", function() { return _internal_config__WEBPACK_IMPORTED_MODULE_50__["config"]; });
39917
39918/** PURE_IMPORTS_START PURE_IMPORTS_END */
39919
39920
39921
39922
39923
39924
39925
39926
39927
39928
39929
39930
39931
39932
39933
39934
39935
39936
39937
39938
39939
39940
39941
39942
39943
39944
39945
39946
39947
39948
39949
39950
39951
39952
39953
39954
39955
39956
39957
39958
39959
39960
39961
39962
39963
39964
39965
39966
39967
39968
39969
39970
39971
39972//# sourceMappingURL=index.js.map
39973
39974
39975/***/ }),
39976
39977/***/ "./node_modules/rxjs/_esm5/internal/AsyncSubject.js":
39978/*!**********************************************************!*\
39979 !*** ./node_modules/rxjs/_esm5/internal/AsyncSubject.js ***!
39980 \**********************************************************/
39981/*! exports provided: AsyncSubject */
39982/***/ (function(module, __webpack_exports__, __webpack_require__) {
39983
39984"use strict";
39985__webpack_require__.r(__webpack_exports__);
39986/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncSubject", function() { return AsyncSubject; });
39987/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
39988/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
39989/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
39990/** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */
39991
39992
39993
39994var AsyncSubject = /*@__PURE__*/ (function (_super) {
39995 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncSubject, _super);
39996 function AsyncSubject() {
39997 var _this = _super !== null && _super.apply(this, arguments) || this;
39998 _this.value = null;
39999 _this.hasNext = false;
40000 _this.hasCompleted = false;
40001 return _this;
40002 }
40003 AsyncSubject.prototype._subscribe = function (subscriber) {
40004 if (this.hasError) {
40005 subscriber.error(this.thrownError);
40006 return _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"].EMPTY;
40007 }
40008 else if (this.hasCompleted && this.hasNext) {
40009 subscriber.next(this.value);
40010 subscriber.complete();
40011 return _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"].EMPTY;
40012 }
40013 return _super.prototype._subscribe.call(this, subscriber);
40014 };
40015 AsyncSubject.prototype.next = function (value) {
40016 if (!this.hasCompleted) {
40017 this.value = value;
40018 this.hasNext = true;
40019 }
40020 };
40021 AsyncSubject.prototype.error = function (error) {
40022 if (!this.hasCompleted) {
40023 _super.prototype.error.call(this, error);
40024 }
40025 };
40026 AsyncSubject.prototype.complete = function () {
40027 this.hasCompleted = true;
40028 if (this.hasNext) {
40029 _super.prototype.next.call(this, this.value);
40030 }
40031 _super.prototype.complete.call(this);
40032 };
40033 return AsyncSubject;
40034}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"]));
40035
40036//# sourceMappingURL=AsyncSubject.js.map
40037
40038
40039/***/ }),
40040
40041/***/ "./node_modules/rxjs/_esm5/internal/BehaviorSubject.js":
40042/*!*************************************************************!*\
40043 !*** ./node_modules/rxjs/_esm5/internal/BehaviorSubject.js ***!
40044 \*************************************************************/
40045/*! exports provided: BehaviorSubject */
40046/***/ (function(module, __webpack_exports__, __webpack_require__) {
40047
40048"use strict";
40049__webpack_require__.r(__webpack_exports__);
40050/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BehaviorSubject", function() { return BehaviorSubject; });
40051/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
40052/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
40053/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ "./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js");
40054/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */
40055
40056
40057
40058var BehaviorSubject = /*@__PURE__*/ (function (_super) {
40059 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BehaviorSubject, _super);
40060 function BehaviorSubject(_value) {
40061 var _this = _super.call(this) || this;
40062 _this._value = _value;
40063 return _this;
40064 }
40065 Object.defineProperty(BehaviorSubject.prototype, "value", {
40066 get: function () {
40067 return this.getValue();
40068 },
40069 enumerable: true,
40070 configurable: true
40071 });
40072 BehaviorSubject.prototype._subscribe = function (subscriber) {
40073 var subscription = _super.prototype._subscribe.call(this, subscriber);
40074 if (subscription && !subscription.closed) {
40075 subscriber.next(this._value);
40076 }
40077 return subscription;
40078 };
40079 BehaviorSubject.prototype.getValue = function () {
40080 if (this.hasError) {
40081 throw this.thrownError;
40082 }
40083 else if (this.closed) {
40084 throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__["ObjectUnsubscribedError"]();
40085 }
40086 else {
40087 return this._value;
40088 }
40089 };
40090 BehaviorSubject.prototype.next = function (value) {
40091 _super.prototype.next.call(this, this._value = value);
40092 };
40093 return BehaviorSubject;
40094}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"]));
40095
40096//# sourceMappingURL=BehaviorSubject.js.map
40097
40098
40099/***/ }),
40100
40101/***/ "./node_modules/rxjs/_esm5/internal/InnerSubscriber.js":
40102/*!*************************************************************!*\
40103 !*** ./node_modules/rxjs/_esm5/internal/InnerSubscriber.js ***!
40104 \*************************************************************/
40105/*! exports provided: InnerSubscriber */
40106/***/ (function(module, __webpack_exports__, __webpack_require__) {
40107
40108"use strict";
40109__webpack_require__.r(__webpack_exports__);
40110/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InnerSubscriber", function() { return InnerSubscriber; });
40111/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
40112/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
40113/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
40114
40115
40116var InnerSubscriber = /*@__PURE__*/ (function (_super) {
40117 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](InnerSubscriber, _super);
40118 function InnerSubscriber(parent, outerValue, outerIndex) {
40119 var _this = _super.call(this) || this;
40120 _this.parent = parent;
40121 _this.outerValue = outerValue;
40122 _this.outerIndex = outerIndex;
40123 _this.index = 0;
40124 return _this;
40125 }
40126 InnerSubscriber.prototype._next = function (value) {
40127 this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);
40128 };
40129 InnerSubscriber.prototype._error = function (error) {
40130 this.parent.notifyError(error, this);
40131 this.unsubscribe();
40132 };
40133 InnerSubscriber.prototype._complete = function () {
40134 this.parent.notifyComplete(this);
40135 this.unsubscribe();
40136 };
40137 return InnerSubscriber;
40138}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
40139
40140//# sourceMappingURL=InnerSubscriber.js.map
40141
40142
40143/***/ }),
40144
40145/***/ "./node_modules/rxjs/_esm5/internal/Notification.js":
40146/*!**********************************************************!*\
40147 !*** ./node_modules/rxjs/_esm5/internal/Notification.js ***!
40148 \**********************************************************/
40149/*! exports provided: Notification */
40150/***/ (function(module, __webpack_exports__, __webpack_require__) {
40151
40152"use strict";
40153__webpack_require__.r(__webpack_exports__);
40154/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Notification", function() { return Notification; });
40155/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./observable/empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
40156/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./observable/of */ "./node_modules/rxjs/_esm5/internal/observable/of.js");
40157/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./observable/throwError */ "./node_modules/rxjs/_esm5/internal/observable/throwError.js");
40158/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */
40159
40160
40161
40162var Notification = /*@__PURE__*/ (function () {
40163 function Notification(kind, value, error) {
40164 this.kind = kind;
40165 this.value = value;
40166 this.error = error;
40167 this.hasValue = kind === 'N';
40168 }
40169 Notification.prototype.observe = function (observer) {
40170 switch (this.kind) {
40171 case 'N':
40172 return observer.next && observer.next(this.value);
40173 case 'E':
40174 return observer.error && observer.error(this.error);
40175 case 'C':
40176 return observer.complete && observer.complete();
40177 }
40178 };
40179 Notification.prototype.do = function (next, error, complete) {
40180 var kind = this.kind;
40181 switch (kind) {
40182 case 'N':
40183 return next && next(this.value);
40184 case 'E':
40185 return error && error(this.error);
40186 case 'C':
40187 return complete && complete();
40188 }
40189 };
40190 Notification.prototype.accept = function (nextOrObserver, error, complete) {
40191 if (nextOrObserver && typeof nextOrObserver.next === 'function') {
40192 return this.observe(nextOrObserver);
40193 }
40194 else {
40195 return this.do(nextOrObserver, error, complete);
40196 }
40197 };
40198 Notification.prototype.toObservable = function () {
40199 var kind = this.kind;
40200 switch (kind) {
40201 case 'N':
40202 return Object(_observable_of__WEBPACK_IMPORTED_MODULE_1__["of"])(this.value);
40203 case 'E':
40204 return Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_2__["throwError"])(this.error);
40205 case 'C':
40206 return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_0__["empty"])();
40207 }
40208 throw new Error('unexpected notification kind value');
40209 };
40210 Notification.createNext = function (value) {
40211 if (typeof value !== 'undefined') {
40212 return new Notification('N', value);
40213 }
40214 return Notification.undefinedValueNotification;
40215 };
40216 Notification.createError = function (err) {
40217 return new Notification('E', undefined, err);
40218 };
40219 Notification.createComplete = function () {
40220 return Notification.completeNotification;
40221 };
40222 Notification.completeNotification = new Notification('C');
40223 Notification.undefinedValueNotification = new Notification('N', undefined);
40224 return Notification;
40225}());
40226
40227//# sourceMappingURL=Notification.js.map
40228
40229
40230/***/ }),
40231
40232/***/ "./node_modules/rxjs/_esm5/internal/Observable.js":
40233/*!********************************************************!*\
40234 !*** ./node_modules/rxjs/_esm5/internal/Observable.js ***!
40235 \********************************************************/
40236/*! exports provided: Observable */
40237/***/ (function(module, __webpack_exports__, __webpack_require__) {
40238
40239"use strict";
40240__webpack_require__.r(__webpack_exports__);
40241/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return Observable; });
40242/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/canReportError */ "./node_modules/rxjs/_esm5/internal/util/canReportError.js");
40243/* harmony import */ var _util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/toSubscriber */ "./node_modules/rxjs/_esm5/internal/util/toSubscriber.js");
40244/* harmony import */ var _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../internal/symbol/observable */ "./node_modules/rxjs/_esm5/internal/symbol/observable.js");
40245/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/pipe */ "./node_modules/rxjs/_esm5/internal/util/pipe.js");
40246/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./config */ "./node_modules/rxjs/_esm5/internal/config.js");
40247/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_internal_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */
40248
40249
40250
40251
40252
40253var Observable = /*@__PURE__*/ (function () {
40254 function Observable(subscribe) {
40255 this._isScalar = false;
40256 if (subscribe) {
40257 this._subscribe = subscribe;
40258 }
40259 }
40260 Observable.prototype.lift = function (operator) {
40261 var observable = new Observable();
40262 observable.source = this;
40263 observable.operator = operator;
40264 return observable;
40265 };
40266 Observable.prototype.subscribe = function (observerOrNext, error, complete) {
40267 var operator = this.operator;
40268 var sink = Object(_util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__["toSubscriber"])(observerOrNext, error, complete);
40269 if (operator) {
40270 operator.call(sink, this.source);
40271 }
40272 else {
40273 sink.add(this.source || (_config__WEBPACK_IMPORTED_MODULE_4__["config"].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?
40274 this._subscribe(sink) :
40275 this._trySubscribe(sink));
40276 }
40277 if (_config__WEBPACK_IMPORTED_MODULE_4__["config"].useDeprecatedSynchronousErrorHandling) {
40278 if (sink.syncErrorThrowable) {
40279 sink.syncErrorThrowable = false;
40280 if (sink.syncErrorThrown) {
40281 throw sink.syncErrorValue;
40282 }
40283 }
40284 }
40285 return sink;
40286 };
40287 Observable.prototype._trySubscribe = function (sink) {
40288 try {
40289 return this._subscribe(sink);
40290 }
40291 catch (err) {
40292 if (_config__WEBPACK_IMPORTED_MODULE_4__["config"].useDeprecatedSynchronousErrorHandling) {
40293 sink.syncErrorThrown = true;
40294 sink.syncErrorValue = err;
40295 }
40296 if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_0__["canReportError"])(sink)) {
40297 sink.error(err);
40298 }
40299 else {
40300 console.warn(err);
40301 }
40302 }
40303 };
40304 Observable.prototype.forEach = function (next, promiseCtor) {
40305 var _this = this;
40306 promiseCtor = getPromiseCtor(promiseCtor);
40307 return new promiseCtor(function (resolve, reject) {
40308 var subscription;
40309 subscription = _this.subscribe(function (value) {
40310 try {
40311 next(value);
40312 }
40313 catch (err) {
40314 reject(err);
40315 if (subscription) {
40316 subscription.unsubscribe();
40317 }
40318 }
40319 }, reject, resolve);
40320 });
40321 };
40322 Observable.prototype._subscribe = function (subscriber) {
40323 var source = this.source;
40324 return source && source.subscribe(subscriber);
40325 };
40326 Observable.prototype[_internal_symbol_observable__WEBPACK_IMPORTED_MODULE_2__["observable"]] = function () {
40327 return this;
40328 };
40329 Observable.prototype.pipe = function () {
40330 var operations = [];
40331 for (var _i = 0; _i < arguments.length; _i++) {
40332 operations[_i] = arguments[_i];
40333 }
40334 if (operations.length === 0) {
40335 return this;
40336 }
40337 return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipeFromArray"])(operations)(this);
40338 };
40339 Observable.prototype.toPromise = function (promiseCtor) {
40340 var _this = this;
40341 promiseCtor = getPromiseCtor(promiseCtor);
40342 return new promiseCtor(function (resolve, reject) {
40343 var value;
40344 _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });
40345 });
40346 };
40347 Observable.create = function (subscribe) {
40348 return new Observable(subscribe);
40349 };
40350 return Observable;
40351}());
40352
40353function getPromiseCtor(promiseCtor) {
40354 if (!promiseCtor) {
40355 promiseCtor = _config__WEBPACK_IMPORTED_MODULE_4__["config"].Promise || Promise;
40356 }
40357 if (!promiseCtor) {
40358 throw new Error('no Promise impl found');
40359 }
40360 return promiseCtor;
40361}
40362//# sourceMappingURL=Observable.js.map
40363
40364
40365/***/ }),
40366
40367/***/ "./node_modules/rxjs/_esm5/internal/Observer.js":
40368/*!******************************************************!*\
40369 !*** ./node_modules/rxjs/_esm5/internal/Observer.js ***!
40370 \******************************************************/
40371/*! exports provided: empty */
40372/***/ (function(module, __webpack_exports__, __webpack_require__) {
40373
40374"use strict";
40375__webpack_require__.r(__webpack_exports__);
40376/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; });
40377/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./config */ "./node_modules/rxjs/_esm5/internal/config.js");
40378/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/hostReportError */ "./node_modules/rxjs/_esm5/internal/util/hostReportError.js");
40379/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */
40380
40381
40382var empty = {
40383 closed: true,
40384 next: function (value) { },
40385 error: function (err) {
40386 if (_config__WEBPACK_IMPORTED_MODULE_0__["config"].useDeprecatedSynchronousErrorHandling) {
40387 throw err;
40388 }
40389 else {
40390 Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_1__["hostReportError"])(err);
40391 }
40392 },
40393 complete: function () { }
40394};
40395//# sourceMappingURL=Observer.js.map
40396
40397
40398/***/ }),
40399
40400/***/ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js":
40401/*!*************************************************************!*\
40402 !*** ./node_modules/rxjs/_esm5/internal/OuterSubscriber.js ***!
40403 \*************************************************************/
40404/*! exports provided: OuterSubscriber */
40405/***/ (function(module, __webpack_exports__, __webpack_require__) {
40406
40407"use strict";
40408__webpack_require__.r(__webpack_exports__);
40409/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OuterSubscriber", function() { return OuterSubscriber; });
40410/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
40411/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
40412/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
40413
40414
40415var OuterSubscriber = /*@__PURE__*/ (function (_super) {
40416 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OuterSubscriber, _super);
40417 function OuterSubscriber() {
40418 return _super !== null && _super.apply(this, arguments) || this;
40419 }
40420 OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
40421 this.destination.next(innerValue);
40422 };
40423 OuterSubscriber.prototype.notifyError = function (error, innerSub) {
40424 this.destination.error(error);
40425 };
40426 OuterSubscriber.prototype.notifyComplete = function (innerSub) {
40427 this.destination.complete();
40428 };
40429 return OuterSubscriber;
40430}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
40431
40432//# sourceMappingURL=OuterSubscriber.js.map
40433
40434
40435/***/ }),
40436
40437/***/ "./node_modules/rxjs/_esm5/internal/ReplaySubject.js":
40438/*!***********************************************************!*\
40439 !*** ./node_modules/rxjs/_esm5/internal/ReplaySubject.js ***!
40440 \***********************************************************/
40441/*! exports provided: ReplaySubject */
40442/***/ (function(module, __webpack_exports__, __webpack_require__) {
40443
40444"use strict";
40445__webpack_require__.r(__webpack_exports__);
40446/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReplaySubject", function() { return ReplaySubject; });
40447/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
40448/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
40449/* harmony import */ var _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./scheduler/queue */ "./node_modules/rxjs/_esm5/internal/scheduler/queue.js");
40450/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
40451/* harmony import */ var _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./operators/observeOn */ "./node_modules/rxjs/_esm5/internal/operators/observeOn.js");
40452/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ "./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js");
40453/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SubjectSubscription */ "./node_modules/rxjs/_esm5/internal/SubjectSubscription.js");
40454/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */
40455
40456
40457
40458
40459
40460
40461
40462var ReplaySubject = /*@__PURE__*/ (function (_super) {
40463 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ReplaySubject, _super);
40464 function ReplaySubject(bufferSize, windowTime, scheduler) {
40465 if (bufferSize === void 0) {
40466 bufferSize = Number.POSITIVE_INFINITY;
40467 }
40468 if (windowTime === void 0) {
40469 windowTime = Number.POSITIVE_INFINITY;
40470 }
40471 var _this = _super.call(this) || this;
40472 _this.scheduler = scheduler;
40473 _this._events = [];
40474 _this._infiniteTimeWindow = false;
40475 _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;
40476 _this._windowTime = windowTime < 1 ? 1 : windowTime;
40477 if (windowTime === Number.POSITIVE_INFINITY) {
40478 _this._infiniteTimeWindow = true;
40479 _this.next = _this.nextInfiniteTimeWindow;
40480 }
40481 else {
40482 _this.next = _this.nextTimeWindow;
40483 }
40484 return _this;
40485 }
40486 ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {
40487 var _events = this._events;
40488 _events.push(value);
40489 if (_events.length > this._bufferSize) {
40490 _events.shift();
40491 }
40492 _super.prototype.next.call(this, value);
40493 };
40494 ReplaySubject.prototype.nextTimeWindow = function (value) {
40495 this._events.push(new ReplayEvent(this._getNow(), value));
40496 this._trimBufferThenGetEvents();
40497 _super.prototype.next.call(this, value);
40498 };
40499 ReplaySubject.prototype._subscribe = function (subscriber) {
40500 var _infiniteTimeWindow = this._infiniteTimeWindow;
40501 var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();
40502 var scheduler = this.scheduler;
40503 var len = _events.length;
40504 var subscription;
40505 if (this.closed) {
40506 throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__["ObjectUnsubscribedError"]();
40507 }
40508 else if (this.isStopped || this.hasError) {
40509 subscription = _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY;
40510 }
40511 else {
40512 this.observers.push(subscriber);
40513 subscription = new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__["SubjectSubscription"](this, subscriber);
40514 }
40515 if (scheduler) {
40516 subscriber.add(subscriber = new _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__["ObserveOnSubscriber"](subscriber, scheduler));
40517 }
40518 if (_infiniteTimeWindow) {
40519 for (var i = 0; i < len && !subscriber.closed; i++) {
40520 subscriber.next(_events[i]);
40521 }
40522 }
40523 else {
40524 for (var i = 0; i < len && !subscriber.closed; i++) {
40525 subscriber.next(_events[i].value);
40526 }
40527 }
40528 if (this.hasError) {
40529 subscriber.error(this.thrownError);
40530 }
40531 else if (this.isStopped) {
40532 subscriber.complete();
40533 }
40534 return subscription;
40535 };
40536 ReplaySubject.prototype._getNow = function () {
40537 return (this.scheduler || _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__["queue"]).now();
40538 };
40539 ReplaySubject.prototype._trimBufferThenGetEvents = function () {
40540 var now = this._getNow();
40541 var _bufferSize = this._bufferSize;
40542 var _windowTime = this._windowTime;
40543 var _events = this._events;
40544 var eventsCount = _events.length;
40545 var spliceCount = 0;
40546 while (spliceCount < eventsCount) {
40547 if ((now - _events[spliceCount].time) < _windowTime) {
40548 break;
40549 }
40550 spliceCount++;
40551 }
40552 if (eventsCount > _bufferSize) {
40553 spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);
40554 }
40555 if (spliceCount > 0) {
40556 _events.splice(0, spliceCount);
40557 }
40558 return _events;
40559 };
40560 return ReplaySubject;
40561}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"]));
40562
40563var ReplayEvent = /*@__PURE__*/ (function () {
40564 function ReplayEvent(time, value) {
40565 this.time = time;
40566 this.value = value;
40567 }
40568 return ReplayEvent;
40569}());
40570//# sourceMappingURL=ReplaySubject.js.map
40571
40572
40573/***/ }),
40574
40575/***/ "./node_modules/rxjs/_esm5/internal/Scheduler.js":
40576/*!*******************************************************!*\
40577 !*** ./node_modules/rxjs/_esm5/internal/Scheduler.js ***!
40578 \*******************************************************/
40579/*! exports provided: Scheduler */
40580/***/ (function(module, __webpack_exports__, __webpack_require__) {
40581
40582"use strict";
40583__webpack_require__.r(__webpack_exports__);
40584/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Scheduler", function() { return Scheduler; });
40585var Scheduler = /*@__PURE__*/ (function () {
40586 function Scheduler(SchedulerAction, now) {
40587 if (now === void 0) {
40588 now = Scheduler.now;
40589 }
40590 this.SchedulerAction = SchedulerAction;
40591 this.now = now;
40592 }
40593 Scheduler.prototype.schedule = function (work, delay, state) {
40594 if (delay === void 0) {
40595 delay = 0;
40596 }
40597 return new this.SchedulerAction(this, work).schedule(state, delay);
40598 };
40599 Scheduler.now = function () { return Date.now(); };
40600 return Scheduler;
40601}());
40602
40603//# sourceMappingURL=Scheduler.js.map
40604
40605
40606/***/ }),
40607
40608/***/ "./node_modules/rxjs/_esm5/internal/Subject.js":
40609/*!*****************************************************!*\
40610 !*** ./node_modules/rxjs/_esm5/internal/Subject.js ***!
40611 \*****************************************************/
40612/*! exports provided: SubjectSubscriber, Subject, AnonymousSubject */
40613/***/ (function(module, __webpack_exports__, __webpack_require__) {
40614
40615"use strict";
40616__webpack_require__.r(__webpack_exports__);
40617/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectSubscriber", function() { return SubjectSubscriber; });
40618/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Subject", function() { return Subject; });
40619/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnonymousSubject", function() { return AnonymousSubject; });
40620/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
40621/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
40622/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
40623/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
40624/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ "./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js");
40625/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SubjectSubscription */ "./node_modules/rxjs/_esm5/internal/SubjectSubscription.js");
40626/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/symbol/rxSubscriber */ "./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js");
40627/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */
40628
40629
40630
40631
40632
40633
40634
40635var SubjectSubscriber = /*@__PURE__*/ (function (_super) {
40636 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubjectSubscriber, _super);
40637 function SubjectSubscriber(destination) {
40638 var _this = _super.call(this, destination) || this;
40639 _this.destination = destination;
40640 return _this;
40641 }
40642 return SubjectSubscriber;
40643}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"]));
40644
40645var Subject = /*@__PURE__*/ (function (_super) {
40646 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Subject, _super);
40647 function Subject() {
40648 var _this = _super.call(this) || this;
40649 _this.observers = [];
40650 _this.closed = false;
40651 _this.isStopped = false;
40652 _this.hasError = false;
40653 _this.thrownError = null;
40654 return _this;
40655 }
40656 Subject.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__["rxSubscriber"]] = function () {
40657 return new SubjectSubscriber(this);
40658 };
40659 Subject.prototype.lift = function (operator) {
40660 var subject = new AnonymousSubject(this, this);
40661 subject.operator = operator;
40662 return subject;
40663 };
40664 Subject.prototype.next = function (value) {
40665 if (this.closed) {
40666 throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"]();
40667 }
40668 if (!this.isStopped) {
40669 var observers = this.observers;
40670 var len = observers.length;
40671 var copy = observers.slice();
40672 for (var i = 0; i < len; i++) {
40673 copy[i].next(value);
40674 }
40675 }
40676 };
40677 Subject.prototype.error = function (err) {
40678 if (this.closed) {
40679 throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"]();
40680 }
40681 this.hasError = true;
40682 this.thrownError = err;
40683 this.isStopped = true;
40684 var observers = this.observers;
40685 var len = observers.length;
40686 var copy = observers.slice();
40687 for (var i = 0; i < len; i++) {
40688 copy[i].error(err);
40689 }
40690 this.observers.length = 0;
40691 };
40692 Subject.prototype.complete = function () {
40693 if (this.closed) {
40694 throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"]();
40695 }
40696 this.isStopped = true;
40697 var observers = this.observers;
40698 var len = observers.length;
40699 var copy = observers.slice();
40700 for (var i = 0; i < len; i++) {
40701 copy[i].complete();
40702 }
40703 this.observers.length = 0;
40704 };
40705 Subject.prototype.unsubscribe = function () {
40706 this.isStopped = true;
40707 this.closed = true;
40708 this.observers = null;
40709 };
40710 Subject.prototype._trySubscribe = function (subscriber) {
40711 if (this.closed) {
40712 throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"]();
40713 }
40714 else {
40715 return _super.prototype._trySubscribe.call(this, subscriber);
40716 }
40717 };
40718 Subject.prototype._subscribe = function (subscriber) {
40719 if (this.closed) {
40720 throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"]();
40721 }
40722 else if (this.hasError) {
40723 subscriber.error(this.thrownError);
40724 return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY;
40725 }
40726 else if (this.isStopped) {
40727 subscriber.complete();
40728 return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY;
40729 }
40730 else {
40731 this.observers.push(subscriber);
40732 return new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__["SubjectSubscription"](this, subscriber);
40733 }
40734 };
40735 Subject.prototype.asObservable = function () {
40736 var observable = new _Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
40737 observable.source = this;
40738 return observable;
40739 };
40740 Subject.create = function (destination, source) {
40741 return new AnonymousSubject(destination, source);
40742 };
40743 return Subject;
40744}(_Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]));
40745
40746var AnonymousSubject = /*@__PURE__*/ (function (_super) {
40747 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnonymousSubject, _super);
40748 function AnonymousSubject(destination, source) {
40749 var _this = _super.call(this) || this;
40750 _this.destination = destination;
40751 _this.source = source;
40752 return _this;
40753 }
40754 AnonymousSubject.prototype.next = function (value) {
40755 var destination = this.destination;
40756 if (destination && destination.next) {
40757 destination.next(value);
40758 }
40759 };
40760 AnonymousSubject.prototype.error = function (err) {
40761 var destination = this.destination;
40762 if (destination && destination.error) {
40763 this.destination.error(err);
40764 }
40765 };
40766 AnonymousSubject.prototype.complete = function () {
40767 var destination = this.destination;
40768 if (destination && destination.complete) {
40769 this.destination.complete();
40770 }
40771 };
40772 AnonymousSubject.prototype._subscribe = function (subscriber) {
40773 var source = this.source;
40774 if (source) {
40775 return this.source.subscribe(subscriber);
40776 }
40777 else {
40778 return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY;
40779 }
40780 };
40781 return AnonymousSubject;
40782}(Subject));
40783
40784//# sourceMappingURL=Subject.js.map
40785
40786
40787/***/ }),
40788
40789/***/ "./node_modules/rxjs/_esm5/internal/SubjectSubscription.js":
40790/*!*****************************************************************!*\
40791 !*** ./node_modules/rxjs/_esm5/internal/SubjectSubscription.js ***!
40792 \*****************************************************************/
40793/*! exports provided: SubjectSubscription */
40794/***/ (function(module, __webpack_exports__, __webpack_require__) {
40795
40796"use strict";
40797__webpack_require__.r(__webpack_exports__);
40798/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectSubscription", function() { return SubjectSubscription; });
40799/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
40800/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
40801/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */
40802
40803
40804var SubjectSubscription = /*@__PURE__*/ (function (_super) {
40805 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubjectSubscription, _super);
40806 function SubjectSubscription(subject, subscriber) {
40807 var _this = _super.call(this) || this;
40808 _this.subject = subject;
40809 _this.subscriber = subscriber;
40810 _this.closed = false;
40811 return _this;
40812 }
40813 SubjectSubscription.prototype.unsubscribe = function () {
40814 if (this.closed) {
40815 return;
40816 }
40817 this.closed = true;
40818 var subject = this.subject;
40819 var observers = subject.observers;
40820 this.subject = null;
40821 if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {
40822 return;
40823 }
40824 var subscriberIndex = observers.indexOf(this.subscriber);
40825 if (subscriberIndex !== -1) {
40826 observers.splice(subscriberIndex, 1);
40827 }
40828 };
40829 return SubjectSubscription;
40830}(_Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"]));
40831
40832//# sourceMappingURL=SubjectSubscription.js.map
40833
40834
40835/***/ }),
40836
40837/***/ "./node_modules/rxjs/_esm5/internal/Subscriber.js":
40838/*!********************************************************!*\
40839 !*** ./node_modules/rxjs/_esm5/internal/Subscriber.js ***!
40840 \********************************************************/
40841/*! exports provided: Subscriber, SafeSubscriber */
40842/***/ (function(module, __webpack_exports__, __webpack_require__) {
40843
40844"use strict";
40845__webpack_require__.r(__webpack_exports__);
40846/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Subscriber", function() { return Subscriber; });
40847/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SafeSubscriber", function() { return SafeSubscriber; });
40848/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
40849/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/isFunction */ "./node_modules/rxjs/_esm5/internal/util/isFunction.js");
40850/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Observer */ "./node_modules/rxjs/_esm5/internal/Observer.js");
40851/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
40852/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/symbol/rxSubscriber */ "./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js");
40853/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ "./node_modules/rxjs/_esm5/internal/config.js");
40854/* harmony import */ var _util_hostReportError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./util/hostReportError */ "./node_modules/rxjs/_esm5/internal/util/hostReportError.js");
40855/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */
40856
40857
40858
40859
40860
40861
40862
40863var Subscriber = /*@__PURE__*/ (function (_super) {
40864 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Subscriber, _super);
40865 function Subscriber(destinationOrNext, error, complete) {
40866 var _this = _super.call(this) || this;
40867 _this.syncErrorValue = null;
40868 _this.syncErrorThrown = false;
40869 _this.syncErrorThrowable = false;
40870 _this.isStopped = false;
40871 _this._parentSubscription = null;
40872 switch (arguments.length) {
40873 case 0:
40874 _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__["empty"];
40875 break;
40876 case 1:
40877 if (!destinationOrNext) {
40878 _this.destination = _Observer__WEBPACK_IMPORTED_MODULE_2__["empty"];
40879 break;
40880 }
40881 if (typeof destinationOrNext === 'object') {
40882 if (destinationOrNext instanceof Subscriber) {
40883 _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;
40884 _this.destination = destinationOrNext;
40885 destinationOrNext.add(_this);
40886 }
40887 else {
40888 _this.syncErrorThrowable = true;
40889 _this.destination = new SafeSubscriber(_this, destinationOrNext);
40890 }
40891 break;
40892 }
40893 default:
40894 _this.syncErrorThrowable = true;
40895 _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);
40896 break;
40897 }
40898 return _this;
40899 }
40900 Subscriber.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_4__["rxSubscriber"]] = function () { return this; };
40901 Subscriber.create = function (next, error, complete) {
40902 var subscriber = new Subscriber(next, error, complete);
40903 subscriber.syncErrorThrowable = false;
40904 return subscriber;
40905 };
40906 Subscriber.prototype.next = function (value) {
40907 if (!this.isStopped) {
40908 this._next(value);
40909 }
40910 };
40911 Subscriber.prototype.error = function (err) {
40912 if (!this.isStopped) {
40913 this.isStopped = true;
40914 this._error(err);
40915 }
40916 };
40917 Subscriber.prototype.complete = function () {
40918 if (!this.isStopped) {
40919 this.isStopped = true;
40920 this._complete();
40921 }
40922 };
40923 Subscriber.prototype.unsubscribe = function () {
40924 if (this.closed) {
40925 return;
40926 }
40927 this.isStopped = true;
40928 _super.prototype.unsubscribe.call(this);
40929 };
40930 Subscriber.prototype._next = function (value) {
40931 this.destination.next(value);
40932 };
40933 Subscriber.prototype._error = function (err) {
40934 this.destination.error(err);
40935 this.unsubscribe();
40936 };
40937 Subscriber.prototype._complete = function () {
40938 this.destination.complete();
40939 this.unsubscribe();
40940 };
40941 Subscriber.prototype._unsubscribeAndRecycle = function () {
40942 var _a = this, _parent = _a._parent, _parents = _a._parents;
40943 this._parent = null;
40944 this._parents = null;
40945 this.unsubscribe();
40946 this.closed = false;
40947 this.isStopped = false;
40948 this._parent = _parent;
40949 this._parents = _parents;
40950 this._parentSubscription = null;
40951 return this;
40952 };
40953 return Subscriber;
40954}(_Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"]));
40955
40956var SafeSubscriber = /*@__PURE__*/ (function (_super) {
40957 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SafeSubscriber, _super);
40958 function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {
40959 var _this = _super.call(this) || this;
40960 _this._parentSubscriber = _parentSubscriber;
40961 var next;
40962 var context = _this;
40963 if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(observerOrNext)) {
40964 next = observerOrNext;
40965 }
40966 else if (observerOrNext) {
40967 next = observerOrNext.next;
40968 error = observerOrNext.error;
40969 complete = observerOrNext.complete;
40970 if (observerOrNext !== _Observer__WEBPACK_IMPORTED_MODULE_2__["empty"]) {
40971 context = Object.create(observerOrNext);
40972 if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(context.unsubscribe)) {
40973 _this.add(context.unsubscribe.bind(context));
40974 }
40975 context.unsubscribe = _this.unsubscribe.bind(_this);
40976 }
40977 }
40978 _this._context = context;
40979 _this._next = next;
40980 _this._error = error;
40981 _this._complete = complete;
40982 return _this;
40983 }
40984 SafeSubscriber.prototype.next = function (value) {
40985 if (!this.isStopped && this._next) {
40986 var _parentSubscriber = this._parentSubscriber;
40987 if (!_config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
40988 this.__tryOrUnsub(this._next, value);
40989 }
40990 else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {
40991 this.unsubscribe();
40992 }
40993 }
40994 };
40995 SafeSubscriber.prototype.error = function (err) {
40996 if (!this.isStopped) {
40997 var _parentSubscriber = this._parentSubscriber;
40998 var useDeprecatedSynchronousErrorHandling = _config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling;
40999 if (this._error) {
41000 if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
41001 this.__tryOrUnsub(this._error, err);
41002 this.unsubscribe();
41003 }
41004 else {
41005 this.__tryOrSetError(_parentSubscriber, this._error, err);
41006 this.unsubscribe();
41007 }
41008 }
41009 else if (!_parentSubscriber.syncErrorThrowable) {
41010 this.unsubscribe();
41011 if (useDeprecatedSynchronousErrorHandling) {
41012 throw err;
41013 }
41014 Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__["hostReportError"])(err);
41015 }
41016 else {
41017 if (useDeprecatedSynchronousErrorHandling) {
41018 _parentSubscriber.syncErrorValue = err;
41019 _parentSubscriber.syncErrorThrown = true;
41020 }
41021 else {
41022 Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__["hostReportError"])(err);
41023 }
41024 this.unsubscribe();
41025 }
41026 }
41027 };
41028 SafeSubscriber.prototype.complete = function () {
41029 var _this = this;
41030 if (!this.isStopped) {
41031 var _parentSubscriber = this._parentSubscriber;
41032 if (this._complete) {
41033 var wrappedComplete = function () { return _this._complete.call(_this._context); };
41034 if (!_config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {
41035 this.__tryOrUnsub(wrappedComplete);
41036 this.unsubscribe();
41037 }
41038 else {
41039 this.__tryOrSetError(_parentSubscriber, wrappedComplete);
41040 this.unsubscribe();
41041 }
41042 }
41043 else {
41044 this.unsubscribe();
41045 }
41046 }
41047 };
41048 SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {
41049 try {
41050 fn.call(this._context, value);
41051 }
41052 catch (err) {
41053 this.unsubscribe();
41054 if (_config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling) {
41055 throw err;
41056 }
41057 else {
41058 Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__["hostReportError"])(err);
41059 }
41060 }
41061 };
41062 SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {
41063 if (!_config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling) {
41064 throw new Error('bad call');
41065 }
41066 try {
41067 fn.call(this._context, value);
41068 }
41069 catch (err) {
41070 if (_config__WEBPACK_IMPORTED_MODULE_5__["config"].useDeprecatedSynchronousErrorHandling) {
41071 parent.syncErrorValue = err;
41072 parent.syncErrorThrown = true;
41073 return true;
41074 }
41075 else {
41076 Object(_util_hostReportError__WEBPACK_IMPORTED_MODULE_6__["hostReportError"])(err);
41077 return true;
41078 }
41079 }
41080 return false;
41081 };
41082 SafeSubscriber.prototype._unsubscribe = function () {
41083 var _parentSubscriber = this._parentSubscriber;
41084 this._context = null;
41085 this._parentSubscriber = null;
41086 _parentSubscriber.unsubscribe();
41087 };
41088 return SafeSubscriber;
41089}(Subscriber));
41090
41091//# sourceMappingURL=Subscriber.js.map
41092
41093
41094/***/ }),
41095
41096/***/ "./node_modules/rxjs/_esm5/internal/Subscription.js":
41097/*!**********************************************************!*\
41098 !*** ./node_modules/rxjs/_esm5/internal/Subscription.js ***!
41099 \**********************************************************/
41100/*! exports provided: Subscription */
41101/***/ (function(module, __webpack_exports__, __webpack_require__) {
41102
41103"use strict";
41104__webpack_require__.r(__webpack_exports__);
41105/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Subscription", function() { return Subscription; });
41106/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
41107/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/isObject */ "./node_modules/rxjs/_esm5/internal/util/isObject.js");
41108/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util/isFunction */ "./node_modules/rxjs/_esm5/internal/util/isFunction.js");
41109/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
41110/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
41111/* harmony import */ var _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./util/UnsubscriptionError */ "./node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js");
41112/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_tryCatch,_util_errorObject,_util_UnsubscriptionError PURE_IMPORTS_END */
41113
41114
41115
41116
41117
41118
41119var Subscription = /*@__PURE__*/ (function () {
41120 function Subscription(unsubscribe) {
41121 this.closed = false;
41122 this._parent = null;
41123 this._parents = null;
41124 this._subscriptions = null;
41125 if (unsubscribe) {
41126 this._unsubscribe = unsubscribe;
41127 }
41128 }
41129 Subscription.prototype.unsubscribe = function () {
41130 var hasErrors = false;
41131 var errors;
41132 if (this.closed) {
41133 return;
41134 }
41135 var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;
41136 this.closed = true;
41137 this._parent = null;
41138 this._parents = null;
41139 this._subscriptions = null;
41140 var index = -1;
41141 var len = _parents ? _parents.length : 0;
41142 while (_parent) {
41143 _parent.remove(this);
41144 _parent = ++index < len && _parents[index] || null;
41145 }
41146 if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(_unsubscribe)) {
41147 var trial = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_3__["tryCatch"])(_unsubscribe).call(this);
41148 if (trial === _util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"]) {
41149 hasErrors = true;
41150 errors = errors || (_util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"].e instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__["UnsubscriptionError"] ?
41151 flattenUnsubscriptionErrors(_util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"].e.errors) : [_util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"].e]);
41152 }
41153 }
41154 if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(_subscriptions)) {
41155 index = -1;
41156 len = _subscriptions.length;
41157 while (++index < len) {
41158 var sub = _subscriptions[index];
41159 if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_1__["isObject"])(sub)) {
41160 var trial = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_3__["tryCatch"])(sub.unsubscribe).call(sub);
41161 if (trial === _util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"]) {
41162 hasErrors = true;
41163 errors = errors || [];
41164 var err = _util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"].e;
41165 if (err instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__["UnsubscriptionError"]) {
41166 errors = errors.concat(flattenUnsubscriptionErrors(err.errors));
41167 }
41168 else {
41169 errors.push(err);
41170 }
41171 }
41172 }
41173 }
41174 }
41175 if (hasErrors) {
41176 throw new _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__["UnsubscriptionError"](errors);
41177 }
41178 };
41179 Subscription.prototype.add = function (teardown) {
41180 if (!teardown || (teardown === Subscription.EMPTY)) {
41181 return Subscription.EMPTY;
41182 }
41183 if (teardown === this) {
41184 return this;
41185 }
41186 var subscription = teardown;
41187 switch (typeof teardown) {
41188 case 'function':
41189 subscription = new Subscription(teardown);
41190 case 'object':
41191 if (subscription.closed || typeof subscription.unsubscribe !== 'function') {
41192 return subscription;
41193 }
41194 else if (this.closed) {
41195 subscription.unsubscribe();
41196 return subscription;
41197 }
41198 else if (typeof subscription._addParent !== 'function') {
41199 var tmp = subscription;
41200 subscription = new Subscription();
41201 subscription._subscriptions = [tmp];
41202 }
41203 break;
41204 default:
41205 throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');
41206 }
41207 var subscriptions = this._subscriptions || (this._subscriptions = []);
41208 subscriptions.push(subscription);
41209 subscription._addParent(this);
41210 return subscription;
41211 };
41212 Subscription.prototype.remove = function (subscription) {
41213 var subscriptions = this._subscriptions;
41214 if (subscriptions) {
41215 var subscriptionIndex = subscriptions.indexOf(subscription);
41216 if (subscriptionIndex !== -1) {
41217 subscriptions.splice(subscriptionIndex, 1);
41218 }
41219 }
41220 };
41221 Subscription.prototype._addParent = function (parent) {
41222 var _a = this, _parent = _a._parent, _parents = _a._parents;
41223 if (!_parent || _parent === parent) {
41224 this._parent = parent;
41225 }
41226 else if (!_parents) {
41227 this._parents = [parent];
41228 }
41229 else if (_parents.indexOf(parent) === -1) {
41230 _parents.push(parent);
41231 }
41232 };
41233 Subscription.EMPTY = (function (empty) {
41234 empty.closed = true;
41235 return empty;
41236 }(new Subscription()));
41237 return Subscription;
41238}());
41239
41240function flattenUnsubscriptionErrors(errors) {
41241 return errors.reduce(function (errs, err) { return errs.concat((err instanceof _util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_5__["UnsubscriptionError"]) ? err.errors : err); }, []);
41242}
41243//# sourceMappingURL=Subscription.js.map
41244
41245
41246/***/ }),
41247
41248/***/ "./node_modules/rxjs/_esm5/internal/config.js":
41249/*!****************************************************!*\
41250 !*** ./node_modules/rxjs/_esm5/internal/config.js ***!
41251 \****************************************************/
41252/*! exports provided: config */
41253/***/ (function(module, __webpack_exports__, __webpack_require__) {
41254
41255"use strict";
41256__webpack_require__.r(__webpack_exports__);
41257/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "config", function() { return config; });
41258/** PURE_IMPORTS_START PURE_IMPORTS_END */
41259var _enable_super_gross_mode_that_will_cause_bad_things = false;
41260var config = {
41261 Promise: undefined,
41262 set useDeprecatedSynchronousErrorHandling(value) {
41263 if (value) {
41264 var error = /*@__PURE__*/ new Error();
41265 /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack);
41266 }
41267 else if (_enable_super_gross_mode_that_will_cause_bad_things) {
41268 /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');
41269 }
41270 _enable_super_gross_mode_that_will_cause_bad_things = value;
41271 },
41272 get useDeprecatedSynchronousErrorHandling() {
41273 return _enable_super_gross_mode_that_will_cause_bad_things;
41274 },
41275};
41276//# sourceMappingURL=config.js.map
41277
41278
41279/***/ }),
41280
41281/***/ "./node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js":
41282/*!******************************************************************************!*\
41283 !*** ./node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js ***!
41284 \******************************************************************************/
41285/*! exports provided: ConnectableObservable, connectableObservableDescriptor */
41286/***/ (function(module, __webpack_exports__, __webpack_require__) {
41287
41288"use strict";
41289__webpack_require__.r(__webpack_exports__);
41290/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectableObservable", function() { return ConnectableObservable; });
41291/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "connectableObservableDescriptor", function() { return connectableObservableDescriptor; });
41292/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
41293/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
41294/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
41295/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
41296/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
41297/* harmony import */ var _operators_refCount__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../operators/refCount */ "./node_modules/rxjs/_esm5/internal/operators/refCount.js");
41298/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */
41299
41300
41301
41302
41303
41304
41305var ConnectableObservable = /*@__PURE__*/ (function (_super) {
41306 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ConnectableObservable, _super);
41307 function ConnectableObservable(source, subjectFactory) {
41308 var _this = _super.call(this) || this;
41309 _this.source = source;
41310 _this.subjectFactory = subjectFactory;
41311 _this._refCount = 0;
41312 _this._isComplete = false;
41313 return _this;
41314 }
41315 ConnectableObservable.prototype._subscribe = function (subscriber) {
41316 return this.getSubject().subscribe(subscriber);
41317 };
41318 ConnectableObservable.prototype.getSubject = function () {
41319 var subject = this._subject;
41320 if (!subject || subject.isStopped) {
41321 this._subject = this.subjectFactory();
41322 }
41323 return this._subject;
41324 };
41325 ConnectableObservable.prototype.connect = function () {
41326 var connection = this._connection;
41327 if (!connection) {
41328 this._isComplete = false;
41329 connection = this._connection = new _Subscription__WEBPACK_IMPORTED_MODULE_4__["Subscription"]();
41330 connection.add(this.source
41331 .subscribe(new ConnectableSubscriber(this.getSubject(), this)));
41332 if (connection.closed) {
41333 this._connection = null;
41334 connection = _Subscription__WEBPACK_IMPORTED_MODULE_4__["Subscription"].EMPTY;
41335 }
41336 else {
41337 this._connection = connection;
41338 }
41339 }
41340 return connection;
41341 };
41342 ConnectableObservable.prototype.refCount = function () {
41343 return Object(_operators_refCount__WEBPACK_IMPORTED_MODULE_5__["refCount"])()(this);
41344 };
41345 return ConnectableObservable;
41346}(_Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]));
41347
41348var connectableProto = ConnectableObservable.prototype;
41349var connectableObservableDescriptor = {
41350 operator: { value: null },
41351 _refCount: { value: 0, writable: true },
41352 _subject: { value: null, writable: true },
41353 _connection: { value: null, writable: true },
41354 _subscribe: { value: connectableProto._subscribe },
41355 _isComplete: { value: connectableProto._isComplete, writable: true },
41356 getSubject: { value: connectableProto.getSubject },
41357 connect: { value: connectableProto.connect },
41358 refCount: { value: connectableProto.refCount }
41359};
41360var ConnectableSubscriber = /*@__PURE__*/ (function (_super) {
41361 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ConnectableSubscriber, _super);
41362 function ConnectableSubscriber(destination, connectable) {
41363 var _this = _super.call(this, destination) || this;
41364 _this.connectable = connectable;
41365 return _this;
41366 }
41367 ConnectableSubscriber.prototype._error = function (err) {
41368 this._unsubscribe();
41369 _super.prototype._error.call(this, err);
41370 };
41371 ConnectableSubscriber.prototype._complete = function () {
41372 this.connectable._isComplete = true;
41373 this._unsubscribe();
41374 _super.prototype._complete.call(this);
41375 };
41376 ConnectableSubscriber.prototype._unsubscribe = function () {
41377 var connectable = this.connectable;
41378 if (connectable) {
41379 this.connectable = null;
41380 var connection = connectable._connection;
41381 connectable._refCount = 0;
41382 connectable._subject = null;
41383 connectable._connection = null;
41384 if (connection) {
41385 connection.unsubscribe();
41386 }
41387 }
41388 };
41389 return ConnectableSubscriber;
41390}(_Subject__WEBPACK_IMPORTED_MODULE_1__["SubjectSubscriber"]));
41391var RefCountOperator = /*@__PURE__*/ (function () {
41392 function RefCountOperator(connectable) {
41393 this.connectable = connectable;
41394 }
41395 RefCountOperator.prototype.call = function (subscriber, source) {
41396 var connectable = this.connectable;
41397 connectable._refCount++;
41398 var refCounter = new RefCountSubscriber(subscriber, connectable);
41399 var subscription = source.subscribe(refCounter);
41400 if (!refCounter.closed) {
41401 refCounter.connection = connectable.connect();
41402 }
41403 return subscription;
41404 };
41405 return RefCountOperator;
41406}());
41407var RefCountSubscriber = /*@__PURE__*/ (function (_super) {
41408 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RefCountSubscriber, _super);
41409 function RefCountSubscriber(destination, connectable) {
41410 var _this = _super.call(this, destination) || this;
41411 _this.connectable = connectable;
41412 return _this;
41413 }
41414 RefCountSubscriber.prototype._unsubscribe = function () {
41415 var connectable = this.connectable;
41416 if (!connectable) {
41417 this.connection = null;
41418 return;
41419 }
41420 this.connectable = null;
41421 var refCount = connectable._refCount;
41422 if (refCount <= 0) {
41423 this.connection = null;
41424 return;
41425 }
41426 connectable._refCount = refCount - 1;
41427 if (refCount > 1) {
41428 this.connection = null;
41429 return;
41430 }
41431 var connection = this.connection;
41432 var sharedConnection = connectable._connection;
41433 this.connection = null;
41434 if (sharedConnection && (!connection || sharedConnection === connection)) {
41435 sharedConnection.unsubscribe();
41436 }
41437 };
41438 return RefCountSubscriber;
41439}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"]));
41440//# sourceMappingURL=ConnectableObservable.js.map
41441
41442
41443/***/ }),
41444
41445/***/ "./node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js":
41446/*!******************************************************************************!*\
41447 !*** ./node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js ***!
41448 \******************************************************************************/
41449/*! exports provided: SubscribeOnObservable */
41450/***/ (function(module, __webpack_exports__, __webpack_require__) {
41451
41452"use strict";
41453__webpack_require__.r(__webpack_exports__);
41454/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubscribeOnObservable", function() { return SubscribeOnObservable; });
41455/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
41456/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
41457/* harmony import */ var _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/asap */ "./node_modules/rxjs/_esm5/internal/scheduler/asap.js");
41458/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isNumeric */ "./node_modules/rxjs/_esm5/internal/util/isNumeric.js");
41459/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */
41460
41461
41462
41463
41464var SubscribeOnObservable = /*@__PURE__*/ (function (_super) {
41465 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscribeOnObservable, _super);
41466 function SubscribeOnObservable(source, delayTime, scheduler) {
41467 if (delayTime === void 0) {
41468 delayTime = 0;
41469 }
41470 if (scheduler === void 0) {
41471 scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"];
41472 }
41473 var _this = _super.call(this) || this;
41474 _this.source = source;
41475 _this.delayTime = delayTime;
41476 _this.scheduler = scheduler;
41477 if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_3__["isNumeric"])(delayTime) || delayTime < 0) {
41478 _this.delayTime = 0;
41479 }
41480 if (!scheduler || typeof scheduler.schedule !== 'function') {
41481 _this.scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"];
41482 }
41483 return _this;
41484 }
41485 SubscribeOnObservable.create = function (source, delay, scheduler) {
41486 if (delay === void 0) {
41487 delay = 0;
41488 }
41489 if (scheduler === void 0) {
41490 scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"];
41491 }
41492 return new SubscribeOnObservable(source, delay, scheduler);
41493 };
41494 SubscribeOnObservable.dispatch = function (arg) {
41495 var source = arg.source, subscriber = arg.subscriber;
41496 return this.add(source.subscribe(subscriber));
41497 };
41498 SubscribeOnObservable.prototype._subscribe = function (subscriber) {
41499 var delay = this.delayTime;
41500 var source = this.source;
41501 var scheduler = this.scheduler;
41502 return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {
41503 source: source, subscriber: subscriber
41504 });
41505 };
41506 return SubscribeOnObservable;
41507}(_Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]));
41508
41509//# sourceMappingURL=SubscribeOnObservable.js.map
41510
41511
41512/***/ }),
41513
41514/***/ "./node_modules/rxjs/_esm5/internal/observable/bindCallback.js":
41515/*!*********************************************************************!*\
41516 !*** ./node_modules/rxjs/_esm5/internal/observable/bindCallback.js ***!
41517 \*********************************************************************/
41518/*! exports provided: bindCallback */
41519/***/ (function(module, __webpack_exports__, __webpack_require__) {
41520
41521"use strict";
41522__webpack_require__.r(__webpack_exports__);
41523/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindCallback", function() { return bindCallback; });
41524/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
41525/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../AsyncSubject */ "./node_modules/rxjs/_esm5/internal/AsyncSubject.js");
41526/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
41527/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/canReportError */ "./node_modules/rxjs/_esm5/internal/util/canReportError.js");
41528/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
41529/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
41530/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isArray,_util_isScheduler PURE_IMPORTS_END */
41531
41532
41533
41534
41535
41536
41537function bindCallback(callbackFunc, resultSelector, scheduler) {
41538 if (resultSelector) {
41539 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(resultSelector)) {
41540 scheduler = resultSelector;
41541 }
41542 else {
41543 return function () {
41544 var args = [];
41545 for (var _i = 0; _i < arguments.length; _i++) {
41546 args[_i] = arguments[_i];
41547 }
41548 return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_4__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
41549 };
41550 }
41551 }
41552 return function () {
41553 var args = [];
41554 for (var _i = 0; _i < arguments.length; _i++) {
41555 args[_i] = arguments[_i];
41556 }
41557 var context = this;
41558 var subject;
41559 var params = {
41560 context: context,
41561 subject: subject,
41562 callbackFunc: callbackFunc,
41563 scheduler: scheduler,
41564 };
41565 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
41566 if (!scheduler) {
41567 if (!subject) {
41568 subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"]();
41569 var handler = function () {
41570 var innerArgs = [];
41571 for (var _i = 0; _i < arguments.length; _i++) {
41572 innerArgs[_i] = arguments[_i];
41573 }
41574 subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
41575 subject.complete();
41576 };
41577 try {
41578 callbackFunc.apply(context, args.concat([handler]));
41579 }
41580 catch (err) {
41581 if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_3__["canReportError"])(subject)) {
41582 subject.error(err);
41583 }
41584 else {
41585 console.warn(err);
41586 }
41587 }
41588 }
41589 return subject.subscribe(subscriber);
41590 }
41591 else {
41592 var state = {
41593 args: args, subscriber: subscriber, params: params,
41594 };
41595 return scheduler.schedule(dispatch, 0, state);
41596 }
41597 });
41598 };
41599}
41600function dispatch(state) {
41601 var _this = this;
41602 var self = this;
41603 var args = state.args, subscriber = state.subscriber, params = state.params;
41604 var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;
41605 var subject = params.subject;
41606 if (!subject) {
41607 subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"]();
41608 var handler = function () {
41609 var innerArgs = [];
41610 for (var _i = 0; _i < arguments.length; _i++) {
41611 innerArgs[_i] = arguments[_i];
41612 }
41613 var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
41614 _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));
41615 };
41616 try {
41617 callbackFunc.apply(context, args.concat([handler]));
41618 }
41619 catch (err) {
41620 subject.error(err);
41621 }
41622 }
41623 this.add(subject.subscribe(subscriber));
41624}
41625function dispatchNext(state) {
41626 var value = state.value, subject = state.subject;
41627 subject.next(value);
41628 subject.complete();
41629}
41630function dispatchError(state) {
41631 var err = state.err, subject = state.subject;
41632 subject.error(err);
41633}
41634//# sourceMappingURL=bindCallback.js.map
41635
41636
41637/***/ }),
41638
41639/***/ "./node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js":
41640/*!*************************************************************************!*\
41641 !*** ./node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js ***!
41642 \*************************************************************************/
41643/*! exports provided: bindNodeCallback */
41644/***/ (function(module, __webpack_exports__, __webpack_require__) {
41645
41646"use strict";
41647__webpack_require__.r(__webpack_exports__);
41648/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindNodeCallback", function() { return bindNodeCallback; });
41649/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
41650/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../AsyncSubject */ "./node_modules/rxjs/_esm5/internal/AsyncSubject.js");
41651/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
41652/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/canReportError */ "./node_modules/rxjs/_esm5/internal/util/canReportError.js");
41653/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
41654/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
41655/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isScheduler,_util_isArray PURE_IMPORTS_END */
41656
41657
41658
41659
41660
41661
41662function bindNodeCallback(callbackFunc, resultSelector, scheduler) {
41663 if (resultSelector) {
41664 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_4__["isScheduler"])(resultSelector)) {
41665 scheduler = resultSelector;
41666 }
41667 else {
41668 return function () {
41669 var args = [];
41670 for (var _i = 0; _i < arguments.length; _i++) {
41671 args[_i] = arguments[_i];
41672 }
41673 return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_5__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
41674 };
41675 }
41676 }
41677 return function () {
41678 var args = [];
41679 for (var _i = 0; _i < arguments.length; _i++) {
41680 args[_i] = arguments[_i];
41681 }
41682 var params = {
41683 subject: undefined,
41684 args: args,
41685 callbackFunc: callbackFunc,
41686 scheduler: scheduler,
41687 context: this,
41688 };
41689 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
41690 var context = params.context;
41691 var subject = params.subject;
41692 if (!scheduler) {
41693 if (!subject) {
41694 subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"]();
41695 var handler = function () {
41696 var innerArgs = [];
41697 for (var _i = 0; _i < arguments.length; _i++) {
41698 innerArgs[_i] = arguments[_i];
41699 }
41700 var err = innerArgs.shift();
41701 if (err) {
41702 subject.error(err);
41703 return;
41704 }
41705 subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);
41706 subject.complete();
41707 };
41708 try {
41709 callbackFunc.apply(context, args.concat([handler]));
41710 }
41711 catch (err) {
41712 if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_3__["canReportError"])(subject)) {
41713 subject.error(err);
41714 }
41715 else {
41716 console.warn(err);
41717 }
41718 }
41719 }
41720 return subject.subscribe(subscriber);
41721 }
41722 else {
41723 return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });
41724 }
41725 });
41726 };
41727}
41728function dispatch(state) {
41729 var _this = this;
41730 var params = state.params, subscriber = state.subscriber, context = state.context;
41731 var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;
41732 var subject = params.subject;
41733 if (!subject) {
41734 subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"]();
41735 var handler = function () {
41736 var innerArgs = [];
41737 for (var _i = 0; _i < arguments.length; _i++) {
41738 innerArgs[_i] = arguments[_i];
41739 }
41740 var err = innerArgs.shift();
41741 if (err) {
41742 _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));
41743 }
41744 else {
41745 var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;
41746 _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));
41747 }
41748 };
41749 try {
41750 callbackFunc.apply(context, args.concat([handler]));
41751 }
41752 catch (err) {
41753 this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));
41754 }
41755 }
41756 this.add(subject.subscribe(subscriber));
41757}
41758function dispatchNext(arg) {
41759 var value = arg.value, subject = arg.subject;
41760 subject.next(value);
41761 subject.complete();
41762}
41763function dispatchError(arg) {
41764 var err = arg.err, subject = arg.subject;
41765 subject.error(err);
41766}
41767//# sourceMappingURL=bindNodeCallback.js.map
41768
41769
41770/***/ }),
41771
41772/***/ "./node_modules/rxjs/_esm5/internal/observable/combineLatest.js":
41773/*!**********************************************************************!*\
41774 !*** ./node_modules/rxjs/_esm5/internal/observable/combineLatest.js ***!
41775 \**********************************************************************/
41776/*! exports provided: combineLatest, CombineLatestOperator, CombineLatestSubscriber */
41777/***/ (function(module, __webpack_exports__, __webpack_require__) {
41778
41779"use strict";
41780__webpack_require__.r(__webpack_exports__);
41781/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return combineLatest; });
41782/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CombineLatestOperator", function() { return CombineLatestOperator; });
41783/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CombineLatestSubscriber", function() { return CombineLatestSubscriber; });
41784/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
41785/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
41786/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
41787/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
41788/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
41789/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fromArray */ "./node_modules/rxjs/_esm5/internal/observable/fromArray.js");
41790/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */
41791
41792
41793
41794
41795
41796
41797var NONE = {};
41798function combineLatest() {
41799 var observables = [];
41800 for (var _i = 0; _i < arguments.length; _i++) {
41801 observables[_i] = arguments[_i];
41802 }
41803 var resultSelector = null;
41804 var scheduler = null;
41805 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__["isScheduler"])(observables[observables.length - 1])) {
41806 scheduler = observables.pop();
41807 }
41808 if (typeof observables[observables.length - 1] === 'function') {
41809 resultSelector = observables.pop();
41810 }
41811 if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(observables[0])) {
41812 observables = observables[0];
41813 }
41814 return Object(_fromArray__WEBPACK_IMPORTED_MODULE_5__["fromArray"])(observables, scheduler).lift(new CombineLatestOperator(resultSelector));
41815}
41816var CombineLatestOperator = /*@__PURE__*/ (function () {
41817 function CombineLatestOperator(resultSelector) {
41818 this.resultSelector = resultSelector;
41819 }
41820 CombineLatestOperator.prototype.call = function (subscriber, source) {
41821 return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));
41822 };
41823 return CombineLatestOperator;
41824}());
41825
41826var CombineLatestSubscriber = /*@__PURE__*/ (function (_super) {
41827 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CombineLatestSubscriber, _super);
41828 function CombineLatestSubscriber(destination, resultSelector) {
41829 var _this = _super.call(this, destination) || this;
41830 _this.resultSelector = resultSelector;
41831 _this.active = 0;
41832 _this.values = [];
41833 _this.observables = [];
41834 return _this;
41835 }
41836 CombineLatestSubscriber.prototype._next = function (observable) {
41837 this.values.push(NONE);
41838 this.observables.push(observable);
41839 };
41840 CombineLatestSubscriber.prototype._complete = function () {
41841 var observables = this.observables;
41842 var len = observables.length;
41843 if (len === 0) {
41844 this.destination.complete();
41845 }
41846 else {
41847 this.active = len;
41848 this.toRespond = len;
41849 for (var i = 0; i < len; i++) {
41850 var observable = observables[i];
41851 this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, observable, observable, i));
41852 }
41853 }
41854 };
41855 CombineLatestSubscriber.prototype.notifyComplete = function (unused) {
41856 if ((this.active -= 1) === 0) {
41857 this.destination.complete();
41858 }
41859 };
41860 CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
41861 var values = this.values;
41862 var oldVal = values[outerIndex];
41863 var toRespond = !this.toRespond
41864 ? 0
41865 : oldVal === NONE ? --this.toRespond : this.toRespond;
41866 values[outerIndex] = innerValue;
41867 if (toRespond === 0) {
41868 if (this.resultSelector) {
41869 this._tryResultSelector(values);
41870 }
41871 else {
41872 this.destination.next(values.slice());
41873 }
41874 }
41875 };
41876 CombineLatestSubscriber.prototype._tryResultSelector = function (values) {
41877 var result;
41878 try {
41879 result = this.resultSelector.apply(this, values);
41880 }
41881 catch (err) {
41882 this.destination.error(err);
41883 return;
41884 }
41885 this.destination.next(result);
41886 };
41887 return CombineLatestSubscriber;
41888}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"]));
41889
41890//# sourceMappingURL=combineLatest.js.map
41891
41892
41893/***/ }),
41894
41895/***/ "./node_modules/rxjs/_esm5/internal/observable/concat.js":
41896/*!***************************************************************!*\
41897 !*** ./node_modules/rxjs/_esm5/internal/observable/concat.js ***!
41898 \***************************************************************/
41899/*! exports provided: concat */
41900/***/ (function(module, __webpack_exports__, __webpack_require__) {
41901
41902"use strict";
41903__webpack_require__.r(__webpack_exports__);
41904/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; });
41905/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
41906/* harmony import */ var _of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./of */ "./node_modules/rxjs/_esm5/internal/observable/of.js");
41907/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./from */ "./node_modules/rxjs/_esm5/internal/observable/from.js");
41908/* harmony import */ var _operators_concatAll__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/concatAll */ "./node_modules/rxjs/_esm5/internal/operators/concatAll.js");
41909/** PURE_IMPORTS_START _util_isScheduler,_of,_from,_operators_concatAll PURE_IMPORTS_END */
41910
41911
41912
41913
41914function concat() {
41915 var observables = [];
41916 for (var _i = 0; _i < arguments.length; _i++) {
41917 observables[_i] = arguments[_i];
41918 }
41919 if (observables.length === 1 || (observables.length === 2 && Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__["isScheduler"])(observables[1]))) {
41920 return Object(_from__WEBPACK_IMPORTED_MODULE_2__["from"])(observables[0]);
41921 }
41922 return Object(_operators_concatAll__WEBPACK_IMPORTED_MODULE_3__["concatAll"])()(_of__WEBPACK_IMPORTED_MODULE_1__["of"].apply(void 0, observables));
41923}
41924//# sourceMappingURL=concat.js.map
41925
41926
41927/***/ }),
41928
41929/***/ "./node_modules/rxjs/_esm5/internal/observable/defer.js":
41930/*!**************************************************************!*\
41931 !*** ./node_modules/rxjs/_esm5/internal/observable/defer.js ***!
41932 \**************************************************************/
41933/*! exports provided: defer */
41934/***/ (function(module, __webpack_exports__, __webpack_require__) {
41935
41936"use strict";
41937__webpack_require__.r(__webpack_exports__);
41938/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defer", function() { return defer; });
41939/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
41940/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ "./node_modules/rxjs/_esm5/internal/observable/from.js");
41941/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
41942/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */
41943
41944
41945
41946function defer(observableFactory) {
41947 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
41948 var input;
41949 try {
41950 input = observableFactory();
41951 }
41952 catch (err) {
41953 subscriber.error(err);
41954 return undefined;
41955 }
41956 var source = input ? Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(input) : Object(_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])();
41957 return source.subscribe(subscriber);
41958 });
41959}
41960//# sourceMappingURL=defer.js.map
41961
41962
41963/***/ }),
41964
41965/***/ "./node_modules/rxjs/_esm5/internal/observable/empty.js":
41966/*!**************************************************************!*\
41967 !*** ./node_modules/rxjs/_esm5/internal/observable/empty.js ***!
41968 \**************************************************************/
41969/*! exports provided: EMPTY, empty, emptyScheduled */
41970/***/ (function(module, __webpack_exports__, __webpack_require__) {
41971
41972"use strict";
41973__webpack_require__.r(__webpack_exports__);
41974/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EMPTY", function() { return EMPTY; });
41975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; });
41976/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "emptyScheduled", function() { return emptyScheduled; });
41977/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
41978/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */
41979
41980var EMPTY = /*@__PURE__*/ new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return subscriber.complete(); });
41981function empty(scheduler) {
41982 return scheduler ? emptyScheduled(scheduler) : EMPTY;
41983}
41984function emptyScheduled(scheduler) {
41985 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });
41986}
41987//# sourceMappingURL=empty.js.map
41988
41989
41990/***/ }),
41991
41992/***/ "./node_modules/rxjs/_esm5/internal/observable/forkJoin.js":
41993/*!*****************************************************************!*\
41994 !*** ./node_modules/rxjs/_esm5/internal/observable/forkJoin.js ***!
41995 \*****************************************************************/
41996/*! exports provided: forkJoin */
41997/***/ (function(module, __webpack_exports__, __webpack_require__) {
41998
41999"use strict";
42000__webpack_require__.r(__webpack_exports__);
42001/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forkJoin", function() { return forkJoin; });
42002/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
42003/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42004/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
42005/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
42006/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
42007/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
42008/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../operators/map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
42009/** PURE_IMPORTS_START tslib,_Observable,_util_isArray,_empty,_util_subscribeToResult,_OuterSubscriber,_operators_map PURE_IMPORTS_END */
42010
42011
42012
42013
42014
42015
42016
42017function forkJoin() {
42018 var sources = [];
42019 for (var _i = 0; _i < arguments.length; _i++) {
42020 sources[_i] = arguments[_i];
42021 }
42022 var resultSelector;
42023 if (typeof sources[sources.length - 1] === 'function') {
42024 resultSelector = sources.pop();
42025 }
42026 if (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(sources[0])) {
42027 sources = sources[0];
42028 }
42029 if (sources.length === 0) {
42030 return _empty__WEBPACK_IMPORTED_MODULE_3__["EMPTY"];
42031 }
42032 if (resultSelector) {
42033 return forkJoin(sources).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_6__["map"])(function (args) { return resultSelector.apply(void 0, args); }));
42034 }
42035 return new _Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"](function (subscriber) {
42036 return new ForkJoinSubscriber(subscriber, sources);
42037 });
42038}
42039var ForkJoinSubscriber = /*@__PURE__*/ (function (_super) {
42040 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ForkJoinSubscriber, _super);
42041 function ForkJoinSubscriber(destination, sources) {
42042 var _this = _super.call(this, destination) || this;
42043 _this.sources = sources;
42044 _this.completed = 0;
42045 _this.haveValues = 0;
42046 var len = sources.length;
42047 _this.values = new Array(len);
42048 for (var i = 0; i < len; i++) {
42049 var source = sources[i];
42050 var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(_this, source, null, i);
42051 if (innerSubscription) {
42052 _this.add(innerSubscription);
42053 }
42054 }
42055 return _this;
42056 }
42057 ForkJoinSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
42058 this.values[outerIndex] = innerValue;
42059 if (!innerSub._hasValue) {
42060 innerSub._hasValue = true;
42061 this.haveValues++;
42062 }
42063 };
42064 ForkJoinSubscriber.prototype.notifyComplete = function (innerSub) {
42065 var _a = this, destination = _a.destination, haveValues = _a.haveValues, values = _a.values;
42066 var len = values.length;
42067 if (!innerSub._hasValue) {
42068 destination.complete();
42069 return;
42070 }
42071 this.completed++;
42072 if (this.completed !== len) {
42073 return;
42074 }
42075 if (haveValues === len) {
42076 destination.next(values);
42077 }
42078 destination.complete();
42079 };
42080 return ForkJoinSubscriber;
42081}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_5__["OuterSubscriber"]));
42082//# sourceMappingURL=forkJoin.js.map
42083
42084
42085/***/ }),
42086
42087/***/ "./node_modules/rxjs/_esm5/internal/observable/from.js":
42088/*!*************************************************************!*\
42089 !*** ./node_modules/rxjs/_esm5/internal/observable/from.js ***!
42090 \*************************************************************/
42091/*! exports provided: from */
42092/***/ (function(module, __webpack_exports__, __webpack_require__) {
42093
42094"use strict";
42095__webpack_require__.r(__webpack_exports__);
42096/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "from", function() { return from; });
42097/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42098/* harmony import */ var _util_isPromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isPromise */ "./node_modules/rxjs/_esm5/internal/util/isPromise.js");
42099/* harmony import */ var _util_isArrayLike__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArrayLike */ "./node_modules/rxjs/_esm5/internal/util/isArrayLike.js");
42100/* harmony import */ var _util_isInteropObservable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isInteropObservable */ "./node_modules/rxjs/_esm5/internal/util/isInteropObservable.js");
42101/* harmony import */ var _util_isIterable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isIterable */ "./node_modules/rxjs/_esm5/internal/util/isIterable.js");
42102/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./fromArray */ "./node_modules/rxjs/_esm5/internal/observable/fromArray.js");
42103/* harmony import */ var _fromPromise__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./fromPromise */ "./node_modules/rxjs/_esm5/internal/observable/fromPromise.js");
42104/* harmony import */ var _fromIterable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./fromIterable */ "./node_modules/rxjs/_esm5/internal/observable/fromIterable.js");
42105/* harmony import */ var _fromObservable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./fromObservable */ "./node_modules/rxjs/_esm5/internal/observable/fromObservable.js");
42106/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../util/subscribeTo */ "./node_modules/rxjs/_esm5/internal/util/subscribeTo.js");
42107/** PURE_IMPORTS_START _Observable,_util_isPromise,_util_isArrayLike,_util_isInteropObservable,_util_isIterable,_fromArray,_fromPromise,_fromIterable,_fromObservable,_util_subscribeTo PURE_IMPORTS_END */
42108
42109
42110
42111
42112
42113
42114
42115
42116
42117
42118function from(input, scheduler) {
42119 if (!scheduler) {
42120 if (input instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]) {
42121 return input;
42122 }
42123 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_9__["subscribeTo"])(input));
42124 }
42125 if (input != null) {
42126 if (Object(_util_isInteropObservable__WEBPACK_IMPORTED_MODULE_3__["isInteropObservable"])(input)) {
42127 return Object(_fromObservable__WEBPACK_IMPORTED_MODULE_8__["fromObservable"])(input, scheduler);
42128 }
42129 else if (Object(_util_isPromise__WEBPACK_IMPORTED_MODULE_1__["isPromise"])(input)) {
42130 return Object(_fromPromise__WEBPACK_IMPORTED_MODULE_6__["fromPromise"])(input, scheduler);
42131 }
42132 else if (Object(_util_isArrayLike__WEBPACK_IMPORTED_MODULE_2__["isArrayLike"])(input)) {
42133 return Object(_fromArray__WEBPACK_IMPORTED_MODULE_5__["fromArray"])(input, scheduler);
42134 }
42135 else if (Object(_util_isIterable__WEBPACK_IMPORTED_MODULE_4__["isIterable"])(input) || typeof input === 'string') {
42136 return Object(_fromIterable__WEBPACK_IMPORTED_MODULE_7__["fromIterable"])(input, scheduler);
42137 }
42138 }
42139 throw new TypeError((input !== null && typeof input || input) + ' is not observable');
42140}
42141//# sourceMappingURL=from.js.map
42142
42143
42144/***/ }),
42145
42146/***/ "./node_modules/rxjs/_esm5/internal/observable/fromArray.js":
42147/*!******************************************************************!*\
42148 !*** ./node_modules/rxjs/_esm5/internal/observable/fromArray.js ***!
42149 \******************************************************************/
42150/*! exports provided: fromArray */
42151/***/ (function(module, __webpack_exports__, __webpack_require__) {
42152
42153"use strict";
42154__webpack_require__.r(__webpack_exports__);
42155/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromArray", function() { return fromArray; });
42156/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42157/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
42158/* harmony import */ var _util_subscribeToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToArray */ "./node_modules/rxjs/_esm5/internal/util/subscribeToArray.js");
42159/** PURE_IMPORTS_START _Observable,_Subscription,_util_subscribeToArray PURE_IMPORTS_END */
42160
42161
42162
42163function fromArray(input, scheduler) {
42164 if (!scheduler) {
42165 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeToArray__WEBPACK_IMPORTED_MODULE_2__["subscribeToArray"])(input));
42166 }
42167 else {
42168 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42169 var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"]();
42170 var i = 0;
42171 sub.add(scheduler.schedule(function () {
42172 if (i === input.length) {
42173 subscriber.complete();
42174 return;
42175 }
42176 subscriber.next(input[i++]);
42177 if (!subscriber.closed) {
42178 sub.add(this.schedule());
42179 }
42180 }));
42181 return sub;
42182 });
42183 }
42184}
42185//# sourceMappingURL=fromArray.js.map
42186
42187
42188/***/ }),
42189
42190/***/ "./node_modules/rxjs/_esm5/internal/observable/fromEvent.js":
42191/*!******************************************************************!*\
42192 !*** ./node_modules/rxjs/_esm5/internal/observable/fromEvent.js ***!
42193 \******************************************************************/
42194/*! exports provided: fromEvent */
42195/***/ (function(module, __webpack_exports__, __webpack_require__) {
42196
42197"use strict";
42198__webpack_require__.r(__webpack_exports__);
42199/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromEvent", function() { return fromEvent; });
42200/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42201/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
42202/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isFunction */ "./node_modules/rxjs/_esm5/internal/util/isFunction.js");
42203/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
42204/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */
42205
42206
42207
42208
42209var toString = Object.prototype.toString;
42210function fromEvent(target, eventName, options, resultSelector) {
42211 if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(options)) {
42212 resultSelector = options;
42213 options = undefined;
42214 }
42215 if (resultSelector) {
42216 return fromEvent(target, eventName, options).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
42217 }
42218 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42219 function handler(e) {
42220 if (arguments.length > 1) {
42221 subscriber.next(Array.prototype.slice.call(arguments));
42222 }
42223 else {
42224 subscriber.next(e);
42225 }
42226 }
42227 setupSubscription(target, eventName, handler, subscriber, options);
42228 });
42229}
42230function setupSubscription(sourceObj, eventName, handler, subscriber, options) {
42231 var unsubscribe;
42232 if (isEventTarget(sourceObj)) {
42233 var source_1 = sourceObj;
42234 sourceObj.addEventListener(eventName, handler, options);
42235 unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };
42236 }
42237 else if (isJQueryStyleEventEmitter(sourceObj)) {
42238 var source_2 = sourceObj;
42239 sourceObj.on(eventName, handler);
42240 unsubscribe = function () { return source_2.off(eventName, handler); };
42241 }
42242 else if (isNodeStyleEventEmitter(sourceObj)) {
42243 var source_3 = sourceObj;
42244 sourceObj.addListener(eventName, handler);
42245 unsubscribe = function () { return source_3.removeListener(eventName, handler); };
42246 }
42247 else if (sourceObj && sourceObj.length) {
42248 for (var i = 0, len = sourceObj.length; i < len; i++) {
42249 setupSubscription(sourceObj[i], eventName, handler, subscriber, options);
42250 }
42251 }
42252 else {
42253 throw new TypeError('Invalid event target');
42254 }
42255 subscriber.add(unsubscribe);
42256}
42257function isNodeStyleEventEmitter(sourceObj) {
42258 return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';
42259}
42260function isJQueryStyleEventEmitter(sourceObj) {
42261 return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';
42262}
42263function isEventTarget(sourceObj) {
42264 return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';
42265}
42266//# sourceMappingURL=fromEvent.js.map
42267
42268
42269/***/ }),
42270
42271/***/ "./node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js":
42272/*!*************************************************************************!*\
42273 !*** ./node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js ***!
42274 \*************************************************************************/
42275/*! exports provided: fromEventPattern */
42276/***/ (function(module, __webpack_exports__, __webpack_require__) {
42277
42278"use strict";
42279__webpack_require__.r(__webpack_exports__);
42280/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromEventPattern", function() { return fromEventPattern; });
42281/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42282/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
42283/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isFunction */ "./node_modules/rxjs/_esm5/internal/util/isFunction.js");
42284/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
42285/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */
42286
42287
42288
42289
42290function fromEventPattern(addHandler, removeHandler, resultSelector) {
42291 if (resultSelector) {
42292 return fromEventPattern(addHandler, removeHandler).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));
42293 }
42294 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42295 var handler = function () {
42296 var e = [];
42297 for (var _i = 0; _i < arguments.length; _i++) {
42298 e[_i] = arguments[_i];
42299 }
42300 return subscriber.next(e.length === 1 ? e[0] : e);
42301 };
42302 var retValue;
42303 try {
42304 retValue = addHandler(handler);
42305 }
42306 catch (err) {
42307 subscriber.error(err);
42308 return undefined;
42309 }
42310 if (!Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(removeHandler)) {
42311 return undefined;
42312 }
42313 return function () { return removeHandler(handler, retValue); };
42314 });
42315}
42316//# sourceMappingURL=fromEventPattern.js.map
42317
42318
42319/***/ }),
42320
42321/***/ "./node_modules/rxjs/_esm5/internal/observable/fromIterable.js":
42322/*!*********************************************************************!*\
42323 !*** ./node_modules/rxjs/_esm5/internal/observable/fromIterable.js ***!
42324 \*********************************************************************/
42325/*! exports provided: fromIterable */
42326/***/ (function(module, __webpack_exports__, __webpack_require__) {
42327
42328"use strict";
42329__webpack_require__.r(__webpack_exports__);
42330/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromIterable", function() { return fromIterable; });
42331/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42332/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
42333/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../symbol/iterator */ "./node_modules/rxjs/_esm5/internal/symbol/iterator.js");
42334/* harmony import */ var _util_subscribeToIterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToIterable */ "./node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js");
42335/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator,_util_subscribeToIterable PURE_IMPORTS_END */
42336
42337
42338
42339
42340function fromIterable(input, scheduler) {
42341 if (!input) {
42342 throw new Error('Iterable cannot be null');
42343 }
42344 if (!scheduler) {
42345 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeToIterable__WEBPACK_IMPORTED_MODULE_3__["subscribeToIterable"])(input));
42346 }
42347 else {
42348 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42349 var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"]();
42350 var iterator;
42351 sub.add(function () {
42352 if (iterator && typeof iterator.return === 'function') {
42353 iterator.return();
42354 }
42355 });
42356 sub.add(scheduler.schedule(function () {
42357 iterator = input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_2__["iterator"]]();
42358 sub.add(scheduler.schedule(function () {
42359 if (subscriber.closed) {
42360 return;
42361 }
42362 var value;
42363 var done;
42364 try {
42365 var result = iterator.next();
42366 value = result.value;
42367 done = result.done;
42368 }
42369 catch (err) {
42370 subscriber.error(err);
42371 return;
42372 }
42373 if (done) {
42374 subscriber.complete();
42375 }
42376 else {
42377 subscriber.next(value);
42378 this.schedule();
42379 }
42380 }));
42381 }));
42382 return sub;
42383 });
42384 }
42385}
42386//# sourceMappingURL=fromIterable.js.map
42387
42388
42389/***/ }),
42390
42391/***/ "./node_modules/rxjs/_esm5/internal/observable/fromObservable.js":
42392/*!***********************************************************************!*\
42393 !*** ./node_modules/rxjs/_esm5/internal/observable/fromObservable.js ***!
42394 \***********************************************************************/
42395/*! exports provided: fromObservable */
42396/***/ (function(module, __webpack_exports__, __webpack_require__) {
42397
42398"use strict";
42399__webpack_require__.r(__webpack_exports__);
42400/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromObservable", function() { return fromObservable; });
42401/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42402/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
42403/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../symbol/observable */ "./node_modules/rxjs/_esm5/internal/symbol/observable.js");
42404/* harmony import */ var _util_subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToObservable */ "./node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js");
42405/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable,_util_subscribeToObservable PURE_IMPORTS_END */
42406
42407
42408
42409
42410function fromObservable(input, scheduler) {
42411 if (!scheduler) {
42412 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__["subscribeToObservable"])(input));
42413 }
42414 else {
42415 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42416 var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"]();
42417 sub.add(scheduler.schedule(function () {
42418 var observable = input[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__["observable"]]();
42419 sub.add(observable.subscribe({
42420 next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },
42421 error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },
42422 complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },
42423 }));
42424 }));
42425 return sub;
42426 });
42427 }
42428}
42429//# sourceMappingURL=fromObservable.js.map
42430
42431
42432/***/ }),
42433
42434/***/ "./node_modules/rxjs/_esm5/internal/observable/fromPromise.js":
42435/*!********************************************************************!*\
42436 !*** ./node_modules/rxjs/_esm5/internal/observable/fromPromise.js ***!
42437 \********************************************************************/
42438/*! exports provided: fromPromise */
42439/***/ (function(module, __webpack_exports__, __webpack_require__) {
42440
42441"use strict";
42442__webpack_require__.r(__webpack_exports__);
42443/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromPromise", function() { return fromPromise; });
42444/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42445/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
42446/* harmony import */ var _util_subscribeToPromise__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToPromise */ "./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js");
42447/** PURE_IMPORTS_START _Observable,_Subscription,_util_subscribeToPromise PURE_IMPORTS_END */
42448
42449
42450
42451function fromPromise(input, scheduler) {
42452 if (!scheduler) {
42453 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeToPromise__WEBPACK_IMPORTED_MODULE_2__["subscribeToPromise"])(input));
42454 }
42455 else {
42456 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42457 var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"]();
42458 sub.add(scheduler.schedule(function () {
42459 return input.then(function (value) {
42460 sub.add(scheduler.schedule(function () {
42461 subscriber.next(value);
42462 sub.add(scheduler.schedule(function () { return subscriber.complete(); }));
42463 }));
42464 }, function (err) {
42465 sub.add(scheduler.schedule(function () { return subscriber.error(err); }));
42466 });
42467 }));
42468 return sub;
42469 });
42470 }
42471}
42472//# sourceMappingURL=fromPromise.js.map
42473
42474
42475/***/ }),
42476
42477/***/ "./node_modules/rxjs/_esm5/internal/observable/generate.js":
42478/*!*****************************************************************!*\
42479 !*** ./node_modules/rxjs/_esm5/internal/observable/generate.js ***!
42480 \*****************************************************************/
42481/*! exports provided: generate */
42482/***/ (function(module, __webpack_exports__, __webpack_require__) {
42483
42484"use strict";
42485__webpack_require__.r(__webpack_exports__);
42486/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return generate; });
42487/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42488/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ "./node_modules/rxjs/_esm5/internal/util/identity.js");
42489/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
42490/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */
42491
42492
42493
42494function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {
42495 var resultSelector;
42496 var initialState;
42497 if (arguments.length == 1) {
42498 var options = initialStateOrOptions;
42499 initialState = options.initialState;
42500 condition = options.condition;
42501 iterate = options.iterate;
42502 resultSelector = options.resultSelector || _util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"];
42503 scheduler = options.scheduler;
42504 }
42505 else if (resultSelectorOrObservable === undefined || Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_2__["isScheduler"])(resultSelectorOrObservable)) {
42506 initialState = initialStateOrOptions;
42507 resultSelector = _util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"];
42508 scheduler = resultSelectorOrObservable;
42509 }
42510 else {
42511 initialState = initialStateOrOptions;
42512 resultSelector = resultSelectorOrObservable;
42513 }
42514 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42515 var state = initialState;
42516 if (scheduler) {
42517 return scheduler.schedule(dispatch, 0, {
42518 subscriber: subscriber,
42519 iterate: iterate,
42520 condition: condition,
42521 resultSelector: resultSelector,
42522 state: state
42523 });
42524 }
42525 do {
42526 if (condition) {
42527 var conditionResult = void 0;
42528 try {
42529 conditionResult = condition(state);
42530 }
42531 catch (err) {
42532 subscriber.error(err);
42533 return undefined;
42534 }
42535 if (!conditionResult) {
42536 subscriber.complete();
42537 break;
42538 }
42539 }
42540 var value = void 0;
42541 try {
42542 value = resultSelector(state);
42543 }
42544 catch (err) {
42545 subscriber.error(err);
42546 return undefined;
42547 }
42548 subscriber.next(value);
42549 if (subscriber.closed) {
42550 break;
42551 }
42552 try {
42553 state = iterate(state);
42554 }
42555 catch (err) {
42556 subscriber.error(err);
42557 return undefined;
42558 }
42559 } while (true);
42560 return undefined;
42561 });
42562}
42563function dispatch(state) {
42564 var subscriber = state.subscriber, condition = state.condition;
42565 if (subscriber.closed) {
42566 return undefined;
42567 }
42568 if (state.needIterate) {
42569 try {
42570 state.state = state.iterate(state.state);
42571 }
42572 catch (err) {
42573 subscriber.error(err);
42574 return undefined;
42575 }
42576 }
42577 else {
42578 state.needIterate = true;
42579 }
42580 if (condition) {
42581 var conditionResult = void 0;
42582 try {
42583 conditionResult = condition(state.state);
42584 }
42585 catch (err) {
42586 subscriber.error(err);
42587 return undefined;
42588 }
42589 if (!conditionResult) {
42590 subscriber.complete();
42591 return undefined;
42592 }
42593 if (subscriber.closed) {
42594 return undefined;
42595 }
42596 }
42597 var value;
42598 try {
42599 value = state.resultSelector(state.state);
42600 }
42601 catch (err) {
42602 subscriber.error(err);
42603 return undefined;
42604 }
42605 if (subscriber.closed) {
42606 return undefined;
42607 }
42608 subscriber.next(value);
42609 if (subscriber.closed) {
42610 return undefined;
42611 }
42612 return this.schedule(state);
42613}
42614//# sourceMappingURL=generate.js.map
42615
42616
42617/***/ }),
42618
42619/***/ "./node_modules/rxjs/_esm5/internal/observable/iif.js":
42620/*!************************************************************!*\
42621 !*** ./node_modules/rxjs/_esm5/internal/observable/iif.js ***!
42622 \************************************************************/
42623/*! exports provided: iif */
42624/***/ (function(module, __webpack_exports__, __webpack_require__) {
42625
42626"use strict";
42627__webpack_require__.r(__webpack_exports__);
42628/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iif", function() { return iif; });
42629/* harmony import */ var _defer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defer */ "./node_modules/rxjs/_esm5/internal/observable/defer.js");
42630/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
42631/** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */
42632
42633
42634function iif(condition, trueResult, falseResult) {
42635 if (trueResult === void 0) {
42636 trueResult = _empty__WEBPACK_IMPORTED_MODULE_1__["EMPTY"];
42637 }
42638 if (falseResult === void 0) {
42639 falseResult = _empty__WEBPACK_IMPORTED_MODULE_1__["EMPTY"];
42640 }
42641 return Object(_defer__WEBPACK_IMPORTED_MODULE_0__["defer"])(function () { return condition() ? trueResult : falseResult; });
42642}
42643//# sourceMappingURL=iif.js.map
42644
42645
42646/***/ }),
42647
42648/***/ "./node_modules/rxjs/_esm5/internal/observable/interval.js":
42649/*!*****************************************************************!*\
42650 !*** ./node_modules/rxjs/_esm5/internal/observable/interval.js ***!
42651 \*****************************************************************/
42652/*! exports provided: interval */
42653/***/ (function(module, __webpack_exports__, __webpack_require__) {
42654
42655"use strict";
42656__webpack_require__.r(__webpack_exports__);
42657/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return interval; });
42658/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42659/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
42660/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isNumeric */ "./node_modules/rxjs/_esm5/internal/util/isNumeric.js");
42661/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */
42662
42663
42664
42665function interval(period, scheduler) {
42666 if (period === void 0) {
42667 period = 0;
42668 }
42669 if (scheduler === void 0) {
42670 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"];
42671 }
42672 if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(period) || period < 0) {
42673 period = 0;
42674 }
42675 if (!scheduler || typeof scheduler.schedule !== 'function') {
42676 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"];
42677 }
42678 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42679 subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));
42680 return subscriber;
42681 });
42682}
42683function dispatch(state) {
42684 var subscriber = state.subscriber, counter = state.counter, period = state.period;
42685 subscriber.next(counter);
42686 this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);
42687}
42688//# sourceMappingURL=interval.js.map
42689
42690
42691/***/ }),
42692
42693/***/ "./node_modules/rxjs/_esm5/internal/observable/merge.js":
42694/*!**************************************************************!*\
42695 !*** ./node_modules/rxjs/_esm5/internal/observable/merge.js ***!
42696 \**************************************************************/
42697/*! exports provided: merge */
42698/***/ (function(module, __webpack_exports__, __webpack_require__) {
42699
42700"use strict";
42701__webpack_require__.r(__webpack_exports__);
42702/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; });
42703/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42704/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
42705/* harmony import */ var _operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/mergeAll */ "./node_modules/rxjs/_esm5/internal/operators/mergeAll.js");
42706/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fromArray */ "./node_modules/rxjs/_esm5/internal/observable/fromArray.js");
42707/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */
42708
42709
42710
42711
42712function merge() {
42713 var observables = [];
42714 for (var _i = 0; _i < arguments.length; _i++) {
42715 observables[_i] = arguments[_i];
42716 }
42717 var concurrent = Number.POSITIVE_INFINITY;
42718 var scheduler = null;
42719 var last = observables[observables.length - 1];
42720 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__["isScheduler"])(last)) {
42721 scheduler = observables.pop();
42722 if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {
42723 concurrent = observables.pop();
42724 }
42725 }
42726 else if (typeof last === 'number') {
42727 concurrent = observables.pop();
42728 }
42729 if (scheduler === null && observables.length === 1 && observables[0] instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]) {
42730 return observables[0];
42731 }
42732 return Object(_operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__["mergeAll"])(concurrent)(Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__["fromArray"])(observables, scheduler));
42733}
42734//# sourceMappingURL=merge.js.map
42735
42736
42737/***/ }),
42738
42739/***/ "./node_modules/rxjs/_esm5/internal/observable/never.js":
42740/*!**************************************************************!*\
42741 !*** ./node_modules/rxjs/_esm5/internal/observable/never.js ***!
42742 \**************************************************************/
42743/*! exports provided: NEVER, never */
42744/***/ (function(module, __webpack_exports__, __webpack_require__) {
42745
42746"use strict";
42747__webpack_require__.r(__webpack_exports__);
42748/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NEVER", function() { return NEVER; });
42749/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "never", function() { return never; });
42750/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42751/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/noop */ "./node_modules/rxjs/_esm5/internal/util/noop.js");
42752/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */
42753
42754
42755var NEVER = /*@__PURE__*/ new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](_util_noop__WEBPACK_IMPORTED_MODULE_1__["noop"]);
42756function never() {
42757 return NEVER;
42758}
42759//# sourceMappingURL=never.js.map
42760
42761
42762/***/ }),
42763
42764/***/ "./node_modules/rxjs/_esm5/internal/observable/of.js":
42765/*!***********************************************************!*\
42766 !*** ./node_modules/rxjs/_esm5/internal/observable/of.js ***!
42767 \***********************************************************/
42768/*! exports provided: of */
42769/***/ (function(module, __webpack_exports__, __webpack_require__) {
42770
42771"use strict";
42772__webpack_require__.r(__webpack_exports__);
42773/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "of", function() { return of; });
42774/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
42775/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fromArray */ "./node_modules/rxjs/_esm5/internal/observable/fromArray.js");
42776/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
42777/* harmony import */ var _scalar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./scalar */ "./node_modules/rxjs/_esm5/internal/observable/scalar.js");
42778/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_empty,_scalar PURE_IMPORTS_END */
42779
42780
42781
42782
42783function of() {
42784 var args = [];
42785 for (var _i = 0; _i < arguments.length; _i++) {
42786 args[_i] = arguments[_i];
42787 }
42788 var scheduler = args[args.length - 1];
42789 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__["isScheduler"])(scheduler)) {
42790 args.pop();
42791 }
42792 else {
42793 scheduler = undefined;
42794 }
42795 switch (args.length) {
42796 case 0:
42797 return Object(_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(scheduler);
42798 case 1:
42799 return scheduler ? Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__["fromArray"])(args, scheduler) : Object(_scalar__WEBPACK_IMPORTED_MODULE_3__["scalar"])(args[0]);
42800 default:
42801 return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__["fromArray"])(args, scheduler);
42802 }
42803}
42804//# sourceMappingURL=of.js.map
42805
42806
42807/***/ }),
42808
42809/***/ "./node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js":
42810/*!**************************************************************************!*\
42811 !*** ./node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js ***!
42812 \**************************************************************************/
42813/*! exports provided: onErrorResumeNext */
42814/***/ (function(module, __webpack_exports__, __webpack_require__) {
42815
42816"use strict";
42817__webpack_require__.r(__webpack_exports__);
42818/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return onErrorResumeNext; });
42819/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42820/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ "./node_modules/rxjs/_esm5/internal/observable/from.js");
42821/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
42822/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
42823/** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */
42824
42825
42826
42827
42828function onErrorResumeNext() {
42829 var sources = [];
42830 for (var _i = 0; _i < arguments.length; _i++) {
42831 sources[_i] = arguments[_i];
42832 }
42833 if (sources.length === 0) {
42834 return _empty__WEBPACK_IMPORTED_MODULE_3__["EMPTY"];
42835 }
42836 var first = sources[0], remainder = sources.slice(1);
42837 if (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(first)) {
42838 return onErrorResumeNext.apply(void 0, first);
42839 }
42840 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42841 var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };
42842 return Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(first).subscribe({
42843 next: function (value) { subscriber.next(value); },
42844 error: subNext,
42845 complete: subNext,
42846 });
42847 });
42848}
42849//# sourceMappingURL=onErrorResumeNext.js.map
42850
42851
42852/***/ }),
42853
42854/***/ "./node_modules/rxjs/_esm5/internal/observable/pairs.js":
42855/*!**************************************************************!*\
42856 !*** ./node_modules/rxjs/_esm5/internal/observable/pairs.js ***!
42857 \**************************************************************/
42858/*! exports provided: pairs, dispatch */
42859/***/ (function(module, __webpack_exports__, __webpack_require__) {
42860
42861"use strict";
42862__webpack_require__.r(__webpack_exports__);
42863/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return pairs; });
42864/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return dispatch; });
42865/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
42866/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
42867/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */
42868
42869
42870function pairs(obj, scheduler) {
42871 if (!scheduler) {
42872 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42873 var keys = Object.keys(obj);
42874 for (var i = 0; i < keys.length && !subscriber.closed; i++) {
42875 var key = keys[i];
42876 if (obj.hasOwnProperty(key)) {
42877 subscriber.next([key, obj[key]]);
42878 }
42879 }
42880 subscriber.complete();
42881 });
42882 }
42883 else {
42884 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
42885 var keys = Object.keys(obj);
42886 var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"]();
42887 subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));
42888 return subscription;
42889 });
42890 }
42891}
42892function dispatch(state) {
42893 var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;
42894 if (!subscriber.closed) {
42895 if (index < keys.length) {
42896 var key = keys[index];
42897 subscriber.next([key, obj[key]]);
42898 subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));
42899 }
42900 else {
42901 subscriber.complete();
42902 }
42903 }
42904}
42905//# sourceMappingURL=pairs.js.map
42906
42907
42908/***/ }),
42909
42910/***/ "./node_modules/rxjs/_esm5/internal/observable/race.js":
42911/*!*************************************************************!*\
42912 !*** ./node_modules/rxjs/_esm5/internal/observable/race.js ***!
42913 \*************************************************************/
42914/*! exports provided: race, RaceOperator, RaceSubscriber */
42915/***/ (function(module, __webpack_exports__, __webpack_require__) {
42916
42917"use strict";
42918__webpack_require__.r(__webpack_exports__);
42919/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "race", function() { return race; });
42920/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RaceOperator", function() { return RaceOperator; });
42921/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RaceSubscriber", function() { return RaceSubscriber; });
42922/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
42923/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
42924/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fromArray */ "./node_modules/rxjs/_esm5/internal/observable/fromArray.js");
42925/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
42926/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
42927/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
42928
42929
42930
42931
42932
42933function race() {
42934 var observables = [];
42935 for (var _i = 0; _i < arguments.length; _i++) {
42936 observables[_i] = arguments[_i];
42937 }
42938 if (observables.length === 1) {
42939 if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(observables[0])) {
42940 observables = observables[0];
42941 }
42942 else {
42943 return observables[0];
42944 }
42945 }
42946 return Object(_fromArray__WEBPACK_IMPORTED_MODULE_2__["fromArray"])(observables, undefined).lift(new RaceOperator());
42947}
42948var RaceOperator = /*@__PURE__*/ (function () {
42949 function RaceOperator() {
42950 }
42951 RaceOperator.prototype.call = function (subscriber, source) {
42952 return source.subscribe(new RaceSubscriber(subscriber));
42953 };
42954 return RaceOperator;
42955}());
42956
42957var RaceSubscriber = /*@__PURE__*/ (function (_super) {
42958 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RaceSubscriber, _super);
42959 function RaceSubscriber(destination) {
42960 var _this = _super.call(this, destination) || this;
42961 _this.hasFirst = false;
42962 _this.observables = [];
42963 _this.subscriptions = [];
42964 return _this;
42965 }
42966 RaceSubscriber.prototype._next = function (observable) {
42967 this.observables.push(observable);
42968 };
42969 RaceSubscriber.prototype._complete = function () {
42970 var observables = this.observables;
42971 var len = observables.length;
42972 if (len === 0) {
42973 this.destination.complete();
42974 }
42975 else {
42976 for (var i = 0; i < len && !this.hasFirst; i++) {
42977 var observable = observables[i];
42978 var subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, observable, observable, i);
42979 if (this.subscriptions) {
42980 this.subscriptions.push(subscription);
42981 }
42982 this.add(subscription);
42983 }
42984 this.observables = null;
42985 }
42986 };
42987 RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
42988 if (!this.hasFirst) {
42989 this.hasFirst = true;
42990 for (var i = 0; i < this.subscriptions.length; i++) {
42991 if (i !== outerIndex) {
42992 var subscription = this.subscriptions[i];
42993 subscription.unsubscribe();
42994 this.remove(subscription);
42995 }
42996 }
42997 this.subscriptions = null;
42998 }
42999 this.destination.next(innerValue);
43000 };
43001 return RaceSubscriber;
43002}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"]));
43003
43004//# sourceMappingURL=race.js.map
43005
43006
43007/***/ }),
43008
43009/***/ "./node_modules/rxjs/_esm5/internal/observable/range.js":
43010/*!**************************************************************!*\
43011 !*** ./node_modules/rxjs/_esm5/internal/observable/range.js ***!
43012 \**************************************************************/
43013/*! exports provided: range, dispatch */
43014/***/ (function(module, __webpack_exports__, __webpack_require__) {
43015
43016"use strict";
43017__webpack_require__.r(__webpack_exports__);
43018/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "range", function() { return range; });
43019/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return dispatch; });
43020/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
43021/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */
43022
43023function range(start, count, scheduler) {
43024 if (start === void 0) {
43025 start = 0;
43026 }
43027 if (count === void 0) {
43028 count = 0;
43029 }
43030 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
43031 var index = 0;
43032 var current = start;
43033 if (scheduler) {
43034 return scheduler.schedule(dispatch, 0, {
43035 index: index, count: count, start: start, subscriber: subscriber
43036 });
43037 }
43038 else {
43039 do {
43040 if (index++ >= count) {
43041 subscriber.complete();
43042 break;
43043 }
43044 subscriber.next(current++);
43045 if (subscriber.closed) {
43046 break;
43047 }
43048 } while (true);
43049 }
43050 return undefined;
43051 });
43052}
43053function dispatch(state) {
43054 var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;
43055 if (index >= count) {
43056 subscriber.complete();
43057 return;
43058 }
43059 subscriber.next(start);
43060 if (subscriber.closed) {
43061 return;
43062 }
43063 state.index = index + 1;
43064 state.start = start + 1;
43065 this.schedule(state);
43066}
43067//# sourceMappingURL=range.js.map
43068
43069
43070/***/ }),
43071
43072/***/ "./node_modules/rxjs/_esm5/internal/observable/scalar.js":
43073/*!***************************************************************!*\
43074 !*** ./node_modules/rxjs/_esm5/internal/observable/scalar.js ***!
43075 \***************************************************************/
43076/*! exports provided: scalar */
43077/***/ (function(module, __webpack_exports__, __webpack_require__) {
43078
43079"use strict";
43080__webpack_require__.r(__webpack_exports__);
43081/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scalar", function() { return scalar; });
43082/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
43083/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */
43084
43085function scalar(value) {
43086 var result = new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
43087 subscriber.next(value);
43088 subscriber.complete();
43089 });
43090 result._isScalar = true;
43091 result.value = value;
43092 return result;
43093}
43094//# sourceMappingURL=scalar.js.map
43095
43096
43097/***/ }),
43098
43099/***/ "./node_modules/rxjs/_esm5/internal/observable/throwError.js":
43100/*!*******************************************************************!*\
43101 !*** ./node_modules/rxjs/_esm5/internal/observable/throwError.js ***!
43102 \*******************************************************************/
43103/*! exports provided: throwError */
43104/***/ (function(module, __webpack_exports__, __webpack_require__) {
43105
43106"use strict";
43107__webpack_require__.r(__webpack_exports__);
43108/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwError", function() { return throwError; });
43109/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
43110/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */
43111
43112function throwError(error, scheduler) {
43113 if (!scheduler) {
43114 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return subscriber.error(error); });
43115 }
43116 else {
43117 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });
43118 }
43119}
43120function dispatch(_a) {
43121 var error = _a.error, subscriber = _a.subscriber;
43122 subscriber.error(error);
43123}
43124//# sourceMappingURL=throwError.js.map
43125
43126
43127/***/ }),
43128
43129/***/ "./node_modules/rxjs/_esm5/internal/observable/timer.js":
43130/*!**************************************************************!*\
43131 !*** ./node_modules/rxjs/_esm5/internal/observable/timer.js ***!
43132 \**************************************************************/
43133/*! exports provided: timer */
43134/***/ (function(module, __webpack_exports__, __webpack_require__) {
43135
43136"use strict";
43137__webpack_require__.r(__webpack_exports__);
43138/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return timer; });
43139/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
43140/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
43141/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isNumeric */ "./node_modules/rxjs/_esm5/internal/util/isNumeric.js");
43142/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
43143/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */
43144
43145
43146
43147
43148function timer(dueTime, periodOrScheduler, scheduler) {
43149 if (dueTime === void 0) {
43150 dueTime = 0;
43151 }
43152 var period = -1;
43153 if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(periodOrScheduler)) {
43154 period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);
43155 }
43156 else if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(periodOrScheduler)) {
43157 scheduler = periodOrScheduler;
43158 }
43159 if (!Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(scheduler)) {
43160 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"];
43161 }
43162 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
43163 var due = Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(dueTime)
43164 ? dueTime
43165 : (+dueTime - scheduler.now());
43166 return scheduler.schedule(dispatch, due, {
43167 index: 0, period: period, subscriber: subscriber
43168 });
43169 });
43170}
43171function dispatch(state) {
43172 var index = state.index, period = state.period, subscriber = state.subscriber;
43173 subscriber.next(index);
43174 if (subscriber.closed) {
43175 return;
43176 }
43177 else if (period === -1) {
43178 return subscriber.complete();
43179 }
43180 state.index = index + 1;
43181 this.schedule(state, period);
43182}
43183//# sourceMappingURL=timer.js.map
43184
43185
43186/***/ }),
43187
43188/***/ "./node_modules/rxjs/_esm5/internal/observable/using.js":
43189/*!**************************************************************!*\
43190 !*** ./node_modules/rxjs/_esm5/internal/observable/using.js ***!
43191 \**************************************************************/
43192/*! exports provided: using */
43193/***/ (function(module, __webpack_exports__, __webpack_require__) {
43194
43195"use strict";
43196__webpack_require__.r(__webpack_exports__);
43197/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "using", function() { return using; });
43198/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
43199/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./from */ "./node_modules/rxjs/_esm5/internal/observable/from.js");
43200/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
43201/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */
43202
43203
43204
43205function using(resourceFactory, observableFactory) {
43206 return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) {
43207 var resource;
43208 try {
43209 resource = resourceFactory();
43210 }
43211 catch (err) {
43212 subscriber.error(err);
43213 return undefined;
43214 }
43215 var result;
43216 try {
43217 result = observableFactory(resource);
43218 }
43219 catch (err) {
43220 subscriber.error(err);
43221 return undefined;
43222 }
43223 var source = result ? Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(result) : _empty__WEBPACK_IMPORTED_MODULE_2__["EMPTY"];
43224 var subscription = source.subscribe(subscriber);
43225 return function () {
43226 subscription.unsubscribe();
43227 if (resource) {
43228 resource.unsubscribe();
43229 }
43230 };
43231 });
43232}
43233//# sourceMappingURL=using.js.map
43234
43235
43236/***/ }),
43237
43238/***/ "./node_modules/rxjs/_esm5/internal/observable/zip.js":
43239/*!************************************************************!*\
43240 !*** ./node_modules/rxjs/_esm5/internal/observable/zip.js ***!
43241 \************************************************************/
43242/*! exports provided: zip, ZipOperator, ZipSubscriber */
43243/***/ (function(module, __webpack_exports__, __webpack_require__) {
43244
43245"use strict";
43246__webpack_require__.r(__webpack_exports__);
43247/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return zip; });
43248/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipOperator", function() { return ZipOperator; });
43249/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipSubscriber", function() { return ZipSubscriber; });
43250/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
43251/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fromArray */ "./node_modules/rxjs/_esm5/internal/observable/fromArray.js");
43252/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
43253/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
43254/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
43255/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
43256/* harmony import */ var _internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../internal/symbol/iterator */ "./node_modules/rxjs/_esm5/internal/symbol/iterator.js");
43257/** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_OuterSubscriber,_util_subscribeToResult,_.._internal_symbol_iterator PURE_IMPORTS_END */
43258
43259
43260
43261
43262
43263
43264
43265function zip() {
43266 var observables = [];
43267 for (var _i = 0; _i < arguments.length; _i++) {
43268 observables[_i] = arguments[_i];
43269 }
43270 var resultSelector = observables[observables.length - 1];
43271 if (typeof resultSelector === 'function') {
43272 observables.pop();
43273 }
43274 return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__["fromArray"])(observables, undefined).lift(new ZipOperator(resultSelector));
43275}
43276var ZipOperator = /*@__PURE__*/ (function () {
43277 function ZipOperator(resultSelector) {
43278 this.resultSelector = resultSelector;
43279 }
43280 ZipOperator.prototype.call = function (subscriber, source) {
43281 return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));
43282 };
43283 return ZipOperator;
43284}());
43285
43286var ZipSubscriber = /*@__PURE__*/ (function (_super) {
43287 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ZipSubscriber, _super);
43288 function ZipSubscriber(destination, resultSelector, values) {
43289 if (values === void 0) {
43290 values = Object.create(null);
43291 }
43292 var _this = _super.call(this, destination) || this;
43293 _this.iterators = [];
43294 _this.active = 0;
43295 _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;
43296 _this.values = values;
43297 return _this;
43298 }
43299 ZipSubscriber.prototype._next = function (value) {
43300 var iterators = this.iterators;
43301 if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(value)) {
43302 iterators.push(new StaticArrayIterator(value));
43303 }
43304 else if (typeof value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] === 'function') {
43305 iterators.push(new StaticIterator(value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]]()));
43306 }
43307 else {
43308 iterators.push(new ZipBufferIterator(this.destination, this, value));
43309 }
43310 };
43311 ZipSubscriber.prototype._complete = function () {
43312 var iterators = this.iterators;
43313 var len = iterators.length;
43314 this.unsubscribe();
43315 if (len === 0) {
43316 this.destination.complete();
43317 return;
43318 }
43319 this.active = len;
43320 for (var i = 0; i < len; i++) {
43321 var iterator = iterators[i];
43322 if (iterator.stillUnsubscribed) {
43323 var destination = this.destination;
43324 destination.add(iterator.subscribe(iterator, i));
43325 }
43326 else {
43327 this.active--;
43328 }
43329 }
43330 };
43331 ZipSubscriber.prototype.notifyInactive = function () {
43332 this.active--;
43333 if (this.active === 0) {
43334 this.destination.complete();
43335 }
43336 };
43337 ZipSubscriber.prototype.checkIterators = function () {
43338 var iterators = this.iterators;
43339 var len = iterators.length;
43340 var destination = this.destination;
43341 for (var i = 0; i < len; i++) {
43342 var iterator = iterators[i];
43343 if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {
43344 return;
43345 }
43346 }
43347 var shouldComplete = false;
43348 var args = [];
43349 for (var i = 0; i < len; i++) {
43350 var iterator = iterators[i];
43351 var result = iterator.next();
43352 if (iterator.hasCompleted()) {
43353 shouldComplete = true;
43354 }
43355 if (result.done) {
43356 destination.complete();
43357 return;
43358 }
43359 args.push(result.value);
43360 }
43361 if (this.resultSelector) {
43362 this._tryresultSelector(args);
43363 }
43364 else {
43365 destination.next(args);
43366 }
43367 if (shouldComplete) {
43368 destination.complete();
43369 }
43370 };
43371 ZipSubscriber.prototype._tryresultSelector = function (args) {
43372 var result;
43373 try {
43374 result = this.resultSelector.apply(this, args);
43375 }
43376 catch (err) {
43377 this.destination.error(err);
43378 return;
43379 }
43380 this.destination.next(result);
43381 };
43382 return ZipSubscriber;
43383}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"]));
43384
43385var StaticIterator = /*@__PURE__*/ (function () {
43386 function StaticIterator(iterator) {
43387 this.iterator = iterator;
43388 this.nextResult = iterator.next();
43389 }
43390 StaticIterator.prototype.hasValue = function () {
43391 return true;
43392 };
43393 StaticIterator.prototype.next = function () {
43394 var result = this.nextResult;
43395 this.nextResult = this.iterator.next();
43396 return result;
43397 };
43398 StaticIterator.prototype.hasCompleted = function () {
43399 var nextResult = this.nextResult;
43400 return nextResult && nextResult.done;
43401 };
43402 return StaticIterator;
43403}());
43404var StaticArrayIterator = /*@__PURE__*/ (function () {
43405 function StaticArrayIterator(array) {
43406 this.array = array;
43407 this.index = 0;
43408 this.length = 0;
43409 this.length = array.length;
43410 }
43411 StaticArrayIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] = function () {
43412 return this;
43413 };
43414 StaticArrayIterator.prototype.next = function (value) {
43415 var i = this.index++;
43416 var array = this.array;
43417 return i < this.length ? { value: array[i], done: false } : { value: null, done: true };
43418 };
43419 StaticArrayIterator.prototype.hasValue = function () {
43420 return this.array.length > this.index;
43421 };
43422 StaticArrayIterator.prototype.hasCompleted = function () {
43423 return this.array.length === this.index;
43424 };
43425 return StaticArrayIterator;
43426}());
43427var ZipBufferIterator = /*@__PURE__*/ (function (_super) {
43428 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ZipBufferIterator, _super);
43429 function ZipBufferIterator(destination, parent, observable) {
43430 var _this = _super.call(this, destination) || this;
43431 _this.parent = parent;
43432 _this.observable = observable;
43433 _this.stillUnsubscribed = true;
43434 _this.buffer = [];
43435 _this.isComplete = false;
43436 return _this;
43437 }
43438 ZipBufferIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] = function () {
43439 return this;
43440 };
43441 ZipBufferIterator.prototype.next = function () {
43442 var buffer = this.buffer;
43443 if (buffer.length === 0 && this.isComplete) {
43444 return { value: null, done: true };
43445 }
43446 else {
43447 return { value: buffer.shift(), done: false };
43448 }
43449 };
43450 ZipBufferIterator.prototype.hasValue = function () {
43451 return this.buffer.length > 0;
43452 };
43453 ZipBufferIterator.prototype.hasCompleted = function () {
43454 return this.buffer.length === 0 && this.isComplete;
43455 };
43456 ZipBufferIterator.prototype.notifyComplete = function () {
43457 if (this.buffer.length > 0) {
43458 this.isComplete = true;
43459 this.parent.notifyInactive();
43460 }
43461 else {
43462 this.destination.complete();
43463 }
43464 };
43465 ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
43466 this.buffer.push(innerValue);
43467 this.parent.checkIterators();
43468 };
43469 ZipBufferIterator.prototype.subscribe = function (value, index) {
43470 return Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, this.observable, this, index);
43471 };
43472 return ZipBufferIterator;
43473}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"]));
43474//# sourceMappingURL=zip.js.map
43475
43476
43477/***/ }),
43478
43479/***/ "./node_modules/rxjs/_esm5/internal/operators/audit.js":
43480/*!*************************************************************!*\
43481 !*** ./node_modules/rxjs/_esm5/internal/operators/audit.js ***!
43482 \*************************************************************/
43483/*! exports provided: audit */
43484/***/ (function(module, __webpack_exports__, __webpack_require__) {
43485
43486"use strict";
43487__webpack_require__.r(__webpack_exports__);
43488/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return audit; });
43489/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
43490/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
43491/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
43492/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
43493/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
43494/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
43495
43496
43497
43498
43499
43500function audit(durationSelector) {
43501 return function auditOperatorFunction(source) {
43502 return source.lift(new AuditOperator(durationSelector));
43503 };
43504}
43505var AuditOperator = /*@__PURE__*/ (function () {
43506 function AuditOperator(durationSelector) {
43507 this.durationSelector = durationSelector;
43508 }
43509 AuditOperator.prototype.call = function (subscriber, source) {
43510 return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));
43511 };
43512 return AuditOperator;
43513}());
43514var AuditSubscriber = /*@__PURE__*/ (function (_super) {
43515 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AuditSubscriber, _super);
43516 function AuditSubscriber(destination, durationSelector) {
43517 var _this = _super.call(this, destination) || this;
43518 _this.durationSelector = durationSelector;
43519 _this.hasValue = false;
43520 return _this;
43521 }
43522 AuditSubscriber.prototype._next = function (value) {
43523 this.value = value;
43524 this.hasValue = true;
43525 if (!this.throttled) {
43526 var duration = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_1__["tryCatch"])(this.durationSelector)(value);
43527 if (duration === _util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"]) {
43528 this.destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"].e);
43529 }
43530 else {
43531 var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, duration);
43532 if (!innerSubscription || innerSubscription.closed) {
43533 this.clearThrottle();
43534 }
43535 else {
43536 this.add(this.throttled = innerSubscription);
43537 }
43538 }
43539 }
43540 };
43541 AuditSubscriber.prototype.clearThrottle = function () {
43542 var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;
43543 if (throttled) {
43544 this.remove(throttled);
43545 this.throttled = null;
43546 throttled.unsubscribe();
43547 }
43548 if (hasValue) {
43549 this.value = null;
43550 this.hasValue = false;
43551 this.destination.next(value);
43552 }
43553 };
43554 AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {
43555 this.clearThrottle();
43556 };
43557 AuditSubscriber.prototype.notifyComplete = function () {
43558 this.clearThrottle();
43559 };
43560 return AuditSubscriber;
43561}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"]));
43562//# sourceMappingURL=audit.js.map
43563
43564
43565/***/ }),
43566
43567/***/ "./node_modules/rxjs/_esm5/internal/operators/auditTime.js":
43568/*!*****************************************************************!*\
43569 !*** ./node_modules/rxjs/_esm5/internal/operators/auditTime.js ***!
43570 \*****************************************************************/
43571/*! exports provided: auditTime */
43572/***/ (function(module, __webpack_exports__, __webpack_require__) {
43573
43574"use strict";
43575__webpack_require__.r(__webpack_exports__);
43576/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return auditTime; });
43577/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
43578/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audit */ "./node_modules/rxjs/_esm5/internal/operators/audit.js");
43579/* harmony import */ var _observable_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/timer */ "./node_modules/rxjs/_esm5/internal/observable/timer.js");
43580/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */
43581
43582
43583
43584function auditTime(duration, scheduler) {
43585 if (scheduler === void 0) {
43586 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"];
43587 }
43588 return Object(_audit__WEBPACK_IMPORTED_MODULE_1__["audit"])(function () { return Object(_observable_timer__WEBPACK_IMPORTED_MODULE_2__["timer"])(duration, scheduler); });
43589}
43590//# sourceMappingURL=auditTime.js.map
43591
43592
43593/***/ }),
43594
43595/***/ "./node_modules/rxjs/_esm5/internal/operators/buffer.js":
43596/*!**************************************************************!*\
43597 !*** ./node_modules/rxjs/_esm5/internal/operators/buffer.js ***!
43598 \**************************************************************/
43599/*! exports provided: buffer */
43600/***/ (function(module, __webpack_exports__, __webpack_require__) {
43601
43602"use strict";
43603__webpack_require__.r(__webpack_exports__);
43604/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return buffer; });
43605/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
43606/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
43607/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
43608/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
43609
43610
43611
43612function buffer(closingNotifier) {
43613 return function bufferOperatorFunction(source) {
43614 return source.lift(new BufferOperator(closingNotifier));
43615 };
43616}
43617var BufferOperator = /*@__PURE__*/ (function () {
43618 function BufferOperator(closingNotifier) {
43619 this.closingNotifier = closingNotifier;
43620 }
43621 BufferOperator.prototype.call = function (subscriber, source) {
43622 return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));
43623 };
43624 return BufferOperator;
43625}());
43626var BufferSubscriber = /*@__PURE__*/ (function (_super) {
43627 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferSubscriber, _super);
43628 function BufferSubscriber(destination, closingNotifier) {
43629 var _this = _super.call(this, destination) || this;
43630 _this.buffer = [];
43631 _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, closingNotifier));
43632 return _this;
43633 }
43634 BufferSubscriber.prototype._next = function (value) {
43635 this.buffer.push(value);
43636 };
43637 BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
43638 var buffer = this.buffer;
43639 this.buffer = [];
43640 this.destination.next(buffer);
43641 };
43642 return BufferSubscriber;
43643}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
43644//# sourceMappingURL=buffer.js.map
43645
43646
43647/***/ }),
43648
43649/***/ "./node_modules/rxjs/_esm5/internal/operators/bufferCount.js":
43650/*!*******************************************************************!*\
43651 !*** ./node_modules/rxjs/_esm5/internal/operators/bufferCount.js ***!
43652 \*******************************************************************/
43653/*! exports provided: bufferCount */
43654/***/ (function(module, __webpack_exports__, __webpack_require__) {
43655
43656"use strict";
43657__webpack_require__.r(__webpack_exports__);
43658/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return bufferCount; });
43659/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
43660/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
43661/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
43662
43663
43664function bufferCount(bufferSize, startBufferEvery) {
43665 if (startBufferEvery === void 0) {
43666 startBufferEvery = null;
43667 }
43668 return function bufferCountOperatorFunction(source) {
43669 return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));
43670 };
43671}
43672var BufferCountOperator = /*@__PURE__*/ (function () {
43673 function BufferCountOperator(bufferSize, startBufferEvery) {
43674 this.bufferSize = bufferSize;
43675 this.startBufferEvery = startBufferEvery;
43676 if (!startBufferEvery || bufferSize === startBufferEvery) {
43677 this.subscriberClass = BufferCountSubscriber;
43678 }
43679 else {
43680 this.subscriberClass = BufferSkipCountSubscriber;
43681 }
43682 }
43683 BufferCountOperator.prototype.call = function (subscriber, source) {
43684 return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));
43685 };
43686 return BufferCountOperator;
43687}());
43688var BufferCountSubscriber = /*@__PURE__*/ (function (_super) {
43689 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferCountSubscriber, _super);
43690 function BufferCountSubscriber(destination, bufferSize) {
43691 var _this = _super.call(this, destination) || this;
43692 _this.bufferSize = bufferSize;
43693 _this.buffer = [];
43694 return _this;
43695 }
43696 BufferCountSubscriber.prototype._next = function (value) {
43697 var buffer = this.buffer;
43698 buffer.push(value);
43699 if (buffer.length == this.bufferSize) {
43700 this.destination.next(buffer);
43701 this.buffer = [];
43702 }
43703 };
43704 BufferCountSubscriber.prototype._complete = function () {
43705 var buffer = this.buffer;
43706 if (buffer.length > 0) {
43707 this.destination.next(buffer);
43708 }
43709 _super.prototype._complete.call(this);
43710 };
43711 return BufferCountSubscriber;
43712}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
43713var BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) {
43714 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferSkipCountSubscriber, _super);
43715 function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {
43716 var _this = _super.call(this, destination) || this;
43717 _this.bufferSize = bufferSize;
43718 _this.startBufferEvery = startBufferEvery;
43719 _this.buffers = [];
43720 _this.count = 0;
43721 return _this;
43722 }
43723 BufferSkipCountSubscriber.prototype._next = function (value) {
43724 var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;
43725 this.count++;
43726 if (count % startBufferEvery === 0) {
43727 buffers.push([]);
43728 }
43729 for (var i = buffers.length; i--;) {
43730 var buffer = buffers[i];
43731 buffer.push(value);
43732 if (buffer.length === bufferSize) {
43733 buffers.splice(i, 1);
43734 this.destination.next(buffer);
43735 }
43736 }
43737 };
43738 BufferSkipCountSubscriber.prototype._complete = function () {
43739 var _a = this, buffers = _a.buffers, destination = _a.destination;
43740 while (buffers.length > 0) {
43741 var buffer = buffers.shift();
43742 if (buffer.length > 0) {
43743 destination.next(buffer);
43744 }
43745 }
43746 _super.prototype._complete.call(this);
43747 };
43748 return BufferSkipCountSubscriber;
43749}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
43750//# sourceMappingURL=bufferCount.js.map
43751
43752
43753/***/ }),
43754
43755/***/ "./node_modules/rxjs/_esm5/internal/operators/bufferTime.js":
43756/*!******************************************************************!*\
43757 !*** ./node_modules/rxjs/_esm5/internal/operators/bufferTime.js ***!
43758 \******************************************************************/
43759/*! exports provided: bufferTime */
43760/***/ (function(module, __webpack_exports__, __webpack_require__) {
43761
43762"use strict";
43763__webpack_require__.r(__webpack_exports__);
43764/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return bufferTime; });
43765/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
43766/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
43767/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
43768/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
43769/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */
43770
43771
43772
43773
43774function bufferTime(bufferTimeSpan) {
43775 var length = arguments.length;
43776 var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"];
43777 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(arguments[arguments.length - 1])) {
43778 scheduler = arguments[arguments.length - 1];
43779 length--;
43780 }
43781 var bufferCreationInterval = null;
43782 if (length >= 2) {
43783 bufferCreationInterval = arguments[1];
43784 }
43785 var maxBufferSize = Number.POSITIVE_INFINITY;
43786 if (length >= 3) {
43787 maxBufferSize = arguments[2];
43788 }
43789 return function bufferTimeOperatorFunction(source) {
43790 return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));
43791 };
43792}
43793var BufferTimeOperator = /*@__PURE__*/ (function () {
43794 function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {
43795 this.bufferTimeSpan = bufferTimeSpan;
43796 this.bufferCreationInterval = bufferCreationInterval;
43797 this.maxBufferSize = maxBufferSize;
43798 this.scheduler = scheduler;
43799 }
43800 BufferTimeOperator.prototype.call = function (subscriber, source) {
43801 return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));
43802 };
43803 return BufferTimeOperator;
43804}());
43805var Context = /*@__PURE__*/ (function () {
43806 function Context() {
43807 this.buffer = [];
43808 }
43809 return Context;
43810}());
43811var BufferTimeSubscriber = /*@__PURE__*/ (function (_super) {
43812 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferTimeSubscriber, _super);
43813 function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {
43814 var _this = _super.call(this, destination) || this;
43815 _this.bufferTimeSpan = bufferTimeSpan;
43816 _this.bufferCreationInterval = bufferCreationInterval;
43817 _this.maxBufferSize = maxBufferSize;
43818 _this.scheduler = scheduler;
43819 _this.contexts = [];
43820 var context = _this.openContext();
43821 _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;
43822 if (_this.timespanOnly) {
43823 var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };
43824 _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
43825 }
43826 else {
43827 var closeState = { subscriber: _this, context: context };
43828 var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };
43829 _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));
43830 _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));
43831 }
43832 return _this;
43833 }
43834 BufferTimeSubscriber.prototype._next = function (value) {
43835 var contexts = this.contexts;
43836 var len = contexts.length;
43837 var filledBufferContext;
43838 for (var i = 0; i < len; i++) {
43839 var context_1 = contexts[i];
43840 var buffer = context_1.buffer;
43841 buffer.push(value);
43842 if (buffer.length == this.maxBufferSize) {
43843 filledBufferContext = context_1;
43844 }
43845 }
43846 if (filledBufferContext) {
43847 this.onBufferFull(filledBufferContext);
43848 }
43849 };
43850 BufferTimeSubscriber.prototype._error = function (err) {
43851 this.contexts.length = 0;
43852 _super.prototype._error.call(this, err);
43853 };
43854 BufferTimeSubscriber.prototype._complete = function () {
43855 var _a = this, contexts = _a.contexts, destination = _a.destination;
43856 while (contexts.length > 0) {
43857 var context_2 = contexts.shift();
43858 destination.next(context_2.buffer);
43859 }
43860 _super.prototype._complete.call(this);
43861 };
43862 BufferTimeSubscriber.prototype._unsubscribe = function () {
43863 this.contexts = null;
43864 };
43865 BufferTimeSubscriber.prototype.onBufferFull = function (context) {
43866 this.closeContext(context);
43867 var closeAction = context.closeAction;
43868 closeAction.unsubscribe();
43869 this.remove(closeAction);
43870 if (!this.closed && this.timespanOnly) {
43871 context = this.openContext();
43872 var bufferTimeSpan = this.bufferTimeSpan;
43873 var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };
43874 this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));
43875 }
43876 };
43877 BufferTimeSubscriber.prototype.openContext = function () {
43878 var context = new Context();
43879 this.contexts.push(context);
43880 return context;
43881 };
43882 BufferTimeSubscriber.prototype.closeContext = function (context) {
43883 this.destination.next(context.buffer);
43884 var contexts = this.contexts;
43885 var spliceIndex = contexts ? contexts.indexOf(context) : -1;
43886 if (spliceIndex >= 0) {
43887 contexts.splice(contexts.indexOf(context), 1);
43888 }
43889 };
43890 return BufferTimeSubscriber;
43891}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"]));
43892function dispatchBufferTimeSpanOnly(state) {
43893 var subscriber = state.subscriber;
43894 var prevContext = state.context;
43895 if (prevContext) {
43896 subscriber.closeContext(prevContext);
43897 }
43898 if (!subscriber.closed) {
43899 state.context = subscriber.openContext();
43900 state.context.closeAction = this.schedule(state, state.bufferTimeSpan);
43901 }
43902}
43903function dispatchBufferCreation(state) {
43904 var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;
43905 var context = subscriber.openContext();
43906 var action = this;
43907 if (!subscriber.closed) {
43908 subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));
43909 action.schedule(state, bufferCreationInterval);
43910 }
43911}
43912function dispatchBufferClose(arg) {
43913 var subscriber = arg.subscriber, context = arg.context;
43914 subscriber.closeContext(context);
43915}
43916//# sourceMappingURL=bufferTime.js.map
43917
43918
43919/***/ }),
43920
43921/***/ "./node_modules/rxjs/_esm5/internal/operators/bufferToggle.js":
43922/*!********************************************************************!*\
43923 !*** ./node_modules/rxjs/_esm5/internal/operators/bufferToggle.js ***!
43924 \********************************************************************/
43925/*! exports provided: bufferToggle */
43926/***/ (function(module, __webpack_exports__, __webpack_require__) {
43927
43928"use strict";
43929__webpack_require__.r(__webpack_exports__);
43930/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return bufferToggle; });
43931/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
43932/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
43933/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
43934/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
43935/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */
43936
43937
43938
43939
43940function bufferToggle(openings, closingSelector) {
43941 return function bufferToggleOperatorFunction(source) {
43942 return source.lift(new BufferToggleOperator(openings, closingSelector));
43943 };
43944}
43945var BufferToggleOperator = /*@__PURE__*/ (function () {
43946 function BufferToggleOperator(openings, closingSelector) {
43947 this.openings = openings;
43948 this.closingSelector = closingSelector;
43949 }
43950 BufferToggleOperator.prototype.call = function (subscriber, source) {
43951 return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));
43952 };
43953 return BufferToggleOperator;
43954}());
43955var BufferToggleSubscriber = /*@__PURE__*/ (function (_super) {
43956 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferToggleSubscriber, _super);
43957 function BufferToggleSubscriber(destination, openings, closingSelector) {
43958 var _this = _super.call(this, destination) || this;
43959 _this.openings = openings;
43960 _this.closingSelector = closingSelector;
43961 _this.contexts = [];
43962 _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, openings));
43963 return _this;
43964 }
43965 BufferToggleSubscriber.prototype._next = function (value) {
43966 var contexts = this.contexts;
43967 var len = contexts.length;
43968 for (var i = 0; i < len; i++) {
43969 contexts[i].buffer.push(value);
43970 }
43971 };
43972 BufferToggleSubscriber.prototype._error = function (err) {
43973 var contexts = this.contexts;
43974 while (contexts.length > 0) {
43975 var context_1 = contexts.shift();
43976 context_1.subscription.unsubscribe();
43977 context_1.buffer = null;
43978 context_1.subscription = null;
43979 }
43980 this.contexts = null;
43981 _super.prototype._error.call(this, err);
43982 };
43983 BufferToggleSubscriber.prototype._complete = function () {
43984 var contexts = this.contexts;
43985 while (contexts.length > 0) {
43986 var context_2 = contexts.shift();
43987 this.destination.next(context_2.buffer);
43988 context_2.subscription.unsubscribe();
43989 context_2.buffer = null;
43990 context_2.subscription = null;
43991 }
43992 this.contexts = null;
43993 _super.prototype._complete.call(this);
43994 };
43995 BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
43996 outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);
43997 };
43998 BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {
43999 this.closeBuffer(innerSub.context);
44000 };
44001 BufferToggleSubscriber.prototype.openBuffer = function (value) {
44002 try {
44003 var closingSelector = this.closingSelector;
44004 var closingNotifier = closingSelector.call(this, value);
44005 if (closingNotifier) {
44006 this.trySubscribe(closingNotifier);
44007 }
44008 }
44009 catch (err) {
44010 this._error(err);
44011 }
44012 };
44013 BufferToggleSubscriber.prototype.closeBuffer = function (context) {
44014 var contexts = this.contexts;
44015 if (contexts && context) {
44016 var buffer = context.buffer, subscription = context.subscription;
44017 this.destination.next(buffer);
44018 contexts.splice(contexts.indexOf(context), 1);
44019 this.remove(subscription);
44020 subscription.unsubscribe();
44021 }
44022 };
44023 BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {
44024 var contexts = this.contexts;
44025 var buffer = [];
44026 var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"]();
44027 var context = { buffer: buffer, subscription: subscription };
44028 contexts.push(context);
44029 var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, closingNotifier, context);
44030 if (!innerSubscription || innerSubscription.closed) {
44031 this.closeBuffer(context);
44032 }
44033 else {
44034 innerSubscription.context = context;
44035 this.add(innerSubscription);
44036 subscription.add(innerSubscription);
44037 }
44038 };
44039 return BufferToggleSubscriber;
44040}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"]));
44041//# sourceMappingURL=bufferToggle.js.map
44042
44043
44044/***/ }),
44045
44046/***/ "./node_modules/rxjs/_esm5/internal/operators/bufferWhen.js":
44047/*!******************************************************************!*\
44048 !*** ./node_modules/rxjs/_esm5/internal/operators/bufferWhen.js ***!
44049 \******************************************************************/
44050/*! exports provided: bufferWhen */
44051/***/ (function(module, __webpack_exports__, __webpack_require__) {
44052
44053"use strict";
44054__webpack_require__.r(__webpack_exports__);
44055/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return bufferWhen; });
44056/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
44057/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
44058/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
44059/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
44060/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
44061/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
44062/** PURE_IMPORTS_START tslib,_Subscription,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
44063
44064
44065
44066
44067
44068
44069function bufferWhen(closingSelector) {
44070 return function (source) {
44071 return source.lift(new BufferWhenOperator(closingSelector));
44072 };
44073}
44074var BufferWhenOperator = /*@__PURE__*/ (function () {
44075 function BufferWhenOperator(closingSelector) {
44076 this.closingSelector = closingSelector;
44077 }
44078 BufferWhenOperator.prototype.call = function (subscriber, source) {
44079 return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));
44080 };
44081 return BufferWhenOperator;
44082}());
44083var BufferWhenSubscriber = /*@__PURE__*/ (function (_super) {
44084 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferWhenSubscriber, _super);
44085 function BufferWhenSubscriber(destination, closingSelector) {
44086 var _this = _super.call(this, destination) || this;
44087 _this.closingSelector = closingSelector;
44088 _this.subscribing = false;
44089 _this.openBuffer();
44090 return _this;
44091 }
44092 BufferWhenSubscriber.prototype._next = function (value) {
44093 this.buffer.push(value);
44094 };
44095 BufferWhenSubscriber.prototype._complete = function () {
44096 var buffer = this.buffer;
44097 if (buffer) {
44098 this.destination.next(buffer);
44099 }
44100 _super.prototype._complete.call(this);
44101 };
44102 BufferWhenSubscriber.prototype._unsubscribe = function () {
44103 this.buffer = null;
44104 this.subscribing = false;
44105 };
44106 BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
44107 this.openBuffer();
44108 };
44109 BufferWhenSubscriber.prototype.notifyComplete = function () {
44110 if (this.subscribing) {
44111 this.complete();
44112 }
44113 else {
44114 this.openBuffer();
44115 }
44116 };
44117 BufferWhenSubscriber.prototype.openBuffer = function () {
44118 var closingSubscription = this.closingSubscription;
44119 if (closingSubscription) {
44120 this.remove(closingSubscription);
44121 closingSubscription.unsubscribe();
44122 }
44123 var buffer = this.buffer;
44124 if (this.buffer) {
44125 this.destination.next(buffer);
44126 }
44127 this.buffer = [];
44128 var closingNotifier = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.closingSelector)();
44129 if (closingNotifier === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) {
44130 this.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e);
44131 }
44132 else {
44133 closingSubscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"]();
44134 this.closingSubscription = closingSubscription;
44135 this.add(closingSubscription);
44136 this.subscribing = true;
44137 closingSubscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, closingNotifier));
44138 this.subscribing = false;
44139 }
44140 };
44141 return BufferWhenSubscriber;
44142}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"]));
44143//# sourceMappingURL=bufferWhen.js.map
44144
44145
44146/***/ }),
44147
44148/***/ "./node_modules/rxjs/_esm5/internal/operators/catchError.js":
44149/*!******************************************************************!*\
44150 !*** ./node_modules/rxjs/_esm5/internal/operators/catchError.js ***!
44151 \******************************************************************/
44152/*! exports provided: catchError */
44153/***/ (function(module, __webpack_exports__, __webpack_require__) {
44154
44155"use strict";
44156__webpack_require__.r(__webpack_exports__);
44157/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return catchError; });
44158/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
44159/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
44160/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ "./node_modules/rxjs/_esm5/internal/InnerSubscriber.js");
44161/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
44162/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
44163
44164
44165
44166
44167function catchError(selector) {
44168 return function catchErrorOperatorFunction(source) {
44169 var operator = new CatchOperator(selector);
44170 var caught = source.lift(operator);
44171 return (operator.caught = caught);
44172 };
44173}
44174var CatchOperator = /*@__PURE__*/ (function () {
44175 function CatchOperator(selector) {
44176 this.selector = selector;
44177 }
44178 CatchOperator.prototype.call = function (subscriber, source) {
44179 return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));
44180 };
44181 return CatchOperator;
44182}());
44183var CatchSubscriber = /*@__PURE__*/ (function (_super) {
44184 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CatchSubscriber, _super);
44185 function CatchSubscriber(destination, selector, caught) {
44186 var _this = _super.call(this, destination) || this;
44187 _this.selector = selector;
44188 _this.caught = caught;
44189 return _this;
44190 }
44191 CatchSubscriber.prototype.error = function (err) {
44192 if (!this.isStopped) {
44193 var result = void 0;
44194 try {
44195 result = this.selector(err, this.caught);
44196 }
44197 catch (err2) {
44198 _super.prototype.error.call(this, err2);
44199 return;
44200 }
44201 this._unsubscribeAndRecycle();
44202 var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined);
44203 this.add(innerSubscriber);
44204 Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, undefined, undefined, innerSubscriber);
44205 }
44206 };
44207 return CatchSubscriber;
44208}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
44209//# sourceMappingURL=catchError.js.map
44210
44211
44212/***/ }),
44213
44214/***/ "./node_modules/rxjs/_esm5/internal/operators/combineAll.js":
44215/*!******************************************************************!*\
44216 !*** ./node_modules/rxjs/_esm5/internal/operators/combineAll.js ***!
44217 \******************************************************************/
44218/*! exports provided: combineAll */
44219/***/ (function(module, __webpack_exports__, __webpack_require__) {
44220
44221"use strict";
44222__webpack_require__.r(__webpack_exports__);
44223/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return combineAll; });
44224/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/combineLatest */ "./node_modules/rxjs/_esm5/internal/observable/combineLatest.js");
44225/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */
44226
44227function combineAll(project) {
44228 return function (source) { return source.lift(new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__["CombineLatestOperator"](project)); };
44229}
44230//# sourceMappingURL=combineAll.js.map
44231
44232
44233/***/ }),
44234
44235/***/ "./node_modules/rxjs/_esm5/internal/operators/combineLatest.js":
44236/*!*********************************************************************!*\
44237 !*** ./node_modules/rxjs/_esm5/internal/operators/combineLatest.js ***!
44238 \*********************************************************************/
44239/*! exports provided: combineLatest */
44240/***/ (function(module, __webpack_exports__, __webpack_require__) {
44241
44242"use strict";
44243__webpack_require__.r(__webpack_exports__);
44244/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return combineLatest; });
44245/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
44246/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/combineLatest */ "./node_modules/rxjs/_esm5/internal/observable/combineLatest.js");
44247/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/from */ "./node_modules/rxjs/_esm5/internal/observable/from.js");
44248/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */
44249
44250
44251
44252var none = {};
44253function combineLatest() {
44254 var observables = [];
44255 for (var _i = 0; _i < arguments.length; _i++) {
44256 observables[_i] = arguments[_i];
44257 }
44258 var project = null;
44259 if (typeof observables[observables.length - 1] === 'function') {
44260 project = observables.pop();
44261 }
44262 if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(observables[0])) {
44263 observables = observables[0].slice();
44264 }
44265 return function (source) { return source.lift.call(Object(_observable_from__WEBPACK_IMPORTED_MODULE_2__["from"])([source].concat(observables)), new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_1__["CombineLatestOperator"](project)); };
44266}
44267//# sourceMappingURL=combineLatest.js.map
44268
44269
44270/***/ }),
44271
44272/***/ "./node_modules/rxjs/_esm5/internal/operators/concat.js":
44273/*!**************************************************************!*\
44274 !*** ./node_modules/rxjs/_esm5/internal/operators/concat.js ***!
44275 \**************************************************************/
44276/*! exports provided: concat */
44277/***/ (function(module, __webpack_exports__, __webpack_require__) {
44278
44279"use strict";
44280__webpack_require__.r(__webpack_exports__);
44281/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; });
44282/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/concat */ "./node_modules/rxjs/_esm5/internal/observable/concat.js");
44283/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */
44284
44285function concat() {
44286 var observables = [];
44287 for (var _i = 0; _i < arguments.length; _i++) {
44288 observables[_i] = arguments[_i];
44289 }
44290 return function (source) { return source.lift.call(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"].apply(void 0, [source].concat(observables))); };
44291}
44292//# sourceMappingURL=concat.js.map
44293
44294
44295/***/ }),
44296
44297/***/ "./node_modules/rxjs/_esm5/internal/operators/concatAll.js":
44298/*!*****************************************************************!*\
44299 !*** ./node_modules/rxjs/_esm5/internal/operators/concatAll.js ***!
44300 \*****************************************************************/
44301/*! exports provided: concatAll */
44302/***/ (function(module, __webpack_exports__, __webpack_require__) {
44303
44304"use strict";
44305__webpack_require__.r(__webpack_exports__);
44306/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return concatAll; });
44307/* harmony import */ var _mergeAll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeAll */ "./node_modules/rxjs/_esm5/internal/operators/mergeAll.js");
44308/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */
44309
44310function concatAll() {
44311 return Object(_mergeAll__WEBPACK_IMPORTED_MODULE_0__["mergeAll"])(1);
44312}
44313//# sourceMappingURL=concatAll.js.map
44314
44315
44316/***/ }),
44317
44318/***/ "./node_modules/rxjs/_esm5/internal/operators/concatMap.js":
44319/*!*****************************************************************!*\
44320 !*** ./node_modules/rxjs/_esm5/internal/operators/concatMap.js ***!
44321 \*****************************************************************/
44322/*! exports provided: concatMap */
44323/***/ (function(module, __webpack_exports__, __webpack_require__) {
44324
44325"use strict";
44326__webpack_require__.r(__webpack_exports__);
44327/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return concatMap; });
44328/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ "./node_modules/rxjs/_esm5/internal/operators/mergeMap.js");
44329/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */
44330
44331function concatMap(project, resultSelector) {
44332 return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(project, resultSelector, 1);
44333}
44334//# sourceMappingURL=concatMap.js.map
44335
44336
44337/***/ }),
44338
44339/***/ "./node_modules/rxjs/_esm5/internal/operators/concatMapTo.js":
44340/*!*******************************************************************!*\
44341 !*** ./node_modules/rxjs/_esm5/internal/operators/concatMapTo.js ***!
44342 \*******************************************************************/
44343/*! exports provided: concatMapTo */
44344/***/ (function(module, __webpack_exports__, __webpack_require__) {
44345
44346"use strict";
44347__webpack_require__.r(__webpack_exports__);
44348/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return concatMapTo; });
44349/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./concatMap */ "./node_modules/rxjs/_esm5/internal/operators/concatMap.js");
44350/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */
44351
44352function concatMapTo(innerObservable, resultSelector) {
44353 return Object(_concatMap__WEBPACK_IMPORTED_MODULE_0__["concatMap"])(function () { return innerObservable; }, resultSelector);
44354}
44355//# sourceMappingURL=concatMapTo.js.map
44356
44357
44358/***/ }),
44359
44360/***/ "./node_modules/rxjs/_esm5/internal/operators/count.js":
44361/*!*************************************************************!*\
44362 !*** ./node_modules/rxjs/_esm5/internal/operators/count.js ***!
44363 \*************************************************************/
44364/*! exports provided: count */
44365/***/ (function(module, __webpack_exports__, __webpack_require__) {
44366
44367"use strict";
44368__webpack_require__.r(__webpack_exports__);
44369/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "count", function() { return count; });
44370/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
44371/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
44372/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
44373
44374
44375function count(predicate) {
44376 return function (source) { return source.lift(new CountOperator(predicate, source)); };
44377}
44378var CountOperator = /*@__PURE__*/ (function () {
44379 function CountOperator(predicate, source) {
44380 this.predicate = predicate;
44381 this.source = source;
44382 }
44383 CountOperator.prototype.call = function (subscriber, source) {
44384 return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));
44385 };
44386 return CountOperator;
44387}());
44388var CountSubscriber = /*@__PURE__*/ (function (_super) {
44389 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CountSubscriber, _super);
44390 function CountSubscriber(destination, predicate, source) {
44391 var _this = _super.call(this, destination) || this;
44392 _this.predicate = predicate;
44393 _this.source = source;
44394 _this.count = 0;
44395 _this.index = 0;
44396 return _this;
44397 }
44398 CountSubscriber.prototype._next = function (value) {
44399 if (this.predicate) {
44400 this._tryPredicate(value);
44401 }
44402 else {
44403 this.count++;
44404 }
44405 };
44406 CountSubscriber.prototype._tryPredicate = function (value) {
44407 var result;
44408 try {
44409 result = this.predicate(value, this.index++, this.source);
44410 }
44411 catch (err) {
44412 this.destination.error(err);
44413 return;
44414 }
44415 if (result) {
44416 this.count++;
44417 }
44418 };
44419 CountSubscriber.prototype._complete = function () {
44420 this.destination.next(this.count);
44421 this.destination.complete();
44422 };
44423 return CountSubscriber;
44424}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
44425//# sourceMappingURL=count.js.map
44426
44427
44428/***/ }),
44429
44430/***/ "./node_modules/rxjs/_esm5/internal/operators/debounce.js":
44431/*!****************************************************************!*\
44432 !*** ./node_modules/rxjs/_esm5/internal/operators/debounce.js ***!
44433 \****************************************************************/
44434/*! exports provided: debounce */
44435/***/ (function(module, __webpack_exports__, __webpack_require__) {
44436
44437"use strict";
44438__webpack_require__.r(__webpack_exports__);
44439/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; });
44440/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
44441/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
44442/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
44443/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
44444
44445
44446
44447function debounce(durationSelector) {
44448 return function (source) { return source.lift(new DebounceOperator(durationSelector)); };
44449}
44450var DebounceOperator = /*@__PURE__*/ (function () {
44451 function DebounceOperator(durationSelector) {
44452 this.durationSelector = durationSelector;
44453 }
44454 DebounceOperator.prototype.call = function (subscriber, source) {
44455 return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));
44456 };
44457 return DebounceOperator;
44458}());
44459var DebounceSubscriber = /*@__PURE__*/ (function (_super) {
44460 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DebounceSubscriber, _super);
44461 function DebounceSubscriber(destination, durationSelector) {
44462 var _this = _super.call(this, destination) || this;
44463 _this.durationSelector = durationSelector;
44464 _this.hasValue = false;
44465 _this.durationSubscription = null;
44466 return _this;
44467 }
44468 DebounceSubscriber.prototype._next = function (value) {
44469 try {
44470 var result = this.durationSelector.call(this, value);
44471 if (result) {
44472 this._tryNext(value, result);
44473 }
44474 }
44475 catch (err) {
44476 this.destination.error(err);
44477 }
44478 };
44479 DebounceSubscriber.prototype._complete = function () {
44480 this.emitValue();
44481 this.destination.complete();
44482 };
44483 DebounceSubscriber.prototype._tryNext = function (value, duration) {
44484 var subscription = this.durationSubscription;
44485 this.value = value;
44486 this.hasValue = true;
44487 if (subscription) {
44488 subscription.unsubscribe();
44489 this.remove(subscription);
44490 }
44491 subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, duration);
44492 if (subscription && !subscription.closed) {
44493 this.add(this.durationSubscription = subscription);
44494 }
44495 };
44496 DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
44497 this.emitValue();
44498 };
44499 DebounceSubscriber.prototype.notifyComplete = function () {
44500 this.emitValue();
44501 };
44502 DebounceSubscriber.prototype.emitValue = function () {
44503 if (this.hasValue) {
44504 var value = this.value;
44505 var subscription = this.durationSubscription;
44506 if (subscription) {
44507 this.durationSubscription = null;
44508 subscription.unsubscribe();
44509 this.remove(subscription);
44510 }
44511 this.value = null;
44512 this.hasValue = false;
44513 _super.prototype._next.call(this, value);
44514 }
44515 };
44516 return DebounceSubscriber;
44517}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
44518//# sourceMappingURL=debounce.js.map
44519
44520
44521/***/ }),
44522
44523/***/ "./node_modules/rxjs/_esm5/internal/operators/debounceTime.js":
44524/*!********************************************************************!*\
44525 !*** ./node_modules/rxjs/_esm5/internal/operators/debounceTime.js ***!
44526 \********************************************************************/
44527/*! exports provided: debounceTime */
44528/***/ (function(module, __webpack_exports__, __webpack_require__) {
44529
44530"use strict";
44531__webpack_require__.r(__webpack_exports__);
44532/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return debounceTime; });
44533/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
44534/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
44535/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
44536/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */
44537
44538
44539
44540function debounceTime(dueTime, scheduler) {
44541 if (scheduler === void 0) {
44542 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"];
44543 }
44544 return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };
44545}
44546var DebounceTimeOperator = /*@__PURE__*/ (function () {
44547 function DebounceTimeOperator(dueTime, scheduler) {
44548 this.dueTime = dueTime;
44549 this.scheduler = scheduler;
44550 }
44551 DebounceTimeOperator.prototype.call = function (subscriber, source) {
44552 return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));
44553 };
44554 return DebounceTimeOperator;
44555}());
44556var DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) {
44557 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DebounceTimeSubscriber, _super);
44558 function DebounceTimeSubscriber(destination, dueTime, scheduler) {
44559 var _this = _super.call(this, destination) || this;
44560 _this.dueTime = dueTime;
44561 _this.scheduler = scheduler;
44562 _this.debouncedSubscription = null;
44563 _this.lastValue = null;
44564 _this.hasValue = false;
44565 return _this;
44566 }
44567 DebounceTimeSubscriber.prototype._next = function (value) {
44568 this.clearDebounce();
44569 this.lastValue = value;
44570 this.hasValue = true;
44571 this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));
44572 };
44573 DebounceTimeSubscriber.prototype._complete = function () {
44574 this.debouncedNext();
44575 this.destination.complete();
44576 };
44577 DebounceTimeSubscriber.prototype.debouncedNext = function () {
44578 this.clearDebounce();
44579 if (this.hasValue) {
44580 var lastValue = this.lastValue;
44581 this.lastValue = null;
44582 this.hasValue = false;
44583 this.destination.next(lastValue);
44584 }
44585 };
44586 DebounceTimeSubscriber.prototype.clearDebounce = function () {
44587 var debouncedSubscription = this.debouncedSubscription;
44588 if (debouncedSubscription !== null) {
44589 this.remove(debouncedSubscription);
44590 debouncedSubscription.unsubscribe();
44591 this.debouncedSubscription = null;
44592 }
44593 };
44594 return DebounceTimeSubscriber;
44595}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
44596function dispatchNext(subscriber) {
44597 subscriber.debouncedNext();
44598}
44599//# sourceMappingURL=debounceTime.js.map
44600
44601
44602/***/ }),
44603
44604/***/ "./node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js":
44605/*!**********************************************************************!*\
44606 !*** ./node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js ***!
44607 \**********************************************************************/
44608/*! exports provided: defaultIfEmpty */
44609/***/ (function(module, __webpack_exports__, __webpack_require__) {
44610
44611"use strict";
44612__webpack_require__.r(__webpack_exports__);
44613/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return defaultIfEmpty; });
44614/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
44615/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
44616/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
44617
44618
44619function defaultIfEmpty(defaultValue) {
44620 if (defaultValue === void 0) {
44621 defaultValue = null;
44622 }
44623 return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };
44624}
44625var DefaultIfEmptyOperator = /*@__PURE__*/ (function () {
44626 function DefaultIfEmptyOperator(defaultValue) {
44627 this.defaultValue = defaultValue;
44628 }
44629 DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {
44630 return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));
44631 };
44632 return DefaultIfEmptyOperator;
44633}());
44634var DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) {
44635 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DefaultIfEmptySubscriber, _super);
44636 function DefaultIfEmptySubscriber(destination, defaultValue) {
44637 var _this = _super.call(this, destination) || this;
44638 _this.defaultValue = defaultValue;
44639 _this.isEmpty = true;
44640 return _this;
44641 }
44642 DefaultIfEmptySubscriber.prototype._next = function (value) {
44643 this.isEmpty = false;
44644 this.destination.next(value);
44645 };
44646 DefaultIfEmptySubscriber.prototype._complete = function () {
44647 if (this.isEmpty) {
44648 this.destination.next(this.defaultValue);
44649 }
44650 this.destination.complete();
44651 };
44652 return DefaultIfEmptySubscriber;
44653}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
44654//# sourceMappingURL=defaultIfEmpty.js.map
44655
44656
44657/***/ }),
44658
44659/***/ "./node_modules/rxjs/_esm5/internal/operators/delay.js":
44660/*!*************************************************************!*\
44661 !*** ./node_modules/rxjs/_esm5/internal/operators/delay.js ***!
44662 \*************************************************************/
44663/*! exports provided: delay */
44664/***/ (function(module, __webpack_exports__, __webpack_require__) {
44665
44666"use strict";
44667__webpack_require__.r(__webpack_exports__);
44668/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return delay; });
44669/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
44670/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
44671/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isDate */ "./node_modules/rxjs/_esm5/internal/util/isDate.js");
44672/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
44673/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Notification */ "./node_modules/rxjs/_esm5/internal/Notification.js");
44674/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */
44675
44676
44677
44678
44679
44680function delay(delay, scheduler) {
44681 if (scheduler === void 0) {
44682 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"];
44683 }
44684 var absoluteDelay = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__["isDate"])(delay);
44685 var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);
44686 return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };
44687}
44688var DelayOperator = /*@__PURE__*/ (function () {
44689 function DelayOperator(delay, scheduler) {
44690 this.delay = delay;
44691 this.scheduler = scheduler;
44692 }
44693 DelayOperator.prototype.call = function (subscriber, source) {
44694 return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));
44695 };
44696 return DelayOperator;
44697}());
44698var DelaySubscriber = /*@__PURE__*/ (function (_super) {
44699 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DelaySubscriber, _super);
44700 function DelaySubscriber(destination, delay, scheduler) {
44701 var _this = _super.call(this, destination) || this;
44702 _this.delay = delay;
44703 _this.scheduler = scheduler;
44704 _this.queue = [];
44705 _this.active = false;
44706 _this.errored = false;
44707 return _this;
44708 }
44709 DelaySubscriber.dispatch = function (state) {
44710 var source = state.source;
44711 var queue = source.queue;
44712 var scheduler = state.scheduler;
44713 var destination = state.destination;
44714 while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {
44715 queue.shift().notification.observe(destination);
44716 }
44717 if (queue.length > 0) {
44718 var delay_1 = Math.max(0, queue[0].time - scheduler.now());
44719 this.schedule(state, delay_1);
44720 }
44721 else {
44722 this.unsubscribe();
44723 source.active = false;
44724 }
44725 };
44726 DelaySubscriber.prototype._schedule = function (scheduler) {
44727 this.active = true;
44728 var destination = this.destination;
44729 destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {
44730 source: this, destination: this.destination, scheduler: scheduler
44731 }));
44732 };
44733 DelaySubscriber.prototype.scheduleNotification = function (notification) {
44734 if (this.errored === true) {
44735 return;
44736 }
44737 var scheduler = this.scheduler;
44738 var message = new DelayMessage(scheduler.now() + this.delay, notification);
44739 this.queue.push(message);
44740 if (this.active === false) {
44741 this._schedule(scheduler);
44742 }
44743 };
44744 DelaySubscriber.prototype._next = function (value) {
44745 this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__["Notification"].createNext(value));
44746 };
44747 DelaySubscriber.prototype._error = function (err) {
44748 this.errored = true;
44749 this.queue = [];
44750 this.destination.error(err);
44751 this.unsubscribe();
44752 };
44753 DelaySubscriber.prototype._complete = function () {
44754 this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__["Notification"].createComplete());
44755 this.unsubscribe();
44756 };
44757 return DelaySubscriber;
44758}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"]));
44759var DelayMessage = /*@__PURE__*/ (function () {
44760 function DelayMessage(time, notification) {
44761 this.time = time;
44762 this.notification = notification;
44763 }
44764 return DelayMessage;
44765}());
44766//# sourceMappingURL=delay.js.map
44767
44768
44769/***/ }),
44770
44771/***/ "./node_modules/rxjs/_esm5/internal/operators/delayWhen.js":
44772/*!*****************************************************************!*\
44773 !*** ./node_modules/rxjs/_esm5/internal/operators/delayWhen.js ***!
44774 \*****************************************************************/
44775/*! exports provided: delayWhen */
44776/***/ (function(module, __webpack_exports__, __webpack_require__) {
44777
44778"use strict";
44779__webpack_require__.r(__webpack_exports__);
44780/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return delayWhen; });
44781/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
44782/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
44783/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
44784/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
44785/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
44786/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
44787
44788
44789
44790
44791
44792function delayWhen(delayDurationSelector, subscriptionDelay) {
44793 if (subscriptionDelay) {
44794 return function (source) {
44795 return new SubscriptionDelayObservable(source, subscriptionDelay)
44796 .lift(new DelayWhenOperator(delayDurationSelector));
44797 };
44798 }
44799 return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };
44800}
44801var DelayWhenOperator = /*@__PURE__*/ (function () {
44802 function DelayWhenOperator(delayDurationSelector) {
44803 this.delayDurationSelector = delayDurationSelector;
44804 }
44805 DelayWhenOperator.prototype.call = function (subscriber, source) {
44806 return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));
44807 };
44808 return DelayWhenOperator;
44809}());
44810var DelayWhenSubscriber = /*@__PURE__*/ (function (_super) {
44811 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DelayWhenSubscriber, _super);
44812 function DelayWhenSubscriber(destination, delayDurationSelector) {
44813 var _this = _super.call(this, destination) || this;
44814 _this.delayDurationSelector = delayDurationSelector;
44815 _this.completed = false;
44816 _this.delayNotifierSubscriptions = [];
44817 _this.index = 0;
44818 return _this;
44819 }
44820 DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
44821 this.destination.next(outerValue);
44822 this.removeSubscription(innerSub);
44823 this.tryComplete();
44824 };
44825 DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {
44826 this._error(error);
44827 };
44828 DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {
44829 var value = this.removeSubscription(innerSub);
44830 if (value) {
44831 this.destination.next(value);
44832 }
44833 this.tryComplete();
44834 };
44835 DelayWhenSubscriber.prototype._next = function (value) {
44836 var index = this.index++;
44837 try {
44838 var delayNotifier = this.delayDurationSelector(value, index);
44839 if (delayNotifier) {
44840 this.tryDelay(delayNotifier, value);
44841 }
44842 }
44843 catch (err) {
44844 this.destination.error(err);
44845 }
44846 };
44847 DelayWhenSubscriber.prototype._complete = function () {
44848 this.completed = true;
44849 this.tryComplete();
44850 this.unsubscribe();
44851 };
44852 DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {
44853 subscription.unsubscribe();
44854 var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);
44855 if (subscriptionIdx !== -1) {
44856 this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);
44857 }
44858 return subscription.outerValue;
44859 };
44860 DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {
44861 var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, delayNotifier, value);
44862 if (notifierSubscription && !notifierSubscription.closed) {
44863 var destination = this.destination;
44864 destination.add(notifierSubscription);
44865 this.delayNotifierSubscriptions.push(notifierSubscription);
44866 }
44867 };
44868 DelayWhenSubscriber.prototype.tryComplete = function () {
44869 if (this.completed && this.delayNotifierSubscriptions.length === 0) {
44870 this.destination.complete();
44871 }
44872 };
44873 return DelayWhenSubscriber;
44874}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"]));
44875var SubscriptionDelayObservable = /*@__PURE__*/ (function (_super) {
44876 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscriptionDelayObservable, _super);
44877 function SubscriptionDelayObservable(source, subscriptionDelay) {
44878 var _this = _super.call(this) || this;
44879 _this.source = source;
44880 _this.subscriptionDelay = subscriptionDelay;
44881 return _this;
44882 }
44883 SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {
44884 this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));
44885 };
44886 return SubscriptionDelayObservable;
44887}(_Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]));
44888var SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) {
44889 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscriptionDelaySubscriber, _super);
44890 function SubscriptionDelaySubscriber(parent, source) {
44891 var _this = _super.call(this) || this;
44892 _this.parent = parent;
44893 _this.source = source;
44894 _this.sourceSubscribed = false;
44895 return _this;
44896 }
44897 SubscriptionDelaySubscriber.prototype._next = function (unused) {
44898 this.subscribeToSource();
44899 };
44900 SubscriptionDelaySubscriber.prototype._error = function (err) {
44901 this.unsubscribe();
44902 this.parent.error(err);
44903 };
44904 SubscriptionDelaySubscriber.prototype._complete = function () {
44905 this.unsubscribe();
44906 this.subscribeToSource();
44907 };
44908 SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {
44909 if (!this.sourceSubscribed) {
44910 this.sourceSubscribed = true;
44911 this.unsubscribe();
44912 this.source.subscribe(this.parent);
44913 }
44914 };
44915 return SubscriptionDelaySubscriber;
44916}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
44917//# sourceMappingURL=delayWhen.js.map
44918
44919
44920/***/ }),
44921
44922/***/ "./node_modules/rxjs/_esm5/internal/operators/dematerialize.js":
44923/*!*********************************************************************!*\
44924 !*** ./node_modules/rxjs/_esm5/internal/operators/dematerialize.js ***!
44925 \*********************************************************************/
44926/*! exports provided: dematerialize */
44927/***/ (function(module, __webpack_exports__, __webpack_require__) {
44928
44929"use strict";
44930__webpack_require__.r(__webpack_exports__);
44931/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return dematerialize; });
44932/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
44933/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
44934/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
44935
44936
44937function dematerialize() {
44938 return function dematerializeOperatorFunction(source) {
44939 return source.lift(new DeMaterializeOperator());
44940 };
44941}
44942var DeMaterializeOperator = /*@__PURE__*/ (function () {
44943 function DeMaterializeOperator() {
44944 }
44945 DeMaterializeOperator.prototype.call = function (subscriber, source) {
44946 return source.subscribe(new DeMaterializeSubscriber(subscriber));
44947 };
44948 return DeMaterializeOperator;
44949}());
44950var DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) {
44951 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DeMaterializeSubscriber, _super);
44952 function DeMaterializeSubscriber(destination) {
44953 return _super.call(this, destination) || this;
44954 }
44955 DeMaterializeSubscriber.prototype._next = function (value) {
44956 value.observe(this.destination);
44957 };
44958 return DeMaterializeSubscriber;
44959}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
44960//# sourceMappingURL=dematerialize.js.map
44961
44962
44963/***/ }),
44964
44965/***/ "./node_modules/rxjs/_esm5/internal/operators/distinct.js":
44966/*!****************************************************************!*\
44967 !*** ./node_modules/rxjs/_esm5/internal/operators/distinct.js ***!
44968 \****************************************************************/
44969/*! exports provided: distinct, DistinctSubscriber */
44970/***/ (function(module, __webpack_exports__, __webpack_require__) {
44971
44972"use strict";
44973__webpack_require__.r(__webpack_exports__);
44974/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return distinct; });
44975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DistinctSubscriber", function() { return DistinctSubscriber; });
44976/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
44977/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
44978/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
44979/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
44980
44981
44982
44983function distinct(keySelector, flushes) {
44984 return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };
44985}
44986var DistinctOperator = /*@__PURE__*/ (function () {
44987 function DistinctOperator(keySelector, flushes) {
44988 this.keySelector = keySelector;
44989 this.flushes = flushes;
44990 }
44991 DistinctOperator.prototype.call = function (subscriber, source) {
44992 return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));
44993 };
44994 return DistinctOperator;
44995}());
44996var DistinctSubscriber = /*@__PURE__*/ (function (_super) {
44997 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DistinctSubscriber, _super);
44998 function DistinctSubscriber(destination, keySelector, flushes) {
44999 var _this = _super.call(this, destination) || this;
45000 _this.keySelector = keySelector;
45001 _this.values = new Set();
45002 if (flushes) {
45003 _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, flushes));
45004 }
45005 return _this;
45006 }
45007 DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
45008 this.values.clear();
45009 };
45010 DistinctSubscriber.prototype.notifyError = function (error, innerSub) {
45011 this._error(error);
45012 };
45013 DistinctSubscriber.prototype._next = function (value) {
45014 if (this.keySelector) {
45015 this._useKeySelector(value);
45016 }
45017 else {
45018 this._finalizeNext(value, value);
45019 }
45020 };
45021 DistinctSubscriber.prototype._useKeySelector = function (value) {
45022 var key;
45023 var destination = this.destination;
45024 try {
45025 key = this.keySelector(value);
45026 }
45027 catch (err) {
45028 destination.error(err);
45029 return;
45030 }
45031 this._finalizeNext(key, value);
45032 };
45033 DistinctSubscriber.prototype._finalizeNext = function (key, value) {
45034 var values = this.values;
45035 if (!values.has(key)) {
45036 values.add(key);
45037 this.destination.next(value);
45038 }
45039 };
45040 return DistinctSubscriber;
45041}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
45042
45043//# sourceMappingURL=distinct.js.map
45044
45045
45046/***/ }),
45047
45048/***/ "./node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js":
45049/*!****************************************************************************!*\
45050 !*** ./node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js ***!
45051 \****************************************************************************/
45052/*! exports provided: distinctUntilChanged */
45053/***/ (function(module, __webpack_exports__, __webpack_require__) {
45054
45055"use strict";
45056__webpack_require__.r(__webpack_exports__);
45057/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return distinctUntilChanged; });
45058/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
45059/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
45060/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
45061/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
45062/** PURE_IMPORTS_START tslib,_Subscriber,_util_tryCatch,_util_errorObject PURE_IMPORTS_END */
45063
45064
45065
45066
45067function distinctUntilChanged(compare, keySelector) {
45068 return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };
45069}
45070var DistinctUntilChangedOperator = /*@__PURE__*/ (function () {
45071 function DistinctUntilChangedOperator(compare, keySelector) {
45072 this.compare = compare;
45073 this.keySelector = keySelector;
45074 }
45075 DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {
45076 return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));
45077 };
45078 return DistinctUntilChangedOperator;
45079}());
45080var DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) {
45081 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DistinctUntilChangedSubscriber, _super);
45082 function DistinctUntilChangedSubscriber(destination, compare, keySelector) {
45083 var _this = _super.call(this, destination) || this;
45084 _this.keySelector = keySelector;
45085 _this.hasKey = false;
45086 if (typeof compare === 'function') {
45087 _this.compare = compare;
45088 }
45089 return _this;
45090 }
45091 DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {
45092 return x === y;
45093 };
45094 DistinctUntilChangedSubscriber.prototype._next = function (value) {
45095 var keySelector = this.keySelector;
45096 var key = value;
45097 if (keySelector) {
45098 key = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.keySelector)(value);
45099 if (key === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) {
45100 return this.destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e);
45101 }
45102 }
45103 var result = false;
45104 if (this.hasKey) {
45105 result = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.compare)(this.key, key);
45106 if (result === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) {
45107 return this.destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e);
45108 }
45109 }
45110 else {
45111 this.hasKey = true;
45112 }
45113 if (Boolean(result) === false) {
45114 this.key = key;
45115 this.destination.next(value);
45116 }
45117 };
45118 return DistinctUntilChangedSubscriber;
45119}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
45120//# sourceMappingURL=distinctUntilChanged.js.map
45121
45122
45123/***/ }),
45124
45125/***/ "./node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js":
45126/*!*******************************************************************************!*\
45127 !*** ./node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js ***!
45128 \*******************************************************************************/
45129/*! exports provided: distinctUntilKeyChanged */
45130/***/ (function(module, __webpack_exports__, __webpack_require__) {
45131
45132"use strict";
45133__webpack_require__.r(__webpack_exports__);
45134/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return distinctUntilKeyChanged; });
45135/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./distinctUntilChanged */ "./node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js");
45136/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */
45137
45138function distinctUntilKeyChanged(key, compare) {
45139 return Object(_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__["distinctUntilChanged"])(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });
45140}
45141//# sourceMappingURL=distinctUntilKeyChanged.js.map
45142
45143
45144/***/ }),
45145
45146/***/ "./node_modules/rxjs/_esm5/internal/operators/elementAt.js":
45147/*!*****************************************************************!*\
45148 !*** ./node_modules/rxjs/_esm5/internal/operators/elementAt.js ***!
45149 \*****************************************************************/
45150/*! exports provided: elementAt */
45151/***/ (function(module, __webpack_exports__, __webpack_require__) {
45152
45153"use strict";
45154__webpack_require__.r(__webpack_exports__);
45155/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return elementAt; });
45156/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ "./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js");
45157/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ "./node_modules/rxjs/_esm5/internal/operators/filter.js");
45158/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./throwIfEmpty */ "./node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js");
45159/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultIfEmpty */ "./node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js");
45160/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./take */ "./node_modules/rxjs/_esm5/internal/operators/take.js");
45161/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */
45162
45163
45164
45165
45166
45167function elementAt(index, defaultValue) {
45168 if (index < 0) {
45169 throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__["ArgumentOutOfRangeError"]();
45170 }
45171 var hasDefaultValue = arguments.length >= 2;
45172 return function (source) {
45173 return source.pipe(Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return i === index; }), Object(_take__WEBPACK_IMPORTED_MODULE_4__["take"])(1), hasDefaultValue
45174 ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__["defaultIfEmpty"])(defaultValue)
45175 : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__["throwIfEmpty"])(function () { return new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__["ArgumentOutOfRangeError"](); }));
45176 };
45177}
45178//# sourceMappingURL=elementAt.js.map
45179
45180
45181/***/ }),
45182
45183/***/ "./node_modules/rxjs/_esm5/internal/operators/endWith.js":
45184/*!***************************************************************!*\
45185 !*** ./node_modules/rxjs/_esm5/internal/operators/endWith.js ***!
45186 \***************************************************************/
45187/*! exports provided: endWith */
45188/***/ (function(module, __webpack_exports__, __webpack_require__) {
45189
45190"use strict";
45191__webpack_require__.r(__webpack_exports__);
45192/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return endWith; });
45193/* harmony import */ var _observable_fromArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/fromArray */ "./node_modules/rxjs/_esm5/internal/observable/fromArray.js");
45194/* harmony import */ var _observable_scalar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/scalar */ "./node_modules/rxjs/_esm5/internal/observable/scalar.js");
45195/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
45196/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/concat */ "./node_modules/rxjs/_esm5/internal/observable/concat.js");
45197/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
45198/** PURE_IMPORTS_START _observable_fromArray,_observable_scalar,_observable_empty,_observable_concat,_util_isScheduler PURE_IMPORTS_END */
45199
45200
45201
45202
45203
45204function endWith() {
45205 var array = [];
45206 for (var _i = 0; _i < arguments.length; _i++) {
45207 array[_i] = arguments[_i];
45208 }
45209 return function (source) {
45210 var scheduler = array[array.length - 1];
45211 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_4__["isScheduler"])(scheduler)) {
45212 array.pop();
45213 }
45214 else {
45215 scheduler = null;
45216 }
45217 var len = array.length;
45218 if (len === 1 && !scheduler) {
45219 return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(source, Object(_observable_scalar__WEBPACK_IMPORTED_MODULE_1__["scalar"])(array[0]));
45220 }
45221 else if (len > 0) {
45222 return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(source, Object(_observable_fromArray__WEBPACK_IMPORTED_MODULE_0__["fromArray"])(array, scheduler));
45223 }
45224 else {
45225 return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(source, Object(_observable_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(scheduler));
45226 }
45227 };
45228}
45229//# sourceMappingURL=endWith.js.map
45230
45231
45232/***/ }),
45233
45234/***/ "./node_modules/rxjs/_esm5/internal/operators/every.js":
45235/*!*************************************************************!*\
45236 !*** ./node_modules/rxjs/_esm5/internal/operators/every.js ***!
45237 \*************************************************************/
45238/*! exports provided: every */
45239/***/ (function(module, __webpack_exports__, __webpack_require__) {
45240
45241"use strict";
45242__webpack_require__.r(__webpack_exports__);
45243/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "every", function() { return every; });
45244/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
45245/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
45246/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
45247
45248
45249function every(predicate, thisArg) {
45250 return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };
45251}
45252var EveryOperator = /*@__PURE__*/ (function () {
45253 function EveryOperator(predicate, thisArg, source) {
45254 this.predicate = predicate;
45255 this.thisArg = thisArg;
45256 this.source = source;
45257 }
45258 EveryOperator.prototype.call = function (observer, source) {
45259 return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));
45260 };
45261 return EveryOperator;
45262}());
45263var EverySubscriber = /*@__PURE__*/ (function (_super) {
45264 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](EverySubscriber, _super);
45265 function EverySubscriber(destination, predicate, thisArg, source) {
45266 var _this = _super.call(this, destination) || this;
45267 _this.predicate = predicate;
45268 _this.thisArg = thisArg;
45269 _this.source = source;
45270 _this.index = 0;
45271 _this.thisArg = thisArg || _this;
45272 return _this;
45273 }
45274 EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {
45275 this.destination.next(everyValueMatch);
45276 this.destination.complete();
45277 };
45278 EverySubscriber.prototype._next = function (value) {
45279 var result = false;
45280 try {
45281 result = this.predicate.call(this.thisArg, value, this.index++, this.source);
45282 }
45283 catch (err) {
45284 this.destination.error(err);
45285 return;
45286 }
45287 if (!result) {
45288 this.notifyComplete(false);
45289 }
45290 };
45291 EverySubscriber.prototype._complete = function () {
45292 this.notifyComplete(true);
45293 };
45294 return EverySubscriber;
45295}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
45296//# sourceMappingURL=every.js.map
45297
45298
45299/***/ }),
45300
45301/***/ "./node_modules/rxjs/_esm5/internal/operators/exhaust.js":
45302/*!***************************************************************!*\
45303 !*** ./node_modules/rxjs/_esm5/internal/operators/exhaust.js ***!
45304 \***************************************************************/
45305/*! exports provided: exhaust */
45306/***/ (function(module, __webpack_exports__, __webpack_require__) {
45307
45308"use strict";
45309__webpack_require__.r(__webpack_exports__);
45310/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return exhaust; });
45311/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
45312/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
45313/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
45314/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
45315
45316
45317
45318function exhaust() {
45319 return function (source) { return source.lift(new SwitchFirstOperator()); };
45320}
45321var SwitchFirstOperator = /*@__PURE__*/ (function () {
45322 function SwitchFirstOperator() {
45323 }
45324 SwitchFirstOperator.prototype.call = function (subscriber, source) {
45325 return source.subscribe(new SwitchFirstSubscriber(subscriber));
45326 };
45327 return SwitchFirstOperator;
45328}());
45329var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) {
45330 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SwitchFirstSubscriber, _super);
45331 function SwitchFirstSubscriber(destination) {
45332 var _this = _super.call(this, destination) || this;
45333 _this.hasCompleted = false;
45334 _this.hasSubscription = false;
45335 return _this;
45336 }
45337 SwitchFirstSubscriber.prototype._next = function (value) {
45338 if (!this.hasSubscription) {
45339 this.hasSubscription = true;
45340 this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, value));
45341 }
45342 };
45343 SwitchFirstSubscriber.prototype._complete = function () {
45344 this.hasCompleted = true;
45345 if (!this.hasSubscription) {
45346 this.destination.complete();
45347 }
45348 };
45349 SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {
45350 this.remove(innerSub);
45351 this.hasSubscription = false;
45352 if (this.hasCompleted) {
45353 this.destination.complete();
45354 }
45355 };
45356 return SwitchFirstSubscriber;
45357}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
45358//# sourceMappingURL=exhaust.js.map
45359
45360
45361/***/ }),
45362
45363/***/ "./node_modules/rxjs/_esm5/internal/operators/exhaustMap.js":
45364/*!******************************************************************!*\
45365 !*** ./node_modules/rxjs/_esm5/internal/operators/exhaustMap.js ***!
45366 \******************************************************************/
45367/*! exports provided: exhaustMap */
45368/***/ (function(module, __webpack_exports__, __webpack_require__) {
45369
45370"use strict";
45371__webpack_require__.r(__webpack_exports__);
45372/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return exhaustMap; });
45373/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
45374/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
45375/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ "./node_modules/rxjs/_esm5/internal/InnerSubscriber.js");
45376/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
45377/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
45378/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ "./node_modules/rxjs/_esm5/internal/observable/from.js");
45379/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */
45380
45381
45382
45383
45384
45385
45386function exhaustMap(project, resultSelector) {
45387 if (resultSelector) {
45388 return function (source) { return source.pipe(exhaustMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };
45389 }
45390 return function (source) {
45391 return source.lift(new ExhauseMapOperator(project));
45392 };
45393}
45394var ExhauseMapOperator = /*@__PURE__*/ (function () {
45395 function ExhauseMapOperator(project) {
45396 this.project = project;
45397 }
45398 ExhauseMapOperator.prototype.call = function (subscriber, source) {
45399 return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));
45400 };
45401 return ExhauseMapOperator;
45402}());
45403var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) {
45404 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExhaustMapSubscriber, _super);
45405 function ExhaustMapSubscriber(destination, project) {
45406 var _this = _super.call(this, destination) || this;
45407 _this.project = project;
45408 _this.hasSubscription = false;
45409 _this.hasCompleted = false;
45410 _this.index = 0;
45411 return _this;
45412 }
45413 ExhaustMapSubscriber.prototype._next = function (value) {
45414 if (!this.hasSubscription) {
45415 this.tryNext(value);
45416 }
45417 };
45418 ExhaustMapSubscriber.prototype.tryNext = function (value) {
45419 var result;
45420 var index = this.index++;
45421 try {
45422 result = this.project(value, index);
45423 }
45424 catch (err) {
45425 this.destination.error(err);
45426 return;
45427 }
45428 this.hasSubscription = true;
45429 this._innerSub(result, value, index);
45430 };
45431 ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {
45432 var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined);
45433 var destination = this.destination;
45434 destination.add(innerSubscriber);
45435 Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, value, index, innerSubscriber);
45436 };
45437 ExhaustMapSubscriber.prototype._complete = function () {
45438 this.hasCompleted = true;
45439 if (!this.hasSubscription) {
45440 this.destination.complete();
45441 }
45442 this.unsubscribe();
45443 };
45444 ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
45445 this.destination.next(innerValue);
45446 };
45447 ExhaustMapSubscriber.prototype.notifyError = function (err) {
45448 this.destination.error(err);
45449 };
45450 ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {
45451 var destination = this.destination;
45452 destination.remove(innerSub);
45453 this.hasSubscription = false;
45454 if (this.hasCompleted) {
45455 this.destination.complete();
45456 }
45457 };
45458 return ExhaustMapSubscriber;
45459}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
45460//# sourceMappingURL=exhaustMap.js.map
45461
45462
45463/***/ }),
45464
45465/***/ "./node_modules/rxjs/_esm5/internal/operators/expand.js":
45466/*!**************************************************************!*\
45467 !*** ./node_modules/rxjs/_esm5/internal/operators/expand.js ***!
45468 \**************************************************************/
45469/*! exports provided: expand, ExpandOperator, ExpandSubscriber */
45470/***/ (function(module, __webpack_exports__, __webpack_require__) {
45471
45472"use strict";
45473__webpack_require__.r(__webpack_exports__);
45474/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return expand; });
45475/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandOperator", function() { return ExpandOperator; });
45476/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandSubscriber", function() { return ExpandSubscriber; });
45477/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
45478/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
45479/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
45480/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
45481/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
45482/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
45483
45484
45485
45486
45487
45488function expand(project, concurrent, scheduler) {
45489 if (concurrent === void 0) {
45490 concurrent = Number.POSITIVE_INFINITY;
45491 }
45492 if (scheduler === void 0) {
45493 scheduler = undefined;
45494 }
45495 concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;
45496 return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };
45497}
45498var ExpandOperator = /*@__PURE__*/ (function () {
45499 function ExpandOperator(project, concurrent, scheduler) {
45500 this.project = project;
45501 this.concurrent = concurrent;
45502 this.scheduler = scheduler;
45503 }
45504 ExpandOperator.prototype.call = function (subscriber, source) {
45505 return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));
45506 };
45507 return ExpandOperator;
45508}());
45509
45510var ExpandSubscriber = /*@__PURE__*/ (function (_super) {
45511 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExpandSubscriber, _super);
45512 function ExpandSubscriber(destination, project, concurrent, scheduler) {
45513 var _this = _super.call(this, destination) || this;
45514 _this.project = project;
45515 _this.concurrent = concurrent;
45516 _this.scheduler = scheduler;
45517 _this.index = 0;
45518 _this.active = 0;
45519 _this.hasCompleted = false;
45520 if (concurrent < Number.POSITIVE_INFINITY) {
45521 _this.buffer = [];
45522 }
45523 return _this;
45524 }
45525 ExpandSubscriber.dispatch = function (arg) {
45526 var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;
45527 subscriber.subscribeToProjection(result, value, index);
45528 };
45529 ExpandSubscriber.prototype._next = function (value) {
45530 var destination = this.destination;
45531 if (destination.closed) {
45532 this._complete();
45533 return;
45534 }
45535 var index = this.index++;
45536 if (this.active < this.concurrent) {
45537 destination.next(value);
45538 var result = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_1__["tryCatch"])(this.project)(value, index);
45539 if (result === _util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"]) {
45540 destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"].e);
45541 }
45542 else if (!this.scheduler) {
45543 this.subscribeToProjection(result, value, index);
45544 }
45545 else {
45546 var state = { subscriber: this, result: result, value: value, index: index };
45547 var destination_1 = this.destination;
45548 destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));
45549 }
45550 }
45551 else {
45552 this.buffer.push(value);
45553 }
45554 };
45555 ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {
45556 this.active++;
45557 var destination = this.destination;
45558 destination.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, result, value, index));
45559 };
45560 ExpandSubscriber.prototype._complete = function () {
45561 this.hasCompleted = true;
45562 if (this.hasCompleted && this.active === 0) {
45563 this.destination.complete();
45564 }
45565 this.unsubscribe();
45566 };
45567 ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
45568 this._next(innerValue);
45569 };
45570 ExpandSubscriber.prototype.notifyComplete = function (innerSub) {
45571 var buffer = this.buffer;
45572 var destination = this.destination;
45573 destination.remove(innerSub);
45574 this.active--;
45575 if (buffer && buffer.length > 0) {
45576 this._next(buffer.shift());
45577 }
45578 if (this.hasCompleted && this.active === 0) {
45579 this.destination.complete();
45580 }
45581 };
45582 return ExpandSubscriber;
45583}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"]));
45584
45585//# sourceMappingURL=expand.js.map
45586
45587
45588/***/ }),
45589
45590/***/ "./node_modules/rxjs/_esm5/internal/operators/filter.js":
45591/*!**************************************************************!*\
45592 !*** ./node_modules/rxjs/_esm5/internal/operators/filter.js ***!
45593 \**************************************************************/
45594/*! exports provided: filter */
45595/***/ (function(module, __webpack_exports__, __webpack_require__) {
45596
45597"use strict";
45598__webpack_require__.r(__webpack_exports__);
45599/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return filter; });
45600/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
45601/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
45602/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
45603
45604
45605function filter(predicate, thisArg) {
45606 return function filterOperatorFunction(source) {
45607 return source.lift(new FilterOperator(predicate, thisArg));
45608 };
45609}
45610var FilterOperator = /*@__PURE__*/ (function () {
45611 function FilterOperator(predicate, thisArg) {
45612 this.predicate = predicate;
45613 this.thisArg = thisArg;
45614 }
45615 FilterOperator.prototype.call = function (subscriber, source) {
45616 return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));
45617 };
45618 return FilterOperator;
45619}());
45620var FilterSubscriber = /*@__PURE__*/ (function (_super) {
45621 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FilterSubscriber, _super);
45622 function FilterSubscriber(destination, predicate, thisArg) {
45623 var _this = _super.call(this, destination) || this;
45624 _this.predicate = predicate;
45625 _this.thisArg = thisArg;
45626 _this.count = 0;
45627 return _this;
45628 }
45629 FilterSubscriber.prototype._next = function (value) {
45630 var result;
45631 try {
45632 result = this.predicate.call(this.thisArg, value, this.count++);
45633 }
45634 catch (err) {
45635 this.destination.error(err);
45636 return;
45637 }
45638 if (result) {
45639 this.destination.next(value);
45640 }
45641 };
45642 return FilterSubscriber;
45643}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
45644//# sourceMappingURL=filter.js.map
45645
45646
45647/***/ }),
45648
45649/***/ "./node_modules/rxjs/_esm5/internal/operators/finalize.js":
45650/*!****************************************************************!*\
45651 !*** ./node_modules/rxjs/_esm5/internal/operators/finalize.js ***!
45652 \****************************************************************/
45653/*! exports provided: finalize */
45654/***/ (function(module, __webpack_exports__, __webpack_require__) {
45655
45656"use strict";
45657__webpack_require__.r(__webpack_exports__);
45658/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return finalize; });
45659/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
45660/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
45661/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
45662/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */
45663
45664
45665
45666function finalize(callback) {
45667 return function (source) { return source.lift(new FinallyOperator(callback)); };
45668}
45669var FinallyOperator = /*@__PURE__*/ (function () {
45670 function FinallyOperator(callback) {
45671 this.callback = callback;
45672 }
45673 FinallyOperator.prototype.call = function (subscriber, source) {
45674 return source.subscribe(new FinallySubscriber(subscriber, this.callback));
45675 };
45676 return FinallyOperator;
45677}());
45678var FinallySubscriber = /*@__PURE__*/ (function (_super) {
45679 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FinallySubscriber, _super);
45680 function FinallySubscriber(destination, callback) {
45681 var _this = _super.call(this, destination) || this;
45682 _this.add(new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"](callback));
45683 return _this;
45684 }
45685 return FinallySubscriber;
45686}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
45687//# sourceMappingURL=finalize.js.map
45688
45689
45690/***/ }),
45691
45692/***/ "./node_modules/rxjs/_esm5/internal/operators/find.js":
45693/*!************************************************************!*\
45694 !*** ./node_modules/rxjs/_esm5/internal/operators/find.js ***!
45695 \************************************************************/
45696/*! exports provided: find, FindValueOperator, FindValueSubscriber */
45697/***/ (function(module, __webpack_exports__, __webpack_require__) {
45698
45699"use strict";
45700__webpack_require__.r(__webpack_exports__);
45701/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "find", function() { return find; });
45702/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FindValueOperator", function() { return FindValueOperator; });
45703/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FindValueSubscriber", function() { return FindValueSubscriber; });
45704/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
45705/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
45706/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
45707
45708
45709function find(predicate, thisArg) {
45710 if (typeof predicate !== 'function') {
45711 throw new TypeError('predicate is not a function');
45712 }
45713 return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };
45714}
45715var FindValueOperator = /*@__PURE__*/ (function () {
45716 function FindValueOperator(predicate, source, yieldIndex, thisArg) {
45717 this.predicate = predicate;
45718 this.source = source;
45719 this.yieldIndex = yieldIndex;
45720 this.thisArg = thisArg;
45721 }
45722 FindValueOperator.prototype.call = function (observer, source) {
45723 return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));
45724 };
45725 return FindValueOperator;
45726}());
45727
45728var FindValueSubscriber = /*@__PURE__*/ (function (_super) {
45729 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FindValueSubscriber, _super);
45730 function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {
45731 var _this = _super.call(this, destination) || this;
45732 _this.predicate = predicate;
45733 _this.source = source;
45734 _this.yieldIndex = yieldIndex;
45735 _this.thisArg = thisArg;
45736 _this.index = 0;
45737 return _this;
45738 }
45739 FindValueSubscriber.prototype.notifyComplete = function (value) {
45740 var destination = this.destination;
45741 destination.next(value);
45742 destination.complete();
45743 this.unsubscribe();
45744 };
45745 FindValueSubscriber.prototype._next = function (value) {
45746 var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;
45747 var index = this.index++;
45748 try {
45749 var result = predicate.call(thisArg || this, value, index, this.source);
45750 if (result) {
45751 this.notifyComplete(this.yieldIndex ? index : value);
45752 }
45753 }
45754 catch (err) {
45755 this.destination.error(err);
45756 }
45757 };
45758 FindValueSubscriber.prototype._complete = function () {
45759 this.notifyComplete(this.yieldIndex ? -1 : undefined);
45760 };
45761 return FindValueSubscriber;
45762}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
45763
45764//# sourceMappingURL=find.js.map
45765
45766
45767/***/ }),
45768
45769/***/ "./node_modules/rxjs/_esm5/internal/operators/findIndex.js":
45770/*!*****************************************************************!*\
45771 !*** ./node_modules/rxjs/_esm5/internal/operators/findIndex.js ***!
45772 \*****************************************************************/
45773/*! exports provided: findIndex */
45774/***/ (function(module, __webpack_exports__, __webpack_require__) {
45775
45776"use strict";
45777__webpack_require__.r(__webpack_exports__);
45778/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; });
45779/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../operators/find */ "./node_modules/rxjs/_esm5/internal/operators/find.js");
45780/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */
45781
45782function findIndex(predicate, thisArg) {
45783 return function (source) { return source.lift(new _operators_find__WEBPACK_IMPORTED_MODULE_0__["FindValueOperator"](predicate, source, true, thisArg)); };
45784}
45785//# sourceMappingURL=findIndex.js.map
45786
45787
45788/***/ }),
45789
45790/***/ "./node_modules/rxjs/_esm5/internal/operators/first.js":
45791/*!*************************************************************!*\
45792 !*** ./node_modules/rxjs/_esm5/internal/operators/first.js ***!
45793 \*************************************************************/
45794/*! exports provided: first */
45795/***/ (function(module, __webpack_exports__, __webpack_require__) {
45796
45797"use strict";
45798__webpack_require__.r(__webpack_exports__);
45799/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "first", function() { return first; });
45800/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/EmptyError */ "./node_modules/rxjs/_esm5/internal/util/EmptyError.js");
45801/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ "./node_modules/rxjs/_esm5/internal/operators/filter.js");
45802/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./take */ "./node_modules/rxjs/_esm5/internal/operators/take.js");
45803/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./defaultIfEmpty */ "./node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js");
45804/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./throwIfEmpty */ "./node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js");
45805/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/identity */ "./node_modules/rxjs/_esm5/internal/util/identity.js");
45806/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */
45807
45808
45809
45810
45811
45812
45813function first(predicate, defaultValue) {
45814 var hasDefaultValue = arguments.length >= 2;
45815 return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__["identity"], Object(_take__WEBPACK_IMPORTED_MODULE_2__["take"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__["defaultIfEmpty"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__["throwIfEmpty"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__["EmptyError"](); })); };
45816}
45817//# sourceMappingURL=first.js.map
45818
45819
45820/***/ }),
45821
45822/***/ "./node_modules/rxjs/_esm5/internal/operators/groupBy.js":
45823/*!***************************************************************!*\
45824 !*** ./node_modules/rxjs/_esm5/internal/operators/groupBy.js ***!
45825 \***************************************************************/
45826/*! exports provided: groupBy, GroupedObservable */
45827/***/ (function(module, __webpack_exports__, __webpack_require__) {
45828
45829"use strict";
45830__webpack_require__.r(__webpack_exports__);
45831/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return groupBy; });
45832/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupedObservable", function() { return GroupedObservable; });
45833/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
45834/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
45835/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
45836/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
45837/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
45838/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */
45839
45840
45841
45842
45843
45844function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {
45845 return function (source) {
45846 return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));
45847 };
45848}
45849var GroupByOperator = /*@__PURE__*/ (function () {
45850 function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {
45851 this.keySelector = keySelector;
45852 this.elementSelector = elementSelector;
45853 this.durationSelector = durationSelector;
45854 this.subjectSelector = subjectSelector;
45855 }
45856 GroupByOperator.prototype.call = function (subscriber, source) {
45857 return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));
45858 };
45859 return GroupByOperator;
45860}());
45861var GroupBySubscriber = /*@__PURE__*/ (function (_super) {
45862 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupBySubscriber, _super);
45863 function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {
45864 var _this = _super.call(this, destination) || this;
45865 _this.keySelector = keySelector;
45866 _this.elementSelector = elementSelector;
45867 _this.durationSelector = durationSelector;
45868 _this.subjectSelector = subjectSelector;
45869 _this.groups = null;
45870 _this.attemptedToUnsubscribe = false;
45871 _this.count = 0;
45872 return _this;
45873 }
45874 GroupBySubscriber.prototype._next = function (value) {
45875 var key;
45876 try {
45877 key = this.keySelector(value);
45878 }
45879 catch (err) {
45880 this.error(err);
45881 return;
45882 }
45883 this._group(value, key);
45884 };
45885 GroupBySubscriber.prototype._group = function (value, key) {
45886 var groups = this.groups;
45887 if (!groups) {
45888 groups = this.groups = new Map();
45889 }
45890 var group = groups.get(key);
45891 var element;
45892 if (this.elementSelector) {
45893 try {
45894 element = this.elementSelector(value);
45895 }
45896 catch (err) {
45897 this.error(err);
45898 }
45899 }
45900 else {
45901 element = value;
45902 }
45903 if (!group) {
45904 group = (this.subjectSelector ? this.subjectSelector() : new _Subject__WEBPACK_IMPORTED_MODULE_4__["Subject"]());
45905 groups.set(key, group);
45906 var groupedObservable = new GroupedObservable(key, group, this);
45907 this.destination.next(groupedObservable);
45908 if (this.durationSelector) {
45909 var duration = void 0;
45910 try {
45911 duration = this.durationSelector(new GroupedObservable(key, group));
45912 }
45913 catch (err) {
45914 this.error(err);
45915 return;
45916 }
45917 this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));
45918 }
45919 }
45920 if (!group.closed) {
45921 group.next(element);
45922 }
45923 };
45924 GroupBySubscriber.prototype._error = function (err) {
45925 var groups = this.groups;
45926 if (groups) {
45927 groups.forEach(function (group, key) {
45928 group.error(err);
45929 });
45930 groups.clear();
45931 }
45932 this.destination.error(err);
45933 };
45934 GroupBySubscriber.prototype._complete = function () {
45935 var groups = this.groups;
45936 if (groups) {
45937 groups.forEach(function (group, key) {
45938 group.complete();
45939 });
45940 groups.clear();
45941 }
45942 this.destination.complete();
45943 };
45944 GroupBySubscriber.prototype.removeGroup = function (key) {
45945 this.groups.delete(key);
45946 };
45947 GroupBySubscriber.prototype.unsubscribe = function () {
45948 if (!this.closed) {
45949 this.attemptedToUnsubscribe = true;
45950 if (this.count === 0) {
45951 _super.prototype.unsubscribe.call(this);
45952 }
45953 }
45954 };
45955 return GroupBySubscriber;
45956}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
45957var GroupDurationSubscriber = /*@__PURE__*/ (function (_super) {
45958 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupDurationSubscriber, _super);
45959 function GroupDurationSubscriber(key, group, parent) {
45960 var _this = _super.call(this, group) || this;
45961 _this.key = key;
45962 _this.group = group;
45963 _this.parent = parent;
45964 return _this;
45965 }
45966 GroupDurationSubscriber.prototype._next = function (value) {
45967 this.complete();
45968 };
45969 GroupDurationSubscriber.prototype._unsubscribe = function () {
45970 var _a = this, parent = _a.parent, key = _a.key;
45971 this.key = this.parent = null;
45972 if (parent) {
45973 parent.removeGroup(key);
45974 }
45975 };
45976 return GroupDurationSubscriber;
45977}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
45978var GroupedObservable = /*@__PURE__*/ (function (_super) {
45979 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupedObservable, _super);
45980 function GroupedObservable(key, groupSubject, refCountSubscription) {
45981 var _this = _super.call(this) || this;
45982 _this.key = key;
45983 _this.groupSubject = groupSubject;
45984 _this.refCountSubscription = refCountSubscription;
45985 return _this;
45986 }
45987 GroupedObservable.prototype._subscribe = function (subscriber) {
45988 var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"]();
45989 var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;
45990 if (refCountSubscription && !refCountSubscription.closed) {
45991 subscription.add(new InnerRefCountSubscription(refCountSubscription));
45992 }
45993 subscription.add(groupSubject.subscribe(subscriber));
45994 return subscription;
45995 };
45996 return GroupedObservable;
45997}(_Observable__WEBPACK_IMPORTED_MODULE_3__["Observable"]));
45998
45999var InnerRefCountSubscription = /*@__PURE__*/ (function (_super) {
46000 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](InnerRefCountSubscription, _super);
46001 function InnerRefCountSubscription(parent) {
46002 var _this = _super.call(this) || this;
46003 _this.parent = parent;
46004 parent.count++;
46005 return _this;
46006 }
46007 InnerRefCountSubscription.prototype.unsubscribe = function () {
46008 var parent = this.parent;
46009 if (!parent.closed && !this.closed) {
46010 _super.prototype.unsubscribe.call(this);
46011 parent.count -= 1;
46012 if (parent.count === 0 && parent.attemptedToUnsubscribe) {
46013 parent.unsubscribe();
46014 }
46015 }
46016 };
46017 return InnerRefCountSubscription;
46018}(_Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"]));
46019//# sourceMappingURL=groupBy.js.map
46020
46021
46022/***/ }),
46023
46024/***/ "./node_modules/rxjs/_esm5/internal/operators/ignoreElements.js":
46025/*!**********************************************************************!*\
46026 !*** ./node_modules/rxjs/_esm5/internal/operators/ignoreElements.js ***!
46027 \**********************************************************************/
46028/*! exports provided: ignoreElements */
46029/***/ (function(module, __webpack_exports__, __webpack_require__) {
46030
46031"use strict";
46032__webpack_require__.r(__webpack_exports__);
46033/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return ignoreElements; });
46034/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
46035/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
46036/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
46037
46038
46039function ignoreElements() {
46040 return function ignoreElementsOperatorFunction(source) {
46041 return source.lift(new IgnoreElementsOperator());
46042 };
46043}
46044var IgnoreElementsOperator = /*@__PURE__*/ (function () {
46045 function IgnoreElementsOperator() {
46046 }
46047 IgnoreElementsOperator.prototype.call = function (subscriber, source) {
46048 return source.subscribe(new IgnoreElementsSubscriber(subscriber));
46049 };
46050 return IgnoreElementsOperator;
46051}());
46052var IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) {
46053 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IgnoreElementsSubscriber, _super);
46054 function IgnoreElementsSubscriber() {
46055 return _super !== null && _super.apply(this, arguments) || this;
46056 }
46057 IgnoreElementsSubscriber.prototype._next = function (unused) {
46058 };
46059 return IgnoreElementsSubscriber;
46060}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
46061//# sourceMappingURL=ignoreElements.js.map
46062
46063
46064/***/ }),
46065
46066/***/ "./node_modules/rxjs/_esm5/internal/operators/isEmpty.js":
46067/*!***************************************************************!*\
46068 !*** ./node_modules/rxjs/_esm5/internal/operators/isEmpty.js ***!
46069 \***************************************************************/
46070/*! exports provided: isEmpty */
46071/***/ (function(module, __webpack_exports__, __webpack_require__) {
46072
46073"use strict";
46074__webpack_require__.r(__webpack_exports__);
46075/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return isEmpty; });
46076/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
46077/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
46078/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
46079
46080
46081function isEmpty() {
46082 return function (source) { return source.lift(new IsEmptyOperator()); };
46083}
46084var IsEmptyOperator = /*@__PURE__*/ (function () {
46085 function IsEmptyOperator() {
46086 }
46087 IsEmptyOperator.prototype.call = function (observer, source) {
46088 return source.subscribe(new IsEmptySubscriber(observer));
46089 };
46090 return IsEmptyOperator;
46091}());
46092var IsEmptySubscriber = /*@__PURE__*/ (function (_super) {
46093 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IsEmptySubscriber, _super);
46094 function IsEmptySubscriber(destination) {
46095 return _super.call(this, destination) || this;
46096 }
46097 IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {
46098 var destination = this.destination;
46099 destination.next(isEmpty);
46100 destination.complete();
46101 };
46102 IsEmptySubscriber.prototype._next = function (value) {
46103 this.notifyComplete(false);
46104 };
46105 IsEmptySubscriber.prototype._complete = function () {
46106 this.notifyComplete(true);
46107 };
46108 return IsEmptySubscriber;
46109}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
46110//# sourceMappingURL=isEmpty.js.map
46111
46112
46113/***/ }),
46114
46115/***/ "./node_modules/rxjs/_esm5/internal/operators/last.js":
46116/*!************************************************************!*\
46117 !*** ./node_modules/rxjs/_esm5/internal/operators/last.js ***!
46118 \************************************************************/
46119/*! exports provided: last */
46120/***/ (function(module, __webpack_exports__, __webpack_require__) {
46121
46122"use strict";
46123__webpack_require__.r(__webpack_exports__);
46124/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "last", function() { return last; });
46125/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/EmptyError */ "./node_modules/rxjs/_esm5/internal/util/EmptyError.js");
46126/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ "./node_modules/rxjs/_esm5/internal/operators/filter.js");
46127/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./takeLast */ "./node_modules/rxjs/_esm5/internal/operators/takeLast.js");
46128/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./throwIfEmpty */ "./node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js");
46129/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaultIfEmpty */ "./node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js");
46130/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/identity */ "./node_modules/rxjs/_esm5/internal/util/identity.js");
46131/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */
46132
46133
46134
46135
46136
46137
46138function last(predicate, defaultValue) {
46139 var hasDefaultValue = arguments.length >= 2;
46140 return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__["identity"], Object(_takeLast__WEBPACK_IMPORTED_MODULE_2__["takeLast"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__["defaultIfEmpty"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__["throwIfEmpty"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__["EmptyError"](); })); };
46141}
46142//# sourceMappingURL=last.js.map
46143
46144
46145/***/ }),
46146
46147/***/ "./node_modules/rxjs/_esm5/internal/operators/map.js":
46148/*!***********************************************************!*\
46149 !*** ./node_modules/rxjs/_esm5/internal/operators/map.js ***!
46150 \***********************************************************/
46151/*! exports provided: map, MapOperator */
46152/***/ (function(module, __webpack_exports__, __webpack_require__) {
46153
46154"use strict";
46155__webpack_require__.r(__webpack_exports__);
46156/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; });
46157/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MapOperator", function() { return MapOperator; });
46158/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
46159/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
46160/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
46161
46162
46163function map(project, thisArg) {
46164 return function mapOperation(source) {
46165 if (typeof project !== 'function') {
46166 throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');
46167 }
46168 return source.lift(new MapOperator(project, thisArg));
46169 };
46170}
46171var MapOperator = /*@__PURE__*/ (function () {
46172 function MapOperator(project, thisArg) {
46173 this.project = project;
46174 this.thisArg = thisArg;
46175 }
46176 MapOperator.prototype.call = function (subscriber, source) {
46177 return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));
46178 };
46179 return MapOperator;
46180}());
46181
46182var MapSubscriber = /*@__PURE__*/ (function (_super) {
46183 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MapSubscriber, _super);
46184 function MapSubscriber(destination, project, thisArg) {
46185 var _this = _super.call(this, destination) || this;
46186 _this.project = project;
46187 _this.count = 0;
46188 _this.thisArg = thisArg || _this;
46189 return _this;
46190 }
46191 MapSubscriber.prototype._next = function (value) {
46192 var result;
46193 try {
46194 result = this.project.call(this.thisArg, value, this.count++);
46195 }
46196 catch (err) {
46197 this.destination.error(err);
46198 return;
46199 }
46200 this.destination.next(result);
46201 };
46202 return MapSubscriber;
46203}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
46204//# sourceMappingURL=map.js.map
46205
46206
46207/***/ }),
46208
46209/***/ "./node_modules/rxjs/_esm5/internal/operators/mapTo.js":
46210/*!*************************************************************!*\
46211 !*** ./node_modules/rxjs/_esm5/internal/operators/mapTo.js ***!
46212 \*************************************************************/
46213/*! exports provided: mapTo */
46214/***/ (function(module, __webpack_exports__, __webpack_require__) {
46215
46216"use strict";
46217__webpack_require__.r(__webpack_exports__);
46218/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return mapTo; });
46219/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
46220/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
46221/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
46222
46223
46224function mapTo(value) {
46225 return function (source) { return source.lift(new MapToOperator(value)); };
46226}
46227var MapToOperator = /*@__PURE__*/ (function () {
46228 function MapToOperator(value) {
46229 this.value = value;
46230 }
46231 MapToOperator.prototype.call = function (subscriber, source) {
46232 return source.subscribe(new MapToSubscriber(subscriber, this.value));
46233 };
46234 return MapToOperator;
46235}());
46236var MapToSubscriber = /*@__PURE__*/ (function (_super) {
46237 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MapToSubscriber, _super);
46238 function MapToSubscriber(destination, value) {
46239 var _this = _super.call(this, destination) || this;
46240 _this.value = value;
46241 return _this;
46242 }
46243 MapToSubscriber.prototype._next = function (x) {
46244 this.destination.next(this.value);
46245 };
46246 return MapToSubscriber;
46247}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
46248//# sourceMappingURL=mapTo.js.map
46249
46250
46251/***/ }),
46252
46253/***/ "./node_modules/rxjs/_esm5/internal/operators/materialize.js":
46254/*!*******************************************************************!*\
46255 !*** ./node_modules/rxjs/_esm5/internal/operators/materialize.js ***!
46256 \*******************************************************************/
46257/*! exports provided: materialize */
46258/***/ (function(module, __webpack_exports__, __webpack_require__) {
46259
46260"use strict";
46261__webpack_require__.r(__webpack_exports__);
46262/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return materialize; });
46263/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
46264/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
46265/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Notification */ "./node_modules/rxjs/_esm5/internal/Notification.js");
46266/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */
46267
46268
46269
46270function materialize() {
46271 return function materializeOperatorFunction(source) {
46272 return source.lift(new MaterializeOperator());
46273 };
46274}
46275var MaterializeOperator = /*@__PURE__*/ (function () {
46276 function MaterializeOperator() {
46277 }
46278 MaterializeOperator.prototype.call = function (subscriber, source) {
46279 return source.subscribe(new MaterializeSubscriber(subscriber));
46280 };
46281 return MaterializeOperator;
46282}());
46283var MaterializeSubscriber = /*@__PURE__*/ (function (_super) {
46284 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MaterializeSubscriber, _super);
46285 function MaterializeSubscriber(destination) {
46286 return _super.call(this, destination) || this;
46287 }
46288 MaterializeSubscriber.prototype._next = function (value) {
46289 this.destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createNext(value));
46290 };
46291 MaterializeSubscriber.prototype._error = function (err) {
46292 var destination = this.destination;
46293 destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createError(err));
46294 destination.complete();
46295 };
46296 MaterializeSubscriber.prototype._complete = function () {
46297 var destination = this.destination;
46298 destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createComplete());
46299 destination.complete();
46300 };
46301 return MaterializeSubscriber;
46302}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
46303//# sourceMappingURL=materialize.js.map
46304
46305
46306/***/ }),
46307
46308/***/ "./node_modules/rxjs/_esm5/internal/operators/max.js":
46309/*!***********************************************************!*\
46310 !*** ./node_modules/rxjs/_esm5/internal/operators/max.js ***!
46311 \***********************************************************/
46312/*! exports provided: max */
46313/***/ (function(module, __webpack_exports__, __webpack_require__) {
46314
46315"use strict";
46316__webpack_require__.r(__webpack_exports__);
46317/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; });
46318/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ "./node_modules/rxjs/_esm5/internal/operators/reduce.js");
46319/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */
46320
46321function max(comparer) {
46322 var max = (typeof comparer === 'function')
46323 ? function (x, y) { return comparer(x, y) > 0 ? x : y; }
46324 : function (x, y) { return x > y ? x : y; };
46325 return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(max);
46326}
46327//# sourceMappingURL=max.js.map
46328
46329
46330/***/ }),
46331
46332/***/ "./node_modules/rxjs/_esm5/internal/operators/merge.js":
46333/*!*************************************************************!*\
46334 !*** ./node_modules/rxjs/_esm5/internal/operators/merge.js ***!
46335 \*************************************************************/
46336/*! exports provided: merge */
46337/***/ (function(module, __webpack_exports__, __webpack_require__) {
46338
46339"use strict";
46340__webpack_require__.r(__webpack_exports__);
46341/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; });
46342/* harmony import */ var _observable_merge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/merge */ "./node_modules/rxjs/_esm5/internal/observable/merge.js");
46343/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */
46344
46345function merge() {
46346 var observables = [];
46347 for (var _i = 0; _i < arguments.length; _i++) {
46348 observables[_i] = arguments[_i];
46349 }
46350 return function (source) { return source.lift.call(_observable_merge__WEBPACK_IMPORTED_MODULE_0__["merge"].apply(void 0, [source].concat(observables))); };
46351}
46352//# sourceMappingURL=merge.js.map
46353
46354
46355/***/ }),
46356
46357/***/ "./node_modules/rxjs/_esm5/internal/operators/mergeAll.js":
46358/*!****************************************************************!*\
46359 !*** ./node_modules/rxjs/_esm5/internal/operators/mergeAll.js ***!
46360 \****************************************************************/
46361/*! exports provided: mergeAll */
46362/***/ (function(module, __webpack_exports__, __webpack_require__) {
46363
46364"use strict";
46365__webpack_require__.r(__webpack_exports__);
46366/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeAll", function() { return mergeAll; });
46367/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ "./node_modules/rxjs/_esm5/internal/operators/mergeMap.js");
46368/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ "./node_modules/rxjs/_esm5/internal/util/identity.js");
46369/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */
46370
46371
46372function mergeAll(concurrent) {
46373 if (concurrent === void 0) {
46374 concurrent = Number.POSITIVE_INFINITY;
46375 }
46376 return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"], concurrent);
46377}
46378//# sourceMappingURL=mergeAll.js.map
46379
46380
46381/***/ }),
46382
46383/***/ "./node_modules/rxjs/_esm5/internal/operators/mergeMap.js":
46384/*!****************************************************************!*\
46385 !*** ./node_modules/rxjs/_esm5/internal/operators/mergeMap.js ***!
46386 \****************************************************************/
46387/*! exports provided: mergeMap, MergeMapOperator, MergeMapSubscriber */
46388/***/ (function(module, __webpack_exports__, __webpack_require__) {
46389
46390"use strict";
46391__webpack_require__.r(__webpack_exports__);
46392/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeMap", function() { return mergeMap; });
46393/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeMapOperator", function() { return MergeMapOperator; });
46394/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeMapSubscriber", function() { return MergeMapSubscriber; });
46395/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
46396/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
46397/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
46398/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../InnerSubscriber */ "./node_modules/rxjs/_esm5/internal/InnerSubscriber.js");
46399/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
46400/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ "./node_modules/rxjs/_esm5/internal/observable/from.js");
46401/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber,_map,_observable_from PURE_IMPORTS_END */
46402
46403
46404
46405
46406
46407
46408function mergeMap(project, resultSelector, concurrent) {
46409 if (concurrent === void 0) {
46410 concurrent = Number.POSITIVE_INFINITY;
46411 }
46412 if (typeof resultSelector === 'function') {
46413 return function (source) { return source.pipe(mergeMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };
46414 }
46415 else if (typeof resultSelector === 'number') {
46416 concurrent = resultSelector;
46417 }
46418 return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };
46419}
46420var MergeMapOperator = /*@__PURE__*/ (function () {
46421 function MergeMapOperator(project, concurrent) {
46422 if (concurrent === void 0) {
46423 concurrent = Number.POSITIVE_INFINITY;
46424 }
46425 this.project = project;
46426 this.concurrent = concurrent;
46427 }
46428 MergeMapOperator.prototype.call = function (observer, source) {
46429 return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));
46430 };
46431 return MergeMapOperator;
46432}());
46433
46434var MergeMapSubscriber = /*@__PURE__*/ (function (_super) {
46435 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MergeMapSubscriber, _super);
46436 function MergeMapSubscriber(destination, project, concurrent) {
46437 if (concurrent === void 0) {
46438 concurrent = Number.POSITIVE_INFINITY;
46439 }
46440 var _this = _super.call(this, destination) || this;
46441 _this.project = project;
46442 _this.concurrent = concurrent;
46443 _this.hasCompleted = false;
46444 _this.buffer = [];
46445 _this.active = 0;
46446 _this.index = 0;
46447 return _this;
46448 }
46449 MergeMapSubscriber.prototype._next = function (value) {
46450 if (this.active < this.concurrent) {
46451 this._tryNext(value);
46452 }
46453 else {
46454 this.buffer.push(value);
46455 }
46456 };
46457 MergeMapSubscriber.prototype._tryNext = function (value) {
46458 var result;
46459 var index = this.index++;
46460 try {
46461 result = this.project(value, index);
46462 }
46463 catch (err) {
46464 this.destination.error(err);
46465 return;
46466 }
46467 this.active++;
46468 this._innerSub(result, value, index);
46469 };
46470 MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {
46471 var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__["InnerSubscriber"](this, undefined, undefined);
46472 var destination = this.destination;
46473 destination.add(innerSubscriber);
46474 Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, ish, value, index, innerSubscriber);
46475 };
46476 MergeMapSubscriber.prototype._complete = function () {
46477 this.hasCompleted = true;
46478 if (this.active === 0 && this.buffer.length === 0) {
46479 this.destination.complete();
46480 }
46481 this.unsubscribe();
46482 };
46483 MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
46484 this.destination.next(innerValue);
46485 };
46486 MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {
46487 var buffer = this.buffer;
46488 this.remove(innerSub);
46489 this.active--;
46490 if (buffer.length > 0) {
46491 this._next(buffer.shift());
46492 }
46493 else if (this.active === 0 && this.hasCompleted) {
46494 this.destination.complete();
46495 }
46496 };
46497 return MergeMapSubscriber;
46498}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"]));
46499
46500//# sourceMappingURL=mergeMap.js.map
46501
46502
46503/***/ }),
46504
46505/***/ "./node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js":
46506/*!******************************************************************!*\
46507 !*** ./node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js ***!
46508 \******************************************************************/
46509/*! exports provided: mergeMapTo */
46510/***/ (function(module, __webpack_exports__, __webpack_require__) {
46511
46512"use strict";
46513__webpack_require__.r(__webpack_exports__);
46514/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return mergeMapTo; });
46515/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeMap */ "./node_modules/rxjs/_esm5/internal/operators/mergeMap.js");
46516/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */
46517
46518function mergeMapTo(innerObservable, resultSelector, concurrent) {
46519 if (concurrent === void 0) {
46520 concurrent = Number.POSITIVE_INFINITY;
46521 }
46522 if (typeof resultSelector === 'function') {
46523 return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(function () { return innerObservable; }, resultSelector, concurrent);
46524 }
46525 if (typeof resultSelector === 'number') {
46526 concurrent = resultSelector;
46527 }
46528 return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(function () { return innerObservable; }, concurrent);
46529}
46530//# sourceMappingURL=mergeMapTo.js.map
46531
46532
46533/***/ }),
46534
46535/***/ "./node_modules/rxjs/_esm5/internal/operators/mergeScan.js":
46536/*!*****************************************************************!*\
46537 !*** ./node_modules/rxjs/_esm5/internal/operators/mergeScan.js ***!
46538 \*****************************************************************/
46539/*! exports provided: mergeScan, MergeScanOperator, MergeScanSubscriber */
46540/***/ (function(module, __webpack_exports__, __webpack_require__) {
46541
46542"use strict";
46543__webpack_require__.r(__webpack_exports__);
46544/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return mergeScan; });
46545/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeScanOperator", function() { return MergeScanOperator; });
46546/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeScanSubscriber", function() { return MergeScanSubscriber; });
46547/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
46548/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
46549/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
46550/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
46551/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
46552/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../InnerSubscriber */ "./node_modules/rxjs/_esm5/internal/InnerSubscriber.js");
46553/** PURE_IMPORTS_START tslib,_util_tryCatch,_util_errorObject,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber PURE_IMPORTS_END */
46554
46555
46556
46557
46558
46559
46560function mergeScan(accumulator, seed, concurrent) {
46561 if (concurrent === void 0) {
46562 concurrent = Number.POSITIVE_INFINITY;
46563 }
46564 return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };
46565}
46566var MergeScanOperator = /*@__PURE__*/ (function () {
46567 function MergeScanOperator(accumulator, seed, concurrent) {
46568 this.accumulator = accumulator;
46569 this.seed = seed;
46570 this.concurrent = concurrent;
46571 }
46572 MergeScanOperator.prototype.call = function (subscriber, source) {
46573 return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));
46574 };
46575 return MergeScanOperator;
46576}());
46577
46578var MergeScanSubscriber = /*@__PURE__*/ (function (_super) {
46579 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MergeScanSubscriber, _super);
46580 function MergeScanSubscriber(destination, accumulator, acc, concurrent) {
46581 var _this = _super.call(this, destination) || this;
46582 _this.accumulator = accumulator;
46583 _this.acc = acc;
46584 _this.concurrent = concurrent;
46585 _this.hasValue = false;
46586 _this.hasCompleted = false;
46587 _this.buffer = [];
46588 _this.active = 0;
46589 _this.index = 0;
46590 return _this;
46591 }
46592 MergeScanSubscriber.prototype._next = function (value) {
46593 if (this.active < this.concurrent) {
46594 var index = this.index++;
46595 var ish = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_1__["tryCatch"])(this.accumulator)(this.acc, value);
46596 var destination = this.destination;
46597 if (ish === _util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"]) {
46598 destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_2__["errorObject"].e);
46599 }
46600 else {
46601 this.active++;
46602 this._innerSub(ish, value, index);
46603 }
46604 }
46605 else {
46606 this.buffer.push(value);
46607 }
46608 };
46609 MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {
46610 var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_5__["InnerSubscriber"](this, undefined, undefined);
46611 var destination = this.destination;
46612 destination.add(innerSubscriber);
46613 Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, ish, value, index, innerSubscriber);
46614 };
46615 MergeScanSubscriber.prototype._complete = function () {
46616 this.hasCompleted = true;
46617 if (this.active === 0 && this.buffer.length === 0) {
46618 if (this.hasValue === false) {
46619 this.destination.next(this.acc);
46620 }
46621 this.destination.complete();
46622 }
46623 this.unsubscribe();
46624 };
46625 MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
46626 var destination = this.destination;
46627 this.acc = innerValue;
46628 this.hasValue = true;
46629 destination.next(innerValue);
46630 };
46631 MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {
46632 var buffer = this.buffer;
46633 var destination = this.destination;
46634 destination.remove(innerSub);
46635 this.active--;
46636 if (buffer.length > 0) {
46637 this._next(buffer.shift());
46638 }
46639 else if (this.active === 0 && this.hasCompleted) {
46640 if (this.hasValue === false) {
46641 this.destination.next(this.acc);
46642 }
46643 this.destination.complete();
46644 }
46645 };
46646 return MergeScanSubscriber;
46647}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"]));
46648
46649//# sourceMappingURL=mergeScan.js.map
46650
46651
46652/***/ }),
46653
46654/***/ "./node_modules/rxjs/_esm5/internal/operators/min.js":
46655/*!***********************************************************!*\
46656 !*** ./node_modules/rxjs/_esm5/internal/operators/min.js ***!
46657 \***********************************************************/
46658/*! exports provided: min */
46659/***/ (function(module, __webpack_exports__, __webpack_require__) {
46660
46661"use strict";
46662__webpack_require__.r(__webpack_exports__);
46663/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "min", function() { return min; });
46664/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ "./node_modules/rxjs/_esm5/internal/operators/reduce.js");
46665/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */
46666
46667function min(comparer) {
46668 var min = (typeof comparer === 'function')
46669 ? function (x, y) { return comparer(x, y) < 0 ? x : y; }
46670 : function (x, y) { return x < y ? x : y; };
46671 return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(min);
46672}
46673//# sourceMappingURL=min.js.map
46674
46675
46676/***/ }),
46677
46678/***/ "./node_modules/rxjs/_esm5/internal/operators/multicast.js":
46679/*!*****************************************************************!*\
46680 !*** ./node_modules/rxjs/_esm5/internal/operators/multicast.js ***!
46681 \*****************************************************************/
46682/*! exports provided: multicast, MulticastOperator */
46683/***/ (function(module, __webpack_exports__, __webpack_require__) {
46684
46685"use strict";
46686__webpack_require__.r(__webpack_exports__);
46687/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return multicast; });
46688/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MulticastOperator", function() { return MulticastOperator; });
46689/* harmony import */ var _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/ConnectableObservable */ "./node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js");
46690/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */
46691
46692function multicast(subjectOrSubjectFactory, selector) {
46693 return function multicastOperatorFunction(source) {
46694 var subjectFactory;
46695 if (typeof subjectOrSubjectFactory === 'function') {
46696 subjectFactory = subjectOrSubjectFactory;
46697 }
46698 else {
46699 subjectFactory = function subjectFactory() {
46700 return subjectOrSubjectFactory;
46701 };
46702 }
46703 if (typeof selector === 'function') {
46704 return source.lift(new MulticastOperator(subjectFactory, selector));
46705 }
46706 var connectable = Object.create(source, _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__["connectableObservableDescriptor"]);
46707 connectable.source = source;
46708 connectable.subjectFactory = subjectFactory;
46709 return connectable;
46710 };
46711}
46712var MulticastOperator = /*@__PURE__*/ (function () {
46713 function MulticastOperator(subjectFactory, selector) {
46714 this.subjectFactory = subjectFactory;
46715 this.selector = selector;
46716 }
46717 MulticastOperator.prototype.call = function (subscriber, source) {
46718 var selector = this.selector;
46719 var subject = this.subjectFactory();
46720 var subscription = selector(subject).subscribe(subscriber);
46721 subscription.add(source.subscribe(subject));
46722 return subscription;
46723 };
46724 return MulticastOperator;
46725}());
46726
46727//# sourceMappingURL=multicast.js.map
46728
46729
46730/***/ }),
46731
46732/***/ "./node_modules/rxjs/_esm5/internal/operators/observeOn.js":
46733/*!*****************************************************************!*\
46734 !*** ./node_modules/rxjs/_esm5/internal/operators/observeOn.js ***!
46735 \*****************************************************************/
46736/*! exports provided: observeOn, ObserveOnOperator, ObserveOnSubscriber, ObserveOnMessage */
46737/***/ (function(module, __webpack_exports__, __webpack_require__) {
46738
46739"use strict";
46740__webpack_require__.r(__webpack_exports__);
46741/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return observeOn; });
46742/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnOperator", function() { return ObserveOnOperator; });
46743/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnSubscriber", function() { return ObserveOnSubscriber; });
46744/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnMessage", function() { return ObserveOnMessage; });
46745/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
46746/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
46747/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Notification */ "./node_modules/rxjs/_esm5/internal/Notification.js");
46748/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */
46749
46750
46751
46752function observeOn(scheduler, delay) {
46753 if (delay === void 0) {
46754 delay = 0;
46755 }
46756 return function observeOnOperatorFunction(source) {
46757 return source.lift(new ObserveOnOperator(scheduler, delay));
46758 };
46759}
46760var ObserveOnOperator = /*@__PURE__*/ (function () {
46761 function ObserveOnOperator(scheduler, delay) {
46762 if (delay === void 0) {
46763 delay = 0;
46764 }
46765 this.scheduler = scheduler;
46766 this.delay = delay;
46767 }
46768 ObserveOnOperator.prototype.call = function (subscriber, source) {
46769 return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));
46770 };
46771 return ObserveOnOperator;
46772}());
46773
46774var ObserveOnSubscriber = /*@__PURE__*/ (function (_super) {
46775 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ObserveOnSubscriber, _super);
46776 function ObserveOnSubscriber(destination, scheduler, delay) {
46777 if (delay === void 0) {
46778 delay = 0;
46779 }
46780 var _this = _super.call(this, destination) || this;
46781 _this.scheduler = scheduler;
46782 _this.delay = delay;
46783 return _this;
46784 }
46785 ObserveOnSubscriber.dispatch = function (arg) {
46786 var notification = arg.notification, destination = arg.destination;
46787 notification.observe(destination);
46788 this.unsubscribe();
46789 };
46790 ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {
46791 var destination = this.destination;
46792 destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));
46793 };
46794 ObserveOnSubscriber.prototype._next = function (value) {
46795 this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createNext(value));
46796 };
46797 ObserveOnSubscriber.prototype._error = function (err) {
46798 this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createError(err));
46799 this.unsubscribe();
46800 };
46801 ObserveOnSubscriber.prototype._complete = function () {
46802 this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createComplete());
46803 this.unsubscribe();
46804 };
46805 return ObserveOnSubscriber;
46806}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
46807
46808var ObserveOnMessage = /*@__PURE__*/ (function () {
46809 function ObserveOnMessage(notification, destination) {
46810 this.notification = notification;
46811 this.destination = destination;
46812 }
46813 return ObserveOnMessage;
46814}());
46815
46816//# sourceMappingURL=observeOn.js.map
46817
46818
46819/***/ }),
46820
46821/***/ "./node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js":
46822/*!*************************************************************************!*\
46823 !*** ./node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js ***!
46824 \*************************************************************************/
46825/*! exports provided: onErrorResumeNext, onErrorResumeNextStatic */
46826/***/ (function(module, __webpack_exports__, __webpack_require__) {
46827
46828"use strict";
46829__webpack_require__.r(__webpack_exports__);
46830/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return onErrorResumeNext; });
46831/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNextStatic", function() { return onErrorResumeNextStatic; });
46832/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
46833/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/from */ "./node_modules/rxjs/_esm5/internal/observable/from.js");
46834/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
46835/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
46836/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../InnerSubscriber */ "./node_modules/rxjs/_esm5/internal/InnerSubscriber.js");
46837/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
46838/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
46839
46840
46841
46842
46843
46844
46845function onErrorResumeNext() {
46846 var nextSources = [];
46847 for (var _i = 0; _i < arguments.length; _i++) {
46848 nextSources[_i] = arguments[_i];
46849 }
46850 if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(nextSources[0])) {
46851 nextSources = nextSources[0];
46852 }
46853 return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };
46854}
46855function onErrorResumeNextStatic() {
46856 var nextSources = [];
46857 for (var _i = 0; _i < arguments.length; _i++) {
46858 nextSources[_i] = arguments[_i];
46859 }
46860 var source = null;
46861 if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(nextSources[0])) {
46862 nextSources = nextSources[0];
46863 }
46864 source = nextSources.shift();
46865 return Object(_observable_from__WEBPACK_IMPORTED_MODULE_1__["from"])(source, null).lift(new OnErrorResumeNextOperator(nextSources));
46866}
46867var OnErrorResumeNextOperator = /*@__PURE__*/ (function () {
46868 function OnErrorResumeNextOperator(nextSources) {
46869 this.nextSources = nextSources;
46870 }
46871 OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {
46872 return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));
46873 };
46874 return OnErrorResumeNextOperator;
46875}());
46876var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) {
46877 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OnErrorResumeNextSubscriber, _super);
46878 function OnErrorResumeNextSubscriber(destination, nextSources) {
46879 var _this = _super.call(this, destination) || this;
46880 _this.destination = destination;
46881 _this.nextSources = nextSources;
46882 return _this;
46883 }
46884 OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {
46885 this.subscribeToNextSource();
46886 };
46887 OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {
46888 this.subscribeToNextSource();
46889 };
46890 OnErrorResumeNextSubscriber.prototype._error = function (err) {
46891 this.subscribeToNextSource();
46892 this.unsubscribe();
46893 };
46894 OnErrorResumeNextSubscriber.prototype._complete = function () {
46895 this.subscribeToNextSource();
46896 this.unsubscribe();
46897 };
46898 OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {
46899 var next = this.nextSources.shift();
46900 if (next) {
46901 var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__["InnerSubscriber"](this, undefined, undefined);
46902 var destination = this.destination;
46903 destination.add(innerSubscriber);
46904 Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, next, undefined, undefined, innerSubscriber);
46905 }
46906 else {
46907 this.destination.complete();
46908 }
46909 };
46910 return OnErrorResumeNextSubscriber;
46911}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"]));
46912//# sourceMappingURL=onErrorResumeNext.js.map
46913
46914
46915/***/ }),
46916
46917/***/ "./node_modules/rxjs/_esm5/internal/operators/pairwise.js":
46918/*!****************************************************************!*\
46919 !*** ./node_modules/rxjs/_esm5/internal/operators/pairwise.js ***!
46920 \****************************************************************/
46921/*! exports provided: pairwise */
46922/***/ (function(module, __webpack_exports__, __webpack_require__) {
46923
46924"use strict";
46925__webpack_require__.r(__webpack_exports__);
46926/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return pairwise; });
46927/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
46928/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
46929/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
46930
46931
46932function pairwise() {
46933 return function (source) { return source.lift(new PairwiseOperator()); };
46934}
46935var PairwiseOperator = /*@__PURE__*/ (function () {
46936 function PairwiseOperator() {
46937 }
46938 PairwiseOperator.prototype.call = function (subscriber, source) {
46939 return source.subscribe(new PairwiseSubscriber(subscriber));
46940 };
46941 return PairwiseOperator;
46942}());
46943var PairwiseSubscriber = /*@__PURE__*/ (function (_super) {
46944 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PairwiseSubscriber, _super);
46945 function PairwiseSubscriber(destination) {
46946 var _this = _super.call(this, destination) || this;
46947 _this.hasPrev = false;
46948 return _this;
46949 }
46950 PairwiseSubscriber.prototype._next = function (value) {
46951 if (this.hasPrev) {
46952 this.destination.next([this.prev, value]);
46953 }
46954 else {
46955 this.hasPrev = true;
46956 }
46957 this.prev = value;
46958 };
46959 return PairwiseSubscriber;
46960}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
46961//# sourceMappingURL=pairwise.js.map
46962
46963
46964/***/ }),
46965
46966/***/ "./node_modules/rxjs/_esm5/internal/operators/partition.js":
46967/*!*****************************************************************!*\
46968 !*** ./node_modules/rxjs/_esm5/internal/operators/partition.js ***!
46969 \*****************************************************************/
46970/*! exports provided: partition */
46971/***/ (function(module, __webpack_exports__, __webpack_require__) {
46972
46973"use strict";
46974__webpack_require__.r(__webpack_exports__);
46975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return partition; });
46976/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/not */ "./node_modules/rxjs/_esm5/internal/util/not.js");
46977/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./filter */ "./node_modules/rxjs/_esm5/internal/operators/filter.js");
46978/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */
46979
46980
46981function partition(predicate, thisArg) {
46982 return function (source) {
46983 return [
46984 Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(predicate, thisArg)(source),
46985 Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__["not"])(predicate, thisArg))(source)
46986 ];
46987 };
46988}
46989//# sourceMappingURL=partition.js.map
46990
46991
46992/***/ }),
46993
46994/***/ "./node_modules/rxjs/_esm5/internal/operators/pluck.js":
46995/*!*************************************************************!*\
46996 !*** ./node_modules/rxjs/_esm5/internal/operators/pluck.js ***!
46997 \*************************************************************/
46998/*! exports provided: pluck */
46999/***/ (function(module, __webpack_exports__, __webpack_require__) {
47000
47001"use strict";
47002__webpack_require__.r(__webpack_exports__);
47003/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return pluck; });
47004/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
47005/** PURE_IMPORTS_START _map PURE_IMPORTS_END */
47006
47007function pluck() {
47008 var properties = [];
47009 for (var _i = 0; _i < arguments.length; _i++) {
47010 properties[_i] = arguments[_i];
47011 }
47012 var length = properties.length;
47013 if (length === 0) {
47014 throw new Error('list of properties cannot be empty.');
47015 }
47016 return function (source) { return Object(_map__WEBPACK_IMPORTED_MODULE_0__["map"])(plucker(properties, length))(source); };
47017}
47018function plucker(props, length) {
47019 var mapper = function (x) {
47020 var currentProp = x;
47021 for (var i = 0; i < length; i++) {
47022 var p = currentProp[props[i]];
47023 if (typeof p !== 'undefined') {
47024 currentProp = p;
47025 }
47026 else {
47027 return undefined;
47028 }
47029 }
47030 return currentProp;
47031 };
47032 return mapper;
47033}
47034//# sourceMappingURL=pluck.js.map
47035
47036
47037/***/ }),
47038
47039/***/ "./node_modules/rxjs/_esm5/internal/operators/publish.js":
47040/*!***************************************************************!*\
47041 !*** ./node_modules/rxjs/_esm5/internal/operators/publish.js ***!
47042 \***************************************************************/
47043/*! exports provided: publish */
47044/***/ (function(module, __webpack_exports__, __webpack_require__) {
47045
47046"use strict";
47047__webpack_require__.r(__webpack_exports__);
47048/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return publish; });
47049/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
47050/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ "./node_modules/rxjs/_esm5/internal/operators/multicast.js");
47051/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */
47052
47053
47054function publish(selector) {
47055 return selector ?
47056 Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(function () { return new _Subject__WEBPACK_IMPORTED_MODULE_0__["Subject"](); }, selector) :
47057 Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _Subject__WEBPACK_IMPORTED_MODULE_0__["Subject"]());
47058}
47059//# sourceMappingURL=publish.js.map
47060
47061
47062/***/ }),
47063
47064/***/ "./node_modules/rxjs/_esm5/internal/operators/publishBehavior.js":
47065/*!***********************************************************************!*\
47066 !*** ./node_modules/rxjs/_esm5/internal/operators/publishBehavior.js ***!
47067 \***********************************************************************/
47068/*! exports provided: publishBehavior */
47069/***/ (function(module, __webpack_exports__, __webpack_require__) {
47070
47071"use strict";
47072__webpack_require__.r(__webpack_exports__);
47073/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return publishBehavior; });
47074/* harmony import */ var _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../BehaviorSubject */ "./node_modules/rxjs/_esm5/internal/BehaviorSubject.js");
47075/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ "./node_modules/rxjs/_esm5/internal/operators/multicast.js");
47076/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */
47077
47078
47079function publishBehavior(value) {
47080 return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__["BehaviorSubject"](value))(source); };
47081}
47082//# sourceMappingURL=publishBehavior.js.map
47083
47084
47085/***/ }),
47086
47087/***/ "./node_modules/rxjs/_esm5/internal/operators/publishLast.js":
47088/*!*******************************************************************!*\
47089 !*** ./node_modules/rxjs/_esm5/internal/operators/publishLast.js ***!
47090 \*******************************************************************/
47091/*! exports provided: publishLast */
47092/***/ (function(module, __webpack_exports__, __webpack_require__) {
47093
47094"use strict";
47095__webpack_require__.r(__webpack_exports__);
47096/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return publishLast; });
47097/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../AsyncSubject */ "./node_modules/rxjs/_esm5/internal/AsyncSubject.js");
47098/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ "./node_modules/rxjs/_esm5/internal/operators/multicast.js");
47099/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */
47100
47101
47102function publishLast() {
47103 return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__["AsyncSubject"]())(source); };
47104}
47105//# sourceMappingURL=publishLast.js.map
47106
47107
47108/***/ }),
47109
47110/***/ "./node_modules/rxjs/_esm5/internal/operators/publishReplay.js":
47111/*!*********************************************************************!*\
47112 !*** ./node_modules/rxjs/_esm5/internal/operators/publishReplay.js ***!
47113 \*********************************************************************/
47114/*! exports provided: publishReplay */
47115/***/ (function(module, __webpack_exports__, __webpack_require__) {
47116
47117"use strict";
47118__webpack_require__.r(__webpack_exports__);
47119/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return publishReplay; });
47120/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ReplaySubject */ "./node_modules/rxjs/_esm5/internal/ReplaySubject.js");
47121/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ "./node_modules/rxjs/_esm5/internal/operators/multicast.js");
47122/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */
47123
47124
47125function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {
47126 if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {
47127 scheduler = selectorOrScheduler;
47128 }
47129 var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;
47130 var subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__["ReplaySubject"](bufferSize, windowTime, scheduler);
47131 return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(function () { return subject; }, selector)(source); };
47132}
47133//# sourceMappingURL=publishReplay.js.map
47134
47135
47136/***/ }),
47137
47138/***/ "./node_modules/rxjs/_esm5/internal/operators/race.js":
47139/*!************************************************************!*\
47140 !*** ./node_modules/rxjs/_esm5/internal/operators/race.js ***!
47141 \************************************************************/
47142/*! exports provided: race */
47143/***/ (function(module, __webpack_exports__, __webpack_require__) {
47144
47145"use strict";
47146__webpack_require__.r(__webpack_exports__);
47147/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "race", function() { return race; });
47148/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
47149/* harmony import */ var _observable_race__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/race */ "./node_modules/rxjs/_esm5/internal/observable/race.js");
47150/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */
47151
47152
47153function race() {
47154 var observables = [];
47155 for (var _i = 0; _i < arguments.length; _i++) {
47156 observables[_i] = arguments[_i];
47157 }
47158 return function raceOperatorFunction(source) {
47159 if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(observables[0])) {
47160 observables = observables[0];
47161 }
47162 return source.lift.call(_observable_race__WEBPACK_IMPORTED_MODULE_1__["race"].apply(void 0, [source].concat(observables)));
47163 };
47164}
47165//# sourceMappingURL=race.js.map
47166
47167
47168/***/ }),
47169
47170/***/ "./node_modules/rxjs/_esm5/internal/operators/reduce.js":
47171/*!**************************************************************!*\
47172 !*** ./node_modules/rxjs/_esm5/internal/operators/reduce.js ***!
47173 \**************************************************************/
47174/*! exports provided: reduce */
47175/***/ (function(module, __webpack_exports__, __webpack_require__) {
47176
47177"use strict";
47178__webpack_require__.r(__webpack_exports__);
47179/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; });
47180/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scan */ "./node_modules/rxjs/_esm5/internal/operators/scan.js");
47181/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./takeLast */ "./node_modules/rxjs/_esm5/internal/operators/takeLast.js");
47182/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultIfEmpty */ "./node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js");
47183/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/pipe */ "./node_modules/rxjs/_esm5/internal/util/pipe.js");
47184/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */
47185
47186
47187
47188
47189function reduce(accumulator, seed) {
47190 if (arguments.length >= 2) {
47191 return function reduceOperatorFunctionWithSeed(source) {
47192 return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipe"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__["scan"])(accumulator, seed), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__["takeLast"])(1), Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__["defaultIfEmpty"])(seed))(source);
47193 };
47194 }
47195 return function reduceOperatorFunction(source) {
47196 return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipe"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__["scan"])(function (acc, value, index) { return accumulator(acc, value, index + 1); }), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__["takeLast"])(1))(source);
47197 };
47198}
47199//# sourceMappingURL=reduce.js.map
47200
47201
47202/***/ }),
47203
47204/***/ "./node_modules/rxjs/_esm5/internal/operators/refCount.js":
47205/*!****************************************************************!*\
47206 !*** ./node_modules/rxjs/_esm5/internal/operators/refCount.js ***!
47207 \****************************************************************/
47208/*! exports provided: refCount */
47209/***/ (function(module, __webpack_exports__, __webpack_require__) {
47210
47211"use strict";
47212__webpack_require__.r(__webpack_exports__);
47213/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return refCount; });
47214/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
47215/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
47216/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
47217
47218
47219function refCount() {
47220 return function refCountOperatorFunction(source) {
47221 return source.lift(new RefCountOperator(source));
47222 };
47223}
47224var RefCountOperator = /*@__PURE__*/ (function () {
47225 function RefCountOperator(connectable) {
47226 this.connectable = connectable;
47227 }
47228 RefCountOperator.prototype.call = function (subscriber, source) {
47229 var connectable = this.connectable;
47230 connectable._refCount++;
47231 var refCounter = new RefCountSubscriber(subscriber, connectable);
47232 var subscription = source.subscribe(refCounter);
47233 if (!refCounter.closed) {
47234 refCounter.connection = connectable.connect();
47235 }
47236 return subscription;
47237 };
47238 return RefCountOperator;
47239}());
47240var RefCountSubscriber = /*@__PURE__*/ (function (_super) {
47241 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RefCountSubscriber, _super);
47242 function RefCountSubscriber(destination, connectable) {
47243 var _this = _super.call(this, destination) || this;
47244 _this.connectable = connectable;
47245 return _this;
47246 }
47247 RefCountSubscriber.prototype._unsubscribe = function () {
47248 var connectable = this.connectable;
47249 if (!connectable) {
47250 this.connection = null;
47251 return;
47252 }
47253 this.connectable = null;
47254 var refCount = connectable._refCount;
47255 if (refCount <= 0) {
47256 this.connection = null;
47257 return;
47258 }
47259 connectable._refCount = refCount - 1;
47260 if (refCount > 1) {
47261 this.connection = null;
47262 return;
47263 }
47264 var connection = this.connection;
47265 var sharedConnection = connectable._connection;
47266 this.connection = null;
47267 if (sharedConnection && (!connection || sharedConnection === connection)) {
47268 sharedConnection.unsubscribe();
47269 }
47270 };
47271 return RefCountSubscriber;
47272}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
47273//# sourceMappingURL=refCount.js.map
47274
47275
47276/***/ }),
47277
47278/***/ "./node_modules/rxjs/_esm5/internal/operators/repeat.js":
47279/*!**************************************************************!*\
47280 !*** ./node_modules/rxjs/_esm5/internal/operators/repeat.js ***!
47281 \**************************************************************/
47282/*! exports provided: repeat */
47283/***/ (function(module, __webpack_exports__, __webpack_require__) {
47284
47285"use strict";
47286__webpack_require__.r(__webpack_exports__);
47287/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return repeat; });
47288/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
47289/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
47290/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
47291/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */
47292
47293
47294
47295function repeat(count) {
47296 if (count === void 0) {
47297 count = -1;
47298 }
47299 return function (source) {
47300 if (count === 0) {
47301 return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])();
47302 }
47303 else if (count < 0) {
47304 return source.lift(new RepeatOperator(-1, source));
47305 }
47306 else {
47307 return source.lift(new RepeatOperator(count - 1, source));
47308 }
47309 };
47310}
47311var RepeatOperator = /*@__PURE__*/ (function () {
47312 function RepeatOperator(count, source) {
47313 this.count = count;
47314 this.source = source;
47315 }
47316 RepeatOperator.prototype.call = function (subscriber, source) {
47317 return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));
47318 };
47319 return RepeatOperator;
47320}());
47321var RepeatSubscriber = /*@__PURE__*/ (function (_super) {
47322 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RepeatSubscriber, _super);
47323 function RepeatSubscriber(destination, count, source) {
47324 var _this = _super.call(this, destination) || this;
47325 _this.count = count;
47326 _this.source = source;
47327 return _this;
47328 }
47329 RepeatSubscriber.prototype.complete = function () {
47330 if (!this.isStopped) {
47331 var _a = this, source = _a.source, count = _a.count;
47332 if (count === 0) {
47333 return _super.prototype.complete.call(this);
47334 }
47335 else if (count > -1) {
47336 this.count = count - 1;
47337 }
47338 source.subscribe(this._unsubscribeAndRecycle());
47339 }
47340 };
47341 return RepeatSubscriber;
47342}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
47343//# sourceMappingURL=repeat.js.map
47344
47345
47346/***/ }),
47347
47348/***/ "./node_modules/rxjs/_esm5/internal/operators/repeatWhen.js":
47349/*!******************************************************************!*\
47350 !*** ./node_modules/rxjs/_esm5/internal/operators/repeatWhen.js ***!
47351 \******************************************************************/
47352/*! exports provided: repeatWhen */
47353/***/ (function(module, __webpack_exports__, __webpack_require__) {
47354
47355"use strict";
47356__webpack_require__.r(__webpack_exports__);
47357/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return repeatWhen; });
47358/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
47359/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
47360/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
47361/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
47362/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
47363/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
47364/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
47365
47366
47367
47368
47369
47370
47371function repeatWhen(notifier) {
47372 return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };
47373}
47374var RepeatWhenOperator = /*@__PURE__*/ (function () {
47375 function RepeatWhenOperator(notifier) {
47376 this.notifier = notifier;
47377 }
47378 RepeatWhenOperator.prototype.call = function (subscriber, source) {
47379 return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));
47380 };
47381 return RepeatWhenOperator;
47382}());
47383var RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) {
47384 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RepeatWhenSubscriber, _super);
47385 function RepeatWhenSubscriber(destination, notifier, source) {
47386 var _this = _super.call(this, destination) || this;
47387 _this.notifier = notifier;
47388 _this.source = source;
47389 _this.sourceIsBeingSubscribedTo = true;
47390 return _this;
47391 }
47392 RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
47393 this.sourceIsBeingSubscribedTo = true;
47394 this.source.subscribe(this);
47395 };
47396 RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {
47397 if (this.sourceIsBeingSubscribedTo === false) {
47398 return _super.prototype.complete.call(this);
47399 }
47400 };
47401 RepeatWhenSubscriber.prototype.complete = function () {
47402 this.sourceIsBeingSubscribedTo = false;
47403 if (!this.isStopped) {
47404 if (!this.retries) {
47405 this.subscribeToRetries();
47406 }
47407 if (!this.retriesSubscription || this.retriesSubscription.closed) {
47408 return _super.prototype.complete.call(this);
47409 }
47410 this._unsubscribeAndRecycle();
47411 this.notifications.next();
47412 }
47413 };
47414 RepeatWhenSubscriber.prototype._unsubscribe = function () {
47415 var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;
47416 if (notifications) {
47417 notifications.unsubscribe();
47418 this.notifications = null;
47419 }
47420 if (retriesSubscription) {
47421 retriesSubscription.unsubscribe();
47422 this.retriesSubscription = null;
47423 }
47424 this.retries = null;
47425 };
47426 RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {
47427 var _unsubscribe = this._unsubscribe;
47428 this._unsubscribe = null;
47429 _super.prototype._unsubscribeAndRecycle.call(this);
47430 this._unsubscribe = _unsubscribe;
47431 return this;
47432 };
47433 RepeatWhenSubscriber.prototype.subscribeToRetries = function () {
47434 this.notifications = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"]();
47435 var retries = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.notifier)(this.notifications);
47436 if (retries === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) {
47437 return _super.prototype.complete.call(this);
47438 }
47439 this.retries = retries;
47440 this.retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, retries);
47441 };
47442 return RepeatWhenSubscriber;
47443}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"]));
47444//# sourceMappingURL=repeatWhen.js.map
47445
47446
47447/***/ }),
47448
47449/***/ "./node_modules/rxjs/_esm5/internal/operators/retry.js":
47450/*!*************************************************************!*\
47451 !*** ./node_modules/rxjs/_esm5/internal/operators/retry.js ***!
47452 \*************************************************************/
47453/*! exports provided: retry */
47454/***/ (function(module, __webpack_exports__, __webpack_require__) {
47455
47456"use strict";
47457__webpack_require__.r(__webpack_exports__);
47458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return retry; });
47459/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
47460/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
47461/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
47462
47463
47464function retry(count) {
47465 if (count === void 0) {
47466 count = -1;
47467 }
47468 return function (source) { return source.lift(new RetryOperator(count, source)); };
47469}
47470var RetryOperator = /*@__PURE__*/ (function () {
47471 function RetryOperator(count, source) {
47472 this.count = count;
47473 this.source = source;
47474 }
47475 RetryOperator.prototype.call = function (subscriber, source) {
47476 return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));
47477 };
47478 return RetryOperator;
47479}());
47480var RetrySubscriber = /*@__PURE__*/ (function (_super) {
47481 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RetrySubscriber, _super);
47482 function RetrySubscriber(destination, count, source) {
47483 var _this = _super.call(this, destination) || this;
47484 _this.count = count;
47485 _this.source = source;
47486 return _this;
47487 }
47488 RetrySubscriber.prototype.error = function (err) {
47489 if (!this.isStopped) {
47490 var _a = this, source = _a.source, count = _a.count;
47491 if (count === 0) {
47492 return _super.prototype.error.call(this, err);
47493 }
47494 else if (count > -1) {
47495 this.count = count - 1;
47496 }
47497 source.subscribe(this._unsubscribeAndRecycle());
47498 }
47499 };
47500 return RetrySubscriber;
47501}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
47502//# sourceMappingURL=retry.js.map
47503
47504
47505/***/ }),
47506
47507/***/ "./node_modules/rxjs/_esm5/internal/operators/retryWhen.js":
47508/*!*****************************************************************!*\
47509 !*** ./node_modules/rxjs/_esm5/internal/operators/retryWhen.js ***!
47510 \*****************************************************************/
47511/*! exports provided: retryWhen */
47512/***/ (function(module, __webpack_exports__, __webpack_require__) {
47513
47514"use strict";
47515__webpack_require__.r(__webpack_exports__);
47516/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return retryWhen; });
47517/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
47518/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
47519/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
47520/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
47521/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
47522/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
47523/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
47524
47525
47526
47527
47528
47529
47530function retryWhen(notifier) {
47531 return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };
47532}
47533var RetryWhenOperator = /*@__PURE__*/ (function () {
47534 function RetryWhenOperator(notifier, source) {
47535 this.notifier = notifier;
47536 this.source = source;
47537 }
47538 RetryWhenOperator.prototype.call = function (subscriber, source) {
47539 return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));
47540 };
47541 return RetryWhenOperator;
47542}());
47543var RetryWhenSubscriber = /*@__PURE__*/ (function (_super) {
47544 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RetryWhenSubscriber, _super);
47545 function RetryWhenSubscriber(destination, notifier, source) {
47546 var _this = _super.call(this, destination) || this;
47547 _this.notifier = notifier;
47548 _this.source = source;
47549 return _this;
47550 }
47551 RetryWhenSubscriber.prototype.error = function (err) {
47552 if (!this.isStopped) {
47553 var errors = this.errors;
47554 var retries = this.retries;
47555 var retriesSubscription = this.retriesSubscription;
47556 if (!retries) {
47557 errors = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"]();
47558 retries = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.notifier)(errors);
47559 if (retries === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) {
47560 return _super.prototype.error.call(this, _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e);
47561 }
47562 retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, retries);
47563 }
47564 else {
47565 this.errors = null;
47566 this.retriesSubscription = null;
47567 }
47568 this._unsubscribeAndRecycle();
47569 this.errors = errors;
47570 this.retries = retries;
47571 this.retriesSubscription = retriesSubscription;
47572 errors.next(err);
47573 }
47574 };
47575 RetryWhenSubscriber.prototype._unsubscribe = function () {
47576 var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;
47577 if (errors) {
47578 errors.unsubscribe();
47579 this.errors = null;
47580 }
47581 if (retriesSubscription) {
47582 retriesSubscription.unsubscribe();
47583 this.retriesSubscription = null;
47584 }
47585 this.retries = null;
47586 };
47587 RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
47588 var _unsubscribe = this._unsubscribe;
47589 this._unsubscribe = null;
47590 this._unsubscribeAndRecycle();
47591 this._unsubscribe = _unsubscribe;
47592 this.source.subscribe(this);
47593 };
47594 return RetryWhenSubscriber;
47595}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"]));
47596//# sourceMappingURL=retryWhen.js.map
47597
47598
47599/***/ }),
47600
47601/***/ "./node_modules/rxjs/_esm5/internal/operators/sample.js":
47602/*!**************************************************************!*\
47603 !*** ./node_modules/rxjs/_esm5/internal/operators/sample.js ***!
47604 \**************************************************************/
47605/*! exports provided: sample */
47606/***/ (function(module, __webpack_exports__, __webpack_require__) {
47607
47608"use strict";
47609__webpack_require__.r(__webpack_exports__);
47610/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return sample; });
47611/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
47612/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
47613/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
47614/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
47615
47616
47617
47618function sample(notifier) {
47619 return function (source) { return source.lift(new SampleOperator(notifier)); };
47620}
47621var SampleOperator = /*@__PURE__*/ (function () {
47622 function SampleOperator(notifier) {
47623 this.notifier = notifier;
47624 }
47625 SampleOperator.prototype.call = function (subscriber, source) {
47626 var sampleSubscriber = new SampleSubscriber(subscriber);
47627 var subscription = source.subscribe(sampleSubscriber);
47628 subscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(sampleSubscriber, this.notifier));
47629 return subscription;
47630 };
47631 return SampleOperator;
47632}());
47633var SampleSubscriber = /*@__PURE__*/ (function (_super) {
47634 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SampleSubscriber, _super);
47635 function SampleSubscriber() {
47636 var _this = _super !== null && _super.apply(this, arguments) || this;
47637 _this.hasValue = false;
47638 return _this;
47639 }
47640 SampleSubscriber.prototype._next = function (value) {
47641 this.value = value;
47642 this.hasValue = true;
47643 };
47644 SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
47645 this.emitValue();
47646 };
47647 SampleSubscriber.prototype.notifyComplete = function () {
47648 this.emitValue();
47649 };
47650 SampleSubscriber.prototype.emitValue = function () {
47651 if (this.hasValue) {
47652 this.hasValue = false;
47653 this.destination.next(this.value);
47654 }
47655 };
47656 return SampleSubscriber;
47657}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
47658//# sourceMappingURL=sample.js.map
47659
47660
47661/***/ }),
47662
47663/***/ "./node_modules/rxjs/_esm5/internal/operators/sampleTime.js":
47664/*!******************************************************************!*\
47665 !*** ./node_modules/rxjs/_esm5/internal/operators/sampleTime.js ***!
47666 \******************************************************************/
47667/*! exports provided: sampleTime */
47668/***/ (function(module, __webpack_exports__, __webpack_require__) {
47669
47670"use strict";
47671__webpack_require__.r(__webpack_exports__);
47672/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return sampleTime; });
47673/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
47674/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
47675/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
47676/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */
47677
47678
47679
47680function sampleTime(period, scheduler) {
47681 if (scheduler === void 0) {
47682 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"];
47683 }
47684 return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };
47685}
47686var SampleTimeOperator = /*@__PURE__*/ (function () {
47687 function SampleTimeOperator(period, scheduler) {
47688 this.period = period;
47689 this.scheduler = scheduler;
47690 }
47691 SampleTimeOperator.prototype.call = function (subscriber, source) {
47692 return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));
47693 };
47694 return SampleTimeOperator;
47695}());
47696var SampleTimeSubscriber = /*@__PURE__*/ (function (_super) {
47697 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SampleTimeSubscriber, _super);
47698 function SampleTimeSubscriber(destination, period, scheduler) {
47699 var _this = _super.call(this, destination) || this;
47700 _this.period = period;
47701 _this.scheduler = scheduler;
47702 _this.hasValue = false;
47703 _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));
47704 return _this;
47705 }
47706 SampleTimeSubscriber.prototype._next = function (value) {
47707 this.lastValue = value;
47708 this.hasValue = true;
47709 };
47710 SampleTimeSubscriber.prototype.notifyNext = function () {
47711 if (this.hasValue) {
47712 this.hasValue = false;
47713 this.destination.next(this.lastValue);
47714 }
47715 };
47716 return SampleTimeSubscriber;
47717}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
47718function dispatchNotification(state) {
47719 var subscriber = state.subscriber, period = state.period;
47720 subscriber.notifyNext();
47721 this.schedule(state, period);
47722}
47723//# sourceMappingURL=sampleTime.js.map
47724
47725
47726/***/ }),
47727
47728/***/ "./node_modules/rxjs/_esm5/internal/operators/scan.js":
47729/*!************************************************************!*\
47730 !*** ./node_modules/rxjs/_esm5/internal/operators/scan.js ***!
47731 \************************************************************/
47732/*! exports provided: scan */
47733/***/ (function(module, __webpack_exports__, __webpack_require__) {
47734
47735"use strict";
47736__webpack_require__.r(__webpack_exports__);
47737/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return scan; });
47738/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
47739/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
47740/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
47741
47742
47743function scan(accumulator, seed) {
47744 var hasSeed = false;
47745 if (arguments.length >= 2) {
47746 hasSeed = true;
47747 }
47748 return function scanOperatorFunction(source) {
47749 return source.lift(new ScanOperator(accumulator, seed, hasSeed));
47750 };
47751}
47752var ScanOperator = /*@__PURE__*/ (function () {
47753 function ScanOperator(accumulator, seed, hasSeed) {
47754 if (hasSeed === void 0) {
47755 hasSeed = false;
47756 }
47757 this.accumulator = accumulator;
47758 this.seed = seed;
47759 this.hasSeed = hasSeed;
47760 }
47761 ScanOperator.prototype.call = function (subscriber, source) {
47762 return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));
47763 };
47764 return ScanOperator;
47765}());
47766var ScanSubscriber = /*@__PURE__*/ (function (_super) {
47767 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ScanSubscriber, _super);
47768 function ScanSubscriber(destination, accumulator, _seed, hasSeed) {
47769 var _this = _super.call(this, destination) || this;
47770 _this.accumulator = accumulator;
47771 _this._seed = _seed;
47772 _this.hasSeed = hasSeed;
47773 _this.index = 0;
47774 return _this;
47775 }
47776 Object.defineProperty(ScanSubscriber.prototype, "seed", {
47777 get: function () {
47778 return this._seed;
47779 },
47780 set: function (value) {
47781 this.hasSeed = true;
47782 this._seed = value;
47783 },
47784 enumerable: true,
47785 configurable: true
47786 });
47787 ScanSubscriber.prototype._next = function (value) {
47788 if (!this.hasSeed) {
47789 this.seed = value;
47790 this.destination.next(value);
47791 }
47792 else {
47793 return this._tryNext(value);
47794 }
47795 };
47796 ScanSubscriber.prototype._tryNext = function (value) {
47797 var index = this.index++;
47798 var result;
47799 try {
47800 result = this.accumulator(this.seed, value, index);
47801 }
47802 catch (err) {
47803 this.destination.error(err);
47804 }
47805 this.seed = result;
47806 this.destination.next(result);
47807 };
47808 return ScanSubscriber;
47809}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
47810//# sourceMappingURL=scan.js.map
47811
47812
47813/***/ }),
47814
47815/***/ "./node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js":
47816/*!*********************************************************************!*\
47817 !*** ./node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js ***!
47818 \*********************************************************************/
47819/*! exports provided: sequenceEqual, SequenceEqualOperator, SequenceEqualSubscriber */
47820/***/ (function(module, __webpack_exports__, __webpack_require__) {
47821
47822"use strict";
47823__webpack_require__.r(__webpack_exports__);
47824/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return sequenceEqual; });
47825/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SequenceEqualOperator", function() { return SequenceEqualOperator; });
47826/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SequenceEqualSubscriber", function() { return SequenceEqualSubscriber; });
47827/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
47828/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
47829/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
47830/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
47831/** PURE_IMPORTS_START tslib,_Subscriber,_util_tryCatch,_util_errorObject PURE_IMPORTS_END */
47832
47833
47834
47835
47836function sequenceEqual(compareTo, comparor) {
47837 return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparor)); };
47838}
47839var SequenceEqualOperator = /*@__PURE__*/ (function () {
47840 function SequenceEqualOperator(compareTo, comparor) {
47841 this.compareTo = compareTo;
47842 this.comparor = comparor;
47843 }
47844 SequenceEqualOperator.prototype.call = function (subscriber, source) {
47845 return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparor));
47846 };
47847 return SequenceEqualOperator;
47848}());
47849
47850var SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) {
47851 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SequenceEqualSubscriber, _super);
47852 function SequenceEqualSubscriber(destination, compareTo, comparor) {
47853 var _this = _super.call(this, destination) || this;
47854 _this.compareTo = compareTo;
47855 _this.comparor = comparor;
47856 _this._a = [];
47857 _this._b = [];
47858 _this._oneComplete = false;
47859 _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));
47860 return _this;
47861 }
47862 SequenceEqualSubscriber.prototype._next = function (value) {
47863 if (this._oneComplete && this._b.length === 0) {
47864 this.emit(false);
47865 }
47866 else {
47867 this._a.push(value);
47868 this.checkValues();
47869 }
47870 };
47871 SequenceEqualSubscriber.prototype._complete = function () {
47872 if (this._oneComplete) {
47873 this.emit(this._a.length === 0 && this._b.length === 0);
47874 }
47875 else {
47876 this._oneComplete = true;
47877 }
47878 this.unsubscribe();
47879 };
47880 SequenceEqualSubscriber.prototype.checkValues = function () {
47881 var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor;
47882 while (_a.length > 0 && _b.length > 0) {
47883 var a = _a.shift();
47884 var b = _b.shift();
47885 var areEqual = false;
47886 if (comparor) {
47887 areEqual = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(comparor)(a, b);
47888 if (areEqual === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) {
47889 this.destination.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e);
47890 }
47891 }
47892 else {
47893 areEqual = a === b;
47894 }
47895 if (!areEqual) {
47896 this.emit(false);
47897 }
47898 }
47899 };
47900 SequenceEqualSubscriber.prototype.emit = function (value) {
47901 var destination = this.destination;
47902 destination.next(value);
47903 destination.complete();
47904 };
47905 SequenceEqualSubscriber.prototype.nextB = function (value) {
47906 if (this._oneComplete && this._a.length === 0) {
47907 this.emit(false);
47908 }
47909 else {
47910 this._b.push(value);
47911 this.checkValues();
47912 }
47913 };
47914 SequenceEqualSubscriber.prototype.completeB = function () {
47915 if (this._oneComplete) {
47916 this.emit(this._a.length === 0 && this._b.length === 0);
47917 }
47918 else {
47919 this._oneComplete = true;
47920 }
47921 };
47922 return SequenceEqualSubscriber;
47923}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
47924
47925var SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) {
47926 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SequenceEqualCompareToSubscriber, _super);
47927 function SequenceEqualCompareToSubscriber(destination, parent) {
47928 var _this = _super.call(this, destination) || this;
47929 _this.parent = parent;
47930 return _this;
47931 }
47932 SequenceEqualCompareToSubscriber.prototype._next = function (value) {
47933 this.parent.nextB(value);
47934 };
47935 SequenceEqualCompareToSubscriber.prototype._error = function (err) {
47936 this.parent.error(err);
47937 this.unsubscribe();
47938 };
47939 SequenceEqualCompareToSubscriber.prototype._complete = function () {
47940 this.parent.completeB();
47941 this.unsubscribe();
47942 };
47943 return SequenceEqualCompareToSubscriber;
47944}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
47945//# sourceMappingURL=sequenceEqual.js.map
47946
47947
47948/***/ }),
47949
47950/***/ "./node_modules/rxjs/_esm5/internal/operators/share.js":
47951/*!*************************************************************!*\
47952 !*** ./node_modules/rxjs/_esm5/internal/operators/share.js ***!
47953 \*************************************************************/
47954/*! exports provided: share */
47955/***/ (function(module, __webpack_exports__, __webpack_require__) {
47956
47957"use strict";
47958__webpack_require__.r(__webpack_exports__);
47959/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "share", function() { return share; });
47960/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./multicast */ "./node_modules/rxjs/_esm5/internal/operators/multicast.js");
47961/* harmony import */ var _refCount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./refCount */ "./node_modules/rxjs/_esm5/internal/operators/refCount.js");
47962/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
47963/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */
47964
47965
47966
47967function shareSubjectFactory() {
47968 return new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"]();
47969}
47970function share() {
47971 return function (source) { return Object(_refCount__WEBPACK_IMPORTED_MODULE_1__["refCount"])()(Object(_multicast__WEBPACK_IMPORTED_MODULE_0__["multicast"])(shareSubjectFactory)(source)); };
47972}
47973//# sourceMappingURL=share.js.map
47974
47975
47976/***/ }),
47977
47978/***/ "./node_modules/rxjs/_esm5/internal/operators/shareReplay.js":
47979/*!*******************************************************************!*\
47980 !*** ./node_modules/rxjs/_esm5/internal/operators/shareReplay.js ***!
47981 \*******************************************************************/
47982/*! exports provided: shareReplay */
47983/***/ (function(module, __webpack_exports__, __webpack_require__) {
47984
47985"use strict";
47986__webpack_require__.r(__webpack_exports__);
47987/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return shareReplay; });
47988/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ReplaySubject */ "./node_modules/rxjs/_esm5/internal/ReplaySubject.js");
47989/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */
47990
47991function shareReplay(bufferSize, windowTime, scheduler) {
47992 if (bufferSize === void 0) {
47993 bufferSize = Number.POSITIVE_INFINITY;
47994 }
47995 if (windowTime === void 0) {
47996 windowTime = Number.POSITIVE_INFINITY;
47997 }
47998 return function (source) { return source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); };
47999}
48000function shareReplayOperator(bufferSize, windowTime, scheduler) {
48001 var subject;
48002 var refCount = 0;
48003 var subscription;
48004 var hasError = false;
48005 var isComplete = false;
48006 return function shareReplayOperation(source) {
48007 refCount++;
48008 if (!subject || hasError) {
48009 hasError = false;
48010 subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__["ReplaySubject"](bufferSize, windowTime, scheduler);
48011 subscription = source.subscribe({
48012 next: function (value) { subject.next(value); },
48013 error: function (err) {
48014 hasError = true;
48015 subject.error(err);
48016 },
48017 complete: function () {
48018 isComplete = true;
48019 subject.complete();
48020 },
48021 });
48022 }
48023 var innerSub = subject.subscribe(this);
48024 return function () {
48025 refCount--;
48026 innerSub.unsubscribe();
48027 if (subscription && refCount === 0 && isComplete) {
48028 subscription.unsubscribe();
48029 }
48030 };
48031 };
48032}
48033//# sourceMappingURL=shareReplay.js.map
48034
48035
48036/***/ }),
48037
48038/***/ "./node_modules/rxjs/_esm5/internal/operators/single.js":
48039/*!**************************************************************!*\
48040 !*** ./node_modules/rxjs/_esm5/internal/operators/single.js ***!
48041 \**************************************************************/
48042/*! exports provided: single */
48043/***/ (function(module, __webpack_exports__, __webpack_require__) {
48044
48045"use strict";
48046__webpack_require__.r(__webpack_exports__);
48047/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "single", function() { return single; });
48048/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48049/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
48050/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/EmptyError */ "./node_modules/rxjs/_esm5/internal/util/EmptyError.js");
48051/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */
48052
48053
48054
48055function single(predicate) {
48056 return function (source) { return source.lift(new SingleOperator(predicate, source)); };
48057}
48058var SingleOperator = /*@__PURE__*/ (function () {
48059 function SingleOperator(predicate, source) {
48060 this.predicate = predicate;
48061 this.source = source;
48062 }
48063 SingleOperator.prototype.call = function (subscriber, source) {
48064 return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));
48065 };
48066 return SingleOperator;
48067}());
48068var SingleSubscriber = /*@__PURE__*/ (function (_super) {
48069 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SingleSubscriber, _super);
48070 function SingleSubscriber(destination, predicate, source) {
48071 var _this = _super.call(this, destination) || this;
48072 _this.predicate = predicate;
48073 _this.source = source;
48074 _this.seenValue = false;
48075 _this.index = 0;
48076 return _this;
48077 }
48078 SingleSubscriber.prototype.applySingleValue = function (value) {
48079 if (this.seenValue) {
48080 this.destination.error('Sequence contains more than one element');
48081 }
48082 else {
48083 this.seenValue = true;
48084 this.singleValue = value;
48085 }
48086 };
48087 SingleSubscriber.prototype._next = function (value) {
48088 var index = this.index++;
48089 if (this.predicate) {
48090 this.tryNext(value, index);
48091 }
48092 else {
48093 this.applySingleValue(value);
48094 }
48095 };
48096 SingleSubscriber.prototype.tryNext = function (value, index) {
48097 try {
48098 if (this.predicate(value, index, this.source)) {
48099 this.applySingleValue(value);
48100 }
48101 }
48102 catch (err) {
48103 this.destination.error(err);
48104 }
48105 };
48106 SingleSubscriber.prototype._complete = function () {
48107 var destination = this.destination;
48108 if (this.index > 0) {
48109 destination.next(this.seenValue ? this.singleValue : undefined);
48110 destination.complete();
48111 }
48112 else {
48113 destination.error(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__["EmptyError"]);
48114 }
48115 };
48116 return SingleSubscriber;
48117}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
48118//# sourceMappingURL=single.js.map
48119
48120
48121/***/ }),
48122
48123/***/ "./node_modules/rxjs/_esm5/internal/operators/skip.js":
48124/*!************************************************************!*\
48125 !*** ./node_modules/rxjs/_esm5/internal/operators/skip.js ***!
48126 \************************************************************/
48127/*! exports provided: skip */
48128/***/ (function(module, __webpack_exports__, __webpack_require__) {
48129
48130"use strict";
48131__webpack_require__.r(__webpack_exports__);
48132/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return skip; });
48133/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48134/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
48135/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
48136
48137
48138function skip(count) {
48139 return function (source) { return source.lift(new SkipOperator(count)); };
48140}
48141var SkipOperator = /*@__PURE__*/ (function () {
48142 function SkipOperator(total) {
48143 this.total = total;
48144 }
48145 SkipOperator.prototype.call = function (subscriber, source) {
48146 return source.subscribe(new SkipSubscriber(subscriber, this.total));
48147 };
48148 return SkipOperator;
48149}());
48150var SkipSubscriber = /*@__PURE__*/ (function (_super) {
48151 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipSubscriber, _super);
48152 function SkipSubscriber(destination, total) {
48153 var _this = _super.call(this, destination) || this;
48154 _this.total = total;
48155 _this.count = 0;
48156 return _this;
48157 }
48158 SkipSubscriber.prototype._next = function (x) {
48159 if (++this.count > this.total) {
48160 this.destination.next(x);
48161 }
48162 };
48163 return SkipSubscriber;
48164}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
48165//# sourceMappingURL=skip.js.map
48166
48167
48168/***/ }),
48169
48170/***/ "./node_modules/rxjs/_esm5/internal/operators/skipLast.js":
48171/*!****************************************************************!*\
48172 !*** ./node_modules/rxjs/_esm5/internal/operators/skipLast.js ***!
48173 \****************************************************************/
48174/*! exports provided: skipLast */
48175/***/ (function(module, __webpack_exports__, __webpack_require__) {
48176
48177"use strict";
48178__webpack_require__.r(__webpack_exports__);
48179/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return skipLast; });
48180/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48181/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
48182/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ "./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js");
48183/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */
48184
48185
48186
48187function skipLast(count) {
48188 return function (source) { return source.lift(new SkipLastOperator(count)); };
48189}
48190var SkipLastOperator = /*@__PURE__*/ (function () {
48191 function SkipLastOperator(_skipCount) {
48192 this._skipCount = _skipCount;
48193 if (this._skipCount < 0) {
48194 throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"];
48195 }
48196 }
48197 SkipLastOperator.prototype.call = function (subscriber, source) {
48198 if (this._skipCount === 0) {
48199 return source.subscribe(new _Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"](subscriber));
48200 }
48201 else {
48202 return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));
48203 }
48204 };
48205 return SkipLastOperator;
48206}());
48207var SkipLastSubscriber = /*@__PURE__*/ (function (_super) {
48208 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipLastSubscriber, _super);
48209 function SkipLastSubscriber(destination, _skipCount) {
48210 var _this = _super.call(this, destination) || this;
48211 _this._skipCount = _skipCount;
48212 _this._count = 0;
48213 _this._ring = new Array(_skipCount);
48214 return _this;
48215 }
48216 SkipLastSubscriber.prototype._next = function (value) {
48217 var skipCount = this._skipCount;
48218 var count = this._count++;
48219 if (count < skipCount) {
48220 this._ring[count] = value;
48221 }
48222 else {
48223 var currentIndex = count % skipCount;
48224 var ring = this._ring;
48225 var oldValue = ring[currentIndex];
48226 ring[currentIndex] = value;
48227 this.destination.next(oldValue);
48228 }
48229 };
48230 return SkipLastSubscriber;
48231}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
48232//# sourceMappingURL=skipLast.js.map
48233
48234
48235/***/ }),
48236
48237/***/ "./node_modules/rxjs/_esm5/internal/operators/skipUntil.js":
48238/*!*****************************************************************!*\
48239 !*** ./node_modules/rxjs/_esm5/internal/operators/skipUntil.js ***!
48240 \*****************************************************************/
48241/*! exports provided: skipUntil */
48242/***/ (function(module, __webpack_exports__, __webpack_require__) {
48243
48244"use strict";
48245__webpack_require__.r(__webpack_exports__);
48246/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return skipUntil; });
48247/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48248/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
48249/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ "./node_modules/rxjs/_esm5/internal/InnerSubscriber.js");
48250/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
48251/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
48252
48253
48254
48255
48256function skipUntil(notifier) {
48257 return function (source) { return source.lift(new SkipUntilOperator(notifier)); };
48258}
48259var SkipUntilOperator = /*@__PURE__*/ (function () {
48260 function SkipUntilOperator(notifier) {
48261 this.notifier = notifier;
48262 }
48263 SkipUntilOperator.prototype.call = function (destination, source) {
48264 return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));
48265 };
48266 return SkipUntilOperator;
48267}());
48268var SkipUntilSubscriber = /*@__PURE__*/ (function (_super) {
48269 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipUntilSubscriber, _super);
48270 function SkipUntilSubscriber(destination, notifier) {
48271 var _this = _super.call(this, destination) || this;
48272 _this.hasValue = false;
48273 var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](_this, undefined, undefined);
48274 _this.add(innerSubscriber);
48275 _this.innerSubscription = innerSubscriber;
48276 Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(_this, notifier, undefined, undefined, innerSubscriber);
48277 return _this;
48278 }
48279 SkipUntilSubscriber.prototype._next = function (value) {
48280 if (this.hasValue) {
48281 _super.prototype._next.call(this, value);
48282 }
48283 };
48284 SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
48285 this.hasValue = true;
48286 if (this.innerSubscription) {
48287 this.innerSubscription.unsubscribe();
48288 }
48289 };
48290 SkipUntilSubscriber.prototype.notifyComplete = function () {
48291 };
48292 return SkipUntilSubscriber;
48293}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
48294//# sourceMappingURL=skipUntil.js.map
48295
48296
48297/***/ }),
48298
48299/***/ "./node_modules/rxjs/_esm5/internal/operators/skipWhile.js":
48300/*!*****************************************************************!*\
48301 !*** ./node_modules/rxjs/_esm5/internal/operators/skipWhile.js ***!
48302 \*****************************************************************/
48303/*! exports provided: skipWhile */
48304/***/ (function(module, __webpack_exports__, __webpack_require__) {
48305
48306"use strict";
48307__webpack_require__.r(__webpack_exports__);
48308/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return skipWhile; });
48309/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48310/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
48311/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
48312
48313
48314function skipWhile(predicate) {
48315 return function (source) { return source.lift(new SkipWhileOperator(predicate)); };
48316}
48317var SkipWhileOperator = /*@__PURE__*/ (function () {
48318 function SkipWhileOperator(predicate) {
48319 this.predicate = predicate;
48320 }
48321 SkipWhileOperator.prototype.call = function (subscriber, source) {
48322 return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));
48323 };
48324 return SkipWhileOperator;
48325}());
48326var SkipWhileSubscriber = /*@__PURE__*/ (function (_super) {
48327 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipWhileSubscriber, _super);
48328 function SkipWhileSubscriber(destination, predicate) {
48329 var _this = _super.call(this, destination) || this;
48330 _this.predicate = predicate;
48331 _this.skipping = true;
48332 _this.index = 0;
48333 return _this;
48334 }
48335 SkipWhileSubscriber.prototype._next = function (value) {
48336 var destination = this.destination;
48337 if (this.skipping) {
48338 this.tryCallPredicate(value);
48339 }
48340 if (!this.skipping) {
48341 destination.next(value);
48342 }
48343 };
48344 SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {
48345 try {
48346 var result = this.predicate(value, this.index++);
48347 this.skipping = Boolean(result);
48348 }
48349 catch (err) {
48350 this.destination.error(err);
48351 }
48352 };
48353 return SkipWhileSubscriber;
48354}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
48355//# sourceMappingURL=skipWhile.js.map
48356
48357
48358/***/ }),
48359
48360/***/ "./node_modules/rxjs/_esm5/internal/operators/startWith.js":
48361/*!*****************************************************************!*\
48362 !*** ./node_modules/rxjs/_esm5/internal/operators/startWith.js ***!
48363 \*****************************************************************/
48364/*! exports provided: startWith */
48365/***/ (function(module, __webpack_exports__, __webpack_require__) {
48366
48367"use strict";
48368__webpack_require__.r(__webpack_exports__);
48369/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return startWith; });
48370/* harmony import */ var _observable_fromArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/fromArray */ "./node_modules/rxjs/_esm5/internal/observable/fromArray.js");
48371/* harmony import */ var _observable_scalar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/scalar */ "./node_modules/rxjs/_esm5/internal/observable/scalar.js");
48372/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
48373/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/concat */ "./node_modules/rxjs/_esm5/internal/observable/concat.js");
48374/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
48375/** PURE_IMPORTS_START _observable_fromArray,_observable_scalar,_observable_empty,_observable_concat,_util_isScheduler PURE_IMPORTS_END */
48376
48377
48378
48379
48380
48381function startWith() {
48382 var array = [];
48383 for (var _i = 0; _i < arguments.length; _i++) {
48384 array[_i] = arguments[_i];
48385 }
48386 return function (source) {
48387 var scheduler = array[array.length - 1];
48388 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_4__["isScheduler"])(scheduler)) {
48389 array.pop();
48390 }
48391 else {
48392 scheduler = null;
48393 }
48394 var len = array.length;
48395 if (len === 1 && !scheduler) {
48396 return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(Object(_observable_scalar__WEBPACK_IMPORTED_MODULE_1__["scalar"])(array[0]), source);
48397 }
48398 else if (len > 0) {
48399 return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(Object(_observable_fromArray__WEBPACK_IMPORTED_MODULE_0__["fromArray"])(array, scheduler), source);
48400 }
48401 else {
48402 return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_3__["concat"])(Object(_observable_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(scheduler), source);
48403 }
48404 };
48405}
48406//# sourceMappingURL=startWith.js.map
48407
48408
48409/***/ }),
48410
48411/***/ "./node_modules/rxjs/_esm5/internal/operators/subscribeOn.js":
48412/*!*******************************************************************!*\
48413 !*** ./node_modules/rxjs/_esm5/internal/operators/subscribeOn.js ***!
48414 \*******************************************************************/
48415/*! exports provided: subscribeOn */
48416/***/ (function(module, __webpack_exports__, __webpack_require__) {
48417
48418"use strict";
48419__webpack_require__.r(__webpack_exports__);
48420/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return subscribeOn; });
48421/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/SubscribeOnObservable */ "./node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js");
48422/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */
48423
48424function subscribeOn(scheduler, delay) {
48425 if (delay === void 0) {
48426 delay = 0;
48427 }
48428 return function subscribeOnOperatorFunction(source) {
48429 return source.lift(new SubscribeOnOperator(scheduler, delay));
48430 };
48431}
48432var SubscribeOnOperator = /*@__PURE__*/ (function () {
48433 function SubscribeOnOperator(scheduler, delay) {
48434 this.scheduler = scheduler;
48435 this.delay = delay;
48436 }
48437 SubscribeOnOperator.prototype.call = function (subscriber, source) {
48438 return new _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__["SubscribeOnObservable"](source, this.delay, this.scheduler).subscribe(subscriber);
48439 };
48440 return SubscribeOnOperator;
48441}());
48442//# sourceMappingURL=subscribeOn.js.map
48443
48444
48445/***/ }),
48446
48447/***/ "./node_modules/rxjs/_esm5/internal/operators/switchAll.js":
48448/*!*****************************************************************!*\
48449 !*** ./node_modules/rxjs/_esm5/internal/operators/switchAll.js ***!
48450 \*****************************************************************/
48451/*! exports provided: switchAll */
48452/***/ (function(module, __webpack_exports__, __webpack_require__) {
48453
48454"use strict";
48455__webpack_require__.r(__webpack_exports__);
48456/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return switchAll; });
48457/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./switchMap */ "./node_modules/rxjs/_esm5/internal/operators/switchMap.js");
48458/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/identity */ "./node_modules/rxjs/_esm5/internal/util/identity.js");
48459/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */
48460
48461
48462function switchAll() {
48463 return Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"]);
48464}
48465//# sourceMappingURL=switchAll.js.map
48466
48467
48468/***/ }),
48469
48470/***/ "./node_modules/rxjs/_esm5/internal/operators/switchMap.js":
48471/*!*****************************************************************!*\
48472 !*** ./node_modules/rxjs/_esm5/internal/operators/switchMap.js ***!
48473 \*****************************************************************/
48474/*! exports provided: switchMap */
48475/***/ (function(module, __webpack_exports__, __webpack_require__) {
48476
48477"use strict";
48478__webpack_require__.r(__webpack_exports__);
48479/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return switchMap; });
48480/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48481/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
48482/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../InnerSubscriber */ "./node_modules/rxjs/_esm5/internal/InnerSubscriber.js");
48483/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
48484/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
48485/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../observable/from */ "./node_modules/rxjs/_esm5/internal/observable/from.js");
48486/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */
48487
48488
48489
48490
48491
48492
48493function switchMap(project, resultSelector) {
48494 if (typeof resultSelector === 'function') {
48495 return function (source) { return source.pipe(switchMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };
48496 }
48497 return function (source) { return source.lift(new SwitchMapOperator(project)); };
48498}
48499var SwitchMapOperator = /*@__PURE__*/ (function () {
48500 function SwitchMapOperator(project) {
48501 this.project = project;
48502 }
48503 SwitchMapOperator.prototype.call = function (subscriber, source) {
48504 return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));
48505 };
48506 return SwitchMapOperator;
48507}());
48508var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) {
48509 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SwitchMapSubscriber, _super);
48510 function SwitchMapSubscriber(destination, project) {
48511 var _this = _super.call(this, destination) || this;
48512 _this.project = project;
48513 _this.index = 0;
48514 return _this;
48515 }
48516 SwitchMapSubscriber.prototype._next = function (value) {
48517 var result;
48518 var index = this.index++;
48519 try {
48520 result = this.project(value, index);
48521 }
48522 catch (error) {
48523 this.destination.error(error);
48524 return;
48525 }
48526 this._innerSub(result, value, index);
48527 };
48528 SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {
48529 var innerSubscription = this.innerSubscription;
48530 if (innerSubscription) {
48531 innerSubscription.unsubscribe();
48532 }
48533 var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined);
48534 var destination = this.destination;
48535 destination.add(innerSubscriber);
48536 this.innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, value, index, innerSubscriber);
48537 };
48538 SwitchMapSubscriber.prototype._complete = function () {
48539 var innerSubscription = this.innerSubscription;
48540 if (!innerSubscription || innerSubscription.closed) {
48541 _super.prototype._complete.call(this);
48542 }
48543 this.unsubscribe();
48544 };
48545 SwitchMapSubscriber.prototype._unsubscribe = function () {
48546 this.innerSubscription = null;
48547 };
48548 SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {
48549 var destination = this.destination;
48550 destination.remove(innerSub);
48551 this.innerSubscription = null;
48552 if (this.isStopped) {
48553 _super.prototype._complete.call(this);
48554 }
48555 };
48556 SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
48557 this.destination.next(innerValue);
48558 };
48559 return SwitchMapSubscriber;
48560}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
48561//# sourceMappingURL=switchMap.js.map
48562
48563
48564/***/ }),
48565
48566/***/ "./node_modules/rxjs/_esm5/internal/operators/switchMapTo.js":
48567/*!*******************************************************************!*\
48568 !*** ./node_modules/rxjs/_esm5/internal/operators/switchMapTo.js ***!
48569 \*******************************************************************/
48570/*! exports provided: switchMapTo */
48571/***/ (function(module, __webpack_exports__, __webpack_require__) {
48572
48573"use strict";
48574__webpack_require__.r(__webpack_exports__);
48575/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return switchMapTo; });
48576/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./switchMap */ "./node_modules/rxjs/_esm5/internal/operators/switchMap.js");
48577/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */
48578
48579function switchMapTo(innerObservable, resultSelector) {
48580 return resultSelector ? Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(function () { return innerObservable; }, resultSelector) : Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(function () { return innerObservable; });
48581}
48582//# sourceMappingURL=switchMapTo.js.map
48583
48584
48585/***/ }),
48586
48587/***/ "./node_modules/rxjs/_esm5/internal/operators/take.js":
48588/*!************************************************************!*\
48589 !*** ./node_modules/rxjs/_esm5/internal/operators/take.js ***!
48590 \************************************************************/
48591/*! exports provided: take */
48592/***/ (function(module, __webpack_exports__, __webpack_require__) {
48593
48594"use strict";
48595__webpack_require__.r(__webpack_exports__);
48596/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "take", function() { return take; });
48597/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48598/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
48599/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ "./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js");
48600/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
48601/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */
48602
48603
48604
48605
48606function take(count) {
48607 return function (source) {
48608 if (count === 0) {
48609 return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_3__["empty"])();
48610 }
48611 else {
48612 return source.lift(new TakeOperator(count));
48613 }
48614 };
48615}
48616var TakeOperator = /*@__PURE__*/ (function () {
48617 function TakeOperator(total) {
48618 this.total = total;
48619 if (this.total < 0) {
48620 throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"];
48621 }
48622 }
48623 TakeOperator.prototype.call = function (subscriber, source) {
48624 return source.subscribe(new TakeSubscriber(subscriber, this.total));
48625 };
48626 return TakeOperator;
48627}());
48628var TakeSubscriber = /*@__PURE__*/ (function (_super) {
48629 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeSubscriber, _super);
48630 function TakeSubscriber(destination, total) {
48631 var _this = _super.call(this, destination) || this;
48632 _this.total = total;
48633 _this.count = 0;
48634 return _this;
48635 }
48636 TakeSubscriber.prototype._next = function (value) {
48637 var total = this.total;
48638 var count = ++this.count;
48639 if (count <= total) {
48640 this.destination.next(value);
48641 if (count === total) {
48642 this.destination.complete();
48643 this.unsubscribe();
48644 }
48645 }
48646 };
48647 return TakeSubscriber;
48648}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
48649//# sourceMappingURL=take.js.map
48650
48651
48652/***/ }),
48653
48654/***/ "./node_modules/rxjs/_esm5/internal/operators/takeLast.js":
48655/*!****************************************************************!*\
48656 !*** ./node_modules/rxjs/_esm5/internal/operators/takeLast.js ***!
48657 \****************************************************************/
48658/*! exports provided: takeLast */
48659/***/ (function(module, __webpack_exports__, __webpack_require__) {
48660
48661"use strict";
48662__webpack_require__.r(__webpack_exports__);
48663/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return takeLast; });
48664/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48665/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
48666/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/ArgumentOutOfRangeError */ "./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js");
48667/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/empty */ "./node_modules/rxjs/_esm5/internal/observable/empty.js");
48668/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */
48669
48670
48671
48672
48673function takeLast(count) {
48674 return function takeLastOperatorFunction(source) {
48675 if (count === 0) {
48676 return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_3__["empty"])();
48677 }
48678 else {
48679 return source.lift(new TakeLastOperator(count));
48680 }
48681 };
48682}
48683var TakeLastOperator = /*@__PURE__*/ (function () {
48684 function TakeLastOperator(total) {
48685 this.total = total;
48686 if (this.total < 0) {
48687 throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"];
48688 }
48689 }
48690 TakeLastOperator.prototype.call = function (subscriber, source) {
48691 return source.subscribe(new TakeLastSubscriber(subscriber, this.total));
48692 };
48693 return TakeLastOperator;
48694}());
48695var TakeLastSubscriber = /*@__PURE__*/ (function (_super) {
48696 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeLastSubscriber, _super);
48697 function TakeLastSubscriber(destination, total) {
48698 var _this = _super.call(this, destination) || this;
48699 _this.total = total;
48700 _this.ring = new Array();
48701 _this.count = 0;
48702 return _this;
48703 }
48704 TakeLastSubscriber.prototype._next = function (value) {
48705 var ring = this.ring;
48706 var total = this.total;
48707 var count = this.count++;
48708 if (ring.length < total) {
48709 ring.push(value);
48710 }
48711 else {
48712 var index = count % total;
48713 ring[index] = value;
48714 }
48715 };
48716 TakeLastSubscriber.prototype._complete = function () {
48717 var destination = this.destination;
48718 var count = this.count;
48719 if (count > 0) {
48720 var total = this.count >= this.total ? this.total : this.count;
48721 var ring = this.ring;
48722 for (var i = 0; i < total; i++) {
48723 var idx = (count++) % total;
48724 destination.next(ring[idx]);
48725 }
48726 }
48727 destination.complete();
48728 };
48729 return TakeLastSubscriber;
48730}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
48731//# sourceMappingURL=takeLast.js.map
48732
48733
48734/***/ }),
48735
48736/***/ "./node_modules/rxjs/_esm5/internal/operators/takeUntil.js":
48737/*!*****************************************************************!*\
48738 !*** ./node_modules/rxjs/_esm5/internal/operators/takeUntil.js ***!
48739 \*****************************************************************/
48740/*! exports provided: takeUntil */
48741/***/ (function(module, __webpack_exports__, __webpack_require__) {
48742
48743"use strict";
48744__webpack_require__.r(__webpack_exports__);
48745/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return takeUntil; });
48746/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48747/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
48748/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
48749/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
48750
48751
48752
48753function takeUntil(notifier) {
48754 return function (source) { return source.lift(new TakeUntilOperator(notifier)); };
48755}
48756var TakeUntilOperator = /*@__PURE__*/ (function () {
48757 function TakeUntilOperator(notifier) {
48758 this.notifier = notifier;
48759 }
48760 TakeUntilOperator.prototype.call = function (subscriber, source) {
48761 var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);
48762 var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(takeUntilSubscriber, this.notifier);
48763 if (notifierSubscription && !takeUntilSubscriber.seenValue) {
48764 takeUntilSubscriber.add(notifierSubscription);
48765 return source.subscribe(takeUntilSubscriber);
48766 }
48767 return takeUntilSubscriber;
48768 };
48769 return TakeUntilOperator;
48770}());
48771var TakeUntilSubscriber = /*@__PURE__*/ (function (_super) {
48772 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeUntilSubscriber, _super);
48773 function TakeUntilSubscriber(destination) {
48774 var _this = _super.call(this, destination) || this;
48775 _this.seenValue = false;
48776 return _this;
48777 }
48778 TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
48779 this.seenValue = true;
48780 this.complete();
48781 };
48782 TakeUntilSubscriber.prototype.notifyComplete = function () {
48783 };
48784 return TakeUntilSubscriber;
48785}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
48786//# sourceMappingURL=takeUntil.js.map
48787
48788
48789/***/ }),
48790
48791/***/ "./node_modules/rxjs/_esm5/internal/operators/takeWhile.js":
48792/*!*****************************************************************!*\
48793 !*** ./node_modules/rxjs/_esm5/internal/operators/takeWhile.js ***!
48794 \*****************************************************************/
48795/*! exports provided: takeWhile */
48796/***/ (function(module, __webpack_exports__, __webpack_require__) {
48797
48798"use strict";
48799__webpack_require__.r(__webpack_exports__);
48800/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return takeWhile; });
48801/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48802/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
48803/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */
48804
48805
48806function takeWhile(predicate) {
48807 return function (source) { return source.lift(new TakeWhileOperator(predicate)); };
48808}
48809var TakeWhileOperator = /*@__PURE__*/ (function () {
48810 function TakeWhileOperator(predicate) {
48811 this.predicate = predicate;
48812 }
48813 TakeWhileOperator.prototype.call = function (subscriber, source) {
48814 return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate));
48815 };
48816 return TakeWhileOperator;
48817}());
48818var TakeWhileSubscriber = /*@__PURE__*/ (function (_super) {
48819 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeWhileSubscriber, _super);
48820 function TakeWhileSubscriber(destination, predicate) {
48821 var _this = _super.call(this, destination) || this;
48822 _this.predicate = predicate;
48823 _this.index = 0;
48824 return _this;
48825 }
48826 TakeWhileSubscriber.prototype._next = function (value) {
48827 var destination = this.destination;
48828 var result;
48829 try {
48830 result = this.predicate(value, this.index++);
48831 }
48832 catch (err) {
48833 destination.error(err);
48834 return;
48835 }
48836 this.nextOrComplete(value, result);
48837 };
48838 TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {
48839 var destination = this.destination;
48840 if (Boolean(predicateResult)) {
48841 destination.next(value);
48842 }
48843 else {
48844 destination.complete();
48845 }
48846 };
48847 return TakeWhileSubscriber;
48848}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
48849//# sourceMappingURL=takeWhile.js.map
48850
48851
48852/***/ }),
48853
48854/***/ "./node_modules/rxjs/_esm5/internal/operators/tap.js":
48855/*!***********************************************************!*\
48856 !*** ./node_modules/rxjs/_esm5/internal/operators/tap.js ***!
48857 \***********************************************************/
48858/*! exports provided: tap */
48859/***/ (function(module, __webpack_exports__, __webpack_require__) {
48860
48861"use strict";
48862__webpack_require__.r(__webpack_exports__);
48863/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return tap; });
48864/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48865/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
48866/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/noop */ "./node_modules/rxjs/_esm5/internal/util/noop.js");
48867/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/isFunction */ "./node_modules/rxjs/_esm5/internal/util/isFunction.js");
48868/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */
48869
48870
48871
48872
48873function tap(nextOrObserver, error, complete) {
48874 return function tapOperatorFunction(source) {
48875 return source.lift(new DoOperator(nextOrObserver, error, complete));
48876 };
48877}
48878var DoOperator = /*@__PURE__*/ (function () {
48879 function DoOperator(nextOrObserver, error, complete) {
48880 this.nextOrObserver = nextOrObserver;
48881 this.error = error;
48882 this.complete = complete;
48883 }
48884 DoOperator.prototype.call = function (subscriber, source) {
48885 return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));
48886 };
48887 return DoOperator;
48888}());
48889var TapSubscriber = /*@__PURE__*/ (function (_super) {
48890 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TapSubscriber, _super);
48891 function TapSubscriber(destination, observerOrNext, error, complete) {
48892 var _this = _super.call(this, destination) || this;
48893 _this._tapNext = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"];
48894 _this._tapError = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"];
48895 _this._tapComplete = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"];
48896 _this._tapError = error || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"];
48897 _this._tapComplete = complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"];
48898 if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_3__["isFunction"])(observerOrNext)) {
48899 _this._context = _this;
48900 _this._tapNext = observerOrNext;
48901 }
48902 else if (observerOrNext) {
48903 _this._context = observerOrNext;
48904 _this._tapNext = observerOrNext.next || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"];
48905 _this._tapError = observerOrNext.error || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"];
48906 _this._tapComplete = observerOrNext.complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"];
48907 }
48908 return _this;
48909 }
48910 TapSubscriber.prototype._next = function (value) {
48911 try {
48912 this._tapNext.call(this._context, value);
48913 }
48914 catch (err) {
48915 this.destination.error(err);
48916 return;
48917 }
48918 this.destination.next(value);
48919 };
48920 TapSubscriber.prototype._error = function (err) {
48921 try {
48922 this._tapError.call(this._context, err);
48923 }
48924 catch (err) {
48925 this.destination.error(err);
48926 return;
48927 }
48928 this.destination.error(err);
48929 };
48930 TapSubscriber.prototype._complete = function () {
48931 try {
48932 this._tapComplete.call(this._context);
48933 }
48934 catch (err) {
48935 this.destination.error(err);
48936 return;
48937 }
48938 return this.destination.complete();
48939 };
48940 return TapSubscriber;
48941}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
48942//# sourceMappingURL=tap.js.map
48943
48944
48945/***/ }),
48946
48947/***/ "./node_modules/rxjs/_esm5/internal/operators/throttle.js":
48948/*!****************************************************************!*\
48949 !*** ./node_modules/rxjs/_esm5/internal/operators/throttle.js ***!
48950 \****************************************************************/
48951/*! exports provided: defaultThrottleConfig, throttle */
48952/***/ (function(module, __webpack_exports__, __webpack_require__) {
48953
48954"use strict";
48955__webpack_require__.r(__webpack_exports__);
48956/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultThrottleConfig", function() { return defaultThrottleConfig; });
48957/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return throttle; });
48958/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
48959/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
48960/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
48961/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
48962
48963
48964
48965var defaultThrottleConfig = {
48966 leading: true,
48967 trailing: false
48968};
48969function throttle(durationSelector, config) {
48970 if (config === void 0) {
48971 config = defaultThrottleConfig;
48972 }
48973 return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };
48974}
48975var ThrottleOperator = /*@__PURE__*/ (function () {
48976 function ThrottleOperator(durationSelector, leading, trailing) {
48977 this.durationSelector = durationSelector;
48978 this.leading = leading;
48979 this.trailing = trailing;
48980 }
48981 ThrottleOperator.prototype.call = function (subscriber, source) {
48982 return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));
48983 };
48984 return ThrottleOperator;
48985}());
48986var ThrottleSubscriber = /*@__PURE__*/ (function (_super) {
48987 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ThrottleSubscriber, _super);
48988 function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {
48989 var _this = _super.call(this, destination) || this;
48990 _this.destination = destination;
48991 _this.durationSelector = durationSelector;
48992 _this._leading = _leading;
48993 _this._trailing = _trailing;
48994 _this._hasValue = false;
48995 return _this;
48996 }
48997 ThrottleSubscriber.prototype._next = function (value) {
48998 this._hasValue = true;
48999 this._sendValue = value;
49000 if (!this._throttled) {
49001 if (this._leading) {
49002 this.send();
49003 }
49004 else {
49005 this.throttle(value);
49006 }
49007 }
49008 };
49009 ThrottleSubscriber.prototype.send = function () {
49010 var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;
49011 if (_hasValue) {
49012 this.destination.next(_sendValue);
49013 this.throttle(_sendValue);
49014 }
49015 this._hasValue = false;
49016 this._sendValue = null;
49017 };
49018 ThrottleSubscriber.prototype.throttle = function (value) {
49019 var duration = this.tryDurationSelector(value);
49020 if (duration) {
49021 this.add(this._throttled = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, duration));
49022 }
49023 };
49024 ThrottleSubscriber.prototype.tryDurationSelector = function (value) {
49025 try {
49026 return this.durationSelector(value);
49027 }
49028 catch (err) {
49029 this.destination.error(err);
49030 return null;
49031 }
49032 };
49033 ThrottleSubscriber.prototype.throttlingDone = function () {
49034 var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;
49035 if (_throttled) {
49036 _throttled.unsubscribe();
49037 }
49038 this._throttled = null;
49039 if (_trailing) {
49040 this.send();
49041 }
49042 };
49043 ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
49044 this.throttlingDone();
49045 };
49046 ThrottleSubscriber.prototype.notifyComplete = function () {
49047 this.throttlingDone();
49048 };
49049 return ThrottleSubscriber;
49050}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
49051//# sourceMappingURL=throttle.js.map
49052
49053
49054/***/ }),
49055
49056/***/ "./node_modules/rxjs/_esm5/internal/operators/throttleTime.js":
49057/*!********************************************************************!*\
49058 !*** ./node_modules/rxjs/_esm5/internal/operators/throttleTime.js ***!
49059 \********************************************************************/
49060/*! exports provided: throttleTime */
49061/***/ (function(module, __webpack_exports__, __webpack_require__) {
49062
49063"use strict";
49064__webpack_require__.r(__webpack_exports__);
49065/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return throttleTime; });
49066/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
49067/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
49068/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
49069/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./throttle */ "./node_modules/rxjs/_esm5/internal/operators/throttle.js");
49070/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */
49071
49072
49073
49074
49075function throttleTime(duration, scheduler, config) {
49076 if (scheduler === void 0) {
49077 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"];
49078 }
49079 if (config === void 0) {
49080 config = _throttle__WEBPACK_IMPORTED_MODULE_3__["defaultThrottleConfig"];
49081 }
49082 return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };
49083}
49084var ThrottleTimeOperator = /*@__PURE__*/ (function () {
49085 function ThrottleTimeOperator(duration, scheduler, leading, trailing) {
49086 this.duration = duration;
49087 this.scheduler = scheduler;
49088 this.leading = leading;
49089 this.trailing = trailing;
49090 }
49091 ThrottleTimeOperator.prototype.call = function (subscriber, source) {
49092 return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));
49093 };
49094 return ThrottleTimeOperator;
49095}());
49096var ThrottleTimeSubscriber = /*@__PURE__*/ (function (_super) {
49097 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ThrottleTimeSubscriber, _super);
49098 function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {
49099 var _this = _super.call(this, destination) || this;
49100 _this.duration = duration;
49101 _this.scheduler = scheduler;
49102 _this.leading = leading;
49103 _this.trailing = trailing;
49104 _this._hasTrailingValue = false;
49105 _this._trailingValue = null;
49106 return _this;
49107 }
49108 ThrottleTimeSubscriber.prototype._next = function (value) {
49109 if (this.throttled) {
49110 if (this.trailing) {
49111 this._trailingValue = value;
49112 this._hasTrailingValue = true;
49113 }
49114 }
49115 else {
49116 this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));
49117 if (this.leading) {
49118 this.destination.next(value);
49119 }
49120 }
49121 };
49122 ThrottleTimeSubscriber.prototype._complete = function () {
49123 if (this._hasTrailingValue) {
49124 this.destination.next(this._trailingValue);
49125 this.destination.complete();
49126 }
49127 else {
49128 this.destination.complete();
49129 }
49130 };
49131 ThrottleTimeSubscriber.prototype.clearThrottle = function () {
49132 var throttled = this.throttled;
49133 if (throttled) {
49134 if (this.trailing && this._hasTrailingValue) {
49135 this.destination.next(this._trailingValue);
49136 this._trailingValue = null;
49137 this._hasTrailingValue = false;
49138 }
49139 throttled.unsubscribe();
49140 this.remove(throttled);
49141 this.throttled = null;
49142 }
49143 };
49144 return ThrottleTimeSubscriber;
49145}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
49146function dispatchNext(arg) {
49147 var subscriber = arg.subscriber;
49148 subscriber.clearThrottle();
49149}
49150//# sourceMappingURL=throttleTime.js.map
49151
49152
49153/***/ }),
49154
49155/***/ "./node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js":
49156/*!********************************************************************!*\
49157 !*** ./node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js ***!
49158 \********************************************************************/
49159/*! exports provided: throwIfEmpty */
49160/***/ (function(module, __webpack_exports__, __webpack_require__) {
49161
49162"use strict";
49163__webpack_require__.r(__webpack_exports__);
49164/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return throwIfEmpty; });
49165/* harmony import */ var _tap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./tap */ "./node_modules/rxjs/_esm5/internal/operators/tap.js");
49166/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/EmptyError */ "./node_modules/rxjs/_esm5/internal/util/EmptyError.js");
49167/** PURE_IMPORTS_START _tap,_util_EmptyError PURE_IMPORTS_END */
49168
49169
49170var throwIfEmpty = function (errorFactory) {
49171 if (errorFactory === void 0) {
49172 errorFactory = defaultErrorFactory;
49173 }
49174 return Object(_tap__WEBPACK_IMPORTED_MODULE_0__["tap"])({
49175 hasValue: false,
49176 next: function () { this.hasValue = true; },
49177 complete: function () {
49178 if (!this.hasValue) {
49179 throw errorFactory();
49180 }
49181 }
49182 });
49183};
49184function defaultErrorFactory() {
49185 return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__["EmptyError"]();
49186}
49187//# sourceMappingURL=throwIfEmpty.js.map
49188
49189
49190/***/ }),
49191
49192/***/ "./node_modules/rxjs/_esm5/internal/operators/timeInterval.js":
49193/*!********************************************************************!*\
49194 !*** ./node_modules/rxjs/_esm5/internal/operators/timeInterval.js ***!
49195 \********************************************************************/
49196/*! exports provided: timeInterval, TimeInterval */
49197/***/ (function(module, __webpack_exports__, __webpack_require__) {
49198
49199"use strict";
49200__webpack_require__.r(__webpack_exports__);
49201/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return timeInterval; });
49202/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeInterval", function() { return TimeInterval; });
49203/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
49204/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scan */ "./node_modules/rxjs/_esm5/internal/operators/scan.js");
49205/* harmony import */ var _observable_defer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../observable/defer */ "./node_modules/rxjs/_esm5/internal/observable/defer.js");
49206/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
49207/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */
49208
49209
49210
49211
49212function timeInterval(scheduler) {
49213 if (scheduler === void 0) {
49214 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"];
49215 }
49216 return function (source) {
49217 return Object(_observable_defer__WEBPACK_IMPORTED_MODULE_2__["defer"])(function () {
49218 return source.pipe(Object(_scan__WEBPACK_IMPORTED_MODULE_1__["scan"])(function (_a, value) {
49219 var current = _a.current;
49220 return ({ value: value, current: scheduler.now(), last: current });
49221 }, { current: scheduler.now(), value: undefined, last: undefined }), Object(_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (_a) {
49222 var current = _a.current, last = _a.last, value = _a.value;
49223 return new TimeInterval(value, current - last);
49224 }));
49225 });
49226 };
49227}
49228var TimeInterval = /*@__PURE__*/ (function () {
49229 function TimeInterval(value, interval) {
49230 this.value = value;
49231 this.interval = interval;
49232 }
49233 return TimeInterval;
49234}());
49235
49236//# sourceMappingURL=timeInterval.js.map
49237
49238
49239/***/ }),
49240
49241/***/ "./node_modules/rxjs/_esm5/internal/operators/timeout.js":
49242/*!***************************************************************!*\
49243 !*** ./node_modules/rxjs/_esm5/internal/operators/timeout.js ***!
49244 \***************************************************************/
49245/*! exports provided: timeout */
49246/***/ (function(module, __webpack_exports__, __webpack_require__) {
49247
49248"use strict";
49249__webpack_require__.r(__webpack_exports__);
49250/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return timeout; });
49251/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
49252/* harmony import */ var _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/TimeoutError */ "./node_modules/rxjs/_esm5/internal/util/TimeoutError.js");
49253/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./timeoutWith */ "./node_modules/rxjs/_esm5/internal/operators/timeoutWith.js");
49254/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../observable/throwError */ "./node_modules/rxjs/_esm5/internal/observable/throwError.js");
49255/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */
49256
49257
49258
49259
49260function timeout(due, scheduler) {
49261 if (scheduler === void 0) {
49262 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"];
49263 }
49264 return Object(_timeoutWith__WEBPACK_IMPORTED_MODULE_2__["timeoutWith"])(due, Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_3__["throwError"])(new _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__["TimeoutError"]()), scheduler);
49265}
49266//# sourceMappingURL=timeout.js.map
49267
49268
49269/***/ }),
49270
49271/***/ "./node_modules/rxjs/_esm5/internal/operators/timeoutWith.js":
49272/*!*******************************************************************!*\
49273 !*** ./node_modules/rxjs/_esm5/internal/operators/timeoutWith.js ***!
49274 \*******************************************************************/
49275/*! exports provided: timeoutWith */
49276/***/ (function(module, __webpack_exports__, __webpack_require__) {
49277
49278"use strict";
49279__webpack_require__.r(__webpack_exports__);
49280/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return timeoutWith; });
49281/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
49282/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
49283/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isDate */ "./node_modules/rxjs/_esm5/internal/util/isDate.js");
49284/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
49285/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
49286/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
49287
49288
49289
49290
49291
49292function timeoutWith(due, withObservable, scheduler) {
49293 if (scheduler === void 0) {
49294 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"];
49295 }
49296 return function (source) {
49297 var absoluteTimeout = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__["isDate"])(due);
49298 var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);
49299 return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));
49300 };
49301}
49302var TimeoutWithOperator = /*@__PURE__*/ (function () {
49303 function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {
49304 this.waitFor = waitFor;
49305 this.absoluteTimeout = absoluteTimeout;
49306 this.withObservable = withObservable;
49307 this.scheduler = scheduler;
49308 }
49309 TimeoutWithOperator.prototype.call = function (subscriber, source) {
49310 return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));
49311 };
49312 return TimeoutWithOperator;
49313}());
49314var TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) {
49315 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TimeoutWithSubscriber, _super);
49316 function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {
49317 var _this = _super.call(this, destination) || this;
49318 _this.absoluteTimeout = absoluteTimeout;
49319 _this.waitFor = waitFor;
49320 _this.withObservable = withObservable;
49321 _this.scheduler = scheduler;
49322 _this.action = null;
49323 _this.scheduleTimeout();
49324 return _this;
49325 }
49326 TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {
49327 var withObservable = subscriber.withObservable;
49328 subscriber._unsubscribeAndRecycle();
49329 subscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(subscriber, withObservable));
49330 };
49331 TimeoutWithSubscriber.prototype.scheduleTimeout = function () {
49332 var action = this.action;
49333 if (action) {
49334 this.action = action.schedule(this, this.waitFor);
49335 }
49336 else {
49337 this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));
49338 }
49339 };
49340 TimeoutWithSubscriber.prototype._next = function (value) {
49341 if (!this.absoluteTimeout) {
49342 this.scheduleTimeout();
49343 }
49344 _super.prototype._next.call(this, value);
49345 };
49346 TimeoutWithSubscriber.prototype._unsubscribe = function () {
49347 this.action = null;
49348 this.scheduler = null;
49349 this.withObservable = null;
49350 };
49351 return TimeoutWithSubscriber;
49352}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"]));
49353//# sourceMappingURL=timeoutWith.js.map
49354
49355
49356/***/ }),
49357
49358/***/ "./node_modules/rxjs/_esm5/internal/operators/timestamp.js":
49359/*!*****************************************************************!*\
49360 !*** ./node_modules/rxjs/_esm5/internal/operators/timestamp.js ***!
49361 \*****************************************************************/
49362/*! exports provided: timestamp, Timestamp */
49363/***/ (function(module, __webpack_exports__, __webpack_require__) {
49364
49365"use strict";
49366__webpack_require__.r(__webpack_exports__);
49367/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return timestamp; });
49368/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Timestamp", function() { return Timestamp; });
49369/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
49370/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
49371/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */
49372
49373
49374function timestamp(scheduler) {
49375 if (scheduler === void 0) {
49376 scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"];
49377 }
49378 return Object(_map__WEBPACK_IMPORTED_MODULE_1__["map"])(function (value) { return new Timestamp(value, scheduler.now()); });
49379}
49380var Timestamp = /*@__PURE__*/ (function () {
49381 function Timestamp(value, timestamp) {
49382 this.value = value;
49383 this.timestamp = timestamp;
49384 }
49385 return Timestamp;
49386}());
49387
49388//# sourceMappingURL=timestamp.js.map
49389
49390
49391/***/ }),
49392
49393/***/ "./node_modules/rxjs/_esm5/internal/operators/toArray.js":
49394/*!***************************************************************!*\
49395 !*** ./node_modules/rxjs/_esm5/internal/operators/toArray.js ***!
49396 \***************************************************************/
49397/*! exports provided: toArray */
49398/***/ (function(module, __webpack_exports__, __webpack_require__) {
49399
49400"use strict";
49401__webpack_require__.r(__webpack_exports__);
49402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return toArray; });
49403/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reduce */ "./node_modules/rxjs/_esm5/internal/operators/reduce.js");
49404/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */
49405
49406function toArrayReducer(arr, item, index) {
49407 if (index === 0) {
49408 return [item];
49409 }
49410 arr.push(item);
49411 return arr;
49412}
49413function toArray() {
49414 return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(toArrayReducer, []);
49415}
49416//# sourceMappingURL=toArray.js.map
49417
49418
49419/***/ }),
49420
49421/***/ "./node_modules/rxjs/_esm5/internal/operators/window.js":
49422/*!**************************************************************!*\
49423 !*** ./node_modules/rxjs/_esm5/internal/operators/window.js ***!
49424 \**************************************************************/
49425/*! exports provided: window */
49426/***/ (function(module, __webpack_exports__, __webpack_require__) {
49427
49428"use strict";
49429__webpack_require__.r(__webpack_exports__);
49430/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "window", function() { return window; });
49431/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
49432/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
49433/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
49434/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
49435/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
49436
49437
49438
49439
49440function window(windowBoundaries) {
49441 return function windowOperatorFunction(source) {
49442 return source.lift(new WindowOperator(windowBoundaries));
49443 };
49444}
49445var WindowOperator = /*@__PURE__*/ (function () {
49446 function WindowOperator(windowBoundaries) {
49447 this.windowBoundaries = windowBoundaries;
49448 }
49449 WindowOperator.prototype.call = function (subscriber, source) {
49450 var windowSubscriber = new WindowSubscriber(subscriber);
49451 var sourceSubscription = source.subscribe(windowSubscriber);
49452 if (!sourceSubscription.closed) {
49453 windowSubscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(windowSubscriber, this.windowBoundaries));
49454 }
49455 return sourceSubscription;
49456 };
49457 return WindowOperator;
49458}());
49459var WindowSubscriber = /*@__PURE__*/ (function (_super) {
49460 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowSubscriber, _super);
49461 function WindowSubscriber(destination) {
49462 var _this = _super.call(this, destination) || this;
49463 _this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"]();
49464 destination.next(_this.window);
49465 return _this;
49466 }
49467 WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
49468 this.openWindow();
49469 };
49470 WindowSubscriber.prototype.notifyError = function (error, innerSub) {
49471 this._error(error);
49472 };
49473 WindowSubscriber.prototype.notifyComplete = function (innerSub) {
49474 this._complete();
49475 };
49476 WindowSubscriber.prototype._next = function (value) {
49477 this.window.next(value);
49478 };
49479 WindowSubscriber.prototype._error = function (err) {
49480 this.window.error(err);
49481 this.destination.error(err);
49482 };
49483 WindowSubscriber.prototype._complete = function () {
49484 this.window.complete();
49485 this.destination.complete();
49486 };
49487 WindowSubscriber.prototype._unsubscribe = function () {
49488 this.window = null;
49489 };
49490 WindowSubscriber.prototype.openWindow = function () {
49491 var prevWindow = this.window;
49492 if (prevWindow) {
49493 prevWindow.complete();
49494 }
49495 var destination = this.destination;
49496 var newWindow = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"]();
49497 destination.next(newWindow);
49498 };
49499 return WindowSubscriber;
49500}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"]));
49501//# sourceMappingURL=window.js.map
49502
49503
49504/***/ }),
49505
49506/***/ "./node_modules/rxjs/_esm5/internal/operators/windowCount.js":
49507/*!*******************************************************************!*\
49508 !*** ./node_modules/rxjs/_esm5/internal/operators/windowCount.js ***!
49509 \*******************************************************************/
49510/*! exports provided: windowCount */
49511/***/ (function(module, __webpack_exports__, __webpack_require__) {
49512
49513"use strict";
49514__webpack_require__.r(__webpack_exports__);
49515/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return windowCount; });
49516/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
49517/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
49518/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
49519/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */
49520
49521
49522
49523function windowCount(windowSize, startWindowEvery) {
49524 if (startWindowEvery === void 0) {
49525 startWindowEvery = 0;
49526 }
49527 return function windowCountOperatorFunction(source) {
49528 return source.lift(new WindowCountOperator(windowSize, startWindowEvery));
49529 };
49530}
49531var WindowCountOperator = /*@__PURE__*/ (function () {
49532 function WindowCountOperator(windowSize, startWindowEvery) {
49533 this.windowSize = windowSize;
49534 this.startWindowEvery = startWindowEvery;
49535 }
49536 WindowCountOperator.prototype.call = function (subscriber, source) {
49537 return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));
49538 };
49539 return WindowCountOperator;
49540}());
49541var WindowCountSubscriber = /*@__PURE__*/ (function (_super) {
49542 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowCountSubscriber, _super);
49543 function WindowCountSubscriber(destination, windowSize, startWindowEvery) {
49544 var _this = _super.call(this, destination) || this;
49545 _this.destination = destination;
49546 _this.windowSize = windowSize;
49547 _this.startWindowEvery = startWindowEvery;
49548 _this.windows = [new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"]()];
49549 _this.count = 0;
49550 destination.next(_this.windows[0]);
49551 return _this;
49552 }
49553 WindowCountSubscriber.prototype._next = function (value) {
49554 var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;
49555 var destination = this.destination;
49556 var windowSize = this.windowSize;
49557 var windows = this.windows;
49558 var len = windows.length;
49559 for (var i = 0; i < len && !this.closed; i++) {
49560 windows[i].next(value);
49561 }
49562 var c = this.count - windowSize + 1;
49563 if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {
49564 windows.shift().complete();
49565 }
49566 if (++this.count % startWindowEvery === 0 && !this.closed) {
49567 var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"]();
49568 windows.push(window_1);
49569 destination.next(window_1);
49570 }
49571 };
49572 WindowCountSubscriber.prototype._error = function (err) {
49573 var windows = this.windows;
49574 if (windows) {
49575 while (windows.length > 0 && !this.closed) {
49576 windows.shift().error(err);
49577 }
49578 }
49579 this.destination.error(err);
49580 };
49581 WindowCountSubscriber.prototype._complete = function () {
49582 var windows = this.windows;
49583 if (windows) {
49584 while (windows.length > 0 && !this.closed) {
49585 windows.shift().complete();
49586 }
49587 }
49588 this.destination.complete();
49589 };
49590 WindowCountSubscriber.prototype._unsubscribe = function () {
49591 this.count = 0;
49592 this.windows = null;
49593 };
49594 return WindowCountSubscriber;
49595}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"]));
49596//# sourceMappingURL=windowCount.js.map
49597
49598
49599/***/ }),
49600
49601/***/ "./node_modules/rxjs/_esm5/internal/operators/windowTime.js":
49602/*!******************************************************************!*\
49603 !*** ./node_modules/rxjs/_esm5/internal/operators/windowTime.js ***!
49604 \******************************************************************/
49605/*! exports provided: windowTime */
49606/***/ (function(module, __webpack_exports__, __webpack_require__) {
49607
49608"use strict";
49609__webpack_require__.r(__webpack_exports__);
49610/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return windowTime; });
49611/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
49612/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
49613/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../scheduler/async */ "./node_modules/rxjs/_esm5/internal/scheduler/async.js");
49614/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
49615/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/isNumeric */ "./node_modules/rxjs/_esm5/internal/util/isNumeric.js");
49616/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/isScheduler */ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js");
49617/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */
49618
49619
49620
49621
49622
49623
49624function windowTime(windowTimeSpan) {
49625 var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"];
49626 var windowCreationInterval = null;
49627 var maxWindowSize = Number.POSITIVE_INFINITY;
49628 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[3])) {
49629 scheduler = arguments[3];
49630 }
49631 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[2])) {
49632 scheduler = arguments[2];
49633 }
49634 else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(arguments[2])) {
49635 maxWindowSize = arguments[2];
49636 }
49637 if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[1])) {
49638 scheduler = arguments[1];
49639 }
49640 else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(arguments[1])) {
49641 windowCreationInterval = arguments[1];
49642 }
49643 return function windowTimeOperatorFunction(source) {
49644 return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));
49645 };
49646}
49647var WindowTimeOperator = /*@__PURE__*/ (function () {
49648 function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {
49649 this.windowTimeSpan = windowTimeSpan;
49650 this.windowCreationInterval = windowCreationInterval;
49651 this.maxWindowSize = maxWindowSize;
49652 this.scheduler = scheduler;
49653 }
49654 WindowTimeOperator.prototype.call = function (subscriber, source) {
49655 return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));
49656 };
49657 return WindowTimeOperator;
49658}());
49659var CountedSubject = /*@__PURE__*/ (function (_super) {
49660 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CountedSubject, _super);
49661 function CountedSubject() {
49662 var _this = _super !== null && _super.apply(this, arguments) || this;
49663 _this._numberOfNextedValues = 0;
49664 return _this;
49665 }
49666 CountedSubject.prototype.next = function (value) {
49667 this._numberOfNextedValues++;
49668 _super.prototype.next.call(this, value);
49669 };
49670 Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", {
49671 get: function () {
49672 return this._numberOfNextedValues;
49673 },
49674 enumerable: true,
49675 configurable: true
49676 });
49677 return CountedSubject;
49678}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"]));
49679var WindowTimeSubscriber = /*@__PURE__*/ (function (_super) {
49680 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowTimeSubscriber, _super);
49681 function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {
49682 var _this = _super.call(this, destination) || this;
49683 _this.destination = destination;
49684 _this.windowTimeSpan = windowTimeSpan;
49685 _this.windowCreationInterval = windowCreationInterval;
49686 _this.maxWindowSize = maxWindowSize;
49687 _this.scheduler = scheduler;
49688 _this.windows = [];
49689 var window = _this.openWindow();
49690 if (windowCreationInterval !== null && windowCreationInterval >= 0) {
49691 var closeState = { subscriber: _this, window: window, context: null };
49692 var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };
49693 _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));
49694 _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));
49695 }
49696 else {
49697 var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };
49698 _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));
49699 }
49700 return _this;
49701 }
49702 WindowTimeSubscriber.prototype._next = function (value) {
49703 var windows = this.windows;
49704 var len = windows.length;
49705 for (var i = 0; i < len; i++) {
49706 var window_1 = windows[i];
49707 if (!window_1.closed) {
49708 window_1.next(value);
49709 if (window_1.numberOfNextedValues >= this.maxWindowSize) {
49710 this.closeWindow(window_1);
49711 }
49712 }
49713 }
49714 };
49715 WindowTimeSubscriber.prototype._error = function (err) {
49716 var windows = this.windows;
49717 while (windows.length > 0) {
49718 windows.shift().error(err);
49719 }
49720 this.destination.error(err);
49721 };
49722 WindowTimeSubscriber.prototype._complete = function () {
49723 var windows = this.windows;
49724 while (windows.length > 0) {
49725 var window_2 = windows.shift();
49726 if (!window_2.closed) {
49727 window_2.complete();
49728 }
49729 }
49730 this.destination.complete();
49731 };
49732 WindowTimeSubscriber.prototype.openWindow = function () {
49733 var window = new CountedSubject();
49734 this.windows.push(window);
49735 var destination = this.destination;
49736 destination.next(window);
49737 return window;
49738 };
49739 WindowTimeSubscriber.prototype.closeWindow = function (window) {
49740 window.complete();
49741 var windows = this.windows;
49742 windows.splice(windows.indexOf(window), 1);
49743 };
49744 return WindowTimeSubscriber;
49745}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"]));
49746function dispatchWindowTimeSpanOnly(state) {
49747 var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;
49748 if (window) {
49749 subscriber.closeWindow(window);
49750 }
49751 state.window = subscriber.openWindow();
49752 this.schedule(state, windowTimeSpan);
49753}
49754function dispatchWindowCreation(state) {
49755 var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;
49756 var window = subscriber.openWindow();
49757 var action = this;
49758 var context = { action: action, subscription: null };
49759 var timeSpanState = { subscriber: subscriber, window: window, context: context };
49760 context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);
49761 action.add(context.subscription);
49762 action.schedule(state, windowCreationInterval);
49763}
49764function dispatchWindowClose(state) {
49765 var subscriber = state.subscriber, window = state.window, context = state.context;
49766 if (context && context.action && context.subscription) {
49767 context.action.remove(context.subscription);
49768 }
49769 subscriber.closeWindow(window);
49770}
49771//# sourceMappingURL=windowTime.js.map
49772
49773
49774/***/ }),
49775
49776/***/ "./node_modules/rxjs/_esm5/internal/operators/windowToggle.js":
49777/*!********************************************************************!*\
49778 !*** ./node_modules/rxjs/_esm5/internal/operators/windowToggle.js ***!
49779 \********************************************************************/
49780/*! exports provided: windowToggle */
49781/***/ (function(module, __webpack_exports__, __webpack_require__) {
49782
49783"use strict";
49784__webpack_require__.r(__webpack_exports__);
49785/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return windowToggle; });
49786/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
49787/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
49788/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
49789/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
49790/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
49791/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
49792/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
49793/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
49794
49795
49796
49797
49798
49799
49800
49801function windowToggle(openings, closingSelector) {
49802 return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };
49803}
49804var WindowToggleOperator = /*@__PURE__*/ (function () {
49805 function WindowToggleOperator(openings, closingSelector) {
49806 this.openings = openings;
49807 this.closingSelector = closingSelector;
49808 }
49809 WindowToggleOperator.prototype.call = function (subscriber, source) {
49810 return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));
49811 };
49812 return WindowToggleOperator;
49813}());
49814var WindowToggleSubscriber = /*@__PURE__*/ (function (_super) {
49815 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowToggleSubscriber, _super);
49816 function WindowToggleSubscriber(destination, openings, closingSelector) {
49817 var _this = _super.call(this, destination) || this;
49818 _this.openings = openings;
49819 _this.closingSelector = closingSelector;
49820 _this.contexts = [];
49821 _this.add(_this.openSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_6__["subscribeToResult"])(_this, openings, openings));
49822 return _this;
49823 }
49824 WindowToggleSubscriber.prototype._next = function (value) {
49825 var contexts = this.contexts;
49826 if (contexts) {
49827 var len = contexts.length;
49828 for (var i = 0; i < len; i++) {
49829 contexts[i].window.next(value);
49830 }
49831 }
49832 };
49833 WindowToggleSubscriber.prototype._error = function (err) {
49834 var contexts = this.contexts;
49835 this.contexts = null;
49836 if (contexts) {
49837 var len = contexts.length;
49838 var index = -1;
49839 while (++index < len) {
49840 var context_1 = contexts[index];
49841 context_1.window.error(err);
49842 context_1.subscription.unsubscribe();
49843 }
49844 }
49845 _super.prototype._error.call(this, err);
49846 };
49847 WindowToggleSubscriber.prototype._complete = function () {
49848 var contexts = this.contexts;
49849 this.contexts = null;
49850 if (contexts) {
49851 var len = contexts.length;
49852 var index = -1;
49853 while (++index < len) {
49854 var context_2 = contexts[index];
49855 context_2.window.complete();
49856 context_2.subscription.unsubscribe();
49857 }
49858 }
49859 _super.prototype._complete.call(this);
49860 };
49861 WindowToggleSubscriber.prototype._unsubscribe = function () {
49862 var contexts = this.contexts;
49863 this.contexts = null;
49864 if (contexts) {
49865 var len = contexts.length;
49866 var index = -1;
49867 while (++index < len) {
49868 var context_3 = contexts[index];
49869 context_3.window.unsubscribe();
49870 context_3.subscription.unsubscribe();
49871 }
49872 }
49873 };
49874 WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
49875 if (outerValue === this.openings) {
49876 var closingSelector = this.closingSelector;
49877 var closingNotifier = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_3__["tryCatch"])(closingSelector)(innerValue);
49878 if (closingNotifier === _util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"]) {
49879 return this.error(_util_errorObject__WEBPACK_IMPORTED_MODULE_4__["errorObject"].e);
49880 }
49881 else {
49882 var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"]();
49883 var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"]();
49884 var context_4 = { window: window_1, subscription: subscription };
49885 this.contexts.push(context_4);
49886 var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_6__["subscribeToResult"])(this, closingNotifier, context_4);
49887 if (innerSubscription.closed) {
49888 this.closeWindow(this.contexts.length - 1);
49889 }
49890 else {
49891 innerSubscription.context = context_4;
49892 subscription.add(innerSubscription);
49893 }
49894 this.destination.next(window_1);
49895 }
49896 }
49897 else {
49898 this.closeWindow(this.contexts.indexOf(outerValue));
49899 }
49900 };
49901 WindowToggleSubscriber.prototype.notifyError = function (err) {
49902 this.error(err);
49903 };
49904 WindowToggleSubscriber.prototype.notifyComplete = function (inner) {
49905 if (inner !== this.openSubscription) {
49906 this.closeWindow(this.contexts.indexOf(inner.context));
49907 }
49908 };
49909 WindowToggleSubscriber.prototype.closeWindow = function (index) {
49910 if (index === -1) {
49911 return;
49912 }
49913 var contexts = this.contexts;
49914 var context = contexts[index];
49915 var window = context.window, subscription = context.subscription;
49916 contexts.splice(index, 1);
49917 window.complete();
49918 subscription.unsubscribe();
49919 };
49920 return WindowToggleSubscriber;
49921}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_5__["OuterSubscriber"]));
49922//# sourceMappingURL=windowToggle.js.map
49923
49924
49925/***/ }),
49926
49927/***/ "./node_modules/rxjs/_esm5/internal/operators/windowWhen.js":
49928/*!******************************************************************!*\
49929 !*** ./node_modules/rxjs/_esm5/internal/operators/windowWhen.js ***!
49930 \******************************************************************/
49931/*! exports provided: windowWhen */
49932/***/ (function(module, __webpack_exports__, __webpack_require__) {
49933
49934"use strict";
49935__webpack_require__.r(__webpack_exports__);
49936/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return windowWhen; });
49937/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
49938/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subject */ "./node_modules/rxjs/_esm5/internal/Subject.js");
49939/* harmony import */ var _util_tryCatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/tryCatch */ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js");
49940/* harmony import */ var _util_errorObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
49941/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
49942/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
49943/** PURE_IMPORTS_START tslib,_Subject,_util_tryCatch,_util_errorObject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
49944
49945
49946
49947
49948
49949
49950function windowWhen(closingSelector) {
49951 return function windowWhenOperatorFunction(source) {
49952 return source.lift(new WindowOperator(closingSelector));
49953 };
49954}
49955var WindowOperator = /*@__PURE__*/ (function () {
49956 function WindowOperator(closingSelector) {
49957 this.closingSelector = closingSelector;
49958 }
49959 WindowOperator.prototype.call = function (subscriber, source) {
49960 return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));
49961 };
49962 return WindowOperator;
49963}());
49964var WindowSubscriber = /*@__PURE__*/ (function (_super) {
49965 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowSubscriber, _super);
49966 function WindowSubscriber(destination, closingSelector) {
49967 var _this = _super.call(this, destination) || this;
49968 _this.destination = destination;
49969 _this.closingSelector = closingSelector;
49970 _this.openWindow();
49971 return _this;
49972 }
49973 WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
49974 this.openWindow(innerSub);
49975 };
49976 WindowSubscriber.prototype.notifyError = function (error, innerSub) {
49977 this._error(error);
49978 };
49979 WindowSubscriber.prototype.notifyComplete = function (innerSub) {
49980 this.openWindow(innerSub);
49981 };
49982 WindowSubscriber.prototype._next = function (value) {
49983 this.window.next(value);
49984 };
49985 WindowSubscriber.prototype._error = function (err) {
49986 this.window.error(err);
49987 this.destination.error(err);
49988 this.unsubscribeClosingNotification();
49989 };
49990 WindowSubscriber.prototype._complete = function () {
49991 this.window.complete();
49992 this.destination.complete();
49993 this.unsubscribeClosingNotification();
49994 };
49995 WindowSubscriber.prototype.unsubscribeClosingNotification = function () {
49996 if (this.closingNotification) {
49997 this.closingNotification.unsubscribe();
49998 }
49999 };
50000 WindowSubscriber.prototype.openWindow = function (innerSub) {
50001 if (innerSub === void 0) {
50002 innerSub = null;
50003 }
50004 if (innerSub) {
50005 this.remove(innerSub);
50006 innerSub.unsubscribe();
50007 }
50008 var prevWindow = this.window;
50009 if (prevWindow) {
50010 prevWindow.complete();
50011 }
50012 var window = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"]();
50013 this.destination.next(window);
50014 var closingNotifier = Object(_util_tryCatch__WEBPACK_IMPORTED_MODULE_2__["tryCatch"])(this.closingSelector)();
50015 if (closingNotifier === _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"]) {
50016 var err = _util_errorObject__WEBPACK_IMPORTED_MODULE_3__["errorObject"].e;
50017 this.destination.error(err);
50018 this.window.error(err);
50019 }
50020 else {
50021 this.add(this.closingNotification = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, closingNotifier));
50022 }
50023 };
50024 return WindowSubscriber;
50025}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"]));
50026//# sourceMappingURL=windowWhen.js.map
50027
50028
50029/***/ }),
50030
50031/***/ "./node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js":
50032/*!**********************************************************************!*\
50033 !*** ./node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js ***!
50034 \**********************************************************************/
50035/*! exports provided: withLatestFrom */
50036/***/ (function(module, __webpack_exports__, __webpack_require__) {
50037
50038"use strict";
50039__webpack_require__.r(__webpack_exports__);
50040/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return withLatestFrom; });
50041/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50042/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../OuterSubscriber */ "./node_modules/rxjs/_esm5/internal/OuterSubscriber.js");
50043/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/subscribeToResult */ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js");
50044/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */
50045
50046
50047
50048function withLatestFrom() {
50049 var args = [];
50050 for (var _i = 0; _i < arguments.length; _i++) {
50051 args[_i] = arguments[_i];
50052 }
50053 return function (source) {
50054 var project;
50055 if (typeof args[args.length - 1] === 'function') {
50056 project = args.pop();
50057 }
50058 var observables = args;
50059 return source.lift(new WithLatestFromOperator(observables, project));
50060 };
50061}
50062var WithLatestFromOperator = /*@__PURE__*/ (function () {
50063 function WithLatestFromOperator(observables, project) {
50064 this.observables = observables;
50065 this.project = project;
50066 }
50067 WithLatestFromOperator.prototype.call = function (subscriber, source) {
50068 return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));
50069 };
50070 return WithLatestFromOperator;
50071}());
50072var WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) {
50073 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WithLatestFromSubscriber, _super);
50074 function WithLatestFromSubscriber(destination, observables, project) {
50075 var _this = _super.call(this, destination) || this;
50076 _this.observables = observables;
50077 _this.project = project;
50078 _this.toRespond = [];
50079 var len = observables.length;
50080 _this.values = new Array(len);
50081 for (var i = 0; i < len; i++) {
50082 _this.toRespond.push(i);
50083 }
50084 for (var i = 0; i < len; i++) {
50085 var observable = observables[i];
50086 _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, observable, observable, i));
50087 }
50088 return _this;
50089 }
50090 WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {
50091 this.values[outerIndex] = innerValue;
50092 var toRespond = this.toRespond;
50093 if (toRespond.length > 0) {
50094 var found = toRespond.indexOf(outerIndex);
50095 if (found !== -1) {
50096 toRespond.splice(found, 1);
50097 }
50098 }
50099 };
50100 WithLatestFromSubscriber.prototype.notifyComplete = function () {
50101 };
50102 WithLatestFromSubscriber.prototype._next = function (value) {
50103 if (this.toRespond.length === 0) {
50104 var args = [value].concat(this.values);
50105 if (this.project) {
50106 this._tryProject(args);
50107 }
50108 else {
50109 this.destination.next(args);
50110 }
50111 }
50112 };
50113 WithLatestFromSubscriber.prototype._tryProject = function (args) {
50114 var result;
50115 try {
50116 result = this.project.apply(this, args);
50117 }
50118 catch (err) {
50119 this.destination.error(err);
50120 return;
50121 }
50122 this.destination.next(result);
50123 };
50124 return WithLatestFromSubscriber;
50125}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"]));
50126//# sourceMappingURL=withLatestFrom.js.map
50127
50128
50129/***/ }),
50130
50131/***/ "./node_modules/rxjs/_esm5/internal/operators/zip.js":
50132/*!***********************************************************!*\
50133 !*** ./node_modules/rxjs/_esm5/internal/operators/zip.js ***!
50134 \***********************************************************/
50135/*! exports provided: zip */
50136/***/ (function(module, __webpack_exports__, __webpack_require__) {
50137
50138"use strict";
50139__webpack_require__.r(__webpack_exports__);
50140/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return zip; });
50141/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/zip */ "./node_modules/rxjs/_esm5/internal/observable/zip.js");
50142/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */
50143
50144function zip() {
50145 var observables = [];
50146 for (var _i = 0; _i < arguments.length; _i++) {
50147 observables[_i] = arguments[_i];
50148 }
50149 return function zipOperatorFunction(source) {
50150 return source.lift.call(_observable_zip__WEBPACK_IMPORTED_MODULE_0__["zip"].apply(void 0, [source].concat(observables)));
50151 };
50152}
50153//# sourceMappingURL=zip.js.map
50154
50155
50156/***/ }),
50157
50158/***/ "./node_modules/rxjs/_esm5/internal/operators/zipAll.js":
50159/*!**************************************************************!*\
50160 !*** ./node_modules/rxjs/_esm5/internal/operators/zipAll.js ***!
50161 \**************************************************************/
50162/*! exports provided: zipAll */
50163/***/ (function(module, __webpack_exports__, __webpack_require__) {
50164
50165"use strict";
50166__webpack_require__.r(__webpack_exports__);
50167/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return zipAll; });
50168/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/zip */ "./node_modules/rxjs/_esm5/internal/observable/zip.js");
50169/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */
50170
50171function zipAll(project) {
50172 return function (source) { return source.lift(new _observable_zip__WEBPACK_IMPORTED_MODULE_0__["ZipOperator"](project)); };
50173}
50174//# sourceMappingURL=zipAll.js.map
50175
50176
50177/***/ }),
50178
50179/***/ "./node_modules/rxjs/_esm5/internal/scheduler/Action.js":
50180/*!**************************************************************!*\
50181 !*** ./node_modules/rxjs/_esm5/internal/scheduler/Action.js ***!
50182 \**************************************************************/
50183/*! exports provided: Action */
50184/***/ (function(module, __webpack_exports__, __webpack_require__) {
50185
50186"use strict";
50187__webpack_require__.r(__webpack_exports__);
50188/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Action", function() { return Action; });
50189/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50190/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Subscription */ "./node_modules/rxjs/_esm5/internal/Subscription.js");
50191/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */
50192
50193
50194var Action = /*@__PURE__*/ (function (_super) {
50195 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Action, _super);
50196 function Action(scheduler, work) {
50197 return _super.call(this) || this;
50198 }
50199 Action.prototype.schedule = function (state, delay) {
50200 if (delay === void 0) {
50201 delay = 0;
50202 }
50203 return this;
50204 };
50205 return Action;
50206}(_Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"]));
50207
50208//# sourceMappingURL=Action.js.map
50209
50210
50211/***/ }),
50212
50213/***/ "./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js":
50214/*!****************************************************************************!*\
50215 !*** ./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js ***!
50216 \****************************************************************************/
50217/*! exports provided: AnimationFrameAction */
50218/***/ (function(module, __webpack_exports__, __webpack_require__) {
50219
50220"use strict";
50221__webpack_require__.r(__webpack_exports__);
50222/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameAction", function() { return AnimationFrameAction; });
50223/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50224/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js");
50225/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */
50226
50227
50228var AnimationFrameAction = /*@__PURE__*/ (function (_super) {
50229 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnimationFrameAction, _super);
50230 function AnimationFrameAction(scheduler, work) {
50231 var _this = _super.call(this, scheduler, work) || this;
50232 _this.scheduler = scheduler;
50233 _this.work = work;
50234 return _this;
50235 }
50236 AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {
50237 if (delay === void 0) {
50238 delay = 0;
50239 }
50240 if (delay !== null && delay > 0) {
50241 return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
50242 }
50243 scheduler.actions.push(this);
50244 return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));
50245 };
50246 AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
50247 if (delay === void 0) {
50248 delay = 0;
50249 }
50250 if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
50251 return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
50252 }
50253 if (scheduler.actions.length === 0) {
50254 cancelAnimationFrame(id);
50255 scheduler.scheduled = undefined;
50256 }
50257 return undefined;
50258 };
50259 return AnimationFrameAction;
50260}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"]));
50261
50262//# sourceMappingURL=AnimationFrameAction.js.map
50263
50264
50265/***/ }),
50266
50267/***/ "./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js":
50268/*!*******************************************************************************!*\
50269 !*** ./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js ***!
50270 \*******************************************************************************/
50271/*! exports provided: AnimationFrameScheduler */
50272/***/ (function(module, __webpack_exports__, __webpack_require__) {
50273
50274"use strict";
50275__webpack_require__.r(__webpack_exports__);
50276/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameScheduler", function() { return AnimationFrameScheduler; });
50277/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50278/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js");
50279/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */
50280
50281
50282var AnimationFrameScheduler = /*@__PURE__*/ (function (_super) {
50283 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnimationFrameScheduler, _super);
50284 function AnimationFrameScheduler() {
50285 return _super !== null && _super.apply(this, arguments) || this;
50286 }
50287 AnimationFrameScheduler.prototype.flush = function (action) {
50288 this.active = true;
50289 this.scheduled = undefined;
50290 var actions = this.actions;
50291 var error;
50292 var index = -1;
50293 var count = actions.length;
50294 action = action || actions.shift();
50295 do {
50296 if (error = action.execute(action.state, action.delay)) {
50297 break;
50298 }
50299 } while (++index < count && (action = actions.shift()));
50300 this.active = false;
50301 if (error) {
50302 while (++index < count && (action = actions.shift())) {
50303 action.unsubscribe();
50304 }
50305 throw error;
50306 }
50307 };
50308 return AnimationFrameScheduler;
50309}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"]));
50310
50311//# sourceMappingURL=AnimationFrameScheduler.js.map
50312
50313
50314/***/ }),
50315
50316/***/ "./node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js":
50317/*!******************************************************************!*\
50318 !*** ./node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js ***!
50319 \******************************************************************/
50320/*! exports provided: AsapAction */
50321/***/ (function(module, __webpack_exports__, __webpack_require__) {
50322
50323"use strict";
50324__webpack_require__.r(__webpack_exports__);
50325/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsapAction", function() { return AsapAction; });
50326/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50327/* harmony import */ var _util_Immediate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/Immediate */ "./node_modules/rxjs/_esm5/internal/util/Immediate.js");
50328/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AsyncAction */ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js");
50329/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */
50330
50331
50332
50333var AsapAction = /*@__PURE__*/ (function (_super) {
50334 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsapAction, _super);
50335 function AsapAction(scheduler, work) {
50336 var _this = _super.call(this, scheduler, work) || this;
50337 _this.scheduler = scheduler;
50338 _this.work = work;
50339 return _this;
50340 }
50341 AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {
50342 if (delay === void 0) {
50343 delay = 0;
50344 }
50345 if (delay !== null && delay > 0) {
50346 return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
50347 }
50348 scheduler.actions.push(this);
50349 return scheduler.scheduled || (scheduler.scheduled = _util_Immediate__WEBPACK_IMPORTED_MODULE_1__["Immediate"].setImmediate(scheduler.flush.bind(scheduler, null)));
50350 };
50351 AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
50352 if (delay === void 0) {
50353 delay = 0;
50354 }
50355 if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
50356 return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
50357 }
50358 if (scheduler.actions.length === 0) {
50359 _util_Immediate__WEBPACK_IMPORTED_MODULE_1__["Immediate"].clearImmediate(id);
50360 scheduler.scheduled = undefined;
50361 }
50362 return undefined;
50363 };
50364 return AsapAction;
50365}(_AsyncAction__WEBPACK_IMPORTED_MODULE_2__["AsyncAction"]));
50366
50367//# sourceMappingURL=AsapAction.js.map
50368
50369
50370/***/ }),
50371
50372/***/ "./node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js":
50373/*!*********************************************************************!*\
50374 !*** ./node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js ***!
50375 \*********************************************************************/
50376/*! exports provided: AsapScheduler */
50377/***/ (function(module, __webpack_exports__, __webpack_require__) {
50378
50379"use strict";
50380__webpack_require__.r(__webpack_exports__);
50381/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsapScheduler", function() { return AsapScheduler; });
50382/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50383/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js");
50384/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */
50385
50386
50387var AsapScheduler = /*@__PURE__*/ (function (_super) {
50388 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsapScheduler, _super);
50389 function AsapScheduler() {
50390 return _super !== null && _super.apply(this, arguments) || this;
50391 }
50392 AsapScheduler.prototype.flush = function (action) {
50393 this.active = true;
50394 this.scheduled = undefined;
50395 var actions = this.actions;
50396 var error;
50397 var index = -1;
50398 var count = actions.length;
50399 action = action || actions.shift();
50400 do {
50401 if (error = action.execute(action.state, action.delay)) {
50402 break;
50403 }
50404 } while (++index < count && (action = actions.shift()));
50405 this.active = false;
50406 if (error) {
50407 while (++index < count && (action = actions.shift())) {
50408 action.unsubscribe();
50409 }
50410 throw error;
50411 }
50412 };
50413 return AsapScheduler;
50414}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"]));
50415
50416//# sourceMappingURL=AsapScheduler.js.map
50417
50418
50419/***/ }),
50420
50421/***/ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js":
50422/*!*******************************************************************!*\
50423 !*** ./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js ***!
50424 \*******************************************************************/
50425/*! exports provided: AsyncAction */
50426/***/ (function(module, __webpack_exports__, __webpack_require__) {
50427
50428"use strict";
50429__webpack_require__.r(__webpack_exports__);
50430/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncAction", function() { return AsyncAction; });
50431/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50432/* harmony import */ var _Action__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Action */ "./node_modules/rxjs/_esm5/internal/scheduler/Action.js");
50433/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */
50434
50435
50436var AsyncAction = /*@__PURE__*/ (function (_super) {
50437 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncAction, _super);
50438 function AsyncAction(scheduler, work) {
50439 var _this = _super.call(this, scheduler, work) || this;
50440 _this.scheduler = scheduler;
50441 _this.work = work;
50442 _this.pending = false;
50443 return _this;
50444 }
50445 AsyncAction.prototype.schedule = function (state, delay) {
50446 if (delay === void 0) {
50447 delay = 0;
50448 }
50449 if (this.closed) {
50450 return this;
50451 }
50452 this.state = state;
50453 var id = this.id;
50454 var scheduler = this.scheduler;
50455 if (id != null) {
50456 this.id = this.recycleAsyncId(scheduler, id, delay);
50457 }
50458 this.pending = true;
50459 this.delay = delay;
50460 this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);
50461 return this;
50462 };
50463 AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {
50464 if (delay === void 0) {
50465 delay = 0;
50466 }
50467 return setInterval(scheduler.flush.bind(scheduler, this), delay);
50468 };
50469 AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
50470 if (delay === void 0) {
50471 delay = 0;
50472 }
50473 if (delay !== null && this.delay === delay && this.pending === false) {
50474 return id;
50475 }
50476 clearInterval(id);
50477 };
50478 AsyncAction.prototype.execute = function (state, delay) {
50479 if (this.closed) {
50480 return new Error('executing a cancelled action');
50481 }
50482 this.pending = false;
50483 var error = this._execute(state, delay);
50484 if (error) {
50485 return error;
50486 }
50487 else if (this.pending === false && this.id != null) {
50488 this.id = this.recycleAsyncId(this.scheduler, this.id, null);
50489 }
50490 };
50491 AsyncAction.prototype._execute = function (state, delay) {
50492 var errored = false;
50493 var errorValue = undefined;
50494 try {
50495 this.work(state);
50496 }
50497 catch (e) {
50498 errored = true;
50499 errorValue = !!e && e || new Error(e);
50500 }
50501 if (errored) {
50502 this.unsubscribe();
50503 return errorValue;
50504 }
50505 };
50506 AsyncAction.prototype._unsubscribe = function () {
50507 var id = this.id;
50508 var scheduler = this.scheduler;
50509 var actions = scheduler.actions;
50510 var index = actions.indexOf(this);
50511 this.work = null;
50512 this.state = null;
50513 this.pending = false;
50514 this.scheduler = null;
50515 if (index !== -1) {
50516 actions.splice(index, 1);
50517 }
50518 if (id != null) {
50519 this.id = this.recycleAsyncId(scheduler, id, null);
50520 }
50521 this.delay = null;
50522 };
50523 return AsyncAction;
50524}(_Action__WEBPACK_IMPORTED_MODULE_1__["Action"]));
50525
50526//# sourceMappingURL=AsyncAction.js.map
50527
50528
50529/***/ }),
50530
50531/***/ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js":
50532/*!**********************************************************************!*\
50533 !*** ./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js ***!
50534 \**********************************************************************/
50535/*! exports provided: AsyncScheduler */
50536/***/ (function(module, __webpack_exports__, __webpack_require__) {
50537
50538"use strict";
50539__webpack_require__.r(__webpack_exports__);
50540/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncScheduler", function() { return AsyncScheduler; });
50541/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50542/* harmony import */ var _Scheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Scheduler */ "./node_modules/rxjs/_esm5/internal/Scheduler.js");
50543/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */
50544
50545
50546var AsyncScheduler = /*@__PURE__*/ (function (_super) {
50547 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncScheduler, _super);
50548 function AsyncScheduler(SchedulerAction, now) {
50549 if (now === void 0) {
50550 now = _Scheduler__WEBPACK_IMPORTED_MODULE_1__["Scheduler"].now;
50551 }
50552 var _this = _super.call(this, SchedulerAction, function () {
50553 if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {
50554 return AsyncScheduler.delegate.now();
50555 }
50556 else {
50557 return now();
50558 }
50559 }) || this;
50560 _this.actions = [];
50561 _this.active = false;
50562 _this.scheduled = undefined;
50563 return _this;
50564 }
50565 AsyncScheduler.prototype.schedule = function (work, delay, state) {
50566 if (delay === void 0) {
50567 delay = 0;
50568 }
50569 if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {
50570 return AsyncScheduler.delegate.schedule(work, delay, state);
50571 }
50572 else {
50573 return _super.prototype.schedule.call(this, work, delay, state);
50574 }
50575 };
50576 AsyncScheduler.prototype.flush = function (action) {
50577 var actions = this.actions;
50578 if (this.active) {
50579 actions.push(action);
50580 return;
50581 }
50582 var error;
50583 this.active = true;
50584 do {
50585 if (error = action.execute(action.state, action.delay)) {
50586 break;
50587 }
50588 } while (action = actions.shift());
50589 this.active = false;
50590 if (error) {
50591 while (action = actions.shift()) {
50592 action.unsubscribe();
50593 }
50594 throw error;
50595 }
50596 };
50597 return AsyncScheduler;
50598}(_Scheduler__WEBPACK_IMPORTED_MODULE_1__["Scheduler"]));
50599
50600//# sourceMappingURL=AsyncScheduler.js.map
50601
50602
50603/***/ }),
50604
50605/***/ "./node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js":
50606/*!*******************************************************************!*\
50607 !*** ./node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js ***!
50608 \*******************************************************************/
50609/*! exports provided: QueueAction */
50610/***/ (function(module, __webpack_exports__, __webpack_require__) {
50611
50612"use strict";
50613__webpack_require__.r(__webpack_exports__);
50614/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueueAction", function() { return QueueAction; });
50615/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50616/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js");
50617/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */
50618
50619
50620var QueueAction = /*@__PURE__*/ (function (_super) {
50621 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](QueueAction, _super);
50622 function QueueAction(scheduler, work) {
50623 var _this = _super.call(this, scheduler, work) || this;
50624 _this.scheduler = scheduler;
50625 _this.work = work;
50626 return _this;
50627 }
50628 QueueAction.prototype.schedule = function (state, delay) {
50629 if (delay === void 0) {
50630 delay = 0;
50631 }
50632 if (delay > 0) {
50633 return _super.prototype.schedule.call(this, state, delay);
50634 }
50635 this.delay = delay;
50636 this.state = state;
50637 this.scheduler.flush(this);
50638 return this;
50639 };
50640 QueueAction.prototype.execute = function (state, delay) {
50641 return (delay > 0 || this.closed) ?
50642 _super.prototype.execute.call(this, state, delay) :
50643 this._execute(state, delay);
50644 };
50645 QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {
50646 if (delay === void 0) {
50647 delay = 0;
50648 }
50649 if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {
50650 return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
50651 }
50652 return scheduler.flush(this);
50653 };
50654 return QueueAction;
50655}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"]));
50656
50657//# sourceMappingURL=QueueAction.js.map
50658
50659
50660/***/ }),
50661
50662/***/ "./node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js":
50663/*!**********************************************************************!*\
50664 !*** ./node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js ***!
50665 \**********************************************************************/
50666/*! exports provided: QueueScheduler */
50667/***/ (function(module, __webpack_exports__, __webpack_require__) {
50668
50669"use strict";
50670__webpack_require__.r(__webpack_exports__);
50671/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueueScheduler", function() { return QueueScheduler; });
50672/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50673/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js");
50674/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */
50675
50676
50677var QueueScheduler = /*@__PURE__*/ (function (_super) {
50678 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](QueueScheduler, _super);
50679 function QueueScheduler() {
50680 return _super !== null && _super.apply(this, arguments) || this;
50681 }
50682 return QueueScheduler;
50683}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"]));
50684
50685//# sourceMappingURL=QueueScheduler.js.map
50686
50687
50688/***/ }),
50689
50690/***/ "./node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js":
50691/*!****************************************************************************!*\
50692 !*** ./node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js ***!
50693 \****************************************************************************/
50694/*! exports provided: VirtualTimeScheduler, VirtualAction */
50695/***/ (function(module, __webpack_exports__, __webpack_require__) {
50696
50697"use strict";
50698__webpack_require__.r(__webpack_exports__);
50699/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualTimeScheduler", function() { return VirtualTimeScheduler; });
50700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualAction", function() { return VirtualAction; });
50701/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
50702/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncAction */ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js");
50703/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AsyncScheduler */ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js");
50704/** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */
50705
50706
50707
50708var VirtualTimeScheduler = /*@__PURE__*/ (function (_super) {
50709 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](VirtualTimeScheduler, _super);
50710 function VirtualTimeScheduler(SchedulerAction, maxFrames) {
50711 if (SchedulerAction === void 0) {
50712 SchedulerAction = VirtualAction;
50713 }
50714 if (maxFrames === void 0) {
50715 maxFrames = Number.POSITIVE_INFINITY;
50716 }
50717 var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;
50718 _this.maxFrames = maxFrames;
50719 _this.frame = 0;
50720 _this.index = -1;
50721 return _this;
50722 }
50723 VirtualTimeScheduler.prototype.flush = function () {
50724 var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;
50725 var error, action;
50726 while ((action = actions.shift()) && (this.frame = action.delay) <= maxFrames) {
50727 if (error = action.execute(action.state, action.delay)) {
50728 break;
50729 }
50730 }
50731 if (error) {
50732 while (action = actions.shift()) {
50733 action.unsubscribe();
50734 }
50735 throw error;
50736 }
50737 };
50738 VirtualTimeScheduler.frameTimeFactor = 10;
50739 return VirtualTimeScheduler;
50740}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__["AsyncScheduler"]));
50741
50742var VirtualAction = /*@__PURE__*/ (function (_super) {
50743 tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](VirtualAction, _super);
50744 function VirtualAction(scheduler, work, index) {
50745 if (index === void 0) {
50746 index = scheduler.index += 1;
50747 }
50748 var _this = _super.call(this, scheduler, work) || this;
50749 _this.scheduler = scheduler;
50750 _this.work = work;
50751 _this.index = index;
50752 _this.active = true;
50753 _this.index = scheduler.index = index;
50754 return _this;
50755 }
50756 VirtualAction.prototype.schedule = function (state, delay) {
50757 if (delay === void 0) {
50758 delay = 0;
50759 }
50760 if (!this.id) {
50761 return _super.prototype.schedule.call(this, state, delay);
50762 }
50763 this.active = false;
50764 var action = new VirtualAction(this.scheduler, this.work);
50765 this.add(action);
50766 return action.schedule(state, delay);
50767 };
50768 VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {
50769 if (delay === void 0) {
50770 delay = 0;
50771 }
50772 this.delay = scheduler.frame + delay;
50773 var actions = scheduler.actions;
50774 actions.push(this);
50775 actions.sort(VirtualAction.sortActions);
50776 return true;
50777 };
50778 VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
50779 if (delay === void 0) {
50780 delay = 0;
50781 }
50782 return undefined;
50783 };
50784 VirtualAction.prototype._execute = function (state, delay) {
50785 if (this.active === true) {
50786 return _super.prototype._execute.call(this, state, delay);
50787 }
50788 };
50789 VirtualAction.sortActions = function (a, b) {
50790 if (a.delay === b.delay) {
50791 if (a.index === b.index) {
50792 return 0;
50793 }
50794 else if (a.index > b.index) {
50795 return 1;
50796 }
50797 else {
50798 return -1;
50799 }
50800 }
50801 else if (a.delay > b.delay) {
50802 return 1;
50803 }
50804 else {
50805 return -1;
50806 }
50807 };
50808 return VirtualAction;
50809}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"]));
50810
50811//# sourceMappingURL=VirtualTimeScheduler.js.map
50812
50813
50814/***/ }),
50815
50816/***/ "./node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js":
50817/*!**********************************************************************!*\
50818 !*** ./node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js ***!
50819 \**********************************************************************/
50820/*! exports provided: animationFrame */
50821/***/ (function(module, __webpack_exports__, __webpack_require__) {
50822
50823"use strict";
50824__webpack_require__.r(__webpack_exports__);
50825/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animationFrame", function() { return animationFrame; });
50826/* harmony import */ var _AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AnimationFrameAction */ "./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js");
50827/* harmony import */ var _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AnimationFrameScheduler */ "./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js");
50828/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */
50829
50830
50831var animationFrame = /*@__PURE__*/ new _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__["AnimationFrameScheduler"](_AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__["AnimationFrameAction"]);
50832//# sourceMappingURL=animationFrame.js.map
50833
50834
50835/***/ }),
50836
50837/***/ "./node_modules/rxjs/_esm5/internal/scheduler/asap.js":
50838/*!************************************************************!*\
50839 !*** ./node_modules/rxjs/_esm5/internal/scheduler/asap.js ***!
50840 \************************************************************/
50841/*! exports provided: asap */
50842/***/ (function(module, __webpack_exports__, __webpack_require__) {
50843
50844"use strict";
50845__webpack_require__.r(__webpack_exports__);
50846/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asap", function() { return asap; });
50847/* harmony import */ var _AsapAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AsapAction */ "./node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js");
50848/* harmony import */ var _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsapScheduler */ "./node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js");
50849/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */
50850
50851
50852var asap = /*@__PURE__*/ new _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__["AsapScheduler"](_AsapAction__WEBPACK_IMPORTED_MODULE_0__["AsapAction"]);
50853//# sourceMappingURL=asap.js.map
50854
50855
50856/***/ }),
50857
50858/***/ "./node_modules/rxjs/_esm5/internal/scheduler/async.js":
50859/*!*************************************************************!*\
50860 !*** ./node_modules/rxjs/_esm5/internal/scheduler/async.js ***!
50861 \*************************************************************/
50862/*! exports provided: async */
50863/***/ (function(module, __webpack_exports__, __webpack_require__) {
50864
50865"use strict";
50866__webpack_require__.r(__webpack_exports__);
50867/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "async", function() { return async; });
50868/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AsyncAction */ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js");
50869/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsyncScheduler */ "./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js");
50870/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */
50871
50872
50873var async = /*@__PURE__*/ new _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"](_AsyncAction__WEBPACK_IMPORTED_MODULE_0__["AsyncAction"]);
50874//# sourceMappingURL=async.js.map
50875
50876
50877/***/ }),
50878
50879/***/ "./node_modules/rxjs/_esm5/internal/scheduler/queue.js":
50880/*!*************************************************************!*\
50881 !*** ./node_modules/rxjs/_esm5/internal/scheduler/queue.js ***!
50882 \*************************************************************/
50883/*! exports provided: queue */
50884/***/ (function(module, __webpack_exports__, __webpack_require__) {
50885
50886"use strict";
50887__webpack_require__.r(__webpack_exports__);
50888/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queue", function() { return queue; });
50889/* harmony import */ var _QueueAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./QueueAction */ "./node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js");
50890/* harmony import */ var _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./QueueScheduler */ "./node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js");
50891/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */
50892
50893
50894var queue = /*@__PURE__*/ new _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__["QueueScheduler"](_QueueAction__WEBPACK_IMPORTED_MODULE_0__["QueueAction"]);
50895//# sourceMappingURL=queue.js.map
50896
50897
50898/***/ }),
50899
50900/***/ "./node_modules/rxjs/_esm5/internal/symbol/iterator.js":
50901/*!*************************************************************!*\
50902 !*** ./node_modules/rxjs/_esm5/internal/symbol/iterator.js ***!
50903 \*************************************************************/
50904/*! exports provided: getSymbolIterator, iterator, $$iterator */
50905/***/ (function(module, __webpack_exports__, __webpack_require__) {
50906
50907"use strict";
50908__webpack_require__.r(__webpack_exports__);
50909/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSymbolIterator", function() { return getSymbolIterator; });
50910/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iterator", function() { return iterator; });
50911/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$$iterator", function() { return $$iterator; });
50912/** PURE_IMPORTS_START PURE_IMPORTS_END */
50913function getSymbolIterator() {
50914 if (typeof Symbol !== 'function' || !Symbol.iterator) {
50915 return '@@iterator';
50916 }
50917 return Symbol.iterator;
50918}
50919var iterator = /*@__PURE__*/ getSymbolIterator();
50920var $$iterator = iterator;
50921//# sourceMappingURL=iterator.js.map
50922
50923
50924/***/ }),
50925
50926/***/ "./node_modules/rxjs/_esm5/internal/symbol/observable.js":
50927/*!***************************************************************!*\
50928 !*** ./node_modules/rxjs/_esm5/internal/symbol/observable.js ***!
50929 \***************************************************************/
50930/*! exports provided: observable */
50931/***/ (function(module, __webpack_exports__, __webpack_require__) {
50932
50933"use strict";
50934__webpack_require__.r(__webpack_exports__);
50935/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "observable", function() { return observable; });
50936/** PURE_IMPORTS_START PURE_IMPORTS_END */
50937var observable = typeof Symbol === 'function' && Symbol.observable || '@@observable';
50938//# sourceMappingURL=observable.js.map
50939
50940
50941/***/ }),
50942
50943/***/ "./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js":
50944/*!*****************************************************************!*\
50945 !*** ./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js ***!
50946 \*****************************************************************/
50947/*! exports provided: rxSubscriber, $$rxSubscriber */
50948/***/ (function(module, __webpack_exports__, __webpack_require__) {
50949
50950"use strict";
50951__webpack_require__.r(__webpack_exports__);
50952/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rxSubscriber", function() { return rxSubscriber; });
50953/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$$rxSubscriber", function() { return $$rxSubscriber; });
50954/** PURE_IMPORTS_START PURE_IMPORTS_END */
50955var rxSubscriber = typeof Symbol === 'function'
50956 ? /*@__PURE__*/ Symbol('rxSubscriber')
50957 : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();
50958var $$rxSubscriber = rxSubscriber;
50959//# sourceMappingURL=rxSubscriber.js.map
50960
50961
50962/***/ }),
50963
50964/***/ "./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js":
50965/*!**************************************************************************!*\
50966 !*** ./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js ***!
50967 \**************************************************************************/
50968/*! exports provided: ArgumentOutOfRangeError */
50969/***/ (function(module, __webpack_exports__, __webpack_require__) {
50970
50971"use strict";
50972__webpack_require__.r(__webpack_exports__);
50973/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ArgumentOutOfRangeError", function() { return ArgumentOutOfRangeError; });
50974/** PURE_IMPORTS_START PURE_IMPORTS_END */
50975function ArgumentOutOfRangeErrorImpl() {
50976 Error.call(this);
50977 this.message = 'argument out of range';
50978 this.name = 'ArgumentOutOfRangeError';
50979 return this;
50980}
50981ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
50982var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;
50983//# sourceMappingURL=ArgumentOutOfRangeError.js.map
50984
50985
50986/***/ }),
50987
50988/***/ "./node_modules/rxjs/_esm5/internal/util/EmptyError.js":
50989/*!*************************************************************!*\
50990 !*** ./node_modules/rxjs/_esm5/internal/util/EmptyError.js ***!
50991 \*************************************************************/
50992/*! exports provided: EmptyError */
50993/***/ (function(module, __webpack_exports__, __webpack_require__) {
50994
50995"use strict";
50996__webpack_require__.r(__webpack_exports__);
50997/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmptyError", function() { return EmptyError; });
50998/** PURE_IMPORTS_START PURE_IMPORTS_END */
50999function EmptyErrorImpl() {
51000 Error.call(this);
51001 this.message = 'no elements in sequence';
51002 this.name = 'EmptyError';
51003 return this;
51004}
51005EmptyErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
51006var EmptyError = EmptyErrorImpl;
51007//# sourceMappingURL=EmptyError.js.map
51008
51009
51010/***/ }),
51011
51012/***/ "./node_modules/rxjs/_esm5/internal/util/Immediate.js":
51013/*!************************************************************!*\
51014 !*** ./node_modules/rxjs/_esm5/internal/util/Immediate.js ***!
51015 \************************************************************/
51016/*! exports provided: Immediate */
51017/***/ (function(module, __webpack_exports__, __webpack_require__) {
51018
51019"use strict";
51020__webpack_require__.r(__webpack_exports__);
51021/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Immediate", function() { return Immediate; });
51022/** PURE_IMPORTS_START PURE_IMPORTS_END */
51023var nextHandle = 1;
51024var tasksByHandle = {};
51025function runIfPresent(handle) {
51026 var cb = tasksByHandle[handle];
51027 if (cb) {
51028 cb();
51029 }
51030}
51031var Immediate = {
51032 setImmediate: function (cb) {
51033 var handle = nextHandle++;
51034 tasksByHandle[handle] = cb;
51035 Promise.resolve().then(function () { return runIfPresent(handle); });
51036 return handle;
51037 },
51038 clearImmediate: function (handle) {
51039 delete tasksByHandle[handle];
51040 },
51041};
51042//# sourceMappingURL=Immediate.js.map
51043
51044
51045/***/ }),
51046
51047/***/ "./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js":
51048/*!**************************************************************************!*\
51049 !*** ./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js ***!
51050 \**************************************************************************/
51051/*! exports provided: ObjectUnsubscribedError */
51052/***/ (function(module, __webpack_exports__, __webpack_require__) {
51053
51054"use strict";
51055__webpack_require__.r(__webpack_exports__);
51056/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectUnsubscribedError", function() { return ObjectUnsubscribedError; });
51057/** PURE_IMPORTS_START PURE_IMPORTS_END */
51058function ObjectUnsubscribedErrorImpl() {
51059 Error.call(this);
51060 this.message = 'object unsubscribed';
51061 this.name = 'ObjectUnsubscribedError';
51062 return this;
51063}
51064ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
51065var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;
51066//# sourceMappingURL=ObjectUnsubscribedError.js.map
51067
51068
51069/***/ }),
51070
51071/***/ "./node_modules/rxjs/_esm5/internal/util/TimeoutError.js":
51072/*!***************************************************************!*\
51073 !*** ./node_modules/rxjs/_esm5/internal/util/TimeoutError.js ***!
51074 \***************************************************************/
51075/*! exports provided: TimeoutError */
51076/***/ (function(module, __webpack_exports__, __webpack_require__) {
51077
51078"use strict";
51079__webpack_require__.r(__webpack_exports__);
51080/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeoutError", function() { return TimeoutError; });
51081/** PURE_IMPORTS_START PURE_IMPORTS_END */
51082function TimeoutErrorImpl() {
51083 Error.call(this);
51084 this.message = 'Timeout has occurred';
51085 this.name = 'TimeoutError';
51086 return this;
51087}
51088TimeoutErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
51089var TimeoutError = TimeoutErrorImpl;
51090//# sourceMappingURL=TimeoutError.js.map
51091
51092
51093/***/ }),
51094
51095/***/ "./node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js":
51096/*!**********************************************************************!*\
51097 !*** ./node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js ***!
51098 \**********************************************************************/
51099/*! exports provided: UnsubscriptionError */
51100/***/ (function(module, __webpack_exports__, __webpack_require__) {
51101
51102"use strict";
51103__webpack_require__.r(__webpack_exports__);
51104/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UnsubscriptionError", function() { return UnsubscriptionError; });
51105/** PURE_IMPORTS_START PURE_IMPORTS_END */
51106function UnsubscriptionErrorImpl(errors) {
51107 Error.call(this);
51108 this.message = errors ?
51109 errors.length + " errors occurred during unsubscription:\n" + errors.map(function (err, i) { return i + 1 + ") " + err.toString(); }).join('\n ') : '';
51110 this.name = 'UnsubscriptionError';
51111 this.errors = errors;
51112 return this;
51113}
51114UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);
51115var UnsubscriptionError = UnsubscriptionErrorImpl;
51116//# sourceMappingURL=UnsubscriptionError.js.map
51117
51118
51119/***/ }),
51120
51121/***/ "./node_modules/rxjs/_esm5/internal/util/canReportError.js":
51122/*!*****************************************************************!*\
51123 !*** ./node_modules/rxjs/_esm5/internal/util/canReportError.js ***!
51124 \*****************************************************************/
51125/*! exports provided: canReportError */
51126/***/ (function(module, __webpack_exports__, __webpack_require__) {
51127
51128"use strict";
51129__webpack_require__.r(__webpack_exports__);
51130/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canReportError", function() { return canReportError; });
51131/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
51132/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */
51133
51134function canReportError(observer) {
51135 while (observer) {
51136 var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;
51137 if (closed_1 || isStopped) {
51138 return false;
51139 }
51140 else if (destination && destination instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"]) {
51141 observer = destination;
51142 }
51143 else {
51144 observer = null;
51145 }
51146 }
51147 return true;
51148}
51149//# sourceMappingURL=canReportError.js.map
51150
51151
51152/***/ }),
51153
51154/***/ "./node_modules/rxjs/_esm5/internal/util/errorObject.js":
51155/*!**************************************************************!*\
51156 !*** ./node_modules/rxjs/_esm5/internal/util/errorObject.js ***!
51157 \**************************************************************/
51158/*! exports provided: errorObject */
51159/***/ (function(module, __webpack_exports__, __webpack_require__) {
51160
51161"use strict";
51162__webpack_require__.r(__webpack_exports__);
51163/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "errorObject", function() { return errorObject; });
51164/** PURE_IMPORTS_START PURE_IMPORTS_END */
51165var errorObject = { e: {} };
51166//# sourceMappingURL=errorObject.js.map
51167
51168
51169/***/ }),
51170
51171/***/ "./node_modules/rxjs/_esm5/internal/util/hostReportError.js":
51172/*!******************************************************************!*\
51173 !*** ./node_modules/rxjs/_esm5/internal/util/hostReportError.js ***!
51174 \******************************************************************/
51175/*! exports provided: hostReportError */
51176/***/ (function(module, __webpack_exports__, __webpack_require__) {
51177
51178"use strict";
51179__webpack_require__.r(__webpack_exports__);
51180/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hostReportError", function() { return hostReportError; });
51181/** PURE_IMPORTS_START PURE_IMPORTS_END */
51182function hostReportError(err) {
51183 setTimeout(function () { throw err; });
51184}
51185//# sourceMappingURL=hostReportError.js.map
51186
51187
51188/***/ }),
51189
51190/***/ "./node_modules/rxjs/_esm5/internal/util/identity.js":
51191/*!***********************************************************!*\
51192 !*** ./node_modules/rxjs/_esm5/internal/util/identity.js ***!
51193 \***********************************************************/
51194/*! exports provided: identity */
51195/***/ (function(module, __webpack_exports__, __webpack_require__) {
51196
51197"use strict";
51198__webpack_require__.r(__webpack_exports__);
51199/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; });
51200/** PURE_IMPORTS_START PURE_IMPORTS_END */
51201function identity(x) {
51202 return x;
51203}
51204//# sourceMappingURL=identity.js.map
51205
51206
51207/***/ }),
51208
51209/***/ "./node_modules/rxjs/_esm5/internal/util/isArray.js":
51210/*!**********************************************************!*\
51211 !*** ./node_modules/rxjs/_esm5/internal/util/isArray.js ***!
51212 \**********************************************************/
51213/*! exports provided: isArray */
51214/***/ (function(module, __webpack_exports__, __webpack_require__) {
51215
51216"use strict";
51217__webpack_require__.r(__webpack_exports__);
51218/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isArray", function() { return isArray; });
51219/** PURE_IMPORTS_START PURE_IMPORTS_END */
51220var isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });
51221//# sourceMappingURL=isArray.js.map
51222
51223
51224/***/ }),
51225
51226/***/ "./node_modules/rxjs/_esm5/internal/util/isArrayLike.js":
51227/*!**************************************************************!*\
51228 !*** ./node_modules/rxjs/_esm5/internal/util/isArrayLike.js ***!
51229 \**************************************************************/
51230/*! exports provided: isArrayLike */
51231/***/ (function(module, __webpack_exports__, __webpack_require__) {
51232
51233"use strict";
51234__webpack_require__.r(__webpack_exports__);
51235/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isArrayLike", function() { return isArrayLike; });
51236/** PURE_IMPORTS_START PURE_IMPORTS_END */
51237var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });
51238//# sourceMappingURL=isArrayLike.js.map
51239
51240
51241/***/ }),
51242
51243/***/ "./node_modules/rxjs/_esm5/internal/util/isDate.js":
51244/*!*********************************************************!*\
51245 !*** ./node_modules/rxjs/_esm5/internal/util/isDate.js ***!
51246 \*********************************************************/
51247/*! exports provided: isDate */
51248/***/ (function(module, __webpack_exports__, __webpack_require__) {
51249
51250"use strict";
51251__webpack_require__.r(__webpack_exports__);
51252/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDate", function() { return isDate; });
51253/** PURE_IMPORTS_START PURE_IMPORTS_END */
51254function isDate(value) {
51255 return value instanceof Date && !isNaN(+value);
51256}
51257//# sourceMappingURL=isDate.js.map
51258
51259
51260/***/ }),
51261
51262/***/ "./node_modules/rxjs/_esm5/internal/util/isFunction.js":
51263/*!*************************************************************!*\
51264 !*** ./node_modules/rxjs/_esm5/internal/util/isFunction.js ***!
51265 \*************************************************************/
51266/*! exports provided: isFunction */
51267/***/ (function(module, __webpack_exports__, __webpack_require__) {
51268
51269"use strict";
51270__webpack_require__.r(__webpack_exports__);
51271/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFunction", function() { return isFunction; });
51272/** PURE_IMPORTS_START PURE_IMPORTS_END */
51273function isFunction(x) {
51274 return typeof x === 'function';
51275}
51276//# sourceMappingURL=isFunction.js.map
51277
51278
51279/***/ }),
51280
51281/***/ "./node_modules/rxjs/_esm5/internal/util/isInteropObservable.js":
51282/*!**********************************************************************!*\
51283 !*** ./node_modules/rxjs/_esm5/internal/util/isInteropObservable.js ***!
51284 \**********************************************************************/
51285/*! exports provided: isInteropObservable */
51286/***/ (function(module, __webpack_exports__, __webpack_require__) {
51287
51288"use strict";
51289__webpack_require__.r(__webpack_exports__);
51290/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInteropObservable", function() { return isInteropObservable; });
51291/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/observable */ "./node_modules/rxjs/_esm5/internal/symbol/observable.js");
51292/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */
51293
51294function isInteropObservable(input) {
51295 return input && typeof input[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__["observable"]] === 'function';
51296}
51297//# sourceMappingURL=isInteropObservable.js.map
51298
51299
51300/***/ }),
51301
51302/***/ "./node_modules/rxjs/_esm5/internal/util/isIterable.js":
51303/*!*************************************************************!*\
51304 !*** ./node_modules/rxjs/_esm5/internal/util/isIterable.js ***!
51305 \*************************************************************/
51306/*! exports provided: isIterable */
51307/***/ (function(module, __webpack_exports__, __webpack_require__) {
51308
51309"use strict";
51310__webpack_require__.r(__webpack_exports__);
51311/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIterable", function() { return isIterable; });
51312/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/iterator */ "./node_modules/rxjs/_esm5/internal/symbol/iterator.js");
51313/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */
51314
51315function isIterable(input) {
51316 return input && typeof input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__["iterator"]] === 'function';
51317}
51318//# sourceMappingURL=isIterable.js.map
51319
51320
51321/***/ }),
51322
51323/***/ "./node_modules/rxjs/_esm5/internal/util/isNumeric.js":
51324/*!************************************************************!*\
51325 !*** ./node_modules/rxjs/_esm5/internal/util/isNumeric.js ***!
51326 \************************************************************/
51327/*! exports provided: isNumeric */
51328/***/ (function(module, __webpack_exports__, __webpack_require__) {
51329
51330"use strict";
51331__webpack_require__.r(__webpack_exports__);
51332/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumeric", function() { return isNumeric; });
51333/* harmony import */ var _isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArray */ "./node_modules/rxjs/_esm5/internal/util/isArray.js");
51334/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */
51335
51336function isNumeric(val) {
51337 return !Object(_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(val) && (val - parseFloat(val) + 1) >= 0;
51338}
51339//# sourceMappingURL=isNumeric.js.map
51340
51341
51342/***/ }),
51343
51344/***/ "./node_modules/rxjs/_esm5/internal/util/isObject.js":
51345/*!***********************************************************!*\
51346 !*** ./node_modules/rxjs/_esm5/internal/util/isObject.js ***!
51347 \***********************************************************/
51348/*! exports provided: isObject */
51349/***/ (function(module, __webpack_exports__, __webpack_require__) {
51350
51351"use strict";
51352__webpack_require__.r(__webpack_exports__);
51353/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObject", function() { return isObject; });
51354/** PURE_IMPORTS_START PURE_IMPORTS_END */
51355function isObject(x) {
51356 return x != null && typeof x === 'object';
51357}
51358//# sourceMappingURL=isObject.js.map
51359
51360
51361/***/ }),
51362
51363/***/ "./node_modules/rxjs/_esm5/internal/util/isObservable.js":
51364/*!***************************************************************!*\
51365 !*** ./node_modules/rxjs/_esm5/internal/util/isObservable.js ***!
51366 \***************************************************************/
51367/*! exports provided: isObservable */
51368/***/ (function(module, __webpack_exports__, __webpack_require__) {
51369
51370"use strict";
51371__webpack_require__.r(__webpack_exports__);
51372/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObservable", function() { return isObservable; });
51373/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
51374/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */
51375
51376function isObservable(obj) {
51377 return !!obj && (obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"] || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));
51378}
51379//# sourceMappingURL=isObservable.js.map
51380
51381
51382/***/ }),
51383
51384/***/ "./node_modules/rxjs/_esm5/internal/util/isPromise.js":
51385/*!************************************************************!*\
51386 !*** ./node_modules/rxjs/_esm5/internal/util/isPromise.js ***!
51387 \************************************************************/
51388/*! exports provided: isPromise */
51389/***/ (function(module, __webpack_exports__, __webpack_require__) {
51390
51391"use strict";
51392__webpack_require__.r(__webpack_exports__);
51393/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPromise", function() { return isPromise; });
51394/** PURE_IMPORTS_START PURE_IMPORTS_END */
51395function isPromise(value) {
51396 return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';
51397}
51398//# sourceMappingURL=isPromise.js.map
51399
51400
51401/***/ }),
51402
51403/***/ "./node_modules/rxjs/_esm5/internal/util/isScheduler.js":
51404/*!**************************************************************!*\
51405 !*** ./node_modules/rxjs/_esm5/internal/util/isScheduler.js ***!
51406 \**************************************************************/
51407/*! exports provided: isScheduler */
51408/***/ (function(module, __webpack_exports__, __webpack_require__) {
51409
51410"use strict";
51411__webpack_require__.r(__webpack_exports__);
51412/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isScheduler", function() { return isScheduler; });
51413/** PURE_IMPORTS_START PURE_IMPORTS_END */
51414function isScheduler(value) {
51415 return value && typeof value.schedule === 'function';
51416}
51417//# sourceMappingURL=isScheduler.js.map
51418
51419
51420/***/ }),
51421
51422/***/ "./node_modules/rxjs/_esm5/internal/util/noop.js":
51423/*!*******************************************************!*\
51424 !*** ./node_modules/rxjs/_esm5/internal/util/noop.js ***!
51425 \*******************************************************/
51426/*! exports provided: noop */
51427/***/ (function(module, __webpack_exports__, __webpack_require__) {
51428
51429"use strict";
51430__webpack_require__.r(__webpack_exports__);
51431/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return noop; });
51432/** PURE_IMPORTS_START PURE_IMPORTS_END */
51433function noop() { }
51434//# sourceMappingURL=noop.js.map
51435
51436
51437/***/ }),
51438
51439/***/ "./node_modules/rxjs/_esm5/internal/util/not.js":
51440/*!******************************************************!*\
51441 !*** ./node_modules/rxjs/_esm5/internal/util/not.js ***!
51442 \******************************************************/
51443/*! exports provided: not */
51444/***/ (function(module, __webpack_exports__, __webpack_require__) {
51445
51446"use strict";
51447__webpack_require__.r(__webpack_exports__);
51448/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "not", function() { return not; });
51449/** PURE_IMPORTS_START PURE_IMPORTS_END */
51450function not(pred, thisArg) {
51451 function notPred() {
51452 return !(notPred.pred.apply(notPred.thisArg, arguments));
51453 }
51454 notPred.pred = pred;
51455 notPred.thisArg = thisArg;
51456 return notPred;
51457}
51458//# sourceMappingURL=not.js.map
51459
51460
51461/***/ }),
51462
51463/***/ "./node_modules/rxjs/_esm5/internal/util/pipe.js":
51464/*!*******************************************************!*\
51465 !*** ./node_modules/rxjs/_esm5/internal/util/pipe.js ***!
51466 \*******************************************************/
51467/*! exports provided: pipe, pipeFromArray */
51468/***/ (function(module, __webpack_exports__, __webpack_require__) {
51469
51470"use strict";
51471__webpack_require__.r(__webpack_exports__);
51472/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return pipe; });
51473/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pipeFromArray", function() { return pipeFromArray; });
51474/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./noop */ "./node_modules/rxjs/_esm5/internal/util/noop.js");
51475/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */
51476
51477function pipe() {
51478 var fns = [];
51479 for (var _i = 0; _i < arguments.length; _i++) {
51480 fns[_i] = arguments[_i];
51481 }
51482 return pipeFromArray(fns);
51483}
51484function pipeFromArray(fns) {
51485 if (!fns) {
51486 return _noop__WEBPACK_IMPORTED_MODULE_0__["noop"];
51487 }
51488 if (fns.length === 1) {
51489 return fns[0];
51490 }
51491 return function piped(input) {
51492 return fns.reduce(function (prev, fn) { return fn(prev); }, input);
51493 };
51494}
51495//# sourceMappingURL=pipe.js.map
51496
51497
51498/***/ }),
51499
51500/***/ "./node_modules/rxjs/_esm5/internal/util/subscribeTo.js":
51501/*!**************************************************************!*\
51502 !*** ./node_modules/rxjs/_esm5/internal/util/subscribeTo.js ***!
51503 \**************************************************************/
51504/*! exports provided: subscribeTo */
51505/***/ (function(module, __webpack_exports__, __webpack_require__) {
51506
51507"use strict";
51508__webpack_require__.r(__webpack_exports__);
51509/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeTo", function() { return subscribeTo; });
51510/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "./node_modules/rxjs/_esm5/internal/Observable.js");
51511/* harmony import */ var _subscribeToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribeToArray */ "./node_modules/rxjs/_esm5/internal/util/subscribeToArray.js");
51512/* harmony import */ var _subscribeToPromise__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./subscribeToPromise */ "./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js");
51513/* harmony import */ var _subscribeToIterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./subscribeToIterable */ "./node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js");
51514/* harmony import */ var _subscribeToObservable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./subscribeToObservable */ "./node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js");
51515/* harmony import */ var _isArrayLike__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isArrayLike */ "./node_modules/rxjs/_esm5/internal/util/isArrayLike.js");
51516/* harmony import */ var _isPromise__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isPromise */ "./node_modules/rxjs/_esm5/internal/util/isPromise.js");
51517/* harmony import */ var _isObject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isObject */ "./node_modules/rxjs/_esm5/internal/util/isObject.js");
51518/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../symbol/iterator */ "./node_modules/rxjs/_esm5/internal/symbol/iterator.js");
51519/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../symbol/observable */ "./node_modules/rxjs/_esm5/internal/symbol/observable.js");
51520/** PURE_IMPORTS_START _Observable,_subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */
51521
51522
51523
51524
51525
51526
51527
51528
51529
51530
51531var subscribeTo = function (result) {
51532 if (result instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]) {
51533 return function (subscriber) {
51534 if (result._isScalar) {
51535 subscriber.next(result.value);
51536 subscriber.complete();
51537 return undefined;
51538 }
51539 else {
51540 return result.subscribe(subscriber);
51541 }
51542 };
51543 }
51544 else if (result && typeof result[_symbol_observable__WEBPACK_IMPORTED_MODULE_9__["observable"]] === 'function') {
51545 return Object(_subscribeToObservable__WEBPACK_IMPORTED_MODULE_4__["subscribeToObservable"])(result);
51546 }
51547 else if (Object(_isArrayLike__WEBPACK_IMPORTED_MODULE_5__["isArrayLike"])(result)) {
51548 return Object(_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__["subscribeToArray"])(result);
51549 }
51550 else if (Object(_isPromise__WEBPACK_IMPORTED_MODULE_6__["isPromise"])(result)) {
51551 return Object(_subscribeToPromise__WEBPACK_IMPORTED_MODULE_2__["subscribeToPromise"])(result);
51552 }
51553 else if (result && typeof result[_symbol_iterator__WEBPACK_IMPORTED_MODULE_8__["iterator"]] === 'function') {
51554 return Object(_subscribeToIterable__WEBPACK_IMPORTED_MODULE_3__["subscribeToIterable"])(result);
51555 }
51556 else {
51557 var value = Object(_isObject__WEBPACK_IMPORTED_MODULE_7__["isObject"])(result) ? 'an invalid object' : "'" + result + "'";
51558 var msg = "You provided " + value + " where a stream was expected."
51559 + ' You can provide an Observable, Promise, Array, or Iterable.';
51560 throw new TypeError(msg);
51561 }
51562};
51563//# sourceMappingURL=subscribeTo.js.map
51564
51565
51566/***/ }),
51567
51568/***/ "./node_modules/rxjs/_esm5/internal/util/subscribeToArray.js":
51569/*!*******************************************************************!*\
51570 !*** ./node_modules/rxjs/_esm5/internal/util/subscribeToArray.js ***!
51571 \*******************************************************************/
51572/*! exports provided: subscribeToArray */
51573/***/ (function(module, __webpack_exports__, __webpack_require__) {
51574
51575"use strict";
51576__webpack_require__.r(__webpack_exports__);
51577/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToArray", function() { return subscribeToArray; });
51578/** PURE_IMPORTS_START PURE_IMPORTS_END */
51579var subscribeToArray = function (array) {
51580 return function (subscriber) {
51581 for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {
51582 subscriber.next(array[i]);
51583 }
51584 if (!subscriber.closed) {
51585 subscriber.complete();
51586 }
51587 };
51588};
51589//# sourceMappingURL=subscribeToArray.js.map
51590
51591
51592/***/ }),
51593
51594/***/ "./node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js":
51595/*!**********************************************************************!*\
51596 !*** ./node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js ***!
51597 \**********************************************************************/
51598/*! exports provided: subscribeToIterable */
51599/***/ (function(module, __webpack_exports__, __webpack_require__) {
51600
51601"use strict";
51602__webpack_require__.r(__webpack_exports__);
51603/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToIterable", function() { return subscribeToIterable; });
51604/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/iterator */ "./node_modules/rxjs/_esm5/internal/symbol/iterator.js");
51605/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */
51606
51607var subscribeToIterable = function (iterable) {
51608 return function (subscriber) {
51609 var iterator = iterable[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__["iterator"]]();
51610 do {
51611 var item = iterator.next();
51612 if (item.done) {
51613 subscriber.complete();
51614 break;
51615 }
51616 subscriber.next(item.value);
51617 if (subscriber.closed) {
51618 break;
51619 }
51620 } while (true);
51621 if (typeof iterator.return === 'function') {
51622 subscriber.add(function () {
51623 if (iterator.return) {
51624 iterator.return();
51625 }
51626 });
51627 }
51628 return subscriber;
51629 };
51630};
51631//# sourceMappingURL=subscribeToIterable.js.map
51632
51633
51634/***/ }),
51635
51636/***/ "./node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js":
51637/*!************************************************************************!*\
51638 !*** ./node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js ***!
51639 \************************************************************************/
51640/*! exports provided: subscribeToObservable */
51641/***/ (function(module, __webpack_exports__, __webpack_require__) {
51642
51643"use strict";
51644__webpack_require__.r(__webpack_exports__);
51645/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToObservable", function() { return subscribeToObservable; });
51646/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../symbol/observable */ "./node_modules/rxjs/_esm5/internal/symbol/observable.js");
51647/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */
51648
51649var subscribeToObservable = function (obj) {
51650 return function (subscriber) {
51651 var obs = obj[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__["observable"]]();
51652 if (typeof obs.subscribe !== 'function') {
51653 throw new TypeError('Provided object does not correctly implement Symbol.observable');
51654 }
51655 else {
51656 return obs.subscribe(subscriber);
51657 }
51658 };
51659};
51660//# sourceMappingURL=subscribeToObservable.js.map
51661
51662
51663/***/ }),
51664
51665/***/ "./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js":
51666/*!*********************************************************************!*\
51667 !*** ./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js ***!
51668 \*********************************************************************/
51669/*! exports provided: subscribeToPromise */
51670/***/ (function(module, __webpack_exports__, __webpack_require__) {
51671
51672"use strict";
51673__webpack_require__.r(__webpack_exports__);
51674/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToPromise", function() { return subscribeToPromise; });
51675/* harmony import */ var _hostReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hostReportError */ "./node_modules/rxjs/_esm5/internal/util/hostReportError.js");
51676/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */
51677
51678var subscribeToPromise = function (promise) {
51679 return function (subscriber) {
51680 promise.then(function (value) {
51681 if (!subscriber.closed) {
51682 subscriber.next(value);
51683 subscriber.complete();
51684 }
51685 }, function (err) { return subscriber.error(err); })
51686 .then(null, _hostReportError__WEBPACK_IMPORTED_MODULE_0__["hostReportError"]);
51687 return subscriber;
51688 };
51689};
51690//# sourceMappingURL=subscribeToPromise.js.map
51691
51692
51693/***/ }),
51694
51695/***/ "./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js":
51696/*!********************************************************************!*\
51697 !*** ./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js ***!
51698 \********************************************************************/
51699/*! exports provided: subscribeToResult */
51700/***/ (function(module, __webpack_exports__, __webpack_require__) {
51701
51702"use strict";
51703__webpack_require__.r(__webpack_exports__);
51704/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToResult", function() { return subscribeToResult; });
51705/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../InnerSubscriber */ "./node_modules/rxjs/_esm5/internal/InnerSubscriber.js");
51706/* harmony import */ var _subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribeTo */ "./node_modules/rxjs/_esm5/internal/util/subscribeTo.js");
51707/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo PURE_IMPORTS_END */
51708
51709
51710function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) {
51711 if (destination === void 0) {
51712 destination = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__["InnerSubscriber"](outerSubscriber, outerValue, outerIndex);
51713 }
51714 if (destination.closed) {
51715 return;
51716 }
51717 return Object(_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(result)(destination);
51718}
51719//# sourceMappingURL=subscribeToResult.js.map
51720
51721
51722/***/ }),
51723
51724/***/ "./node_modules/rxjs/_esm5/internal/util/toSubscriber.js":
51725/*!***************************************************************!*\
51726 !*** ./node_modules/rxjs/_esm5/internal/util/toSubscriber.js ***!
51727 \***************************************************************/
51728/*! exports provided: toSubscriber */
51729/***/ (function(module, __webpack_exports__, __webpack_require__) {
51730
51731"use strict";
51732__webpack_require__.r(__webpack_exports__);
51733/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toSubscriber", function() { return toSubscriber; });
51734/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ "./node_modules/rxjs/_esm5/internal/Subscriber.js");
51735/* harmony import */ var _symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../symbol/rxSubscriber */ "./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js");
51736/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Observer */ "./node_modules/rxjs/_esm5/internal/Observer.js");
51737/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */
51738
51739
51740
51741function toSubscriber(nextOrObserver, error, complete) {
51742 if (nextOrObserver) {
51743 if (nextOrObserver instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"]) {
51744 return nextOrObserver;
51745 }
51746 if (nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__["rxSubscriber"]]) {
51747 return nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__["rxSubscriber"]]();
51748 }
51749 }
51750 if (!nextOrObserver && !error && !complete) {
51751 return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"](_Observer__WEBPACK_IMPORTED_MODULE_2__["empty"]);
51752 }
51753 return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"](nextOrObserver, error, complete);
51754}
51755//# sourceMappingURL=toSubscriber.js.map
51756
51757
51758/***/ }),
51759
51760/***/ "./node_modules/rxjs/_esm5/internal/util/tryCatch.js":
51761/*!***********************************************************!*\
51762 !*** ./node_modules/rxjs/_esm5/internal/util/tryCatch.js ***!
51763 \***********************************************************/
51764/*! exports provided: tryCatch */
51765/***/ (function(module, __webpack_exports__, __webpack_require__) {
51766
51767"use strict";
51768__webpack_require__.r(__webpack_exports__);
51769/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tryCatch", function() { return tryCatch; });
51770/* harmony import */ var _errorObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./errorObject */ "./node_modules/rxjs/_esm5/internal/util/errorObject.js");
51771/** PURE_IMPORTS_START _errorObject PURE_IMPORTS_END */
51772
51773var tryCatchTarget;
51774function tryCatcher() {
51775 try {
51776 return tryCatchTarget.apply(this, arguments);
51777 }
51778 catch (e) {
51779 _errorObject__WEBPACK_IMPORTED_MODULE_0__["errorObject"].e = e;
51780 return _errorObject__WEBPACK_IMPORTED_MODULE_0__["errorObject"];
51781 }
51782}
51783function tryCatch(fn) {
51784 tryCatchTarget = fn;
51785 return tryCatcher;
51786}
51787//# sourceMappingURL=tryCatch.js.map
51788
51789
51790/***/ }),
51791
51792/***/ "./node_modules/rxjs/_esm5/operators/index.js":
51793/*!****************************************************!*\
51794 !*** ./node_modules/rxjs/_esm5/operators/index.js ***!
51795 \****************************************************/
51796/*! exports provided: audit, auditTime, buffer, bufferCount, bufferTime, bufferToggle, bufferWhen, catchError, combineAll, combineLatest, concat, concatAll, concatMap, concatMapTo, count, debounce, debounceTime, defaultIfEmpty, delay, delayWhen, dematerialize, distinct, distinctUntilChanged, distinctUntilKeyChanged, elementAt, endWith, every, exhaust, exhaustMap, expand, filter, finalize, find, findIndex, first, groupBy, ignoreElements, isEmpty, last, map, mapTo, materialize, max, merge, mergeAll, mergeMap, flatMap, mergeMapTo, mergeScan, min, multicast, observeOn, onErrorResumeNext, pairwise, partition, pluck, publish, publishBehavior, publishLast, publishReplay, race, reduce, repeat, repeatWhen, retry, retryWhen, refCount, sample, sampleTime, scan, sequenceEqual, share, shareReplay, single, skip, skipLast, skipUntil, skipWhile, startWith, subscribeOn, switchAll, switchMap, switchMapTo, take, takeLast, takeUntil, takeWhile, tap, throttle, throttleTime, throwIfEmpty, timeInterval, timeout, timeoutWith, timestamp, toArray, window, windowCount, windowTime, windowToggle, windowWhen, withLatestFrom, zip, zipAll */
51797/***/ (function(module, __webpack_exports__, __webpack_require__) {
51798
51799"use strict";
51800__webpack_require__.r(__webpack_exports__);
51801/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../internal/operators/audit */ "./node_modules/rxjs/_esm5/internal/operators/audit.js");
51802/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__["audit"]; });
51803
51804/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../internal/operators/auditTime */ "./node_modules/rxjs/_esm5/internal/operators/auditTime.js");
51805/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__["auditTime"]; });
51806
51807/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../internal/operators/buffer */ "./node_modules/rxjs/_esm5/internal/operators/buffer.js");
51808/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__["buffer"]; });
51809
51810/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../internal/operators/bufferCount */ "./node_modules/rxjs/_esm5/internal/operators/bufferCount.js");
51811/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__["bufferCount"]; });
51812
51813/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../internal/operators/bufferTime */ "./node_modules/rxjs/_esm5/internal/operators/bufferTime.js");
51814/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__["bufferTime"]; });
51815
51816/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../internal/operators/bufferToggle */ "./node_modules/rxjs/_esm5/internal/operators/bufferToggle.js");
51817/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__["bufferToggle"]; });
51818
51819/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../internal/operators/bufferWhen */ "./node_modules/rxjs/_esm5/internal/operators/bufferWhen.js");
51820/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__["bufferWhen"]; });
51821
51822/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../internal/operators/catchError */ "./node_modules/rxjs/_esm5/internal/operators/catchError.js");
51823/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__["catchError"]; });
51824
51825/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../internal/operators/combineAll */ "./node_modules/rxjs/_esm5/internal/operators/combineAll.js");
51826/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__["combineAll"]; });
51827
51828/* harmony import */ var _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../internal/operators/combineLatest */ "./node_modules/rxjs/_esm5/internal/operators/combineLatest.js");
51829/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__["combineLatest"]; });
51830
51831/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../internal/operators/concat */ "./node_modules/rxjs/_esm5/internal/operators/concat.js");
51832/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__["concat"]; });
51833
51834/* harmony import */ var _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../internal/operators/concatAll */ "./node_modules/rxjs/_esm5/internal/operators/concatAll.js");
51835/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__["concatAll"]; });
51836
51837/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../internal/operators/concatMap */ "./node_modules/rxjs/_esm5/internal/operators/concatMap.js");
51838/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__["concatMap"]; });
51839
51840/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../internal/operators/concatMapTo */ "./node_modules/rxjs/_esm5/internal/operators/concatMapTo.js");
51841/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__["concatMapTo"]; });
51842
51843/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../internal/operators/count */ "./node_modules/rxjs/_esm5/internal/operators/count.js");
51844/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "count", function() { return _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__["count"]; });
51845
51846/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../internal/operators/debounce */ "./node_modules/rxjs/_esm5/internal/operators/debounce.js");
51847/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__["debounce"]; });
51848
51849/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../internal/operators/debounceTime */ "./node_modules/rxjs/_esm5/internal/operators/debounceTime.js");
51850/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__["debounceTime"]; });
51851
51852/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../internal/operators/defaultIfEmpty */ "./node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js");
51853/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__["defaultIfEmpty"]; });
51854
51855/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../internal/operators/delay */ "./node_modules/rxjs/_esm5/internal/operators/delay.js");
51856/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__["delay"]; });
51857
51858/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../internal/operators/delayWhen */ "./node_modules/rxjs/_esm5/internal/operators/delayWhen.js");
51859/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__["delayWhen"]; });
51860
51861/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../internal/operators/dematerialize */ "./node_modules/rxjs/_esm5/internal/operators/dematerialize.js");
51862/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__["dematerialize"]; });
51863
51864/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../internal/operators/distinct */ "./node_modules/rxjs/_esm5/internal/operators/distinct.js");
51865/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__["distinct"]; });
51866
51867/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../internal/operators/distinctUntilChanged */ "./node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js");
51868/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__["distinctUntilChanged"]; });
51869
51870/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../internal/operators/distinctUntilKeyChanged */ "./node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js");
51871/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__["distinctUntilKeyChanged"]; });
51872
51873/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../internal/operators/elementAt */ "./node_modules/rxjs/_esm5/internal/operators/elementAt.js");
51874/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__["elementAt"]; });
51875
51876/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../internal/operators/endWith */ "./node_modules/rxjs/_esm5/internal/operators/endWith.js");
51877/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__["endWith"]; });
51878
51879/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../internal/operators/every */ "./node_modules/rxjs/_esm5/internal/operators/every.js");
51880/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "every", function() { return _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__["every"]; });
51881
51882/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../internal/operators/exhaust */ "./node_modules/rxjs/_esm5/internal/operators/exhaust.js");
51883/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__["exhaust"]; });
51884
51885/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../internal/operators/exhaustMap */ "./node_modules/rxjs/_esm5/internal/operators/exhaustMap.js");
51886/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__["exhaustMap"]; });
51887
51888/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../internal/operators/expand */ "./node_modules/rxjs/_esm5/internal/operators/expand.js");
51889/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__["expand"]; });
51890
51891/* harmony import */ var _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ../internal/operators/filter */ "./node_modules/rxjs/_esm5/internal/operators/filter.js");
51892/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__["filter"]; });
51893
51894/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ../internal/operators/finalize */ "./node_modules/rxjs/_esm5/internal/operators/finalize.js");
51895/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__["finalize"]; });
51896
51897/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ../internal/operators/find */ "./node_modules/rxjs/_esm5/internal/operators/find.js");
51898/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__["find"]; });
51899
51900/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ../internal/operators/findIndex */ "./node_modules/rxjs/_esm5/internal/operators/findIndex.js");
51901/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__["findIndex"]; });
51902
51903/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ../internal/operators/first */ "./node_modules/rxjs/_esm5/internal/operators/first.js");
51904/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "first", function() { return _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__["first"]; });
51905
51906/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ../internal/operators/groupBy */ "./node_modules/rxjs/_esm5/internal/operators/groupBy.js");
51907/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__["groupBy"]; });
51908
51909/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ../internal/operators/ignoreElements */ "./node_modules/rxjs/_esm5/internal/operators/ignoreElements.js");
51910/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__["ignoreElements"]; });
51911
51912/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ../internal/operators/isEmpty */ "./node_modules/rxjs/_esm5/internal/operators/isEmpty.js");
51913/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__["isEmpty"]; });
51914
51915/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ../internal/operators/last */ "./node_modules/rxjs/_esm5/internal/operators/last.js");
51916/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "last", function() { return _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__["last"]; });
51917
51918/* harmony import */ var _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ../internal/operators/map */ "./node_modules/rxjs/_esm5/internal/operators/map.js");
51919/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__["map"]; });
51920
51921/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ../internal/operators/mapTo */ "./node_modules/rxjs/_esm5/internal/operators/mapTo.js");
51922/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__["mapTo"]; });
51923
51924/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ../internal/operators/materialize */ "./node_modules/rxjs/_esm5/internal/operators/materialize.js");
51925/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__["materialize"]; });
51926
51927/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ../internal/operators/max */ "./node_modules/rxjs/_esm5/internal/operators/max.js");
51928/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__["max"]; });
51929
51930/* harmony import */ var _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ../internal/operators/merge */ "./node_modules/rxjs/_esm5/internal/operators/merge.js");
51931/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__["merge"]; });
51932
51933/* harmony import */ var _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ../internal/operators/mergeAll */ "./node_modules/rxjs/_esm5/internal/operators/mergeAll.js");
51934/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeAll", function() { return _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__["mergeAll"]; });
51935
51936/* harmony import */ var _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ../internal/operators/mergeMap */ "./node_modules/rxjs/_esm5/internal/operators/mergeMap.js");
51937/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["mergeMap"]; });
51938
51939/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["mergeMap"]; });
51940
51941/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ../internal/operators/mergeMapTo */ "./node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js");
51942/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__["mergeMapTo"]; });
51943
51944/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ../internal/operators/mergeScan */ "./node_modules/rxjs/_esm5/internal/operators/mergeScan.js");
51945/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__["mergeScan"]; });
51946
51947/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ../internal/operators/min */ "./node_modules/rxjs/_esm5/internal/operators/min.js");
51948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__["min"]; });
51949
51950/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ../internal/operators/multicast */ "./node_modules/rxjs/_esm5/internal/operators/multicast.js");
51951/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__["multicast"]; });
51952
51953/* harmony import */ var _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ../internal/operators/observeOn */ "./node_modules/rxjs/_esm5/internal/operators/observeOn.js");
51954/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__["observeOn"]; });
51955
51956/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../internal/operators/onErrorResumeNext */ "./node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js");
51957/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__["onErrorResumeNext"]; });
51958
51959/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! ../internal/operators/pairwise */ "./node_modules/rxjs/_esm5/internal/operators/pairwise.js");
51960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__["pairwise"]; });
51961
51962/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! ../internal/operators/partition */ "./node_modules/rxjs/_esm5/internal/operators/partition.js");
51963/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__["partition"]; });
51964
51965/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! ../internal/operators/pluck */ "./node_modules/rxjs/_esm5/internal/operators/pluck.js");
51966/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__["pluck"]; });
51967
51968/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! ../internal/operators/publish */ "./node_modules/rxjs/_esm5/internal/operators/publish.js");
51969/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__["publish"]; });
51970
51971/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../internal/operators/publishBehavior */ "./node_modules/rxjs/_esm5/internal/operators/publishBehavior.js");
51972/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__["publishBehavior"]; });
51973
51974/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../internal/operators/publishLast */ "./node_modules/rxjs/_esm5/internal/operators/publishLast.js");
51975/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__["publishLast"]; });
51976
51977/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../internal/operators/publishReplay */ "./node_modules/rxjs/_esm5/internal/operators/publishReplay.js");
51978/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__["publishReplay"]; });
51979
51980/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../internal/operators/race */ "./node_modules/rxjs/_esm5/internal/operators/race.js");
51981/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__["race"]; });
51982
51983/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! ../internal/operators/reduce */ "./node_modules/rxjs/_esm5/internal/operators/reduce.js");
51984/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__["reduce"]; });
51985
51986/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ../internal/operators/repeat */ "./node_modules/rxjs/_esm5/internal/operators/repeat.js");
51987/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__["repeat"]; });
51988
51989/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ../internal/operators/repeatWhen */ "./node_modules/rxjs/_esm5/internal/operators/repeatWhen.js");
51990/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__["repeatWhen"]; });
51991
51992/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ../internal/operators/retry */ "./node_modules/rxjs/_esm5/internal/operators/retry.js");
51993/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__["retry"]; });
51994
51995/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ../internal/operators/retryWhen */ "./node_modules/rxjs/_esm5/internal/operators/retryWhen.js");
51996/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__["retryWhen"]; });
51997
51998/* harmony import */ var _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(/*! ../internal/operators/refCount */ "./node_modules/rxjs/_esm5/internal/operators/refCount.js");
51999/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__["refCount"]; });
52000
52001/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ../internal/operators/sample */ "./node_modules/rxjs/_esm5/internal/operators/sample.js");
52002/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__["sample"]; });
52003
52004/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ../internal/operators/sampleTime */ "./node_modules/rxjs/_esm5/internal/operators/sampleTime.js");
52005/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__["sampleTime"]; });
52006
52007/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ../internal/operators/scan */ "./node_modules/rxjs/_esm5/internal/operators/scan.js");
52008/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__["scan"]; });
52009
52010/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(/*! ../internal/operators/sequenceEqual */ "./node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js");
52011/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__["sequenceEqual"]; });
52012
52013/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(/*! ../internal/operators/share */ "./node_modules/rxjs/_esm5/internal/operators/share.js");
52014/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "share", function() { return _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__["share"]; });
52015
52016/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(/*! ../internal/operators/shareReplay */ "./node_modules/rxjs/_esm5/internal/operators/shareReplay.js");
52017/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__["shareReplay"]; });
52018
52019/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(/*! ../internal/operators/single */ "./node_modules/rxjs/_esm5/internal/operators/single.js");
52020/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "single", function() { return _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__["single"]; });
52021
52022/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(/*! ../internal/operators/skip */ "./node_modules/rxjs/_esm5/internal/operators/skip.js");
52023/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__["skip"]; });
52024
52025/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(/*! ../internal/operators/skipLast */ "./node_modules/rxjs/_esm5/internal/operators/skipLast.js");
52026/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__["skipLast"]; });
52027
52028/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(/*! ../internal/operators/skipUntil */ "./node_modules/rxjs/_esm5/internal/operators/skipUntil.js");
52029/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__["skipUntil"]; });
52030
52031/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(/*! ../internal/operators/skipWhile */ "./node_modules/rxjs/_esm5/internal/operators/skipWhile.js");
52032/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__["skipWhile"]; });
52033
52034/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(/*! ../internal/operators/startWith */ "./node_modules/rxjs/_esm5/internal/operators/startWith.js");
52035/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__["startWith"]; });
52036
52037/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(/*! ../internal/operators/subscribeOn */ "./node_modules/rxjs/_esm5/internal/operators/subscribeOn.js");
52038/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__["subscribeOn"]; });
52039
52040/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(/*! ../internal/operators/switchAll */ "./node_modules/rxjs/_esm5/internal/operators/switchAll.js");
52041/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__["switchAll"]; });
52042
52043/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(/*! ../internal/operators/switchMap */ "./node_modules/rxjs/_esm5/internal/operators/switchMap.js");
52044/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__["switchMap"]; });
52045
52046/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(/*! ../internal/operators/switchMapTo */ "./node_modules/rxjs/_esm5/internal/operators/switchMapTo.js");
52047/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__["switchMapTo"]; });
52048
52049/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(/*! ../internal/operators/take */ "./node_modules/rxjs/_esm5/internal/operators/take.js");
52050/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "take", function() { return _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__["take"]; });
52051
52052/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(/*! ../internal/operators/takeLast */ "./node_modules/rxjs/_esm5/internal/operators/takeLast.js");
52053/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__["takeLast"]; });
52054
52055/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../internal/operators/takeUntil */ "./node_modules/rxjs/_esm5/internal/operators/takeUntil.js");
52056/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__["takeUntil"]; });
52057
52058/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(/*! ../internal/operators/takeWhile */ "./node_modules/rxjs/_esm5/internal/operators/takeWhile.js");
52059/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__["takeWhile"]; });
52060
52061/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(/*! ../internal/operators/tap */ "./node_modules/rxjs/_esm5/internal/operators/tap.js");
52062/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__["tap"]; });
52063
52064/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(/*! ../internal/operators/throttle */ "./node_modules/rxjs/_esm5/internal/operators/throttle.js");
52065/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__["throttle"]; });
52066
52067/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(/*! ../internal/operators/throttleTime */ "./node_modules/rxjs/_esm5/internal/operators/throttleTime.js");
52068/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__["throttleTime"]; });
52069
52070/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(/*! ../internal/operators/throwIfEmpty */ "./node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js");
52071/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__["throwIfEmpty"]; });
52072
52073/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(/*! ../internal/operators/timeInterval */ "./node_modules/rxjs/_esm5/internal/operators/timeInterval.js");
52074/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__["timeInterval"]; });
52075
52076/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(/*! ../internal/operators/timeout */ "./node_modules/rxjs/_esm5/internal/operators/timeout.js");
52077/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__["timeout"]; });
52078
52079/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(/*! ../internal/operators/timeoutWith */ "./node_modules/rxjs/_esm5/internal/operators/timeoutWith.js");
52080/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__["timeoutWith"]; });
52081
52082/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(/*! ../internal/operators/timestamp */ "./node_modules/rxjs/_esm5/internal/operators/timestamp.js");
52083/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__["timestamp"]; });
52084
52085/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(/*! ../internal/operators/toArray */ "./node_modules/rxjs/_esm5/internal/operators/toArray.js");
52086/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__["toArray"]; });
52087
52088/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(/*! ../internal/operators/window */ "./node_modules/rxjs/_esm5/internal/operators/window.js");
52089/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__["window"]; });
52090
52091/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(/*! ../internal/operators/windowCount */ "./node_modules/rxjs/_esm5/internal/operators/windowCount.js");
52092/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__["windowCount"]; });
52093
52094/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(/*! ../internal/operators/windowTime */ "./node_modules/rxjs/_esm5/internal/operators/windowTime.js");
52095/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__["windowTime"]; });
52096
52097/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(/*! ../internal/operators/windowToggle */ "./node_modules/rxjs/_esm5/internal/operators/windowToggle.js");
52098/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__["windowToggle"]; });
52099
52100/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(/*! ../internal/operators/windowWhen */ "./node_modules/rxjs/_esm5/internal/operators/windowWhen.js");
52101/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__["windowWhen"]; });
52102
52103/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(/*! ../internal/operators/withLatestFrom */ "./node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js");
52104/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__["withLatestFrom"]; });
52105
52106/* harmony import */ var _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(/*! ../internal/operators/zip */ "./node_modules/rxjs/_esm5/internal/operators/zip.js");
52107/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__["zip"]; });
52108
52109/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(/*! ../internal/operators/zipAll */ "./node_modules/rxjs/_esm5/internal/operators/zipAll.js");
52110/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__["zipAll"]; });
52111
52112/** PURE_IMPORTS_START PURE_IMPORTS_END */
52113
52114
52115
52116
52117
52118
52119
52120
52121
52122
52123
52124
52125
52126
52127
52128
52129
52130
52131
52132
52133
52134
52135
52136
52137
52138
52139
52140
52141
52142
52143
52144
52145
52146
52147
52148
52149
52150
52151
52152
52153
52154
52155
52156
52157
52158
52159
52160
52161
52162
52163
52164
52165
52166
52167
52168
52169
52170
52171
52172
52173
52174
52175
52176
52177
52178
52179
52180
52181
52182
52183
52184
52185
52186
52187
52188
52189
52190
52191
52192
52193
52194
52195
52196
52197
52198
52199
52200
52201
52202
52203
52204
52205
52206
52207
52208
52209
52210
52211
52212
52213
52214
52215
52216
52217//# sourceMappingURL=index.js.map
52218
52219
52220/***/ }),
52221
52222/***/ "./node_modules/safer-buffer/safer.js":
52223/*!********************************************!*\
52224 !*** ./node_modules/safer-buffer/safer.js ***!
52225 \********************************************/
52226/*! no static exports found */
52227/***/ (function(module, exports, __webpack_require__) {
52228
52229"use strict";
52230/* eslint-disable node/no-deprecated-api */
52231
52232
52233
52234var buffer = __webpack_require__(/*! buffer */ "buffer")
52235var Buffer = buffer.Buffer
52236
52237var safer = {}
52238
52239var key
52240
52241for (key in buffer) {
52242 if (!buffer.hasOwnProperty(key)) continue
52243 if (key === 'SlowBuffer' || key === 'Buffer') continue
52244 safer[key] = buffer[key]
52245}
52246
52247var Safer = safer.Buffer = {}
52248for (key in Buffer) {
52249 if (!Buffer.hasOwnProperty(key)) continue
52250 if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue
52251 Safer[key] = Buffer[key]
52252}
52253
52254safer.Buffer.prototype = Buffer.prototype
52255
52256if (!Safer.from || Safer.from === Uint8Array.from) {
52257 Safer.from = function (value, encodingOrOffset, length) {
52258 if (typeof value === 'number') {
52259 throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value)
52260 }
52261 if (value && typeof value.length === 'undefined') {
52262 throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)
52263 }
52264 return Buffer(value, encodingOrOffset, length)
52265 }
52266}
52267
52268if (!Safer.alloc) {
52269 Safer.alloc = function (size, fill, encoding) {
52270 if (typeof size !== 'number') {
52271 throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size)
52272 }
52273 if (size < 0 || size >= 2 * (1 << 30)) {
52274 throw new RangeError('The value "' + size + '" is invalid for option "size"')
52275 }
52276 var buf = Buffer(size)
52277 if (!fill || fill.length === 0) {
52278 buf.fill(0)
52279 } else if (typeof encoding === 'string') {
52280 buf.fill(fill, encoding)
52281 } else {
52282 buf.fill(fill)
52283 }
52284 return buf
52285 }
52286}
52287
52288if (!safer.kStringMaxLength) {
52289 try {
52290 safer.kStringMaxLength = process.binding('buffer').kStringMaxLength
52291 } catch (e) {
52292 // we can't determine kStringMaxLength in environments where process.binding
52293 // is unsupported, so let's not set it
52294 }
52295}
52296
52297if (!safer.constants) {
52298 safer.constants = {
52299 MAX_LENGTH: safer.kMaxLength
52300 }
52301 if (safer.kStringMaxLength) {
52302 safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength
52303 }
52304}
52305
52306module.exports = safer
52307
52308
52309/***/ }),
52310
52311/***/ "./node_modules/signal-exit/index.js":
52312/*!*******************************************!*\
52313 !*** ./node_modules/signal-exit/index.js ***!
52314 \*******************************************/
52315/*! no static exports found */
52316/***/ (function(module, exports, __webpack_require__) {
52317
52318// Note: since nyc uses this module to output coverage, any lines
52319// that are in the direct sync flow of nyc's outputCoverage are
52320// ignored, since we can never get coverage for them.
52321var assert = __webpack_require__(/*! assert */ "assert")
52322var signals = __webpack_require__(/*! ./signals.js */ "./node_modules/signal-exit/signals.js")
52323
52324var EE = __webpack_require__(/*! events */ "events")
52325/* istanbul ignore if */
52326if (typeof EE !== 'function') {
52327 EE = EE.EventEmitter
52328}
52329
52330var emitter
52331if (process.__signal_exit_emitter__) {
52332 emitter = process.__signal_exit_emitter__
52333} else {
52334 emitter = process.__signal_exit_emitter__ = new EE()
52335 emitter.count = 0
52336 emitter.emitted = {}
52337}
52338
52339// Because this emitter is a global, we have to check to see if a
52340// previous version of this library failed to enable infinite listeners.
52341// I know what you're about to say. But literally everything about
52342// signal-exit is a compromise with evil. Get used to it.
52343if (!emitter.infinite) {
52344 emitter.setMaxListeners(Infinity)
52345 emitter.infinite = true
52346}
52347
52348module.exports = function (cb, opts) {
52349 assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')
52350
52351 if (loaded === false) {
52352 load()
52353 }
52354
52355 var ev = 'exit'
52356 if (opts && opts.alwaysLast) {
52357 ev = 'afterexit'
52358 }
52359
52360 var remove = function () {
52361 emitter.removeListener(ev, cb)
52362 if (emitter.listeners('exit').length === 0 &&
52363 emitter.listeners('afterexit').length === 0) {
52364 unload()
52365 }
52366 }
52367 emitter.on(ev, cb)
52368
52369 return remove
52370}
52371
52372module.exports.unload = unload
52373function unload () {
52374 if (!loaded) {
52375 return
52376 }
52377 loaded = false
52378
52379 signals.forEach(function (sig) {
52380 try {
52381 process.removeListener(sig, sigListeners[sig])
52382 } catch (er) {}
52383 })
52384 process.emit = originalProcessEmit
52385 process.reallyExit = originalProcessReallyExit
52386 emitter.count -= 1
52387}
52388
52389function emit (event, code, signal) {
52390 if (emitter.emitted[event]) {
52391 return
52392 }
52393 emitter.emitted[event] = true
52394 emitter.emit(event, code, signal)
52395}
52396
52397// { <signal>: <listener fn>, ... }
52398var sigListeners = {}
52399signals.forEach(function (sig) {
52400 sigListeners[sig] = function listener () {
52401 // If there are no other listeners, an exit is coming!
52402 // Simplest way: remove us and then re-send the signal.
52403 // We know that this will kill the process, so we can
52404 // safely emit now.
52405 var listeners = process.listeners(sig)
52406 if (listeners.length === emitter.count) {
52407 unload()
52408 emit('exit', null, sig)
52409 /* istanbul ignore next */
52410 emit('afterexit', null, sig)
52411 /* istanbul ignore next */
52412 process.kill(process.pid, sig)
52413 }
52414 }
52415})
52416
52417module.exports.signals = function () {
52418 return signals
52419}
52420
52421module.exports.load = load
52422
52423var loaded = false
52424
52425function load () {
52426 if (loaded) {
52427 return
52428 }
52429 loaded = true
52430
52431 // This is the number of onSignalExit's that are in play.
52432 // It's important so that we can count the correct number of
52433 // listeners on signals, and don't wait for the other one to
52434 // handle it instead of us.
52435 emitter.count += 1
52436
52437 signals = signals.filter(function (sig) {
52438 try {
52439 process.on(sig, sigListeners[sig])
52440 return true
52441 } catch (er) {
52442 return false
52443 }
52444 })
52445
52446 process.emit = processEmit
52447 process.reallyExit = processReallyExit
52448}
52449
52450var originalProcessReallyExit = process.reallyExit
52451function processReallyExit (code) {
52452 process.exitCode = code || 0
52453 emit('exit', process.exitCode, null)
52454 /* istanbul ignore next */
52455 emit('afterexit', process.exitCode, null)
52456 /* istanbul ignore next */
52457 originalProcessReallyExit.call(process, process.exitCode)
52458}
52459
52460var originalProcessEmit = process.emit
52461function processEmit (ev, arg) {
52462 if (ev === 'exit') {
52463 if (arg !== undefined) {
52464 process.exitCode = arg
52465 }
52466 var ret = originalProcessEmit.apply(this, arguments)
52467 emit('exit', process.exitCode, null)
52468 /* istanbul ignore next */
52469 emit('afterexit', process.exitCode, null)
52470 return ret
52471 } else {
52472 return originalProcessEmit.apply(this, arguments)
52473 }
52474}
52475
52476
52477/***/ }),
52478
52479/***/ "./node_modules/signal-exit/signals.js":
52480/*!*********************************************!*\
52481 !*** ./node_modules/signal-exit/signals.js ***!
52482 \*********************************************/
52483/*! no static exports found */
52484/***/ (function(module, exports) {
52485
52486// This is not the set of all possible signals.
52487//
52488// It IS, however, the set of all signals that trigger
52489// an exit on either Linux or BSD systems. Linux is a
52490// superset of the signal names supported on BSD, and
52491// the unknown signals just fail to register, so we can
52492// catch that easily enough.
52493//
52494// Don't bother with SIGKILL. It's uncatchable, which
52495// means that we can't fire any callbacks anyway.
52496//
52497// If a user does happen to register a handler on a non-
52498// fatal signal like SIGWINCH or something, and then
52499// exit, it'll end up firing `process.emit('exit')`, so
52500// the handler will be fired anyway.
52501//
52502// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised
52503// artificially, inherently leave the process in a
52504// state from which it is not safe to try and enter JS
52505// listeners.
52506module.exports = [
52507 'SIGABRT',
52508 'SIGALRM',
52509 'SIGHUP',
52510 'SIGINT',
52511 'SIGTERM'
52512]
52513
52514if (process.platform !== 'win32') {
52515 module.exports.push(
52516 'SIGVTALRM',
52517 'SIGXCPU',
52518 'SIGXFSZ',
52519 'SIGUSR2',
52520 'SIGTRAP',
52521 'SIGSYS',
52522 'SIGQUIT',
52523 'SIGIOT'
52524 // should detect profiler and enable/disable accordingly.
52525 // see #21
52526 // 'SIGPROF'
52527 )
52528}
52529
52530if (process.platform === 'linux') {
52531 module.exports.push(
52532 'SIGIO',
52533 'SIGPOLL',
52534 'SIGPWR',
52535 'SIGSTKFLT',
52536 'SIGUNUSED'
52537 )
52538}
52539
52540
52541/***/ }),
52542
52543/***/ "./node_modules/string-width/index.js":
52544/*!********************************************!*\
52545 !*** ./node_modules/string-width/index.js ***!
52546 \********************************************/
52547/*! no static exports found */
52548/***/ (function(module, exports, __webpack_require__) {
52549
52550"use strict";
52551
52552const stripAnsi = __webpack_require__(/*! strip-ansi */ "./node_modules/string-width/node_modules/strip-ansi/index.js");
52553const isFullwidthCodePoint = __webpack_require__(/*! is-fullwidth-code-point */ "./node_modules/is-fullwidth-code-point/index.js");
52554
52555module.exports = str => {
52556 if (typeof str !== 'string' || str.length === 0) {
52557 return 0;
52558 }
52559
52560 str = stripAnsi(str);
52561
52562 let width = 0;
52563
52564 for (let i = 0; i < str.length; i++) {
52565 const code = str.codePointAt(i);
52566
52567 // Ignore control characters
52568 if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {
52569 continue;
52570 }
52571
52572 // Ignore combining characters
52573 if (code >= 0x300 && code <= 0x36F) {
52574 continue;
52575 }
52576
52577 // Surrogates
52578 if (code > 0xFFFF) {
52579 i++;
52580 }
52581
52582 width += isFullwidthCodePoint(code) ? 2 : 1;
52583 }
52584
52585 return width;
52586};
52587
52588
52589/***/ }),
52590
52591/***/ "./node_modules/string-width/node_modules/ansi-regex/index.js":
52592/*!********************************************************************!*\
52593 !*** ./node_modules/string-width/node_modules/ansi-regex/index.js ***!
52594 \********************************************************************/
52595/*! no static exports found */
52596/***/ (function(module, exports, __webpack_require__) {
52597
52598"use strict";
52599
52600
52601module.exports = () => {
52602 const pattern = [
52603 '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)',
52604 '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))'
52605 ].join('|');
52606
52607 return new RegExp(pattern, 'g');
52608};
52609
52610
52611/***/ }),
52612
52613/***/ "./node_modules/string-width/node_modules/strip-ansi/index.js":
52614/*!********************************************************************!*\
52615 !*** ./node_modules/string-width/node_modules/strip-ansi/index.js ***!
52616 \********************************************************************/
52617/*! no static exports found */
52618/***/ (function(module, exports, __webpack_require__) {
52619
52620"use strict";
52621
52622const ansiRegex = __webpack_require__(/*! ansi-regex */ "./node_modules/string-width/node_modules/ansi-regex/index.js");
52623
52624module.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input;
52625
52626
52627/***/ }),
52628
52629/***/ "./node_modules/supports-color/index.js":
52630/*!**********************************************!*\
52631 !*** ./node_modules/supports-color/index.js ***!
52632 \**********************************************/
52633/*! no static exports found */
52634/***/ (function(module, exports, __webpack_require__) {
52635
52636"use strict";
52637
52638const os = __webpack_require__(/*! os */ "os");
52639const hasFlag = __webpack_require__(/*! has-flag */ "./node_modules/has-flag/index.js");
52640
52641const env = process.env;
52642
52643let forceColor;
52644if (hasFlag('no-color') ||
52645 hasFlag('no-colors') ||
52646 hasFlag('color=false')) {
52647 forceColor = false;
52648} else if (hasFlag('color') ||
52649 hasFlag('colors') ||
52650 hasFlag('color=true') ||
52651 hasFlag('color=always')) {
52652 forceColor = true;
52653}
52654if ('FORCE_COLOR' in env) {
52655 forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
52656}
52657
52658function translateLevel(level) {
52659 if (level === 0) {
52660 return false;
52661 }
52662
52663 return {
52664 level,
52665 hasBasic: true,
52666 has256: level >= 2,
52667 has16m: level >= 3
52668 };
52669}
52670
52671function supportsColor(stream) {
52672 if (forceColor === false) {
52673 return 0;
52674 }
52675
52676 if (hasFlag('color=16m') ||
52677 hasFlag('color=full') ||
52678 hasFlag('color=truecolor')) {
52679 return 3;
52680 }
52681
52682 if (hasFlag('color=256')) {
52683 return 2;
52684 }
52685
52686 if (stream && !stream.isTTY && forceColor !== true) {
52687 return 0;
52688 }
52689
52690 const min = forceColor ? 1 : 0;
52691
52692 if (process.platform === 'win32') {
52693 // Node.js 7.5.0 is the first version of Node.js to include a patch to
52694 // libuv that enables 256 color output on Windows. Anything earlier and it
52695 // won't work. However, here we target Node.js 8 at minimum as it is an LTS
52696 // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows
52697 // release that supports 256 colors. Windows 10 build 14931 is the first release
52698 // that supports 16m/TrueColor.
52699 const osRelease = os.release().split('.');
52700 if (
52701 Number(process.versions.node.split('.')[0]) >= 8 &&
52702 Number(osRelease[0]) >= 10 &&
52703 Number(osRelease[2]) >= 10586
52704 ) {
52705 return Number(osRelease[2]) >= 14931 ? 3 : 2;
52706 }
52707
52708 return 1;
52709 }
52710
52711 if ('CI' in env) {
52712 if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
52713 return 1;
52714 }
52715
52716 return min;
52717 }
52718
52719 if ('TEAMCITY_VERSION' in env) {
52720 return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
52721 }
52722
52723 if (env.COLORTERM === 'truecolor') {
52724 return 3;
52725 }
52726
52727 if ('TERM_PROGRAM' in env) {
52728 const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
52729
52730 switch (env.TERM_PROGRAM) {
52731 case 'iTerm.app':
52732 return version >= 3 ? 3 : 2;
52733 case 'Apple_Terminal':
52734 return 2;
52735 // No default
52736 }
52737 }
52738
52739 if (/-256(color)?$/i.test(env.TERM)) {
52740 return 2;
52741 }
52742
52743 if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
52744 return 1;
52745 }
52746
52747 if ('COLORTERM' in env) {
52748 return 1;
52749 }
52750
52751 if (env.TERM === 'dumb') {
52752 return min;
52753 }
52754
52755 return min;
52756}
52757
52758function getSupportLevel(stream) {
52759 const level = supportsColor(stream);
52760 return translateLevel(level);
52761}
52762
52763module.exports = {
52764 supportsColor: getSupportLevel,
52765 stdout: getSupportLevel(process.stdout),
52766 stderr: getSupportLevel(process.stderr)
52767};
52768
52769
52770/***/ }),
52771
52772/***/ "./node_modules/through/index.js":
52773/*!***************************************!*\
52774 !*** ./node_modules/through/index.js ***!
52775 \***************************************/
52776/*! no static exports found */
52777/***/ (function(module, exports, __webpack_require__) {
52778
52779var Stream = __webpack_require__(/*! stream */ "stream")
52780
52781// through
52782//
52783// a stream that does nothing but re-emit the input.
52784// useful for aggregating a series of changing but not ending streams into one stream)
52785
52786exports = module.exports = through
52787through.through = through
52788
52789//create a readable writable stream.
52790
52791function through (write, end, opts) {
52792 write = write || function (data) { this.queue(data) }
52793 end = end || function () { this.queue(null) }
52794
52795 var ended = false, destroyed = false, buffer = [], _ended = false
52796 var stream = new Stream()
52797 stream.readable = stream.writable = true
52798 stream.paused = false
52799
52800// stream.autoPause = !(opts && opts.autoPause === false)
52801 stream.autoDestroy = !(opts && opts.autoDestroy === false)
52802
52803 stream.write = function (data) {
52804 write.call(this, data)
52805 return !stream.paused
52806 }
52807
52808 function drain() {
52809 while(buffer.length && !stream.paused) {
52810 var data = buffer.shift()
52811 if(null === data)
52812 return stream.emit('end')
52813 else
52814 stream.emit('data', data)
52815 }
52816 }
52817
52818 stream.queue = stream.push = function (data) {
52819// console.error(ended)
52820 if(_ended) return stream
52821 if(data === null) _ended = true
52822 buffer.push(data)
52823 drain()
52824 return stream
52825 }
52826
52827 //this will be registered as the first 'end' listener
52828 //must call destroy next tick, to make sure we're after any
52829 //stream piped from here.
52830 //this is only a problem if end is not emitted synchronously.
52831 //a nicer way to do this is to make sure this is the last listener for 'end'
52832
52833 stream.on('end', function () {
52834 stream.readable = false
52835 if(!stream.writable && stream.autoDestroy)
52836 process.nextTick(function () {
52837 stream.destroy()
52838 })
52839 })
52840
52841 function _end () {
52842 stream.writable = false
52843 end.call(stream)
52844 if(!stream.readable && stream.autoDestroy)
52845 stream.destroy()
52846 }
52847
52848 stream.end = function (data) {
52849 if(ended) return
52850 ended = true
52851 if(arguments.length) stream.write(data)
52852 _end() // will emit or queue
52853 return stream
52854 }
52855
52856 stream.destroy = function () {
52857 if(destroyed) return
52858 destroyed = true
52859 ended = true
52860 buffer.length = 0
52861 stream.writable = stream.readable = false
52862 stream.emit('close')
52863 return stream
52864 }
52865
52866 stream.pause = function () {
52867 if(stream.paused) return
52868 stream.paused = true
52869 return stream
52870 }
52871
52872 stream.resume = function () {
52873 if(stream.paused) {
52874 stream.paused = false
52875 stream.emit('resume')
52876 }
52877 drain()
52878 //may have become paused again,
52879 //as drain emits 'data'.
52880 if(!stream.paused)
52881 stream.emit('drain')
52882 return stream
52883 }
52884 return stream
52885}
52886
52887
52888
52889/***/ }),
52890
52891/***/ "./node_modules/tmp/lib/tmp.js":
52892/*!*************************************!*\
52893 !*** ./node_modules/tmp/lib/tmp.js ***!
52894 \*************************************/
52895/*! no static exports found */
52896/***/ (function(module, exports, __webpack_require__) {
52897
52898/*!
52899 * Tmp
52900 *
52901 * Copyright (c) 2011-2017 KARASZI Istvan <github@spam.raszi.hu>
52902 *
52903 * MIT Licensed
52904 */
52905
52906/*
52907 * Module dependencies.
52908 */
52909const fs = __webpack_require__(/*! fs */ "fs");
52910const path = __webpack_require__(/*! path */ "path");
52911const crypto = __webpack_require__(/*! crypto */ "crypto");
52912const osTmpDir = __webpack_require__(/*! os-tmpdir */ "./node_modules/os-tmpdir/index.js");
52913const _c = process.binding('constants');
52914
52915/*
52916 * The working inner variables.
52917 */
52918const
52919 /**
52920 * The temporary directory.
52921 * @type {string}
52922 */
52923 tmpDir = osTmpDir(),
52924
52925 // the random characters to choose from
52926 RANDOM_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
52927
52928 TEMPLATE_PATTERN = /XXXXXX/,
52929
52930 DEFAULT_TRIES = 3,
52931
52932 CREATE_FLAGS = (_c.O_CREAT || _c.fs.O_CREAT) | (_c.O_EXCL || _c.fs.O_EXCL) | (_c.O_RDWR || _c.fs.O_RDWR),
52933
52934 EBADF = _c.EBADF || _c.os.errno.EBADF,
52935 ENOENT = _c.ENOENT || _c.os.errno.ENOENT,
52936
52937 DIR_MODE = 448 /* 0o700 */,
52938 FILE_MODE = 384 /* 0o600 */,
52939
52940 // this will hold the objects need to be removed on exit
52941 _removeObjects = [];
52942
52943var
52944 _gracefulCleanup = false,
52945 _uncaughtException = false;
52946
52947/**
52948 * Random name generator based on crypto.
52949 * Adapted from http://blog.tompawlak.org/how-to-generate-random-values-nodejs-javascript
52950 *
52951 * @param {number} howMany
52952 * @returns {string} the generated random name
52953 * @private
52954 */
52955function _randomChars(howMany) {
52956 var
52957 value = [],
52958 rnd = null;
52959
52960 // make sure that we do not fail because we ran out of entropy
52961 try {
52962 rnd = crypto.randomBytes(howMany);
52963 } catch (e) {
52964 rnd = crypto.pseudoRandomBytes(howMany);
52965 }
52966
52967 for (var i = 0; i < howMany; i++) {
52968 value.push(RANDOM_CHARS[rnd[i] % RANDOM_CHARS.length]);
52969 }
52970
52971 return value.join('');
52972}
52973
52974/**
52975 * Checks whether the `obj` parameter is defined or not.
52976 *
52977 * @param {Object} obj
52978 * @returns {boolean} true if the object is undefined
52979 * @private
52980 */
52981function _isUndefined(obj) {
52982 return typeof obj === 'undefined';
52983}
52984
52985/**
52986 * Parses the function arguments.
52987 *
52988 * This function helps to have optional arguments.
52989 *
52990 * @param {(Options|Function)} options
52991 * @param {Function} callback
52992 * @returns {Array} parsed arguments
52993 * @private
52994 */
52995function _parseArguments(options, callback) {
52996 if (typeof options == 'function') {
52997 return [callback || {}, options];
52998 }
52999
53000 if (_isUndefined(options)) {
53001 return [{}, callback];
53002 }
53003
53004 return [options, callback];
53005}
53006
53007/**
53008 * Generates a new temporary name.
53009 *
53010 * @param {Object} opts
53011 * @returns {string} the new random name according to opts
53012 * @private
53013 */
53014function _generateTmpName(opts) {
53015 if (opts.name) {
53016 return path.join(opts.dir || tmpDir, opts.name);
53017 }
53018
53019 // mkstemps like template
53020 if (opts.template) {
53021 return opts.template.replace(TEMPLATE_PATTERN, _randomChars(6));
53022 }
53023
53024 // prefix and postfix
53025 const name = [
53026 opts.prefix || 'tmp-',
53027 process.pid,
53028 _randomChars(12),
53029 opts.postfix || ''
53030 ].join('');
53031
53032 return path.join(opts.dir || tmpDir, name);
53033}
53034
53035/**
53036 * Gets a temporary file name.
53037 *
53038 * @param {(Options|tmpNameCallback)} options options or callback
53039 * @param {?tmpNameCallback} callback the callback function
53040 */
53041function tmpName(options, callback) {
53042 var
53043 args = _parseArguments(options, callback),
53044 opts = args[0],
53045 cb = args[1],
53046 tries = opts.name ? 1 : opts.tries || DEFAULT_TRIES;
53047
53048 if (isNaN(tries) || tries < 0)
53049 return cb(new Error('Invalid tries'));
53050
53051 if (opts.template && !opts.template.match(TEMPLATE_PATTERN))
53052 return cb(new Error('Invalid template provided'));
53053
53054 (function _getUniqueName() {
53055 const name = _generateTmpName(opts);
53056
53057 // check whether the path exists then retry if needed
53058 fs.stat(name, function (err) {
53059 if (!err) {
53060 if (tries-- > 0) return _getUniqueName();
53061
53062 return cb(new Error('Could not get a unique tmp filename, max tries reached ' + name));
53063 }
53064
53065 cb(null, name);
53066 });
53067 }());
53068}
53069
53070/**
53071 * Synchronous version of tmpName.
53072 *
53073 * @param {Object} options
53074 * @returns {string} the generated random name
53075 * @throws {Error} if the options are invalid or could not generate a filename
53076 */
53077function tmpNameSync(options) {
53078 var
53079 args = _parseArguments(options),
53080 opts = args[0],
53081 tries = opts.name ? 1 : opts.tries || DEFAULT_TRIES;
53082
53083 if (isNaN(tries) || tries < 0)
53084 throw new Error('Invalid tries');
53085
53086 if (opts.template && !opts.template.match(TEMPLATE_PATTERN))
53087 throw new Error('Invalid template provided');
53088
53089 do {
53090 const name = _generateTmpName(opts);
53091 try {
53092 fs.statSync(name);
53093 } catch (e) {
53094 return name;
53095 }
53096 } while (tries-- > 0);
53097
53098 throw new Error('Could not get a unique tmp filename, max tries reached');
53099}
53100
53101/**
53102 * Creates and opens a temporary file.
53103 *
53104 * @param {(Options|fileCallback)} options the config options or the callback function
53105 * @param {?fileCallback} callback
53106 */
53107function file(options, callback) {
53108 var
53109 args = _parseArguments(options, callback),
53110 opts = args[0],
53111 cb = args[1];
53112
53113 opts.postfix = (_isUndefined(opts.postfix)) ? '.tmp' : opts.postfix;
53114
53115 // gets a temporary filename
53116 tmpName(opts, function _tmpNameCreated(err, name) {
53117 if (err) return cb(err);
53118
53119 // create and open the file
53120 fs.open(name, CREATE_FLAGS, opts.mode || FILE_MODE, function _fileCreated(err, fd) {
53121 if (err) return cb(err);
53122
53123 if (opts.discardDescriptor) {
53124 return fs.close(fd, function _discardCallback(err) {
53125 if (err) {
53126 // Low probability, and the file exists, so this could be
53127 // ignored. If it isn't we certainly need to unlink the
53128 // file, and if that fails too its error is more
53129 // important.
53130 try {
53131 fs.unlinkSync(name);
53132 } catch (e) {
53133 if (!isENOENT(e)) {
53134 err = e;
53135 }
53136 }
53137 return cb(err);
53138 }
53139 cb(null, name, undefined, _prepareTmpFileRemoveCallback(name, -1, opts));
53140 });
53141 }
53142 if (opts.detachDescriptor) {
53143 return cb(null, name, fd, _prepareTmpFileRemoveCallback(name, -1, opts));
53144 }
53145 cb(null, name, fd, _prepareTmpFileRemoveCallback(name, fd, opts));
53146 });
53147 });
53148}
53149
53150/**
53151 * Synchronous version of file.
53152 *
53153 * @param {Options} options
53154 * @returns {FileSyncObject} object consists of name, fd and removeCallback
53155 * @throws {Error} if cannot create a file
53156 */
53157function fileSync(options) {
53158 var
53159 args = _parseArguments(options),
53160 opts = args[0];
53161
53162 opts.postfix = opts.postfix || '.tmp';
53163
53164 const discardOrDetachDescriptor = opts.discardDescriptor || opts.detachDescriptor;
53165 const name = tmpNameSync(opts);
53166 var fd = fs.openSync(name, CREATE_FLAGS, opts.mode || FILE_MODE);
53167 if (opts.discardDescriptor) {
53168 fs.closeSync(fd);
53169 fd = undefined;
53170 }
53171
53172 return {
53173 name: name,
53174 fd: fd,
53175 removeCallback: _prepareTmpFileRemoveCallback(name, discardOrDetachDescriptor ? -1 : fd, opts)
53176 };
53177}
53178
53179/**
53180 * Removes files and folders in a directory recursively.
53181 *
53182 * @param {string} root
53183 * @private
53184 */
53185function _rmdirRecursiveSync(root) {
53186 const dirs = [root];
53187
53188 do {
53189 var
53190 dir = dirs.pop(),
53191 deferred = false,
53192 files = fs.readdirSync(dir);
53193
53194 for (var i = 0, length = files.length; i < length; i++) {
53195 var
53196 file = path.join(dir, files[i]),
53197 stat = fs.lstatSync(file); // lstat so we don't recurse into symlinked directories
53198
53199 if (stat.isDirectory()) {
53200 if (!deferred) {
53201 deferred = true;
53202 dirs.push(dir);
53203 }
53204 dirs.push(file);
53205 } else {
53206 fs.unlinkSync(file);
53207 }
53208 }
53209
53210 if (!deferred) {
53211 fs.rmdirSync(dir);
53212 }
53213 } while (dirs.length !== 0);
53214}
53215
53216/**
53217 * Creates a temporary directory.
53218 *
53219 * @param {(Options|dirCallback)} options the options or the callback function
53220 * @param {?dirCallback} callback
53221 */
53222function dir(options, callback) {
53223 var
53224 args = _parseArguments(options, callback),
53225 opts = args[0],
53226 cb = args[1];
53227
53228 // gets a temporary filename
53229 tmpName(opts, function _tmpNameCreated(err, name) {
53230 if (err) return cb(err);
53231
53232 // create the directory
53233 fs.mkdir(name, opts.mode || DIR_MODE, function _dirCreated(err) {
53234 if (err) return cb(err);
53235
53236 cb(null, name, _prepareTmpDirRemoveCallback(name, opts));
53237 });
53238 });
53239}
53240
53241/**
53242 * Synchronous version of dir.
53243 *
53244 * @param {Options} options
53245 * @returns {DirSyncObject} object consists of name and removeCallback
53246 * @throws {Error} if it cannot create a directory
53247 */
53248function dirSync(options) {
53249 var
53250 args = _parseArguments(options),
53251 opts = args[0];
53252
53253 const name = tmpNameSync(opts);
53254 fs.mkdirSync(name, opts.mode || DIR_MODE);
53255
53256 return {
53257 name: name,
53258 removeCallback: _prepareTmpDirRemoveCallback(name, opts)
53259 };
53260}
53261
53262/**
53263 * Prepares the callback for removal of the temporary file.
53264 *
53265 * @param {string} name the path of the file
53266 * @param {number} fd file descriptor
53267 * @param {Object} opts
53268 * @returns {fileCallback}
53269 * @private
53270 */
53271function _prepareTmpFileRemoveCallback(name, fd, opts) {
53272 const removeCallback = _prepareRemoveCallback(function _removeCallback(fdPath) {
53273 try {
53274 if (0 <= fdPath[0]) {
53275 fs.closeSync(fdPath[0]);
53276 }
53277 }
53278 catch (e) {
53279 // under some node/windows related circumstances, a temporary file
53280 // may have not be created as expected or the file was already closed
53281 // by the user, in which case we will simply ignore the error
53282 if (!isEBADF(e) && !isENOENT(e)) {
53283 // reraise any unanticipated error
53284 throw e;
53285 }
53286 }
53287 try {
53288 fs.unlinkSync(fdPath[1]);
53289 }
53290 catch (e) {
53291 if (!isENOENT(e)) {
53292 // reraise any unanticipated error
53293 throw e;
53294 }
53295 }
53296 }, [fd, name]);
53297
53298 if (!opts.keep) {
53299 _removeObjects.unshift(removeCallback);
53300 }
53301
53302 return removeCallback;
53303}
53304
53305/**
53306 * Prepares the callback for removal of the temporary directory.
53307 *
53308 * @param {string} name
53309 * @param {Object} opts
53310 * @returns {Function} the callback
53311 * @private
53312 */
53313function _prepareTmpDirRemoveCallback(name, opts) {
53314 const removeFunction = opts.unsafeCleanup ? _rmdirRecursiveSync : fs.rmdirSync.bind(fs);
53315 const removeCallback = _prepareRemoveCallback(removeFunction, name);
53316
53317 if (!opts.keep) {
53318 _removeObjects.unshift(removeCallback);
53319 }
53320
53321 return removeCallback;
53322}
53323
53324/**
53325 * Creates a guarded function wrapping the removeFunction call.
53326 *
53327 * @param {Function} removeFunction
53328 * @param {Object} arg
53329 * @returns {Function}
53330 * @private
53331 */
53332function _prepareRemoveCallback(removeFunction, arg) {
53333 var called = false;
53334
53335 return function _cleanupCallback(next) {
53336 if (!called) {
53337 const index = _removeObjects.indexOf(_cleanupCallback);
53338 if (index >= 0) {
53339 _removeObjects.splice(index, 1);
53340 }
53341
53342 called = true;
53343 removeFunction(arg);
53344 }
53345
53346 if (next) next(null);
53347 };
53348}
53349
53350/**
53351 * The garbage collector.
53352 *
53353 * @private
53354 */
53355function _garbageCollector() {
53356 if (_uncaughtException && !_gracefulCleanup) {
53357 return;
53358 }
53359
53360 // the function being called removes itself from _removeObjects,
53361 // loop until _removeObjects is empty
53362 while (_removeObjects.length) {
53363 try {
53364 _removeObjects[0].call(null);
53365 } catch (e) {
53366 // already removed?
53367 }
53368 }
53369}
53370
53371/**
53372 * Helper for testing against EBADF to compensate changes made to Node 7.x under Windows.
53373 */
53374function isEBADF(error) {
53375 return isExpectedError(error, -EBADF, 'EBADF');
53376}
53377
53378/**
53379 * Helper for testing against ENOENT to compensate changes made to Node 7.x under Windows.
53380 */
53381function isENOENT(error) {
53382 return isExpectedError(error, -ENOENT, 'ENOENT');
53383}
53384
53385/**
53386 * Helper to determine whether the expected error code matches the actual code and errno,
53387 * which will differ between the supported node versions.
53388 *
53389 * - Node >= 7.0:
53390 * error.code {String}
53391 * error.errno {String|Number} any numerical value will be negated
53392 *
53393 * - Node >= 6.0 < 7.0:
53394 * error.code {String}
53395 * error.errno {Number} negated
53396 *
53397 * - Node >= 4.0 < 6.0: introduces SystemError
53398 * error.code {String}
53399 * error.errno {Number} negated
53400 *
53401 * - Node >= 0.10 < 4.0:
53402 * error.code {Number} negated
53403 * error.errno n/a
53404 */
53405function isExpectedError(error, code, errno) {
53406 return error.code == code || error.code == errno;
53407}
53408
53409/**
53410 * Sets the graceful cleanup.
53411 *
53412 * Also removes the created files and directories when an uncaught exception occurs.
53413 */
53414function setGracefulCleanup() {
53415 _gracefulCleanup = true;
53416}
53417
53418const version = process.versions.node.split('.').map(function (value) {
53419 return parseInt(value, 10);
53420});
53421
53422if (version[0] === 0 && (version[1] < 9 || version[1] === 9 && version[2] < 5)) {
53423 process.addListener('uncaughtException', function _uncaughtExceptionThrown(err) {
53424 _uncaughtException = true;
53425 _garbageCollector();
53426
53427 throw err;
53428 });
53429}
53430
53431process.addListener('exit', function _exit(code) {
53432 if (code) _uncaughtException = true;
53433 _garbageCollector();
53434});
53435
53436/**
53437 * Configuration options.
53438 *
53439 * @typedef {Object} Options
53440 * @property {?number} tries the number of tries before give up the name generation
53441 * @property {?string} template the "mkstemp" like filename template
53442 * @property {?string} name fix name
53443 * @property {?string} dir the tmp directory to use
53444 * @property {?string} prefix prefix for the generated name
53445 * @property {?string} postfix postfix for the generated name
53446 */
53447
53448/**
53449 * @typedef {Object} FileSyncObject
53450 * @property {string} name the name of the file
53451 * @property {string} fd the file descriptor
53452 * @property {fileCallback} removeCallback the callback function to remove the file
53453 */
53454
53455/**
53456 * @typedef {Object} DirSyncObject
53457 * @property {string} name the name of the directory
53458 * @property {fileCallback} removeCallback the callback function to remove the directory
53459 */
53460
53461/**
53462 * @callback tmpNameCallback
53463 * @param {?Error} err the error object if anything goes wrong
53464 * @param {string} name the temporary file name
53465 */
53466
53467/**
53468 * @callback fileCallback
53469 * @param {?Error} err the error object if anything goes wrong
53470 * @param {string} name the temporary file name
53471 * @param {number} fd the file descriptor
53472 * @param {cleanupCallback} fn the cleanup callback function
53473 */
53474
53475/**
53476 * @callback dirCallback
53477 * @param {?Error} err the error object if anything goes wrong
53478 * @param {string} name the temporary file name
53479 * @param {cleanupCallback} fn the cleanup callback function
53480 */
53481
53482/**
53483 * Removes the temporary created file or directory.
53484 *
53485 * @callback cleanupCallback
53486 * @param {simpleCallback} [next] function to call after entry was removed
53487 */
53488
53489/**
53490 * Callback function for function composition.
53491 * @see {@link https://github.com/raszi/node-tmp/issues/57|raszi/node-tmp#57}
53492 *
53493 * @callback simpleCallback
53494 */
53495
53496// exporting all the needed methods
53497module.exports.tmpdir = tmpDir;
53498
53499module.exports.dir = dir;
53500module.exports.dirSync = dirSync;
53501
53502module.exports.file = file;
53503module.exports.fileSync = fileSync;
53504
53505module.exports.tmpName = tmpName;
53506module.exports.tmpNameSync = tmpNameSync;
53507
53508module.exports.setGracefulCleanup = setGracefulCleanup;
53509
53510
53511/***/ }),
53512
53513/***/ "./node_modules/tslib/tslib.es6.js":
53514/*!*****************************************!*\
53515 !*** ./node_modules/tslib/tslib.es6.js ***!
53516 \*****************************************/
53517/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
53518/***/ (function(module, __webpack_exports__, __webpack_require__) {
53519
53520"use strict";
53521__webpack_require__.r(__webpack_exports__);
53522/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; });
53523/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; });
53524/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; });
53525/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; });
53526/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; });
53527/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; });
53528/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; });
53529/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; });
53530/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; });
53531/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; });
53532/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; });
53533/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; });
53534/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; });
53535/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; });
53536/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; });
53537/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; });
53538/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; });
53539/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; });
53540/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; });
53541/*! *****************************************************************************
53542Copyright (c) Microsoft Corporation. All rights reserved.
53543Licensed under the Apache License, Version 2.0 (the "License"); you may not use
53544this file except in compliance with the License. You may obtain a copy of the
53545License at http://www.apache.org/licenses/LICENSE-2.0
53546
53547THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
53548KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
53549WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
53550MERCHANTABLITY OR NON-INFRINGEMENT.
53551
53552See the Apache Version 2.0 License for specific language governing permissions
53553and limitations under the License.
53554***************************************************************************** */
53555/* global Reflect, Promise */
53556
53557var extendStatics = function(d, b) {
53558 extendStatics = Object.setPrototypeOf ||
53559 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
53560 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
53561 return extendStatics(d, b);
53562};
53563
53564function __extends(d, b) {
53565 extendStatics(d, b);
53566 function __() { this.constructor = d; }
53567 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
53568}
53569
53570var __assign = function() {
53571 __assign = Object.assign || function __assign(t) {
53572 for (var s, i = 1, n = arguments.length; i < n; i++) {
53573 s = arguments[i];
53574 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
53575 }
53576 return t;
53577 }
53578 return __assign.apply(this, arguments);
53579}
53580
53581function __rest(s, e) {
53582 var t = {};
53583 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
53584 t[p] = s[p];
53585 if (s != null && typeof Object.getOwnPropertySymbols === "function")
53586 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
53587 t[p[i]] = s[p[i]];
53588 return t;
53589}
53590
53591function __decorate(decorators, target, key, desc) {
53592 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
53593 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
53594 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
53595 return c > 3 && r && Object.defineProperty(target, key, r), r;
53596}
53597
53598function __param(paramIndex, decorator) {
53599 return function (target, key) { decorator(target, key, paramIndex); }
53600}
53601
53602function __metadata(metadataKey, metadataValue) {
53603 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
53604}
53605
53606function __awaiter(thisArg, _arguments, P, generator) {
53607 return new (P || (P = Promise))(function (resolve, reject) {
53608 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
53609 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
53610 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
53611 step((generator = generator.apply(thisArg, _arguments || [])).next());
53612 });
53613}
53614
53615function __generator(thisArg, body) {
53616 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
53617 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
53618 function verb(n) { return function (v) { return step([n, v]); }; }
53619 function step(op) {
53620 if (f) throw new TypeError("Generator is already executing.");
53621 while (_) try {
53622 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
53623 if (y = 0, t) op = [op[0] & 2, t.value];
53624 switch (op[0]) {
53625 case 0: case 1: t = op; break;
53626 case 4: _.label++; return { value: op[1], done: false };
53627 case 5: _.label++; y = op[1]; op = [0]; continue;
53628 case 7: op = _.ops.pop(); _.trys.pop(); continue;
53629 default:
53630 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53631 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
53632 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
53633 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53634 if (t[2]) _.ops.pop();
53635 _.trys.pop(); continue;
53636 }
53637 op = body.call(thisArg, _);
53638 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
53639 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
53640 }
53641}
53642
53643function __exportStar(m, exports) {
53644 for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
53645}
53646
53647function __values(o) {
53648 var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
53649 if (m) return m.call(o);
53650 return {
53651 next: function () {
53652 if (o && i >= o.length) o = void 0;
53653 return { value: o && o[i++], done: !o };
53654 }
53655 };
53656}
53657
53658function __read(o, n) {
53659 var m = typeof Symbol === "function" && o[Symbol.iterator];
53660 if (!m) return o;
53661 var i = m.call(o), r, ar = [], e;
53662 try {
53663 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
53664 }
53665 catch (error) { e = { error: error }; }
53666 finally {
53667 try {
53668 if (r && !r.done && (m = i["return"])) m.call(i);
53669 }
53670 finally { if (e) throw e.error; }
53671 }
53672 return ar;
53673}
53674
53675function __spread() {
53676 for (var ar = [], i = 0; i < arguments.length; i++)
53677 ar = ar.concat(__read(arguments[i]));
53678 return ar;
53679}
53680
53681function __await(v) {
53682 return this instanceof __await ? (this.v = v, this) : new __await(v);
53683}
53684
53685function __asyncGenerator(thisArg, _arguments, generator) {
53686 if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
53687 var g = generator.apply(thisArg, _arguments || []), i, q = [];
53688 return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
53689 function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
53690 function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
53691 function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
53692 function fulfill(value) { resume("next", value); }
53693 function reject(value) { resume("throw", value); }
53694 function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
53695}
53696
53697function __asyncDelegator(o) {
53698 var i, p;
53699 return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
53700 function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
53701}
53702
53703function __asyncValues(o) {
53704 if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
53705 var m = o[Symbol.asyncIterator], i;
53706 return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
53707 function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
53708 function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
53709}
53710
53711function __makeTemplateObject(cooked, raw) {
53712 if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
53713 return cooked;
53714};
53715
53716function __importStar(mod) {
53717 if (mod && mod.__esModule) return mod;
53718 var result = {};
53719 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
53720 result.default = mod;
53721 return result;
53722}
53723
53724function __importDefault(mod) {
53725 return (mod && mod.__esModule) ? mod : { default: mod };
53726}
53727
53728
53729/***/ }),
53730
53731/***/ "./node_modules/universalify/index.js":
53732/*!********************************************!*\
53733 !*** ./node_modules/universalify/index.js ***!
53734 \********************************************/
53735/*! no static exports found */
53736/***/ (function(module, exports, __webpack_require__) {
53737
53738"use strict";
53739
53740
53741exports.fromCallback = function (fn) {
53742 return Object.defineProperty(function () {
53743 if (typeof arguments[arguments.length - 1] === 'function') fn.apply(this, arguments)
53744 else {
53745 return new Promise((resolve, reject) => {
53746 arguments[arguments.length] = (err, res) => {
53747 if (err) return reject(err)
53748 resolve(res)
53749 }
53750 arguments.length++
53751 fn.apply(this, arguments)
53752 })
53753 }
53754 }, 'name', { value: fn.name })
53755}
53756
53757exports.fromPromise = function (fn) {
53758 return Object.defineProperty(function () {
53759 const cb = arguments[arguments.length - 1]
53760 if (typeof cb !== 'function') return fn.apply(this, arguments)
53761 else fn.apply(this, arguments).then(r => cb(null, r), cb)
53762 }, 'name', { value: fn.name })
53763}
53764
53765
53766/***/ }),
53767
53768/***/ "./node_modules/webpack/buildin/module.js":
53769/*!***********************************!*\
53770 !*** (webpack)/buildin/module.js ***!
53771 \***********************************/
53772/*! no static exports found */
53773/***/ (function(module, exports) {
53774
53775module.exports = function(module) {
53776 if (!module.webpackPolyfill) {
53777 module.deprecate = function() {};
53778 module.paths = [];
53779 // module.parent = undefined by default
53780 if (!module.children) module.children = [];
53781 Object.defineProperty(module, "loaded", {
53782 enumerable: true,
53783 get: function() {
53784 return module.l;
53785 }
53786 });
53787 Object.defineProperty(module, "id", {
53788 enumerable: true,
53789 get: function() {
53790 return module.i;
53791 }
53792 });
53793 module.webpackPolyfill = 1;
53794 }
53795 return module;
53796};
53797
53798
53799/***/ }),
53800
53801/***/ "./node_modules/wrappy/wrappy.js":
53802/*!***************************************!*\
53803 !*** ./node_modules/wrappy/wrappy.js ***!
53804 \***************************************/
53805/*! no static exports found */
53806/***/ (function(module, exports) {
53807
53808// Returns a wrapper function that returns a wrapped callback
53809// The wrapper function should do some stuff, and return a
53810// presumably different callback function.
53811// This makes sure that own properties are retained, so that
53812// decorations and such are not lost along the way.
53813module.exports = wrappy
53814function wrappy (fn, cb) {
53815 if (fn && cb) return wrappy(fn)(cb)
53816
53817 if (typeof fn !== 'function')
53818 throw new TypeError('need wrapper function')
53819
53820 Object.keys(fn).forEach(function (k) {
53821 wrapper[k] = fn[k]
53822 })
53823
53824 return wrapper
53825
53826 function wrapper() {
53827 var args = new Array(arguments.length)
53828 for (var i = 0; i < args.length; i++) {
53829 args[i] = arguments[i]
53830 }
53831 var ret = fn.apply(this, args)
53832 var cb = args[args.length-1]
53833 if (typeof ret === 'function' && ret !== cb) {
53834 Object.keys(cb).forEach(function (k) {
53835 ret[k] = cb[k]
53836 })
53837 }
53838 return ret
53839 }
53840}
53841
53842
53843/***/ }),
53844
53845/***/ "./src/classLibrary/CRC32.ts":
53846/*!***********************************!*\
53847 !*** ./src/classLibrary/CRC32.ts ***!
53848 \***********************************/
53849/*! no static exports found */
53850/***/ (function(module, exports, __webpack_require__) {
53851
53852"use strict";
53853
53854Object.defineProperty(exports, "__esModule", { value: true });
53855var a_table = "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D";
53856var b_table = a_table.split(' ').map(function (s) { return parseInt(s, 16); });
53857function CRC32(obj) {
53858 let str = JSON.stringify(obj);
53859 var crc = -1;
53860 for (var i = 0, iTop = str.length; i < iTop; i++) {
53861 crc = (crc >>> 8) ^ b_table[(crc ^ str.charCodeAt(i)) & 0xFF];
53862 }
53863 return (crc ^ (-1)) >>> 0;
53864}
53865exports.CRC32 = CRC32;
53866
53867
53868/***/ }),
53869
53870/***/ "./src/classLibrary/FileWriter.ts":
53871/*!****************************************!*\
53872 !*** ./src/classLibrary/FileWriter.ts ***!
53873 \****************************************/
53874/*! no static exports found */
53875/***/ (function(module, exports, __webpack_require__) {
53876
53877"use strict";
53878
53879var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
53880 return new (P || (P = Promise))(function (resolve, reject) {
53881 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
53882 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
53883 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
53884 step((generator = generator.apply(thisArg, _arguments || [])).next());
53885 });
53886};
53887Object.defineProperty(exports, "__esModule", { value: true });
53888const cli_progress_1 = __webpack_require__(/*! cli-progress */ "./node_modules/cli-progress/cli-progress.js");
53889class FileWriter {
53890 constructor(util) {
53891 this.util = util;
53892 }
53893 WriteFiles(files) {
53894 files.Each((f) => {
53895 if (f["content"] != null) {
53896 let file = f;
53897 this.util.SafeWriteFile(file.destinationAbsolutePath, file.content);
53898 }
53899 else {
53900 this.util.SafeCreateDirectory(f.destinationAbsolutePath);
53901 }
53902 });
53903 }
53904 AWriteFile(files) {
53905 return __awaiter(this, void 0, void 0, function* () {
53906 let bar = new cli_progress_1.Bar({}, cli_progress_1.Presets.shades_grey);
53907 let counter = 0;
53908 bar.start(files.length, 0);
53909 let promises = [];
53910 files.Each((f) => {
53911 if (f["content"] != null) {
53912 let file = f;
53913 promises.push(this.util.ASafeWriteFile(file.destinationAbsolutePath, file.content, function () {
53914 counter++;
53915 bar.update(counter);
53916 if (counter >= bar.getTotal()) {
53917 bar.stop();
53918 }
53919 }));
53920 }
53921 else {
53922 promises.push(this.util.ASafeCreateDirectory(f.destinationAbsolutePath, function () {
53923 counter++;
53924 bar.update(counter);
53925 if (counter >= bar.getTotal()) {
53926 bar.stop();
53927 }
53928 }));
53929 }
53930 });
53931 return yield Promise.all(promises);
53932 });
53933 }
53934}
53935exports.FileWriter = FileWriter;
53936
53937
53938/***/ }),
53939
53940/***/ "./src/classLibrary/GitSimulator.ts":
53941/*!******************************************!*\
53942 !*** ./src/classLibrary/GitSimulator.ts ***!
53943 \******************************************/
53944/*! no static exports found */
53945/***/ (function(module, exports, __webpack_require__) {
53946
53947"use strict";
53948
53949var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
53950 return new (P || (P = Promise))(function (resolve, reject) {
53951 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
53952 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
53953 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
53954 step((generator = generator.apply(thisArg, _arguments || [])).next());
53955 });
53956};
53957var __importStar = (this && this.__importStar) || function (mod) {
53958 if (mod && mod.__esModule) return mod;
53959 var result = {};
53960 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
53961 result["default"] = mod;
53962 return result;
53963};
53964var __importDefault = (this && this.__importDefault) || function (mod) {
53965 return (mod && mod.__esModule) ? mod : { "default": mod };
53966};
53967Object.defineProperty(exports, "__esModule", { value: true });
53968const path = __importStar(__webpack_require__(/*! path */ "path"));
53969const fs = __importStar(__webpack_require__(/*! fs */ "fs"));
53970const child_process_1 = __webpack_require__(/*! child_process */ "child_process");
53971const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
53972const rimraf = __webpack_require__(/*! rimraf */ "./node_modules/rimraf/rimraf.js");
53973class GitSimulator {
53974 constructor(core) {
53975 core.AssertExtend();
53976 }
53977 SimulateGit(root, file) {
53978 return __awaiter(this, void 0, void 0, function* () {
53979 //Create TempFolder
53980 let tempPath = this.lookForEmptyFolder(root);
53981 let oriPath = path.resolve(root, file);
53982 try {
53983 yield this.Execute(`git clone "${oriPath}" "${tempPath}"`);
53984 }
53985 catch (e) {
53986 console.log(chalk_1.default.redBright(e));
53987 rimraf.sync(tempPath);
53988 }
53989 return tempPath;
53990 });
53991 }
53992 lookForEmptyFolder(root, temp = "~temp") {
53993 let folder = path.resolve(root, temp);
53994 if (fs.existsSync(folder)) {
53995 return this.lookForEmptyFolder(root, temp + (0).RandomFor(9));
53996 }
53997 else {
53998 fs.mkdirSync(folder);
53999 return folder;
54000 }
54001 }
54002 Execute(cmd) {
54003 return __awaiter(this, void 0, void 0, function* () {
54004 let command = cmd.split(' ');
54005 let c = command.shift();
54006 let v = command;
54007 return new Promise((resolve, reject) => child_process_1.spawn(c, v, { stdio: "inherit", shell: true })
54008 .on("exit", (code) => {
54009 if (code === 0) {
54010 resolve();
54011 }
54012 else {
54013 reject(new Error("External command went wrong"));
54014 }
54015 }));
54016 });
54017 }
54018}
54019exports.GitSimulator = GitSimulator;
54020
54021
54022/***/ }),
54023
54024/***/ "./src/classLibrary/GlobFactory.ts":
54025/*!*****************************************!*\
54026 !*** ./src/classLibrary/GlobFactory.ts ***!
54027 \*****************************************/
54028/*! no static exports found */
54029/***/ (function(module, exports, __webpack_require__) {
54030
54031"use strict";
54032
54033var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
54034 return new (P || (P = Promise))(function (resolve, reject) {
54035 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
54036 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
54037 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
54038 step((generator = generator.apply(thisArg, _arguments || [])).next());
54039 });
54040};
54041var __importDefault = (this && this.__importDefault) || function (mod) {
54042 return (mod && mod.__esModule) ? mod : { "default": mod };
54043};
54044Object.defineProperty(exports, "__esModule", { value: true });
54045const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
54046const glob_1 = __importDefault(__webpack_require__(/*! glob */ "./node_modules/glob/glob.js"));
54047const cli_progress_1 = __webpack_require__(/*! cli-progress */ "./node_modules/cli-progress/cli-progress.js");
54048const CRC32_1 = __webpack_require__(/*! ./CRC32 */ "./src/classLibrary/CRC32.ts");
54049class GlobFactory {
54050 constructor(util, fileFactory) {
54051 let core = util.c;
54052 if (!core.IsExtended)
54053 throw "Core needs to be extended";
54054 this.util = util;
54055 this.c = this.util.c;
54056 this.fileFactory = fileFactory;
54057 }
54058 GenerateFiles(root, pattern, ignore, target = './') {
54059 let paths = path_1.default.resolve(this.fileFactory.FromRoot, root, pattern);
54060 let relPath = path_1.default.resolve(this.fileFactory.FromRoot, root);
54061 let opts = { dot: true };
54062 if (ignore != null) {
54063 opts["ignore"] = ignore;
54064 }
54065 let hash = CRC32_1.CRC32([paths, relPath]);
54066 let files = [];
54067 if (GlobFactory.cache.has(hash)) {
54068 files = GlobFactory.cache.get(hash);
54069 }
54070 else {
54071 files = glob_1.default.sync(paths, opts).Map((s) => path_1.default.relative(relPath, s));
54072 GlobFactory.cache.set(hash, files);
54073 }
54074 return files.Map(s => this.fileFactory.CreateFileSystemInstance(s, root, target));
54075 }
54076 ReadFiles(files) {
54077 return __awaiter(this, void 0, void 0, function* () {
54078 let readBar = new cli_progress_1.Bar({}, cli_progress_1.Presets.shades_classic);
54079 let readCounter = 0;
54080 readBar.start(files.length, readCounter);
54081 let promises = [];
54082 files.Each((f) => promises.push(this.fileFactory.ReadFile(f, function () {
54083 readCounter++;
54084 readBar.update(readCounter);
54085 if (readCounter >= readBar.getTotal()) {
54086 readBar.stop();
54087 }
54088 })));
54089 return yield Promise.all(promises);
54090 });
54091 }
54092}
54093GlobFactory.cache = new Map();
54094exports.GlobFactory = GlobFactory;
54095
54096
54097/***/ }),
54098
54099/***/ "./src/classLibrary/Group.ts":
54100/*!***********************************!*\
54101 !*** ./src/classLibrary/Group.ts ***!
54102 \***********************************/
54103/*! no static exports found */
54104/***/ (function(module, exports, __webpack_require__) {
54105
54106"use strict";
54107
54108var __importDefault = (this && this.__importDefault) || function (mod) {
54109 return (mod && mod.__esModule) ? mod : { "default": mod };
54110};
54111Object.defineProperty(exports, "__esModule", { value: true });
54112const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
54113const fs_1 = __importDefault(__webpack_require__(/*! fs */ "fs"));
54114const rimraf_1 = __importDefault(__webpack_require__(/*! rimraf */ "./node_modules/rimraf/rimraf.js"));
54115class Group {
54116 constructor(core, objex, templateRoot, util) {
54117 core.AssertExtend();
54118 objex.AssertExtend();
54119 this.templateRoot = templateRoot;
54120 this.util = util;
54121 }
54122 get TopLevelConfig() {
54123 return path_1.default.resolve(this.templateRoot, "cyan.toplevel.json");
54124 }
54125 Create(key, name, email, readme, readMeContent) {
54126 if (this.Exist(key)) {
54127 return false;
54128 }
54129 else {
54130 //Generate the folder
54131 let full = path_1.default.resolve(this.templateRoot, key);
54132 fs_1.default.mkdirSync(full);
54133 //Generate the meta data
54134 const templates = {};
54135 const groupData = {
54136 name,
54137 key,
54138 email,
54139 templates,
54140 readme,
54141 };
54142 const groupDataPath = path_1.default.resolve(this.templateRoot, key, "cyan.group.json");
54143 const string = JSON.stringify(groupData);
54144 this.util.SafeWriteFile(groupDataPath, string);
54145 //Update top level mapping
54146 const content = JSON.parse(fs_1.default.readFileSync(this.TopLevelConfig, 'utf8'));
54147 content[key] = name;
54148 const out = JSON.stringify(content);
54149 this.util.SafeWriteFile(this.TopLevelConfig, out);
54150 //Create Read Me file
54151 const targetPath = path_1.default.resolve(this.templateRoot, key, readme);
54152 this.util.SafeWriteFile(targetPath, readMeContent);
54153 //Reply to console on progress
54154 return true;
54155 }
54156 }
54157 Delete(key) {
54158 if (this.Exist(key)) {
54159 // Nuke group
54160 let full = path_1.default.resolve(this.templateRoot, key);
54161 rimraf_1.default.sync(full);
54162 //Remove entry from top-level
54163 const content = JSON.parse(fs_1.default.readFileSync(this.TopLevelConfig, 'utf8'));
54164 content[key] = null;
54165 delete content[key];
54166 const out = JSON.stringify(content);
54167 this.util.SafeWriteFile(this.TopLevelConfig, out);
54168 return true;
54169 }
54170 else {
54171 return false;
54172 }
54173 }
54174 Exist(key) {
54175 const content = JSON.parse(fs_1.default.readFileSync(this.TopLevelConfig, 'utf8'));
54176 let full = path_1.default.resolve(this.templateRoot, key);
54177 const file = path_1.default.resolve(this.templateRoot, key, "cyan.group.json");
54178 return fs_1.default.existsSync(full) && fs_1.default.existsSync(file) && content[key] != null;
54179 }
54180 ListAsArray() {
54181 const groups = JSON.parse(fs_1.default.readFileSync(this.TopLevelConfig, 'utf8'));
54182 const map = groups.AsMap();
54183 return map.Where(k => this.Exist(k)).Map((k, v) => [v, k]);
54184 }
54185 ObtainGroupData(key) {
54186 const full = path_1.default.resolve(this.templateRoot, key, "cyan.group.json");
54187 const data = fs_1.default.readFileSync(full, 'utf8');
54188 return JSON.parse(data);
54189 }
54190 ListTemplate(key) {
54191 return this.ObtainGroupData(key).templates.AsMap()
54192 .Map((k, v) => [k, v]);
54193 }
54194 AddTemplate(key, templateKey, templateName) {
54195 const full = path_1.default.resolve(this.templateRoot, key, "cyan.group.json");
54196 const data = JSON.parse(fs_1.default.readFileSync(full, 'utf8'));
54197 data.templates[templateKey] = templateName;
54198 const newData = JSON.stringify(data);
54199 this.util.SafeWriteFile(full, newData);
54200 }
54201 RemoveTemplate(key, templateKey) {
54202 const full = path_1.default.resolve(this.templateRoot, key, "cyan.group.json");
54203 const data = JSON.parse(fs_1.default.readFileSync(full, 'utf8'));
54204 data.templates[templateKey] = null;
54205 delete data.templates[templateKey];
54206 const newData = JSON.stringify(data);
54207 this.util.SafeWriteFile(full, newData);
54208 }
54209}
54210exports.Group = Group;
54211
54212
54213/***/ }),
54214
54215/***/ "./src/classLibrary/Installer.ts":
54216/*!***************************************!*\
54217 !*** ./src/classLibrary/Installer.ts ***!
54218 \***************************************/
54219/*! no static exports found */
54220/***/ (function(module, exports, __webpack_require__) {
54221
54222"use strict";
54223
54224var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
54225 return new (P || (P = Promise))(function (resolve, reject) {
54226 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
54227 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
54228 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
54229 step((generator = generator.apply(thisArg, _arguments || [])).next());
54230 });
54231};
54232var __importDefault = (this && this.__importDefault) || function (mod) {
54233 return (mod && mod.__esModule) ? mod : { "default": mod };
54234};
54235Object.defineProperty(exports, "__esModule", { value: true });
54236const GlobFactory_1 = __webpack_require__(/*! ./GlobFactory */ "./src/classLibrary/GlobFactory.ts");
54237const child_process_1 = __webpack_require__(/*! child_process */ "child_process");
54238const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
54239const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
54240const graceful_fs_1 = __importDefault(__webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js"));
54241const glob_1 = __importDefault(__webpack_require__(/*! glob */ "./node_modules/glob/glob.js"));
54242const rimraf_1 = __importDefault(__webpack_require__(/*! rimraf */ "./node_modules/rimraf/rimraf.js"));
54243class Installer {
54244 constructor(core, fileFactory, util, writer) {
54245 core.AssertExtend();
54246 this.fileFactory = fileFactory;
54247 this.core = core;
54248 this.util = util;
54249 this.writer = writer;
54250 }
54251 Install(installationPath, copyNode) {
54252 return __awaiter(this, void 0, void 0, function* () {
54253 if (this.IsGitLink(installationPath)) {
54254 return this.GitInstall(installationPath, copyNode);
54255 }
54256 else {
54257 return this.NormalInstall(installationPath, copyNode);
54258 }
54259 });
54260 }
54261 IsGitLink(link) {
54262 return link.Take(8) === "https://" && path_1.default.extname(link) === ".git";
54263 }
54264 GitInstall(link, copyNode) {
54265 return __awaiter(this, void 0, void 0, function* () {
54266 let i = this;
54267 let reply = yield new Promise(function (resolve) {
54268 child_process_1.spawn("git", ["clone", `"${link}"`, `"${i.fileFactory.ToRoot}"`], {
54269 stdio: "inherit",
54270 shell: true
54271 }).on("exit", () => {
54272 resolve("Installation Completed");
54273 });
54274 });
54275 if (!copyNode) {
54276 let pattern = path_1.default.resolve(i.fileFactory.ToRoot, "**/node_modules/");
54277 let promises = [];
54278 glob_1.default.sync(pattern).Each((s) => {
54279 let p = new Promise(function (resolve) {
54280 rimraf_1.default(s, function () {
54281 resolve();
54282 });
54283 });
54284 promises.push(p);
54285 });
54286 yield Promise.all(promises);
54287 }
54288 rimraf_1.default.sync(path_1.default.resolve(i.fileFactory.ToRoot, ".git"));
54289 return reply;
54290 });
54291 }
54292 NormalInstall(link, copyNode) {
54293 return __awaiter(this, void 0, void 0, function* () {
54294 let targetDir = path_1.default.resolve(this.fileFactory.FromRoot, link);
54295 let targetFile = path_1.default.resolve(targetDir, "./cyan.config.js");
54296 if (!graceful_fs_1.default.existsSync(targetDir)) {
54297 return chalk_1.default.redBright("Cannot find path: " + targetDir);
54298 }
54299 if (!graceful_fs_1.default.existsSync(targetFile)) {
54300 return chalk_1.default.redBright("Cannot find cyan.config.js file in target folder: " + targetDir);
54301 }
54302 let glob = new GlobFactory_1.GlobFactory(this.util, this.fileFactory);
54303 let fileSystemInstance = glob.GenerateFiles(link, '**/*.*')
54304 .Where((f) => f.sourceAbsolutePath.Last(4) !== ".git")
54305 .Where((f) => !f.sourceAbsolutePath.includes("node_modules") || copyNode)
54306 .Where((f) => graceful_fs_1.default.lstatSync(f.sourceAbsolutePath).isFile() || !(path_1.default.extname(f.sourceAbsolutePath) === ".json" && f.sourceAbsolutePath.FileName() === "package-lock"));
54307 console.log(chalk_1.default.cyanBright("Installing... Please wait ^^"));
54308 fileSystemInstance = yield glob.ReadFiles(fileSystemInstance);
54309 yield this.writer.AWriteFile(fileSystemInstance);
54310 return "Installation Completed";
54311 });
54312 }
54313}
54314exports.Installer = Installer;
54315
54316
54317/***/ }),
54318
54319/***/ "./src/classLibrary/Licenses.ts":
54320/*!**************************************!*\
54321 !*** ./src/classLibrary/Licenses.ts ***!
54322 \**************************************/
54323/*! no static exports found */
54324/***/ (function(module, exports, __webpack_require__) {
54325
54326"use strict";
54327
54328Object.defineProperty(exports, "__esModule", { value: true });
54329class Licenses {
54330}
54331Licenses.MIT = `# MIT License
54332
54333Copyright (c) var~year~ var~author~
54334
54335Permission is hereby granted, free of charge, to any person obtaining a copy
54336of this software and associated documentation files (the "Software"), to deal
54337in the Software without restriction, including without limitation the rights
54338to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
54339copies of the Software, and to permit persons to whom the Software is
54340furnished to do so, subject to the following conditions:
54341
54342The above copyright notice and this permission notice shall be included in all
54343copies or substantial portions of the Software.
54344
54345THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
54346IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
54347FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
54348AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
54349LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
54350OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
54351SOFTWARE.`;
54352Licenses.ISC = `# ISC License
54353
54354Copyright (c) var~year~, var~author~
54355
54356Permission to use, copy, modify, and/or distribute this software for any
54357purpose with or without fee is hereby granted, provided that the above
54358copyright notice and this permission notice appear in all copies.
54359
54360THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
54361WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
54362MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
54363ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
54364WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
54365ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
54366OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.`;
54367Licenses.GPL3 = `# GNU GENERAL PUBLIC LICENSE
54368 Version 3, 29 June 2007
54369
54370 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
54371 Everyone is permitted to copy and distribute verbatim copies
54372 of this license document, but changing it is not allowed.
54373
54374 Preamble
54375
54376 The GNU General Public License is a free, copyleft license for
54377software and other kinds of works.
54378
54379 The licenses for most software and other practical works are designed
54380to take away your freedom to share and change the works. By contrast,
54381the GNU General Public License is intended to guarantee your freedom to
54382share and change all versions of a program--to make sure it remains free
54383software for all its users. We, the Free Software Foundation, use the
54384GNU General Public License for most of our software; it applies also to
54385any other work released this way by its authors. You can apply it to
54386your programs, too.
54387
54388 When we speak of free software, we are referring to freedom, not
54389price. Our General Public Licenses are designed to make sure that you
54390have the freedom to distribute copies of free software (and charge for
54391them if you wish), that you receive source code or can get it if you
54392want it, that you can change the software or use pieces of it in new
54393free programs, and that you know you can do these things.
54394
54395 To protect your rights, we need to prevent others from denying you
54396these rights or asking you to surrender the rights. Therefore, you have
54397certain responsibilities if you distribute copies of the software, or if
54398you modify it: responsibilities to respect the freedom of others.
54399
54400 For example, if you distribute copies of such a program, whether
54401gratis or for a fee, you must pass on to the recipients the same
54402freedoms that you received. You must make sure that they, too, receive
54403or can get the source code. And you must show them these terms so they
54404know their rights.
54405
54406 Developers that use the GNU GPL protect your rights with two steps:
54407(1) assert copyright on the software, and (2) offer you this License
54408giving you legal permission to copy, distribute and/or modify it.
54409
54410 For the developers' and authors' protection, the GPL clearly explains
54411that there is no warranty for this free software. For both users' and
54412authors' sake, the GPL requires that modified versions be marked as
54413changed, so that their problems will not be attributed erroneously to
54414authors of previous versions.
54415
54416 Some devices are designed to deny users access to install or run
54417modified versions of the software inside them, although the manufacturer
54418can do so. This is fundamentally incompatible with the aim of
54419protecting users' freedom to change the software. The systematic
54420pattern of such abuse occurs in the area of products for individuals to
54421use, which is precisely where it is most unacceptable. Therefore, we
54422have designed this version of the GPL to prohibit the practice for those
54423products. If such problems arise substantially in other domains, we
54424stand ready to extend this provision to those domains in future versions
54425of the GPL, as needed to protect the freedom of users.
54426
54427 Finally, every program is threatened constantly by software patents.
54428States should not allow patents to restrict development and use of
54429software on general-purpose computers, but in those that do, we wish to
54430avoid the special danger that patents applied to a free program could
54431make it effectively proprietary. To prevent this, the GPL assures that
54432patents cannot be used to render the program non-free.
54433
54434 The precise terms and conditions for copying, distribution and
54435modification follow.
54436
54437 TERMS AND CONDITIONS
54438
54439 0. Definitions.
54440
54441 "This License" refers to version 3 of the GNU General Public License.
54442
54443 "Copyright" also means copyright-like laws that apply to other kinds of
54444works, such as semiconductor masks.
54445
54446 "The Program" refers to any copyrightable work licensed under this
54447License. Each licensee is addressed as "you". "Licensees" and
54448"recipients" may be individuals or organizations.
54449
54450 To "modify" a work means to copy from or adapt all or part of the work
54451in a fashion requiring copyright permission, other than the making of an
54452exact copy. The resulting work is called a "modified version" of the
54453earlier work or a work "based on" the earlier work.
54454
54455 A "covered work" means either the unmodified Program or a work based
54456on the Program.
54457
54458 To "propagate" a work means to do anything with it that, without
54459permission, would make you directly or secondarily liable for
54460infringement under applicable copyright law, except executing it on a
54461computer or modifying a private copy. Propagation includes copying,
54462distribution (with or without modification), making available to the
54463public, and in some countries other activities as well.
54464
54465 To "convey" a work means any kind of propagation that enables other
54466parties to make or receive copies. Mere interaction with a user through
54467a computer network, with no transfer of a copy, is not conveying.
54468
54469 An interactive user interface displays "Appropriate Legal Notices"
54470to the extent that it includes a convenient and prominently visible
54471feature that (1) displays an appropriate copyright notice, and (2)
54472tells the user that there is no warranty for the work (except to the
54473extent that warranties are provided), that licensees may convey the
54474work under this License, and how to view a copy of this License. If
54475the interface presents a list of user commands or options, such as a
54476menu, a prominent item in the list meets this criterion.
54477
54478 1. Source Code.
54479
54480 The "source code" for a work means the preferred form of the work
54481for making modifications to it. "Object code" means any non-source
54482form of a work.
54483
54484 A "Standard Interface" means an interface that either is an official
54485standard defined by a recognized standards body, or, in the case of
54486interfaces specified for a particular programming language, one that
54487is widely used among developers working in that language.
54488
54489 The "System Libraries" of an executable work include anything, other
54490than the work as a whole, that (a) is included in the normal form of
54491packaging a Major Component, but which is not part of that Major
54492Component, and (b) serves only to enable use of the work with that
54493Major Component, or to implement a Standard Interface for which an
54494implementation is available to the public in source code form. A
54495"Major Component", in this context, means a major essential component
54496(kernel, window system, and so on) of the specific operating system
54497(if any) on which the executable work runs, or a compiler used to
54498produce the work, or an object code interpreter used to run it.
54499
54500 The "Corresponding Source" for a work in object code form means all
54501the source code needed to generate, install, and (for an executable
54502work) run the object code and to modify the work, including scripts to
54503control those activities. However, it does not include the work's
54504System Libraries, or general-purpose tools or generally available free
54505programs which are used unmodified in performing those activities but
54506which are not part of the work. For example, Corresponding Source
54507includes interface definition files associated with source files for
54508the work, and the source code for shared libraries and dynamically
54509linked subprograms that the work is specifically designed to require,
54510such as by intimate data communication or control flow between those
54511subprograms and other parts of the work.
54512
54513 The Corresponding Source need not include anything that users
54514can regenerate automatically from other parts of the Corresponding
54515Source.
54516
54517 The Corresponding Source for a work in source code form is that
54518same work.
54519
54520 2. Basic Permissions.
54521
54522 All rights granted under this License are granted for the term of
54523copyright on the Program, and are irrevocable provided the stated
54524conditions are met. This License explicitly affirms your unlimited
54525permission to run the unmodified Program. The output from running a
54526covered work is covered by this License only if the output, given its
54527content, constitutes a covered work. This License acknowledges your
54528rights of fair use or other equivalent, as provided by copyright law.
54529
54530 You may make, run and propagate covered works that you do not
54531convey, without conditions so long as your license otherwise remains
54532in force. You may convey covered works to others for the sole purpose
54533of having them make modifications exclusively for you, or provide you
54534with facilities for running those works, provided that you comply with
54535the terms of this License in conveying all material for which you do
54536not control copyright. Those thus making or running the covered works
54537for you must do so exclusively on your behalf, under your direction
54538and control, on terms that prohibit them from making any copies of
54539your copyrighted material outside their relationship with you.
54540
54541 Conveying under any other circumstances is permitted solely under
54542the conditions stated below. Sublicensing is not allowed; section 10
54543makes it unnecessary.
54544
54545 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
54546
54547 No covered work shall be deemed part of an effective technological
54548measure under any applicable law fulfilling obligations under article
5454911 of the WIPO copyright treaty adopted on 20 December 1996, or
54550similar laws prohibiting or restricting circumvention of such
54551measures.
54552
54553 When you convey a covered work, you waive any legal power to forbid
54554circumvention of technological measures to the extent such circumvention
54555is effected by exercising rights under this License with respect to
54556the covered work, and you disclaim any intention to limit operation or
54557modification of the work as a means of enforcing, against the work's
54558users, your or third parties' legal rights to forbid circumvention of
54559technological measures.
54560
54561 4. Conveying Verbatim Copies.
54562
54563 You may convey verbatim copies of the Program's source code as you
54564receive it, in any medium, provided that you conspicuously and
54565appropriately publish on each copy an appropriate copyright notice;
54566keep intact all notices stating that this License and any
54567non-permissive terms added in accord with section 7 apply to the code;
54568keep intact all notices of the absence of any warranty; and give all
54569recipients a copy of this License along with the Program.
54570
54571 You may charge any price or no price for each copy that you convey,
54572and you may offer support or warranty protection for a fee.
54573
54574 5. Conveying Modified Source Versions.
54575
54576 You may convey a work based on the Program, or the modifications to
54577produce it from the Program, in the form of source code under the
54578terms of section 4, provided that you also meet all of these conditions:
54579
54580 a) The work must carry prominent notices stating that you modified
54581 it, and giving a relevant date.
54582
54583 b) The work must carry prominent notices stating that it is
54584 released under this License and any conditions added under section
54585 7. This requirement modifies the requirement in section 4 to
54586 "keep intact all notices".
54587
54588 c) You must license the entire work, as a whole, under this
54589 License to anyone who comes into possession of a copy. This
54590 License will therefore apply, along with any applicable section 7
54591 additional terms, to the whole of the work, and all its parts,
54592 regardless of how they are packaged. This License gives no
54593 permission to license the work in any other way, but it does not
54594 invalidate such permission if you have separately received it.
54595
54596 d) If the work has interactive user interfaces, each must display
54597 Appropriate Legal Notices; however, if the Program has interactive
54598 interfaces that do not display Appropriate Legal Notices, your
54599 work need not make them do so.
54600
54601 A compilation of a covered work with other separate and independent
54602works, which are not by their nature extensions of the covered work,
54603and which are not combined with it such as to form a larger program,
54604in or on a volume of a storage or distribution medium, is called an
54605"aggregate" if the compilation and its resulting copyright are not
54606used to limit the access or legal rights of the compilation's users
54607beyond what the individual works permit. Inclusion of a covered work
54608in an aggregate does not cause this License to apply to the other
54609parts of the aggregate.
54610
54611 6. Conveying Non-Source Forms.
54612
54613 You may convey a covered work in object code form under the terms
54614of sections 4 and 5, provided that you also convey the
54615machine-readable Corresponding Source under the terms of this License,
54616in one of these ways:
54617
54618 a) Convey the object code in, or embodied in, a physical product
54619 (including a physical distribution medium), accompanied by the
54620 Corresponding Source fixed on a durable physical medium
54621 customarily used for software interchange.
54622
54623 b) Convey the object code in, or embodied in, a physical product
54624 (including a physical distribution medium), accompanied by a
54625 written offer, valid for at least three years and valid for as
54626 long as you offer spare parts or customer support for that product
54627 model, to give anyone who possesses the object code either (1) a
54628 copy of the Corresponding Source for all the software in the
54629 product that is covered by this License, on a durable physical
54630 medium customarily used for software interchange, for a price no
54631 more than your reasonable cost of physically performing this
54632 conveying of source, or (2) access to copy the
54633 Corresponding Source from a network server at no charge.
54634
54635 c) Convey individual copies of the object code with a copy of the
54636 written offer to provide the Corresponding Source. This
54637 alternative is allowed only occasionally and noncommercially, and
54638 only if you received the object code with such an offer, in accord
54639 with subsection 6b.
54640
54641 d) Convey the object code by offering access from a designated
54642 place (gratis or for a charge), and offer equivalent access to the
54643 Corresponding Source in the same way through the same place at no
54644 further charge. You need not require recipients to copy the
54645 Corresponding Source along with the object code. If the place to
54646 copy the object code is a network server, the Corresponding Source
54647 may be on a different server (operated by you or a third party)
54648 that supports equivalent copying facilities, provided you maintain
54649 clear directions next to the object code saying where to find the
54650 Corresponding Source. Regardless of what server hosts the
54651 Corresponding Source, you remain obligated to ensure that it is
54652 available for as long as needed to satisfy these requirements.
54653
54654 e) Convey the object code using peer-to-peer transmission, provided
54655 you inform other peers where the object code and Corresponding
54656 Source of the work are being offered to the general public at no
54657 charge under subsection 6d.
54658
54659 A separable portion of the object code, whose source code is excluded
54660from the Corresponding Source as a System Library, need not be
54661included in conveying the object code work.
54662
54663 A "User Product" is either (1) a "consumer product", which means any
54664tangible personal property which is normally used for personal, family,
54665or household purposes, or (2) anything designed or sold for incorporation
54666into a dwelling. In determining whether a product is a consumer product,
54667doubtful cases shall be resolved in favor of coverage. For a particular
54668product received by a particular user, "normally used" refers to a
54669typical or common use of that class of product, regardless of the status
54670of the particular user or of the way in which the particular user
54671actually uses, or expects or is expected to use, the product. A product
54672is a consumer product regardless of whether the product has substantial
54673commercial, industrial or non-consumer uses, unless such uses represent
54674the only significant mode of use of the product.
54675
54676 "Installation Information" for a User Product means any methods,
54677procedures, authorization keys, or other information required to install
54678and execute modified versions of a covered work in that User Product from
54679a modified version of its Corresponding Source. The information must
54680suffice to ensure that the continued functioning of the modified object
54681code is in no case prevented or interfered with solely because
54682modification has been made.
54683
54684 If you convey an object code work under this section in, or with, or
54685specifically for use in, a User Product, and the conveying occurs as
54686part of a transaction in which the right of possession and use of the
54687User Product is transferred to the recipient in perpetuity or for a
54688fixed term (regardless of how the transaction is characterized), the
54689Corresponding Source conveyed under this section must be accompanied
54690by the Installation Information. But this requirement does not apply
54691if neither you nor any third party retains the ability to install
54692modified object code on the User Product (for example, the work has
54693been installed in ROM).
54694
54695 The requirement to provide Installation Information does not include a
54696requirement to continue to provide support service, warranty, or updates
54697for a work that has been modified or installed by the recipient, or for
54698the User Product in which it has been modified or installed. Access to a
54699network may be denied when the modification itself materially and
54700adversely affects the operation of the network or violates the rules and
54701protocols for communication across the network.
54702
54703 Corresponding Source conveyed, and Installation Information provided,
54704in accord with this section must be in a format that is publicly
54705documented (and with an implementation available to the public in
54706source code form), and must require no special password or key for
54707unpacking, reading or copying.
54708
54709 7. Additional Terms.
54710
54711 "Additional permissions" are terms that supplement the terms of this
54712License by making exceptions from one or more of its conditions.
54713Additional permissions that are applicable to the entire Program shall
54714be treated as though they were included in this License, to the extent
54715that they are valid under applicable law. If additional permissions
54716apply only to part of the Program, that part may be used separately
54717under those permissions, but the entire Program remains governed by
54718this License without regard to the additional permissions.
54719
54720 When you convey a copy of a covered work, you may at your option
54721remove any additional permissions from that copy, or from any part of
54722it. (Additional permissions may be written to require their own
54723removal in certain cases when you modify the work.) You may place
54724additional permissions on material, added by you to a covered work,
54725for which you have or can give appropriate copyright permission.
54726
54727 Notwithstanding any other provision of this License, for material you
54728add to a covered work, you may (if authorized by the copyright holders of
54729that material) supplement the terms of this License with terms:
54730
54731 a) Disclaiming warranty or limiting liability differently from the
54732 terms of sections 15 and 16 of this License; or
54733
54734 b) Requiring preservation of specified reasonable legal notices or
54735 author attributions in that material or in the Appropriate Legal
54736 Notices displayed by works containing it; or
54737
54738 c) Prohibiting misrepresentation of the origin of that material, or
54739 requiring that modified versions of such material be marked in
54740 reasonable ways as different from the original version; or
54741
54742 d) Limiting the use for publicity purposes of names of licensors or
54743 authors of the material; or
54744
54745 e) Declining to grant rights under trademark law for use of some
54746 trade names, trademarks, or service marks; or
54747
54748 f) Requiring indemnification of licensors and authors of that
54749 material by anyone who conveys the material (or modified versions of
54750 it) with contractual assumptions of liability to the recipient, for
54751 any liability that these contractual assumptions directly impose on
54752 those licensors and authors.
54753
54754 All other non-permissive additional terms are considered "further
54755restrictions" within the meaning of section 10. If the Program as you
54756received it, or any part of it, contains a notice stating that it is
54757governed by this License along with a term that is a further
54758restriction, you may remove that term. If a license document contains
54759a further restriction but permits relicensing or conveying under this
54760License, you may add to a covered work material governed by the terms
54761of that license document, provided that the further restriction does
54762not survive such relicensing or conveying.
54763
54764 If you add terms to a covered work in accord with this section, you
54765must place, in the relevant source files, a statement of the
54766additional terms that apply to those files, or a notice indicating
54767where to find the applicable terms.
54768
54769 Additional terms, permissive or non-permissive, may be stated in the
54770form of a separately written license, or stated as exceptions;
54771the above requirements apply either way.
54772
54773 8. Termination.
54774
54775 You may not propagate or modify a covered work except as expressly
54776provided under this License. Any attempt otherwise to propagate or
54777modify it is void, and will automatically terminate your rights under
54778this License (including any patent licenses granted under the third
54779paragraph of section 11).
54780
54781 However, if you cease all violation of this License, then your
54782license from a particular copyright holder is reinstated (a)
54783provisionally, unless and until the copyright holder explicitly and
54784finally terminates your license, and (b) permanently, if the copyright
54785holder fails to notify you of the violation by some reasonable means
54786prior to 60 days after the cessation.
54787
54788 Moreover, your license from a particular copyright holder is
54789reinstated permanently if the copyright holder notifies you of the
54790violation by some reasonable means, this is the first time you have
54791received notice of violation of this License (for any work) from that
54792copyright holder, and you cure the violation prior to 30 days after
54793your receipt of the notice.
54794
54795 Termination of your rights under this section does not terminate the
54796licenses of parties who have received copies or rights from you under
54797this License. If your rights have been terminated and not permanently
54798reinstated, you do not qualify to receive new licenses for the same
54799material under section 10.
54800
54801 9. Acceptance Not Required for Having Copies.
54802
54803 You are not required to accept this License in order to receive or
54804run a copy of the Program. Ancillary propagation of a covered work
54805occurring solely as a consequence of using peer-to-peer transmission
54806to receive a copy likewise does not require acceptance. However,
54807nothing other than this License grants you permission to propagate or
54808modify any covered work. These actions infringe copyright if you do
54809not accept this License. Therefore, by modifying or propagating a
54810covered work, you indicate your acceptance of this License to do so.
54811
54812 10. Automatic Licensing of Downstream Recipients.
54813
54814 Each time you convey a covered work, the recipient automatically
54815receives a license from the original licensors, to run, modify and
54816propagate that work, subject to this License. You are not responsible
54817for enforcing compliance by third parties with this License.
54818
54819 An "entity transaction" is a transaction transferring control of an
54820organization, or substantially all assets of one, or subdividing an
54821organization, or merging organizations. If propagation of a covered
54822work results from an entity transaction, each party to that
54823transaction who receives a copy of the work also receives whatever
54824licenses to the work the party's predecessor in interest had or could
54825give under the previous paragraph, plus a right to possession of the
54826Corresponding Source of the work from the predecessor in interest, if
54827the predecessor has it or can get it with reasonable efforts.
54828
54829 You may not impose any further restrictions on the exercise of the
54830rights granted or affirmed under this License. For example, you may
54831not impose a license fee, royalty, or other charge for exercise of
54832rights granted under this License, and you may not initiate litigation
54833(including a cross-claim or counterclaim in a lawsuit) alleging that
54834any patent claim is infringed by making, using, selling, offering for
54835sale, or importing the Program or any portion of it.
54836
54837 11. Patents.
54838
54839 A "contributor" is a copyright holder who authorizes use under this
54840License of the Program or a work on which the Program is based. The
54841work thus licensed is called the contributor's "contributor version".
54842
54843 A contributor's "essential patent claims" are all patent claims
54844owned or controlled by the contributor, whether already acquired or
54845hereafter acquired, that would be infringed by some manner, permitted
54846by this License, of making, using, or selling its contributor version,
54847but do not include claims that would be infringed only as a
54848consequence of further modification of the contributor version. For
54849purposes of this definition, "control" includes the right to grant
54850patent sublicenses in a manner consistent with the requirements of
54851this License.
54852
54853 Each contributor grants you a non-exclusive, worldwide, royalty-free
54854patent license under the contributor's essential patent claims, to
54855make, use, sell, offer for sale, import and otherwise run, modify and
54856propagate the contents of its contributor version.
54857
54858 In the following three paragraphs, a "patent license" is any express
54859agreement or commitment, however denominated, not to enforce a patent
54860(such as an express permission to practice a patent or covenant not to
54861sue for patent infringement). To "grant" such a patent license to a
54862party means to make such an agreement or commitment not to enforce a
54863patent against the party.
54864
54865 If you convey a covered work, knowingly relying on a patent license,
54866and the Corresponding Source of the work is not available for anyone
54867to copy, free of charge and under the terms of this License, through a
54868publicly available network server or other readily accessible means,
54869then you must either (1) cause the Corresponding Source to be so
54870available, or (2) arrange to deprive yourself of the benefit of the
54871patent license for this particular work, or (3) arrange, in a manner
54872consistent with the requirements of this License, to extend the patent
54873license to downstream recipients. "Knowingly relying" means you have
54874actual knowledge that, but for the patent license, your conveying the
54875covered work in a country, or your recipient's use of the covered work
54876in a country, would infringe one or more identifiable patents in that
54877country that you have reason to believe are valid.
54878
54879 If, pursuant to or in connection with a single transaction or
54880arrangement, you convey, or propagate by procuring conveyance of, a
54881covered work, and grant a patent license to some of the parties
54882receiving the covered work authorizing them to use, propagate, modify
54883or convey a specific copy of the covered work, then the patent license
54884you grant is automatically extended to all recipients of the covered
54885work and works based on it.
54886
54887 A patent license is "discriminatory" if it does not include within
54888the scope of its coverage, prohibits the exercise of, or is
54889conditioned on the non-exercise of one or more of the rights that are
54890specifically granted under this License. You may not convey a covered
54891work if you are a party to an arrangement with a third party that is
54892in the business of distributing software, under which you make payment
54893to the third party based on the extent of your activity of conveying
54894the work, and under which the third party grants, to any of the
54895parties who would receive the covered work from you, a discriminatory
54896patent license (a) in connection with copies of the covered work
54897conveyed by you (or copies made from those copies), or (b) primarily
54898for and in connection with specific products or compilations that
54899contain the covered work, unless you entered into that arrangement,
54900or that patent license was granted, prior to 28 March 2007.
54901
54902 Nothing in this License shall be construed as excluding or limiting
54903any implied license or other defenses to infringement that may
54904otherwise be available to you under applicable patent law.
54905
54906 12. No Surrender of Others' Freedom.
54907
54908 If conditions are imposed on you (whether by court order, agreement or
54909otherwise) that contradict the conditions of this License, they do not
54910excuse you from the conditions of this License. If you cannot convey a
54911covered work so as to satisfy simultaneously your obligations under this
54912License and any other pertinent obligations, then as a consequence you may
54913not convey it at all. For example, if you agree to terms that obligate you
54914to collect a royalty for further conveying from those to whom you convey
54915the Program, the only way you could satisfy both those terms and this
54916License would be to refrain entirely from conveying the Program.
54917
54918 13. Use with the GNU Affero General Public License.
54919
54920 Notwithstanding any other provision of this License, you have
54921permission to link or combine any covered work with a work licensed
54922under version 3 of the GNU Affero General Public License into a single
54923combined work, and to convey the resulting work. The terms of this
54924License will continue to apply to the part which is the covered work,
54925but the special requirements of the GNU Affero General Public License,
54926section 13, concerning interaction through a network will apply to the
54927combination as such.
54928
54929 14. Revised Versions of this License.
54930
54931 The Free Software Foundation may publish revised and/or new versions of
54932the GNU General Public License from time to time. Such new versions will
54933be similar in spirit to the present version, but may differ in detail to
54934address new problems or concerns.
54935
54936 Each version is given a distinguishing version number. If the
54937Program specifies that a certain numbered version of the GNU General
54938Public License "or any later version" applies to it, you have the
54939option of following the terms and conditions either of that numbered
54940version or of any later version published by the Free Software
54941Foundation. If the Program does not specify a version number of the
54942GNU General Public License, you may choose any version ever published
54943by the Free Software Foundation.
54944
54945 If the Program specifies that a proxy can decide which future
54946versions of the GNU General Public License can be used, that proxy's
54947public statement of acceptance of a version permanently authorizes you
54948to choose that version for the Program.
54949
54950 Later license versions may give you additional or different
54951permissions. However, no additional obligations are imposed on any
54952author or copyright holder as a result of your choosing to follow a
54953later version.
54954
54955 15. Disclaimer of Warranty.
54956
54957 THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
54958APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
54959HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
54960OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
54961THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
54962PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
54963IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
54964ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
54965
54966 16. Limitation of Liability.
54967
54968 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
54969WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
54970THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
54971GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
54972USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
54973DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
54974PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
54975EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
54976SUCH DAMAGES.
54977
54978 17. Interpretation of Sections 15 and 16.
54979
54980 If the disclaimer of warranty and limitation of liability provided
54981above cannot be given local legal effect according to their terms,
54982reviewing courts shall apply local law that most closely approximates
54983an absolute waiver of all civil liability in connection with the
54984Program, unless a warranty or assumption of liability accompanies a
54985copy of the Program in return for a fee.
54986
54987 END OF TERMS AND CONDITIONS
54988
54989 How to Apply These Terms to Your New Programs
54990
54991 If you develop a new program, and you want it to be of the greatest
54992possible use to the public, the best way to achieve this is to make it
54993free software which everyone can redistribute and change under these terms.
54994
54995 To do so, attach the following notices to the program. It is safest
54996to attach them to the start of each source file to most effectively
54997state the exclusion of warranty; and each file should have at least
54998the "copyright" line and a pointer to where the full notice is found.
54999
55000 <one line to give the program's name and a brief idea of what it does.>
55001 Copyright (C) <year> <name of author>
55002
55003 This program is free software: you can redistribute it and/or modify
55004 it under the terms of the GNU General Public License as published by
55005 the Free Software Foundation, either version 3 of the License, or
55006 (at your option) any later version.
55007
55008 This program is distributed in the hope that it will be useful,
55009 but WITHOUT ANY WARRANTY; without even the implied warranty of
55010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
55011 GNU General Public License for more details.
55012
55013 You should have received a copy of the GNU General Public License
55014 along with this program. If not, see <https://www.gnu.org/licenses/>.
55015
55016Also add information on how to contact you by electronic and paper mail.
55017
55018 If the program does terminal interaction, make it output a short
55019notice like this when it starts in an interactive mode:
55020
55021 <program> Copyright (C) var~year~ var~author~
55022 This program comes with ABSOLUTELY NO WARRANTY; for details type \`show w'.
55023 This is free software, and you are welcome to redistribute it
55024 under certain conditions; type \`show c' for details.
55025
55026The hypothetical commands \`show w' and \`show c' should show the appropriate
55027parts of the General Public License. Of course, your program's commands
55028might be different; for a GUI interface, you would use an "about box".
55029
55030 You should also get your employer (if you work as a programmer) or school,
55031if any, to sign a "copyright disclaimer" for the program, if necessary.
55032For more information on this, and how to apply and follow the GNU GPL, see
55033<https://www.gnu.org/licenses/>.
55034
55035 The GNU General Public License does not permit incorporating your program
55036into proprietary programs. If your program is a subroutine library, you
55037may consider it more useful to permit linking proprietary applications with
55038the library. If this is what you want to do, use the GNU Lesser General
55039Public License instead of this License. But first, please read
55040<https://www.gnu.org/licenses/why-not-lgpl.html>.`;
55041Licenses.Apache2 = ` # Apache License
55042 Version 2.0, January 2004
55043 http://www.apache.org/licenses/
55044
55045 TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
55046
55047 1. Definitions.
55048
55049 "License" shall mean the terms and conditions for use, reproduction,
55050 and distribution as defined by Sections 1 through 9 of this document.
55051
55052 "Licensor" shall mean the copyright owner or entity authorized by
55053 the copyright owner that is granting the License.
55054
55055 "Legal Entity" shall mean the union of the acting entity and all
55056 other entities that control, are controlled by, or are under common
55057 control with that entity. For the purposes of this definition,
55058 "control" means (i) the power, direct or indirect, to cause the
55059 direction or management of such entity, whether by contract or
55060 otherwise, or (ii) ownership of fifty percent (50%) or more of the
55061 outstanding shares, or (iii) beneficial ownership of such entity.
55062
55063 "You" (or "Your") shall mean an individual or Legal Entity
55064 exercising permissions granted by this License.
55065
55066 "Source" form shall mean the preferred form for making modifications,
55067 including but not limited to software source code, documentation
55068 source, and configuration files.
55069
55070 "Object" form shall mean any form resulting from mechanical
55071 transformation or translation of a Source form, including but
55072 not limited to compiled object code, generated documentation,
55073 and conversions to other media types.
55074
55075 "Work" shall mean the work of authorship, whether in Source or
55076 Object form, made available under the License, as indicated by a
55077 copyright notice that is included in or attached to the work
55078 (an example is provided in the Appendix below).
55079
55080 "Derivative Works" shall mean any work, whether in Source or Object
55081 form, that is based on (or derived from) the Work and for which the
55082 editorial revisions, annotations, elaborations, or other modifications
55083 represent, as a whole, an original work of authorship. For the purposes
55084 of this License, Derivative Works shall not include works that remain
55085 separable from, or merely link (or bind by name) to the interfaces of,
55086 the Work and Derivative Works thereof.
55087
55088 "Contribution" shall mean any work of authorship, including
55089 the original version of the Work and any modifications or additions
55090 to that Work or Derivative Works thereof, that is intentionally
55091 submitted to Licensor for inclusion in the Work by the copyright owner
55092 or by an individual or Legal Entity authorized to submit on behalf of
55093 the copyright owner. For the purposes of this definition, "submitted"
55094 means any form of electronic, verbal, or written communication sent
55095 to the Licensor or its representatives, including but not limited to
55096 communication on electronic mailing lists, source code control systems,
55097 and issue tracking systems that are managed by, or on behalf of, the
55098 Licensor for the purpose of discussing and improving the Work, but
55099 excluding communication that is conspicuously marked or otherwise
55100 designated in writing by the copyright owner as "Not a Contribution."
55101
55102 "Contributor" shall mean Licensor and any individual or Legal Entity
55103 on behalf of whom a Contribution has been received by Licensor and
55104 subsequently incorporated within the Work.
55105
55106 2. Grant of Copyright License. Subject to the terms and conditions of
55107 this License, each Contributor hereby grants to You a perpetual,
55108 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
55109 copyright license to reproduce, prepare Derivative Works of,
55110 publicly display, publicly perform, sublicense, and distribute the
55111 Work and such Derivative Works in Source or Object form.
55112
55113 3. Grant of Patent License. Subject to the terms and conditions of
55114 this License, each Contributor hereby grants to You a perpetual,
55115 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
55116 (except as stated in this section) patent license to make, have made,
55117 use, offer to sell, sell, import, and otherwise transfer the Work,
55118 where such license applies only to those patent claims licensable
55119 by such Contributor that are necessarily infringed by their
55120 Contribution(s) alone or by combination of their Contribution(s)
55121 with the Work to which such Contribution(s) was submitted. If You
55122 institute patent litigation against any entity (including a
55123 cross-claim or counterclaim in a lawsuit) alleging that the Work
55124 or a Contribution incorporated within the Work constitutes direct
55125 or contributory patent infringement, then any patent licenses
55126 granted to You under this License for that Work shall terminate
55127 as of the date such litigation is filed.
55128
55129 4. Redistribution. You may reproduce and distribute copies of the
55130 Work or Derivative Works thereof in any medium, with or without
55131 modifications, and in Source or Object form, provided that You
55132 meet the following conditions:
55133
55134 (a) You must give any other recipients of the Work or
55135 Derivative Works a copy of this License; and
55136
55137 (b) You must cause any modified files to carry prominent notices
55138 stating that You changed the files; and
55139
55140 (c) You must retain, in the Source form of any Derivative Works
55141 that You distribute, all copyright, patent, trademark, and
55142 attribution notices from the Source form of the Work,
55143 excluding those notices that do not pertain to any part of
55144 the Derivative Works; and
55145
55146 (d) If the Work includes a "NOTICE" text file as part of its
55147 distribution, then any Derivative Works that You distribute must
55148 include a readable copy of the attribution notices contained
55149 within such NOTICE file, excluding those notices that do not
55150 pertain to any part of the Derivative Works, in at least one
55151 of the following places: within a NOTICE text file distributed
55152 as part of the Derivative Works; within the Source form or
55153 documentation, if provided along with the Derivative Works; or,
55154 within a display generated by the Derivative Works, if and
55155 wherever such third-party notices normally appear. The contents
55156 of the NOTICE file are for informational purposes only and
55157 do not modify the License. You may add Your own attribution
55158 notices within Derivative Works that You distribute, alongside
55159 or as an addendum to the NOTICE text from the Work, provided
55160 that such additional attribution notices cannot be construed
55161 as modifying the License.
55162
55163 You may add Your own copyright statement to Your modifications and
55164 may provide additional or different license terms and conditions
55165 for use, reproduction, or distribution of Your modifications, or
55166 for any such Derivative Works as a whole, provided Your use,
55167 reproduction, and distribution of the Work otherwise complies with
55168 the conditions stated in this License.
55169
55170 5. Submission of Contributions. Unless You explicitly state otherwise,
55171 any Contribution intentionally submitted for inclusion in the Work
55172 by You to the Licensor shall be under the terms and conditions of
55173 this License, without any additional terms or conditions.
55174 Notwithstanding the above, nothing herein shall supersede or modify
55175 the terms of any separate license agreement you may have executed
55176 with Licensor regarding such Contributions.
55177
55178 6. Trademarks. This License does not grant permission to use the trade
55179 names, trademarks, service marks, or product names of the Licensor,
55180 except as required for reasonable and customary use in describing the
55181 origin of the Work and reproducing the content of the NOTICE file.
55182
55183 7. Disclaimer of Warranty. Unless required by applicable law or
55184 agreed to in writing, Licensor provides the Work (and each
55185 Contributor provides its Contributions) on an "AS IS" BASIS,
55186 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
55187 implied, including, without limitation, any warranties or conditions
55188 of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
55189 PARTICULAR PURPOSE. You are solely responsible for determining the
55190 appropriateness of using or redistributing the Work and assume any
55191 risks associated with Your exercise of permissions under this License.
55192
55193 8. Limitation of Liability. In no event and under no legal theory,
55194 whether in tort (including negligence), contract, or otherwise,
55195 unless required by applicable law (such as deliberate and grossly
55196 negligent acts) or agreed to in writing, shall any Contributor be
55197 liable to You for damages, including any direct, indirect, special,
55198 incidental, or consequential damages of any character arising as a
55199 result of this License or out of the use or inability to use the
55200 Work (including but not limited to damages for loss of goodwill,
55201 work stoppage, computer failure or malfunction, or any and all
55202 other commercial damages or losses), even if such Contributor
55203 has been advised of the possibility of such damages.
55204
55205 9. Accepting Warranty or Additional Liability. While redistributing
55206 the Work or Derivative Works thereof, You may choose to offer,
55207 and charge a fee for, acceptance of support, warranty, indemnity,
55208 or other liability obligations and/or rights consistent with this
55209 License. However, in accepting such obligations, You may act only
55210 on Your own behalf and on Your sole responsibility, not on behalf
55211 of any other Contributor, and only if You agree to indemnify,
55212 defend, and hold each Contributor harmless for any liability
55213 incurred by, or claims asserted against, such Contributor by reason
55214 of your accepting any such warranty or additional liability.
55215
55216 END OF TERMS AND CONDITIONS
55217
55218 APPENDIX: How to apply the Apache License to your work.
55219
55220 To apply the Apache License to your work, attach the following
55221 boilerplate notice, with the fields enclosed by brackets "[]"
55222 replaced with your own identifying information. (Don't include
55223 the brackets!) The text should be enclosed in the appropriate
55224 comment syntax for the file format. We also recommend that a
55225 file or class name and description of purpose be included on the
55226 same "printed page" as the copyright notice for easier
55227 identification within third-party archives.
55228
55229 Copyright var~year~ var~author~
55230
55231 Licensed under the Apache License, Version 2.0 (the "License");
55232 you may not use this file except in compliance with the License.
55233 You may obtain a copy of the License at
55234
55235 http://www.apache.org/licenses/LICENSE-2.0
55236
55237 Unless required by applicable law or agreed to in writing, software
55238 distributed under the License is distributed on an "AS IS" BASIS,
55239 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
55240 See the License for the specific language governing permissions and
55241 limitations under the License.
55242 `;
55243exports.Licenses = Licenses;
55244
55245
55246/***/ }),
55247
55248/***/ "./src/classLibrary/Parser.ts":
55249/*!************************************!*\
55250 !*** ./src/classLibrary/Parser.ts ***!
55251 \************************************/
55252/*! no static exports found */
55253/***/ (function(module, exports, __webpack_require__) {
55254
55255"use strict";
55256
55257var __importDefault = (this && this.__importDefault) || function (mod) {
55258 return (mod && mod.__esModule) ? mod : { "default": mod };
55259};
55260Object.defineProperty(exports, "__esModule", { value: true });
55261const ParsingStrategy_1 = __webpack_require__(/*! ./ParsingStrategy/ParsingStrategy */ "./src/classLibrary/ParsingStrategy/ParsingStrategy.ts");
55262const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
55263const cli_progress_1 = __webpack_require__(/*! cli-progress */ "./node_modules/cli-progress/cli-progress.js");
55264class Parser {
55265 constructor(util, strategies, settings) {
55266 this.strategies = strategies;
55267 this.settings = settings;
55268 this.flagCounter = util.FlattenFlagObject(settings.flags).MapValue(() => 0);
55269 this.variableCounter = util.FlattenObject(settings.variable).MapValue(() => 0);
55270 this.guidCounter = settings.guid.AsKey((() => 0));
55271 }
55272 ParseFiles(files) {
55273 for (let i = 0; i < this.strategies.length; i++) {
55274 let strategy = this.strategies[i];
55275 files = strategy.ResolveFiles(this.settings[strategy.Target], files);
55276 }
55277 return files;
55278 }
55279 CountFiles(files) {
55280 for (let i = 0; i < this.strategies.length; i++) {
55281 let strategy = this.strategies[i];
55282 switch (strategy.MapType) {
55283 case ParsingStrategy_1.MapType.FLAG:
55284 this.flagCounter = strategy.Count(this.settings[strategy.Target], files, this.flagCounter, false);
55285 break;
55286 case ParsingStrategy_1.MapType.GUID:
55287 this.guidCounter = strategy.Count(this.settings[strategy.Target], files, this.guidCounter, false);
55288 break;
55289 case ParsingStrategy_1.MapType.VARIABLE:
55290 this.variableCounter = strategy.Count(this.settings[strategy.Target], files, this.variableCounter, false);
55291 break;
55292 default:
55293 throw new Error("Unknown flag type!");
55294 }
55295 }
55296 }
55297 /**
55298 * Counts the occurrences of things that need to be replaced
55299 * returns true if its all ok
55300 * returns false if there are variables or flags unused
55301 * @param files the files
55302 * @constructor
55303 */
55304 CountOccurence(files) {
55305 //Count occurrences and add to counting map
55306 for (let i = 0; i < this.strategies.length; i++) {
55307 let strategy = this.strategies[i];
55308 switch (strategy.MapType) {
55309 case ParsingStrategy_1.MapType.FLAG:
55310 this.flagCounter = strategy.Count(this.settings[strategy.Target], files, this.flagCounter, true);
55311 break;
55312 case ParsingStrategy_1.MapType.GUID:
55313 this.guidCounter = strategy.Count(this.settings[strategy.Target], files, this.guidCounter, true);
55314 break;
55315 case ParsingStrategy_1.MapType.VARIABLE:
55316 this.variableCounter = strategy.Count(this.settings[strategy.Target], files, this.variableCounter, true);
55317 break;
55318 default:
55319 throw new Error("Unknown flag type!");
55320 }
55321 }
55322 //remove cyan.docs occurrences
55323 this.flagCounter = this.flagCounter.Where((k) => k.Take(10) !== "cyan.docs.");
55324 this.variableCounter = this.variableCounter.Where((k) => k.Take(10) !== "cyan.docs.").Where((k) => k.Take(12) !== "cyan.folder.");
55325 //Display occurrence's stats to user
55326 let flagZeroes = this.DisplayOccurrences("flag", this.flagCounter);
55327 let varZeroes = this.DisplayOccurrences("variables", this.variableCounter);
55328 let guidZeroes = this.DisplayOccurrences("Guid", this.guidCounter);
55329 if (flagZeroes.length > 0 || varZeroes.length > 0 || guidZeroes.length > 0) {
55330 console.log(chalk_1.default.yellowBright(`===========\n WARNING\n===========`));
55331 this.Warn("flags", flagZeroes);
55332 this.Warn("variables", varZeroes);
55333 this.Warn("Guid", guidZeroes);
55334 return false;
55335 }
55336 return true;
55337 }
55338 CountPossibleRemains(files) {
55339 let unaccounted = this.strategies.Map((s) => s.CountPossibleUnaccountedFlags(files)).Flatten();
55340 if (unaccounted.length > 0) {
55341 console.log(chalk_1.default.redBright("WARNING: LIST OF POSSIBLE UNUSED VARIABLES"));
55342 unaccounted.TrimAll().Each((s) => console.log("\t" + chalk_1.default.red(s)));
55343 }
55344 }
55345 ParseContent(files) {
55346 //Announce start of parsing
55347 console.log(chalk_1.default.cyanBright("Parsing templates..."));
55348 //Generate loading bar
55349 let bar = new cli_progress_1.Bar({}, cli_progress_1.Presets.shades_grey);
55350 let counter = 0;
55351 bar.start(this.strategies.length, 0);
55352 for (let i = 0; i < this.strategies.length; i++) {
55353 let strategy = this.strategies[i];
55354 files = strategy.ResolveContents(this.settings[strategy.Target], files);
55355 counter++;
55356 bar.update(counter);
55357 }
55358 bar.stop();
55359 console.log(chalk_1.default.greenBright("Completed parsing templates!"));
55360 return files;
55361 }
55362 DisplayOccurrences(type, map) {
55363 let ret = [];
55364 if (map.size > 0) {
55365 console.log(chalk_1.default.cyanBright(`======================================\n Number of occurrences of ${type}:\n======================================`));
55366 map.Each((s, v) => {
55367 if (v > 0) {
55368 console.log(chalk_1.default.greenBright(s) + ": " + chalk_1.default.yellowBright(v.toString()));
55369 }
55370 else {
55371 ret.push(s);
55372 console.log(chalk_1.default.redBright(`[Warning - this ${type} has no occurrence]: `) + chalk_1.default.yellowBright(s));
55373 }
55374 });
55375 }
55376 return ret;
55377 }
55378 Warn(type, variables) {
55379 if (variables.length > 0) {
55380 console.log(chalk_1.default.redBright(`[Warning] The following ${type} do not exist in the template`));
55381 variables.Map((s) => console.log("\t" + chalk_1.default.red(s)));
55382 }
55383 }
55384}
55385exports.Parser = Parser;
55386
55387
55388/***/ }),
55389
55390/***/ "./src/classLibrary/ParsingStrategy/GuidResolver.ts":
55391/*!**********************************************************!*\
55392 !*** ./src/classLibrary/ParsingStrategy/GuidResolver.ts ***!
55393 \**********************************************************/
55394/*! no static exports found */
55395/***/ (function(module, exports, __webpack_require__) {
55396
55397"use strict";
55398
55399Object.defineProperty(exports, "__esModule", { value: true });
55400const ParsingStrategy_1 = __webpack_require__(/*! ./ParsingStrategy */ "./src/classLibrary/ParsingStrategy/ParsingStrategy.ts");
55401class GuidResolver {
55402 constructor(core) {
55403 core.AssertExtend();
55404 }
55405 get MapType() {
55406 return ParsingStrategy_1.MapType.GUID;
55407 }
55408 get Target() {
55409 return "guid";
55410 }
55411 IsGuid(guid) {
55412 let regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
55413 return regex.test(guid) && guid.length === 36;
55414 }
55415 ReplaceGuid(guidArr, f) {
55416 let upper = guidArr.MapKey((s) => s.toUpperCase());
55417 let lower = guidArr.MapKey((s) => s.toLowerCase());
55418 if (f["content"] != null) {
55419 let file = f;
55420 let content = file.content;
55421 upper.Each((k, v) => content = content.ReplaceAll(k, v));
55422 lower.Each((k, v) => content = content.ReplaceAll(k, v));
55423 file.content = content;
55424 return file;
55425 }
55426 return f;
55427 }
55428 Count(guidArr, files, data, ignoreFile) {
55429 if (!ignoreFile)
55430 return data;
55431 files.Each((f) => {
55432 if (f["content"] != null) {
55433 let file = f;
55434 guidArr.Each((s) => {
55435 let num = file.content.Count(s.toUpperCase());
55436 if (data.has(s)) {
55437 data.set(s, data.get(s) + num);
55438 }
55439 else {
55440 data.set(s, num);
55441 }
55442 });
55443 }
55444 });
55445 return data;
55446 }
55447 GenerateGuid() {
55448 var d = new Date().getTime();
55449 if (typeof performance !== 'undefined' && typeof performance.now === 'function') {
55450 d += performance.now(); //use high-precision timer if available
55451 }
55452 let x = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
55453 var r = (d + Math.random() * 16) % 16 | 0;
55454 d = Math.floor(d / 16);
55455 return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
55456 });
55457 if (GuidResolver.guids.Has(x)) {
55458 return this.GenerateGuid();
55459 }
55460 else {
55461 GuidResolver.guids.push(x);
55462 return x;
55463 }
55464 }
55465 ResolveContents(guidArr, files) {
55466 let map = guidArr.AsKey(() => this.GenerateGuid());
55467 return files.Each((f) => {
55468 if (f["content"] != null) {
55469 let file = f;
55470 let content = file.content;
55471 map.Each((s, v) => content = content.ReplaceAll(s.toLowerCase(), v).ReplaceAll(s.toUpperCase(), v));
55472 file.content = content;
55473 }
55474 });
55475 }
55476 ResolveFiles(wFlag, files) {
55477 return files;
55478 }
55479 CountPossibleUnaccountedFlags(files) {
55480 return [];
55481 }
55482}
55483GuidResolver.guids = [];
55484exports.GuidResolver = GuidResolver;
55485
55486
55487/***/ }),
55488
55489/***/ "./src/classLibrary/ParsingStrategy/IfElseResolver.ts":
55490/*!************************************************************!*\
55491 !*** ./src/classLibrary/ParsingStrategy/IfElseResolver.ts ***!
55492 \************************************************************/
55493/*! no static exports found */
55494/***/ (function(module, exports, __webpack_require__) {
55495
55496"use strict";
55497
55498Object.defineProperty(exports, "__esModule", { value: true });
55499const ParsingStrategy_1 = __webpack_require__(/*! ./ParsingStrategy */ "./src/classLibrary/ParsingStrategy/ParsingStrategy.ts");
55500class IfElseResolver {
55501 constructor(util) {
55502 this.MapType = ParsingStrategy_1.MapType.FLAG;
55503 this.Target = "flags";
55504 this.util = util;
55505 }
55506 Count(wFlag, files, map, ignoreFile) {
55507 if (!ignoreFile)
55508 return map;
55509 let real = this.util.FlattenFlagObject(wFlag);
55510 files.Where((f) => f["content"] != null)
55511 .Map((f) => f)
55512 .Map((f) => f.content)
55513 .Each((s) => {
55514 real.Each((k) => {
55515 let number = s
55516 .Count(this.ModifyIfKeys(k))
55517 .AtMax(s.Count(this.ModifyEndKey(k)));
55518 if (map.has(k)) {
55519 map.set(k, map.get(k) + number);
55520 }
55521 else {
55522 map.set(k, number);
55523 }
55524 });
55525 });
55526 return map;
55527 }
55528 ModifyIfKeys(input) {
55529 return 'if~' + input + '~';
55530 }
55531 ModifyEndKey(input) {
55532 return 'end~' + input + '~';
55533 }
55534 ResolveContent(map, file) {
55535 if (file["content"] != null) {
55536 let f = file;
55537 let content = f.content;
55538 map.Each((k, v) => {
55539 let startIndex = content
55540 .LineBreak()
55541 .Map((s, i) => [s, i])
55542 .Where((n) => n[0].includes(this.ModifyIfKeys(k)))
55543 .Map((n) => n[1]);
55544 let endIndex = content
55545 .LineBreak()
55546 .Map((s, i) => [s, i])
55547 .Where((n) => n[0].includes(this.ModifyEndKey(k)))
55548 .Map(((n) => n[1]));
55549 if (v) {
55550 content = content.LineBreak().WithoutIndex(startIndex.concat(endIndex)).join('\n');
55551 }
55552 else {
55553 content =
55554 content.LineBreak().WithoutIndex(startIndex.Map((n, index) => [].Fill(endIndex[index] - n + 1, (i) => i + n)).Flatten()).join('\n');
55555 }
55556 });
55557 f.content = content;
55558 return f;
55559 }
55560 return file;
55561 }
55562 ResolveContents(wFlag, files) {
55563 let map = this.util.FlattenFlagObject(wFlag);
55564 return files.Map((f) => this.ResolveContent(map, f));
55565 }
55566 ResolveFiles(wFlag, files) {
55567 return files;
55568 }
55569 CountPossibleUnaccountedFlags(files) {
55570 let ifRegex = /if~[^~]*~/g;
55571 let endRegex = /end~[^~]*~/g;
55572 return files
55573 .Where(f => f["content"] != null)
55574 .Map(f => f.content
55575 .LineBreak()
55576 .Map(s => s.Match(ifRegex).concat(s.Match(endRegex)))
55577 .Flatten()
55578 .Map(s => `${s}:${f.relativePath}`))
55579 .Flatten();
55580 }
55581}
55582exports.IfElseResolver = IfElseResolver;
55583
55584
55585/***/ }),
55586
55587/***/ "./src/classLibrary/ParsingStrategy/InlineFlagResolver.ts":
55588/*!****************************************************************!*\
55589 !*** ./src/classLibrary/ParsingStrategy/InlineFlagResolver.ts ***!
55590 \****************************************************************/
55591/*! no static exports found */
55592/***/ (function(module, exports, __webpack_require__) {
55593
55594"use strict";
55595
55596Object.defineProperty(exports, "__esModule", { value: true });
55597const ParsingStrategy_1 = __webpack_require__(/*! ./ParsingStrategy */ "./src/classLibrary/ParsingStrategy/ParsingStrategy.ts");
55598const core_1 = __webpack_require__(/*! @kirinnee/core */ "./node_modules/@kirinnee/core/index.js");
55599class InlineFlagResolver {
55600 constructor(util, comments = []) {
55601 this.util = util;
55602 this.comments = [""].concat(comments).Sort(core_1.SortType.Descending, (s) => s.length);
55603 }
55604 get MapType() {
55605 return ParsingStrategy_1.MapType.FLAG;
55606 }
55607 get Target() {
55608 return "flags";
55609 }
55610 /**
55611 * The flag object to make decisions
55612 * @param wFlag flag object
55613 * @param files file streams`
55614 * @constructor
55615 */
55616 ResolveFiles(wFlag, files) {
55617 //Changes it to search term after flattening the configuration file
55618 let map = this.util.FlattenFlagObject(wFlag).MapKey(this.ModifyFlagKeys);
55619 return files
55620 .Where((f) => this.ShouldStay(map, f.relativePath))
55621 .Map((f) => this.RemoveFlagSignature(map, f));
55622 }
55623 ResolveContents(wFlag, files) {
55624 let map = this.util.FlattenFlagObject(wFlag).MapKey(this.ModifyFlagKeys);
55625 return files.Map((f) => this.ResolveFileContent(map, f));
55626 }
55627 ModifyFlagKeys(input) {
55628 return 'flag~' + input + '~';
55629 }
55630 /**
55631 * Check if target file should stay base on flag map
55632 * @param map flag map
55633 * @param checkTarget file path
55634 * @constructor
55635 */
55636 ShouldStay(map, checkTarget) {
55637 return map.Where((k, v) => !checkTarget.includes(k) || v).size === map.size;
55638 }
55639 // noinspection JSMethodCanBeStatic
55640 /**
55641 * Removes the injected code signature from files and directories
55642 * @param map key value pair of what to remove
55643 * @param f the file to remove from
55644 * @constructor
55645 */
55646 RemoveFlagSignature(map, f) {
55647 f.destinationAbsolutePath = f.destinationAbsolutePath.Without(map.Arr().Map((s) => s["0"]));
55648 return f;
55649 }
55650 ;
55651 ResolveFileContent(map, f) {
55652 if (f['content'] != null) {
55653 let file = f;
55654 file.content = file.content
55655 .LineBreak()
55656 .Where((s) => this.ShouldStay(map, s))
55657 .Map((s) => s.Without(this.RemoveArray(map)))
55658 .join("\n");
55659 return file;
55660 }
55661 return f;
55662 }
55663 Count(wFlag, files, map, ignoreFile) {
55664 // noinspection JSMismatchedCollectionQueryUpdate
55665 // noinspection JSMismatchedCollectionQueryUpdate
55666 // noinspection JSMismatchedCollectionQueryUpdate
55667 let keys = this.util.FlattenFlagObject(wFlag).MapKey((s) => this.ModifyFlagKeys(s)).Keys();
55668 files.Each((f) => {
55669 keys.Each((s) => {
55670 let num = ignoreFile ? 0 : f.sourceAbsolutePath.Count(s);
55671 let key = s.Omit(1).Skip(5);
55672 if (f["content"] != null) {
55673 let file = f;
55674 num += file.content.Count(s);
55675 }
55676 if (!map.has(key)) {
55677 map.set(key, num);
55678 }
55679 else {
55680 map.set(key, map.get(key) + num);
55681 }
55682 });
55683 });
55684 return map;
55685 }
55686 CountPossibleUnaccountedFlags(files) {
55687 let flag = /flag~[^~]*~/g;
55688 return files
55689 .Where(f => f["content"] != null)
55690 .Map(f => f.content.LineBreak()
55691 .Map(s => s.Match(flag))
55692 .Flatten()
55693 .Map(s => `${s}:${f.relativePath}`))
55694 .Flatten()
55695 .concat(files.Map((f) => f.destinationAbsolutePath.Match(flag).Map((s) => `${s}:${f.relativePath}`)).Flatten());
55696 }
55697 RemoveArray(map) {
55698 return this.comments
55699 .Map((c) => map.Keys().Map((k) => c + k))
55700 .Flatten();
55701 }
55702}
55703exports.InlineFlagResolver = InlineFlagResolver;
55704
55705
55706/***/ }),
55707
55708/***/ "./src/classLibrary/ParsingStrategy/InverseIfElseResolver.ts":
55709/*!*******************************************************************!*\
55710 !*** ./src/classLibrary/ParsingStrategy/InverseIfElseResolver.ts ***!
55711 \*******************************************************************/
55712/*! no static exports found */
55713/***/ (function(module, exports, __webpack_require__) {
55714
55715"use strict";
55716
55717Object.defineProperty(exports, "__esModule", { value: true });
55718const ParsingStrategy_1 = __webpack_require__(/*! ./ParsingStrategy */ "./src/classLibrary/ParsingStrategy/ParsingStrategy.ts");
55719class InverseIfElseResolver {
55720 constructor(util) {
55721 this.MapType = ParsingStrategy_1.MapType.FLAG;
55722 this.Target = "flags";
55723 this.util = util;
55724 }
55725 Count(wFlag, files, map, ignoreFile) {
55726 if (!ignoreFile)
55727 return map;
55728 let real = this.util.FlattenFlagObject(wFlag);
55729 files.Where((f) => f["content"] != null)
55730 .Map((f) => f)
55731 .Map((f) => f.content)
55732 .Each((s) => {
55733 real.Each((k) => {
55734 let number = s
55735 .Count(this.ModifyIfKeys(k))
55736 .AtMax(s.Count(this.ModifyEndKey(k)));
55737 if (map.has(k)) {
55738 map.set(k, map.get(k) + number);
55739 }
55740 else {
55741 map.set(k, number);
55742 }
55743 });
55744 });
55745 return map;
55746 }
55747 CountPossibleUnaccountedFlags(files) {
55748 let ifRegex = /if!~[^~]*~/g;
55749 let endRegex = /end!~[^~]*~/g;
55750 return files
55751 .Where(f => f["content"] != null)
55752 .Map(f => f.content
55753 .LineBreak()
55754 .Map(s => s.Match(ifRegex).concat(s.Match(endRegex)))
55755 .Flatten()
55756 .Map(s => `${s}:${f.relativePath}`))
55757 .Flatten();
55758 }
55759 ModifyIfKeys(input) {
55760 return 'if!~' + input + '~';
55761 }
55762 ModifyEndKey(input) {
55763 return 'end!~' + input + '~';
55764 }
55765 ResolveContent(map, file) {
55766 map = map.MapValue((v) => !v);
55767 if (file["content"] != null) {
55768 let f = file;
55769 let content = f.content;
55770 map.Each((k, v) => {
55771 let startIndex = content
55772 .LineBreak()
55773 .Map((s, i) => [s, i])
55774 .Where((n) => n[0].includes(this.ModifyIfKeys(k)))
55775 .Map((n) => n[1]);
55776 let endIndex = content
55777 .LineBreak()
55778 .Map((s, i) => [s, i])
55779 .Where((n) => n[0].includes(this.ModifyEndKey(k)))
55780 .Map(((n) => n[1]));
55781 if (v) {
55782 content = content.LineBreak().WithoutIndex(startIndex.concat(endIndex)).join('\n');
55783 }
55784 else {
55785 content =
55786 content.LineBreak().WithoutIndex(startIndex.Map((n, index) => [].Fill(endIndex[index] - n + 1, (i) => i + n)).Flatten()).join('\n');
55787 }
55788 });
55789 f.content = content;
55790 return f;
55791 }
55792 return file;
55793 }
55794 ResolveContents(wFlag, files) {
55795 let map = this.util.FlattenFlagObject(wFlag);
55796 return files.Map((f) => this.ResolveContent(map, f));
55797 }
55798 ResolveFiles(wFlag, files) {
55799 return files;
55800 }
55801}
55802exports.InverseIfElseResolver = InverseIfElseResolver;
55803
55804
55805/***/ }),
55806
55807/***/ "./src/classLibrary/ParsingStrategy/InverseInlineFlagResolver.ts":
55808/*!***********************************************************************!*\
55809 !*** ./src/classLibrary/ParsingStrategy/InverseInlineFlagResolver.ts ***!
55810 \***********************************************************************/
55811/*! no static exports found */
55812/***/ (function(module, exports, __webpack_require__) {
55813
55814"use strict";
55815
55816Object.defineProperty(exports, "__esModule", { value: true });
55817const ParsingStrategy_1 = __webpack_require__(/*! ./ParsingStrategy */ "./src/classLibrary/ParsingStrategy/ParsingStrategy.ts");
55818const core_1 = __webpack_require__(/*! @kirinnee/core */ "./node_modules/@kirinnee/core/index.js");
55819class InverseInlineFlagResolver {
55820 constructor(util, comments = []) {
55821 this.MapType = ParsingStrategy_1.MapType.FLAG;
55822 this.Target = "flags";
55823 this.util = util;
55824 this.comments = [""].concat(comments).Sort(core_1.SortType.Descending, (s) => s.length);
55825 }
55826 Count(wFlag, files, map, ignoreFile) {
55827 let keys = this.util.FlattenFlagObject(wFlag).MapKey((s) => this.ModifyFlagKeys(s)).Keys();
55828 files.Each((f) => {
55829 keys.Each((s) => {
55830 let num = ignoreFile ? 0 : f.sourceAbsolutePath.Count(s);
55831 let key = s.Omit(1).Skip(6);
55832 if (f["content"] != null) {
55833 let file = f;
55834 num += file.content.Count(s);
55835 }
55836 if (!map.has(key)) {
55837 map.set(key, num);
55838 }
55839 else {
55840 map.set(key, map.get(key) + num);
55841 }
55842 });
55843 });
55844 return map;
55845 }
55846 CountPossibleUnaccountedFlags(files) {
55847 let flag = /flag!~[^~]*~/g;
55848 return files
55849 .Where(f => f["content"] != null)
55850 .Map(f => f.content
55851 .LineBreak()
55852 .Map(s => s.Match(flag).Map(s => `${s}:${f.relativePath}`))
55853 .Flatten())
55854 .Flatten()
55855 .concat(files.Map((f) => f.destinationAbsolutePath.Match(flag)).Flatten());
55856 }
55857 /**
55858 * The flag object to make decisions
55859 * @param wFlag flag object
55860 * @param files file streams`
55861 * @constructor
55862 */
55863 ResolveFiles(wFlag, files) {
55864 //Changes it to search term after flattening the configuration file
55865 let map = this.util
55866 .FlattenFlagObject(wFlag)
55867 .MapKey(this.ModifyFlagKeys)
55868 .MapValue((v) => !v);
55869 return files
55870 .Where((f) => this.ShouldStay(map, f.relativePath))
55871 .Map((f) => this.RemoveFlagSignature(map, f));
55872 }
55873 ResolveContents(wFlag, files) {
55874 let map = this.util
55875 .FlattenFlagObject(wFlag)
55876 .MapKey(this.ModifyFlagKeys)
55877 .MapValue((v) => !v);
55878 return files.Map((f) => this.ResolveFileContent(map, f));
55879 }
55880 ModifyFlagKeys(input) {
55881 return 'flag!~' + input + '~';
55882 }
55883 /**
55884 * Check if target file should stay base on flag map
55885 * @param map flag map
55886 * @param checkTarget file path
55887 * @constructor
55888 */
55889 ShouldStay(map, checkTarget) {
55890 return map.Where((k, v) => !checkTarget.includes(k) || v).size === map.size;
55891 }
55892 // noinspection JSMethodCanBeStatic
55893 /**
55894 * Removes the injected code signature from files and directories
55895 * @param map key value pair of what to remove
55896 * @param f the file to remove from
55897 * @constructor
55898 */
55899 RemoveFlagSignature(map, f) {
55900 f.destinationAbsolutePath = f.destinationAbsolutePath.Without(map.Arr().Map((s) => s["0"]));
55901 return f;
55902 }
55903 ;
55904 ResolveFileContent(map, f) {
55905 if (f['content'] != null) {
55906 let file = f;
55907 file.content = file.content
55908 .LineBreak()
55909 .Where((s) => this.ShouldStay(map, s))
55910 .Map((s) => s.Without(this.RemoveArray(map)))
55911 .join("\n");
55912 return file;
55913 }
55914 return f;
55915 }
55916 RemoveArray(map) {
55917 let nestedArr = this.comments.Map((c) => map.Keys().Map((k) => c + k));
55918 return nestedArr.Flatten();
55919 }
55920}
55921exports.InverseInlineFlagResolver = InverseInlineFlagResolver;
55922
55923
55924/***/ }),
55925
55926/***/ "./src/classLibrary/ParsingStrategy/MoveResolver.ts":
55927/*!**********************************************************!*\
55928 !*** ./src/classLibrary/ParsingStrategy/MoveResolver.ts ***!
55929 \**********************************************************/
55930/*! no static exports found */
55931/***/ (function(module, exports, __webpack_require__) {
55932
55933"use strict";
55934
55935var __importStar = (this && this.__importStar) || function (mod) {
55936 if (mod && mod.__esModule) return mod;
55937 var result = {};
55938 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
55939 result["default"] = mod;
55940 return result;
55941};
55942Object.defineProperty(exports, "__esModule", { value: true });
55943const ParsingStrategy_1 = __webpack_require__(/*! ./ParsingStrategy */ "./src/classLibrary/ParsingStrategy/ParsingStrategy.ts");
55944const path = __importStar(__webpack_require__(/*! path */ "path"));
55945const RJSON = __importStar(__webpack_require__(/*! relaxed-json */ "./node_modules/relaxed-json/relaxed-json.js"));
55946class MoveResolver {
55947 constructor(util) {
55948 this.MapType = ParsingStrategy_1.MapType.FLAG;
55949 this.Target = "flags";
55950 this.util = util;
55951 }
55952 Count(flag, files, data, ignoreFile) {
55953 if (!ignoreFile)
55954 return data;
55955 if (flag["move"] != null) {
55956 let map = this.util.FlattenFlagObject(flag["move"]);
55957 files.Each((f) => {
55958 if (f["content"] != null) {
55959 let file = f;
55960 if (this.IsPackageDotJson(file)) {
55961 let jsonObject = RJSON.parse(file.content);
55962 map.Each((k) => {
55963 if (jsonObject["devDependencies"] != null) {
55964 if (jsonObject["devDependencies"][k] != null) {
55965 if (data.has("move." + k)) {
55966 data.set("move." + k, data.get("move." + k) + 1);
55967 }
55968 else {
55969 data.set("move." + k, 1);
55970 }
55971 }
55972 }
55973 if (jsonObject["dependencies"] != null) {
55974 if (jsonObject["dependencies"][k] != null) {
55975 if (data.has("move." + k)) {
55976 data.set("move." + k, data.get("move." + k) + 1);
55977 }
55978 else {
55979 data.set("move." + k, 1);
55980 }
55981 }
55982 }
55983 });
55984 }
55985 }
55986 });
55987 }
55988 return data;
55989 }
55990 ResolveContents(flag, files) {
55991 if (flag["move"] != null) {
55992 let map = this.util.FlattenFlagObject(flag["move"]);
55993 return files.Map((f) => this.ResolveJsonFile(map, f));
55994 }
55995 return files;
55996 }
55997 ResolveFiles(wFlag, files) {
55998 return files;
55999 }
56000 ResolveJsonFile(map, f) {
56001 if (f["content"] == null)
56002 return f;
56003 let file = f;
56004 if (!this.IsPackageDotJson(file))
56005 return file;
56006 let jsonObject = RJSON.parse(file.content);
56007 map.Where((k, v) => v)
56008 .Keys()
56009 .Each((k) => {
56010 if (jsonObject["devDependencies"] != null && jsonObject["devDependencies"][k] != null) {
56011 if (jsonObject["dependencies"] == null)
56012 jsonObject["dependencies"] = {};
56013 jsonObject["dependencies"][k] = jsonObject["devDependencies"][k];
56014 delete jsonObject["devDependencies"][k];
56015 }
56016 else if (jsonObject["dependencies"] != null && jsonObject["dependencies"][k] != null) {
56017 if (jsonObject["devDependencies"] == null)
56018 jsonObject["devDependencies"] = {};
56019 jsonObject["devDependencies"][k] = jsonObject["dependencies"][k];
56020 delete jsonObject["dependencies"][k];
56021 }
56022 });
56023 file.content = JSON.stringify(jsonObject, null, 2);
56024 return file;
56025 }
56026 IsPackageDotJson(file) {
56027 return file.destinationAbsolutePath.FileName() === "package" && path.extname(file.destinationAbsolutePath) === ".json";
56028 }
56029 CountPossibleUnaccountedFlags(files) {
56030 return [];
56031 }
56032}
56033exports.MoveResolver = MoveResolver;
56034
56035
56036/***/ }),
56037
56038/***/ "./src/classLibrary/ParsingStrategy/PackageResolver.ts":
56039/*!*************************************************************!*\
56040 !*** ./src/classLibrary/ParsingStrategy/PackageResolver.ts ***!
56041 \*************************************************************/
56042/*! no static exports found */
56043/***/ (function(module, exports, __webpack_require__) {
56044
56045"use strict";
56046
56047var __importStar = (this && this.__importStar) || function (mod) {
56048 if (mod && mod.__esModule) return mod;
56049 var result = {};
56050 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
56051 result["default"] = mod;
56052 return result;
56053};
56054Object.defineProperty(exports, "__esModule", { value: true });
56055const ParsingStrategy_1 = __webpack_require__(/*! ./ParsingStrategy */ "./src/classLibrary/ParsingStrategy/ParsingStrategy.ts");
56056const path = __importStar(__webpack_require__(/*! path */ "path"));
56057const RJSON = __importStar(__webpack_require__(/*! relaxed-json */ "./node_modules/relaxed-json/relaxed-json.js"));
56058class PackageResolver {
56059 constructor(util) {
56060 this.MapType = ParsingStrategy_1.MapType.FLAG;
56061 this.Target = "flags";
56062 this.util = util;
56063 }
56064 Count(flag, files, data, ignoreFile) {
56065 if (!ignoreFile)
56066 return data;
56067 if (flag["packages"] != null) {
56068 let map = this.util.FlattenFlagObject(flag["packages"]);
56069 files.Each((f) => {
56070 if (f["content"] != null) {
56071 let file = f;
56072 //console.log("is package?",this.IsPackageDotJson(file), file.sourceAbsolutePath);
56073 if (this.IsPackageDotJson(file)) {
56074 let jsonObject = RJSON.parse(file.content);
56075 map.Each((k) => {
56076 if (jsonObject["devDependencies"] != null) {
56077 if (jsonObject["devDependencies"][k] != null) {
56078 if (data.has("packages." + k)) {
56079 data.set("packages." + k, data.get("packages." + k) + 1);
56080 }
56081 else {
56082 data.set("packages." + k, 1);
56083 }
56084 }
56085 }
56086 if (jsonObject["dependencies"] != null) {
56087 if (jsonObject["dependencies"][k] != null) {
56088 if (data.has("packages." + k)) {
56089 data.set("packages." + k, data.get("packages." + k) + 1);
56090 }
56091 else {
56092 data.set("packages." + k, 1);
56093 }
56094 }
56095 }
56096 });
56097 }
56098 }
56099 });
56100 }
56101 return data;
56102 }
56103 ResolveJsonFile(map, f) {
56104 if (f["content"] != null) {
56105 let file = f;
56106 if (this.IsPackageDotJson(file)) {
56107 let jsonObject = RJSON.parse(file.content);
56108 map.Each((k, v) => {
56109 if (jsonObject["devDependencies"] != null) {
56110 if (jsonObject["devDependencies"][k] != null && !v) {
56111 delete jsonObject["devDependencies"][k];
56112 }
56113 }
56114 if (jsonObject["dependencies"] != null) {
56115 if (jsonObject["dependencies"][k] != null && !v) {
56116 delete jsonObject["dependencies"][k];
56117 }
56118 }
56119 });
56120 file.content = JSON.stringify(jsonObject, null, 2);
56121 return file;
56122 }
56123 return file;
56124 }
56125 return f;
56126 }
56127 IsPackageDotJson(file) {
56128 return file.destinationAbsolutePath.FileName() === "package" && path.extname(file.destinationAbsolutePath) === ".json";
56129 }
56130 ResolveContents(flag, files) {
56131 if (flag["packages"] != null) {
56132 let map = this.util.FlattenFlagObject(flag["packages"]);
56133 return files.Map((f) => this.ResolveJsonFile(map, f));
56134 }
56135 return files;
56136 }
56137 ResolveFiles(wFlag, files) {
56138 return files;
56139 }
56140 CountPossibleUnaccountedFlags(files) {
56141 return [];
56142 }
56143}
56144exports.PackageResolver = PackageResolver;
56145
56146
56147/***/ }),
56148
56149/***/ "./src/classLibrary/ParsingStrategy/ParsingStrategy.ts":
56150/*!*************************************************************!*\
56151 !*** ./src/classLibrary/ParsingStrategy/ParsingStrategy.ts ***!
56152 \*************************************************************/
56153/*! no static exports found */
56154/***/ (function(module, exports, __webpack_require__) {
56155
56156"use strict";
56157
56158Object.defineProperty(exports, "__esModule", { value: true });
56159var MapType;
56160(function (MapType) {
56161 MapType[MapType["FLAG"] = 0] = "FLAG";
56162 MapType[MapType["VARIABLE"] = 1] = "VARIABLE";
56163 MapType[MapType["GUID"] = 2] = "GUID";
56164})(MapType || (MapType = {}));
56165exports.MapType = MapType;
56166
56167
56168/***/ }),
56169
56170/***/ "./src/classLibrary/ParsingStrategy/VariableResolver.ts":
56171/*!**************************************************************!*\
56172 !*** ./src/classLibrary/ParsingStrategy/VariableResolver.ts ***!
56173 \**************************************************************/
56174/*! no static exports found */
56175/***/ (function(module, exports, __webpack_require__) {
56176
56177"use strict";
56178
56179Object.defineProperty(exports, "__esModule", { value: true });
56180const ParsingStrategy_1 = __webpack_require__(/*! ./ParsingStrategy */ "./src/classLibrary/ParsingStrategy/ParsingStrategy.ts");
56181class VariableResolver {
56182 constructor(util) {
56183 this.Target = "variable";
56184 this.MapType = ParsingStrategy_1.MapType.VARIABLE;
56185 this.util = util;
56186 }
56187 Count(flag, files, map, ignoreFile) {
56188 let flags = this.util.FlattenObject(flag).Keys();
56189 files.Each((f) => {
56190 flags.Each((s) => {
56191 let key = this.ModifyFlagKey(s);
56192 let num = ignoreFile ? 0 : f.destinationAbsolutePath.Count(key);
56193 if (f["content"] != null) {
56194 let file = f;
56195 num += file.content.Count(key);
56196 }
56197 if (map.has(s)) {
56198 map.set(s, map.get(s) + num);
56199 }
56200 else {
56201 map.set(s, num);
56202 }
56203 });
56204 });
56205 return map;
56206 }
56207 ResolveFiles(flag, files) {
56208 let map = this.util.FlattenObject(flag);
56209 return files.Each((f) => map.MapKey(this.ModifyFlagKey)
56210 .Each((k, v) => f.destinationAbsolutePath = f.destinationAbsolutePath.ReplaceAll(k, v)));
56211 }
56212 ModifyFlagKey(input) {
56213 return 'var~' + input + '~';
56214 }
56215 ResolveFileContent(map, f) {
56216 map = map.MapKey(this.ModifyFlagKey);
56217 if (f["content"] != null) {
56218 let file = f;
56219 map.Each((k, v) => file.content = file.content.ReplaceAll(k, v));
56220 return file;
56221 }
56222 return f;
56223 }
56224 ResolveContents(flag, file) {
56225 let map = this.util.FlattenObject(flag);
56226 return file.Map((f) => this.ResolveFileContent(map, f));
56227 }
56228 CountPossibleUnaccountedFlags(files) {
56229 let variable = /var~[^~]*~/g;
56230 return files
56231 .Where(f => f["content"] != null)
56232 .Map(f => f.content
56233 .LineBreak()
56234 .Map(s => s.Match(variable).Map(s => `${s}:${f.relativePath}`))
56235 .Flatten())
56236 .Flatten().concat(files.Map((f) => f.destinationAbsolutePath.Match(variable).Map((s) => `${s}:${f.relativePath}`)).Flatten());
56237 }
56238}
56239exports.VariableResolver = VariableResolver;
56240
56241
56242/***/ }),
56243
56244/***/ "./src/classLibrary/Permute/FakeInquirer.ts":
56245/*!**************************************************!*\
56246 !*** ./src/classLibrary/Permute/FakeInquirer.ts ***!
56247 \**************************************************/
56248/*! no static exports found */
56249/***/ (function(module, exports, __webpack_require__) {
56250
56251"use strict";
56252
56253Object.defineProperty(exports, "__esModule", { value: true });
56254class FakeInquirer {
56255 constructor(realInquirer) {
56256 this.realInquirer = realInquirer;
56257 }
56258 InquireAsCheckBox(flags, question) {
56259 return this.realInquirer.InquireAsCheckBox(flags, question);
56260 }
56261 InquireAsList(flags, question) {
56262 return this.realInquirer.InquireAsList(flags, question);
56263 }
56264 InquireAsPredicate(flags) {
56265 return this.realInquirer.InquireAsPredicate(flags);
56266 }
56267 InquireDocument(docList) {
56268 return this.realInquirer.InquireDocument(docList);
56269 }
56270 InquireInput(object) {
56271 return this.realInquirer.InquireInput(object);
56272 }
56273 InquireLicense(inquireAuthor, inquireYear) {
56274 return this.realInquirer.InquireLicense(inquireAuthor, inquireYear);
56275 }
56276 InquirePredicate(question, yes, no) {
56277 return Promise.resolve(true);
56278 }
56279}
56280exports.FakeInquirer = FakeInquirer;
56281
56282
56283/***/ }),
56284
56285/***/ "./src/classLibrary/Permute/InquirerSpy.ts":
56286/*!*************************************************!*\
56287 !*** ./src/classLibrary/Permute/InquirerSpy.ts ***!
56288 \*************************************************/
56289/*! no static exports found */
56290/***/ (function(module, exports, __webpack_require__) {
56291
56292"use strict";
56293
56294Object.defineProperty(exports, "__esModule", { value: true });
56295class InquirerSpy {
56296 constructor(util, permute) {
56297 this.u = util;
56298 this.p = permute;
56299 }
56300 InquireAsCheckBox(flags, question) {
56301 let choices = this.u.FlattenObject(flags);
56302 //let key: string = choices.Keys().Random()!;
56303 let v = this.u.MapToObject(choices.MapValue(() => true));
56304 return Promise.resolve(v);
56305 // let choice: 1 | 2 = this.p.GetChoice([1, 2]) as 1 | 2;
56306 // let ret: object = this.MakeChoice(flags, choice);
56307 // //console.log( this.u.FlattenFlagObject(ret).Arr().Where(e => e[1]).Map(e=>e[0]));
56308 //
56309 // return Promise.resolve(ret);
56310 }
56311 InquireAsList(flags, question) {
56312 let choice = this.p.GetChoice(this.u.FlattenObject(flags).Values().Map((e, i) => i));
56313 let kp = this.u.FlattenObject(flags).Arr().Map((e, i) => [e[0], i === choice]);
56314 let ret = this.u.MapToObject(new Map(kp));
56315 //console.log(kp.Where(e => e[1]).Map(e=>e[0]));
56316 return Promise.resolve(ret);
56317 }
56318 InquireAsPredicate(flags) {
56319 let choices = this.u.FlattenObject(flags);
56320 let key = choices.Keys().Random();
56321 let v = this.u.MapToObject(choices.MapValue((v, k) => k === key));
56322 return Promise.resolve(v);
56323 // let choice: 1|2 = this.p.GetChoice([1,2]) as 1|2;
56324 // let ret:object = this.MakeChoice(flags, choice);
56325 // //console.log( this.u.FlattenFlagObject(ret).Arr().Where(e => e[1]).Map(e=>e[0]));
56326 // return Promise.resolve(ret);
56327 }
56328 InquireDocument(docList) {
56329 let usage = {
56330 semVer: true,
56331 contributing: true,
56332 readme: true,
56333 git: true,
56334 license: true
56335 };
56336 let data = {
56337 author: "kirinnee97",
56338 email: "kirinnee97@gmail.com",
56339 gitURL: "https://github.com/kirinnee",
56340 licenseType: "MIT",
56341 years: "2018",
56342 projectName: "CyanPrintPermuateTest",
56343 description: "Permutation Test"
56344 };
56345 return Promise.resolve({
56346 data: data,
56347 usage: usage
56348 });
56349 }
56350 InquireInput(object) {
56351 return Promise.resolve(this.SetDefault(object));
56352 }
56353 InquireLicense(inquireAuthor, inquireYear) {
56354 return Promise.resolve({
56355 type: "MIT",
56356 author: "kirinnee97@gmail.com",
56357 year: "2018"
56358 });
56359 }
56360 InquirePredicate(question, yes = "Yes", no = "No") {
56361 let choices = this.p.GetChoice([0, 1]) === 0;
56362 //console.log( choices ? yes : no);
56363 return Promise.resolve(choices);
56364 }
56365 MakeChoice(obj, type) {
56366 let choices = this.u.FlattenObject(obj);
56367 switch (type) {
56368 case 1 /* ALL */:
56369 return this.u.MapToObject(choices.MapValue(() => true));
56370 case 2 /* NONE */:
56371 return this.u.MapToObject(choices.MapValue(() => false));
56372 case 3 /* RANDOM */:
56373 let key = choices.Keys().Random();
56374 return this.u.MapToObject(choices.MapValue((v, k) => k === key));
56375 }
56376 }
56377 SetDefault(input) {
56378 let ret = {};
56379 for (let k in input) {
56380 if (input.hasOwnProperty(k)) {
56381 let val = input[k];
56382 if (typeof val === "string") {
56383 ret[k] = val;
56384 }
56385 else if (typeof val === "object") {
56386 if (this.u.c.IsArray(val) && val.length === 2) {
56387 ret[k] = val[0];
56388 }
56389 else {
56390 ret[k] = this.SetDefault(val);
56391 }
56392 }
56393 }
56394 }
56395 return ret;
56396 }
56397}
56398exports.InquirerSpy = InquirerSpy;
56399
56400
56401/***/ }),
56402
56403/***/ "./src/classLibrary/Permute/PermuteManager.ts":
56404/*!****************************************************!*\
56405 !*** ./src/classLibrary/Permute/PermuteManager.ts ***!
56406 \****************************************************/
56407/*! no static exports found */
56408/***/ (function(module, exports, __webpack_require__) {
56409
56410"use strict";
56411
56412Object.defineProperty(exports, "__esModule", { value: true });
56413class PermuteManager {
56414 constructor(core) {
56415 this.currentIteration = [];
56416 this.alternatives = [];
56417 this.currentQueue = [];
56418 core.AssertExtend();
56419 }
56420 Completed() {
56421 return this.currentQueue.length === 0
56422 && this.alternatives.length === 0
56423 && this.currentIteration.length === 0;
56424 }
56425 End() {
56426 this.currentIteration = [];
56427 this.currentQueue = [];
56428 }
56429 GetChoice(allChoices) {
56430 if (this.currentQueue.length !== 0) {
56431 let choice = this.currentQueue.shift();
56432 this.currentIteration.push(choice);
56433 return choice;
56434 }
56435 else {
56436 let choice = allChoices[0];
56437 allChoices.Skip(1)
56438 .Map(n => this.currentIteration.concat(n))
56439 .Each(alternatives => this.alternatives.push(alternatives));
56440 this.currentIteration.push(choice);
56441 return choice;
56442 }
56443 }
56444 Start(initial = false) {
56445 if (!initial) {
56446 this.currentQueue = this.alternatives.pop();
56447 }
56448 }
56449}
56450exports.PermuteManager = PermuteManager;
56451
56452
56453/***/ }),
56454
56455/***/ "./src/classLibrary/RootFileFactory.ts":
56456/*!*********************************************!*\
56457 !*** ./src/classLibrary/RootFileFactory.ts ***!
56458 \*********************************************/
56459/*! no static exports found */
56460/***/ (function(module, exports, __webpack_require__) {
56461
56462"use strict";
56463
56464var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
56465 return new (P || (P = Promise))(function (resolve, reject) {
56466 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
56467 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
56468 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
56469 step((generator = generator.apply(thisArg, _arguments || [])).next());
56470 });
56471};
56472var __importStar = (this && this.__importStar) || function (mod) {
56473 if (mod && mod.__esModule) return mod;
56474 var result = {};
56475 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
56476 result["default"] = mod;
56477 return result;
56478};
56479var __importDefault = (this && this.__importDefault) || function (mod) {
56480 return (mod && mod.__esModule) ? mod : { "default": mod };
56481};
56482Object.defineProperty(exports, "__esModule", { value: true });
56483const path = __importStar(__webpack_require__(/*! path */ "path"));
56484const graceful_fs_1 = __importDefault(__webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js"));
56485const CRC32_1 = __webpack_require__(/*! ./CRC32 */ "./src/classLibrary/CRC32.ts");
56486function clone(files) {
56487 return {
56488 relativePath: files.relativePath,
56489 destinationAbsolutePath: files.destinationAbsolutePath,
56490 sourceAbsolutePath: files.sourceAbsolutePath,
56491 content: files.content
56492 };
56493}
56494class SimpleFileFactory {
56495 constructor(core, FromRoot, ToRoot) {
56496 core.AssertExtend();
56497 this.FromRoot = FromRoot;
56498 this.ToRoot = ToRoot;
56499 }
56500 CreateFileSystemInstance(relativePath, from = "./", to = './') {
56501 let absFrom = path.resolve(this.FromRoot, from, relativePath);
56502 let absTo = path.resolve(this.ToRoot, to, relativePath);
56503 if (graceful_fs_1.default.lstatSync(absFrom).isFile()) {
56504 return {
56505 relativePath: relativePath,
56506 sourceAbsolutePath: absFrom,
56507 destinationAbsolutePath: absTo,
56508 content: ""
56509 };
56510 }
56511 else {
56512 return {
56513 relativePath: relativePath,
56514 sourceAbsolutePath: absFrom,
56515 destinationAbsolutePath: absTo
56516 };
56517 }
56518 }
56519 ReadFile(file, callback) {
56520 return __awaiter(this, void 0, void 0, function* () {
56521 if (file["content"] != null) {
56522 let f = file;
56523 let hash = CRC32_1.CRC32(f);
56524 if (SimpleFileFactory.cache.has(hash)) {
56525 return clone(SimpleFileFactory.cache.get(hash));
56526 }
56527 let ff = this;
56528 return new Promise(function (resolve) {
56529 graceful_fs_1.default.readFile(f.sourceAbsolutePath, 'utf8', function (err, content) {
56530 if (err)
56531 console.log(err);
56532 ff.TryCallback(callback);
56533 f.content = content;
56534 let c = clone(f);
56535 SimpleFileFactory.cache.set(hash, c);
56536 resolve(f);
56537 });
56538 });
56539 }
56540 else {
56541 this.TryCallback(callback);
56542 return file;
56543 }
56544 });
56545 }
56546 TryCallback(callback) {
56547 if (typeof callback === "function") {
56548 callback();
56549 }
56550 }
56551 CreateFileOrDir(relativePath, from = './', to = './') {
56552 let absFrom = path.resolve(this.FromRoot, from, relativePath);
56553 let absTo = path.resolve(this.ToRoot, to, relativePath);
56554 if (graceful_fs_1.default.lstatSync(absFrom).isFile()) {
56555 let content = graceful_fs_1.default.readFileSync(absFrom, 'utf8')
56556 .ReplaceAll("\r\n", "\n")
56557 .ReplaceAll("\r", "\n");
56558 return {
56559 relativePath: relativePath,
56560 sourceAbsolutePath: absFrom,
56561 destinationAbsolutePath: absTo,
56562 content: content
56563 };
56564 }
56565 else {
56566 return {
56567 relativePath: relativePath,
56568 sourceAbsolutePath: absFrom,
56569 destinationAbsolutePath: absTo
56570 };
56571 }
56572 }
56573}
56574SimpleFileFactory.cache = new Map();
56575exports.SimpleFileFactory = SimpleFileFactory;
56576class RootFileFactory {
56577 constructor(core, root, from, to) {
56578 if (!core.IsExtended)
56579 throw "Core needs to be extended";
56580 this.root = root;
56581 this.from = from;
56582 this.to = to;
56583 }
56584 get FromRoot() {
56585 return path.resolve(this.root, this.from);
56586 }
56587 get ToRoot() {
56588 return path.resolve(this.root, this.to);
56589 }
56590 CreateFileSystemInstance(relativePath, from = "./", to = './') {
56591 let absFrom = path.resolve(this.FromRoot, from, relativePath);
56592 let absTo = path.resolve(this.ToRoot, to, relativePath);
56593 if (graceful_fs_1.default.lstatSync(absFrom).isFile()) {
56594 return {
56595 relativePath: relativePath,
56596 sourceAbsolutePath: absFrom,
56597 destinationAbsolutePath: absTo,
56598 content: ""
56599 };
56600 }
56601 else {
56602 return {
56603 relativePath: relativePath,
56604 sourceAbsolutePath: absFrom,
56605 destinationAbsolutePath: absTo
56606 };
56607 }
56608 }
56609 ReadFile(file, callback) {
56610 return __awaiter(this, void 0, void 0, function* () {
56611 if (file["content"] != null) {
56612 let f = file;
56613 let hash = CRC32_1.CRC32(f);
56614 if (RootFileFactory.cache.has(hash)) {
56615 return clone(RootFileFactory.cache.get(hash));
56616 }
56617 let ff = this;
56618 return new Promise(function (resolve) {
56619 graceful_fs_1.default.readFile(f.sourceAbsolutePath, 'utf8', function (err, content) {
56620 if (err)
56621 console.log(err);
56622 ff.TryCallback(callback);
56623 f.content = content;
56624 let cache = clone(f);
56625 RootFileFactory.cache.set(hash, cache);
56626 resolve(f);
56627 });
56628 });
56629 }
56630 else {
56631 this.TryCallback(callback);
56632 return file;
56633 }
56634 });
56635 }
56636 TryCallback(callback) {
56637 if (typeof callback === "function") {
56638 callback();
56639 }
56640 }
56641}
56642RootFileFactory.cache = new Map();
56643exports.RootFileFactory = RootFileFactory;
56644
56645
56646/***/ }),
56647
56648/***/ "./src/classLibrary/SpecialParser/ContributingParser.ts":
56649/*!**************************************************************!*\
56650 !*** ./src/classLibrary/SpecialParser/ContributingParser.ts ***!
56651 \**************************************************************/
56652/*! no static exports found */
56653/***/ (function(module, exports, __webpack_require__) {
56654
56655"use strict";
56656
56657Object.defineProperty(exports, "__esModule", { value: true });
56658class ContributingResolver {
56659 constructor(core) {
56660 this.contributing = `# Contributing
56661
56662When contributing to this repository, please first discuss the change you wish to make via issue,
56663email, or any other method with the owners of this repository before making a change.
56664
56665Please note we have a code of conduct, please follow it in all your interactions with the project.
56666
56667## Pull Request Process
56668
566691. Ensure any install or build dependencies are removed before the end of the layer when doing a
56670 build.
566712. Update the README.md with details of changes to the interface, this includes new environment
56672 variables, exposed ports, useful file locations and container parameters.
566733. Increase the version numbers in any examples files and the README.md to the new version that this
56674 Pull Request would represent.
56675
56676 The versioning scheme we use is [SemVer](http://semver.org/). flag~cyan.docs.semver~
56677
566784. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
56679 do not have permission to do that, you may request the second reviewer to merge it for you.
56680
56681## Code of Conduct
56682
56683### Our Pledge
56684
56685In the interest of fostering an open and welcoming environment, we as
56686contributors and maintainers pledge to making participation in our project and
56687our community a harassment-free experience for everyone, regardless of age, body
56688size, disability, ethnicity, gender identity and expression, level of experience,
56689nationality, personal appearance, race, religion, or sexual identity and
56690orientation.
56691
56692### Our Standards
56693
56694Examples of behavior that contributes to creating a positive environment
56695include:
56696
56697* Using welcoming and inclusive language
56698* Being respectful of differing viewpoints and experiences
56699* Gracefully accepting constructive criticism
56700* Focusing on what is best for the community
56701* Showing empathy towards other community members
56702
56703Examples of unacceptable behavior by participants include:
56704
56705* The use of sexualized language or imagery and unwelcome sexual attention or
56706advances
56707* Trolling, insulting/derogatory comments, and personal or political attacks
56708* Public or private harassment
56709* Publishing others' private information, such as a physical or electronic
56710 address, without explicit permission
56711* Other conduct which could reasonably be considered inappropriate in a
56712 professional setting
56713
56714### Our Responsibilities
56715
56716Project maintainers are responsible for clarifying the standards of acceptable
56717behavior and are expected to take appropriate and fair corrective action in
56718response to any instances of unacceptable behavior.
56719
56720Project maintainers have the right and responsibility to remove, edit, or
56721reject comments, commits, code, wiki edits, issues, and other contributions
56722that are not aligned to this Code of Conduct, or to ban temporarily or
56723permanently any contributor for other behaviors that they deem inappropriate,
56724threatening, offensive, or harmful.
56725
56726### Scope
56727
56728This Code of Conduct applies both within project spaces and in public spaces
56729when an individual is representing the project or its community. Examples of
56730representing a project or community include using an official project e-mail
56731address, posting via an official social media account, or acting as an appointed
56732representative at an online or offline event. Representation of a project may be
56733further defined and clarified by project maintainers.
56734
56735### Enforcement
56736
56737Instances of abusive, harassing, or otherwise unacceptable behavior may be
56738reported by contacting the project team at [{{name}}]({{email}}). All
56739complaints will be reviewed and investigated and will result in a response that
56740is deemed necessary and appropriate to the circumstances. The project team is
56741obligated to maintain confidentiality with regard to the reporter of an incident.
56742Further details of specific enforcement policies may be posted separately.
56743
56744Project maintainers who do not follow or enforce the Code of Conduct in good
56745faith may face temporary or permanent repercussions as determined by other
56746members of the project's leadership.
56747
56748### Attribution
56749
56750This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
56751available at [http://contributor-covenant.org/version/1/4][version]
56752
56753[homepage]: http://contributor-covenant.org
56754[version]: http://contributor-covenant.org/version/1/4/`;
56755 core.AssertExtend();
56756 }
56757 ResolveContributing(contributing, to) {
56758 let contribute = this.contributing.ReplaceAll("{{name}}", contributing.author).ReplaceAll("{{email}}", contributing.email);
56759 let file = {
56760 content: contribute,
56761 destinationAbsolutePath: to,
56762 sourceAbsolutePath: "",
56763 relativePath: ""
56764 };
56765 return file;
56766 }
56767}
56768exports.ContributingResolver = ContributingResolver;
56769
56770
56771/***/ }),
56772
56773/***/ "./src/classLibrary/SpecialParser/CyanParser.ts":
56774/*!******************************************************!*\
56775 !*** ./src/classLibrary/SpecialParser/CyanParser.ts ***!
56776 \******************************************************/
56777/*! no static exports found */
56778/***/ (function(module, exports, __webpack_require__) {
56779
56780"use strict";
56781
56782Object.defineProperty(exports, "__esModule", { value: true });
56783class CyanParser {
56784 constructor() { }
56785 Save(cyan) {
56786 let def = {
56787 docs: {
56788 data: {},
56789 usage: { license: false, git: false, readme: false, contributing: false, semVer: false }
56790 },
56791 npm: null,
56792 globs: [],
56793 variable: {},
56794 flags: {},
56795 guid: []
56796 };
56797 if (cyan.docs != null)
56798 def.docs = cyan.docs;
56799 if (cyan.npm != null) {
56800 if (typeof cyan.npm === "string") {
56801 def.npm = cyan.npm;
56802 }
56803 else {
56804 def.npm = "./";
56805 }
56806 }
56807 if (cyan.globs != null) {
56808 if (Array.isArray(cyan.globs)) {
56809 def.globs = cyan.globs;
56810 }
56811 else {
56812 def.globs = [cyan.globs];
56813 }
56814 }
56815 if (cyan.variable != null)
56816 def.variable = cyan.variable;
56817 if (cyan.flags != null)
56818 def.flags = cyan.flags;
56819 if (cyan.comments != null) {
56820 if (Array.isArray(cyan.comments)) {
56821 def.comments = cyan.comments;
56822 }
56823 else {
56824 def.comments = [cyan.comments];
56825 }
56826 }
56827 if (cyan.guid != null) {
56828 def.guid = cyan.guid;
56829 }
56830 return def;
56831 }
56832}
56833exports.CyanParser = CyanParser;
56834
56835
56836/***/ }),
56837
56838/***/ "./src/classLibrary/SpecialParser/DocumentParser.ts":
56839/*!**********************************************************!*\
56840 !*** ./src/classLibrary/SpecialParser/DocumentParser.ts ***!
56841 \**********************************************************/
56842/*! no static exports found */
56843/***/ (function(module, exports, __webpack_require__) {
56844
56845"use strict";
56846
56847Object.defineProperty(exports, "__esModule", { value: true });
56848class DocumentParser {
56849 constructor(doc) {
56850 this.doc = doc;
56851 }
56852 GetLicense() {
56853 if (this.doc.usage.license) {
56854 return {
56855 author: this.doc.data.author,
56856 type: this.doc.data.licenseType,
56857 year: this.doc.data.years,
56858 };
56859 }
56860 return undefined;
56861 }
56862 GetGit() {
56863 if (this.doc.usage.git) {
56864 return {
56865 username: this.doc.data.author,
56866 email: this.doc.data.email,
56867 remote: this.doc.data.gitURL
56868 };
56869 }
56870 return undefined;
56871 }
56872 GetContributing() {
56873 if (this.doc.usage.contributing) {
56874 return {
56875 author: this.doc.data.author,
56876 email: this.doc.data.email,
56877 };
56878 }
56879 return undefined;
56880 }
56881 GetVariables() {
56882 let cyanDocs = {
56883 name: this.doc.data.projectName,
56884 author: this.doc.data.author,
56885 email: this.doc.data.email,
56886 description: this.doc.data.description,
56887 license: this.doc.data.licenseType
56888 };
56889 for (let k in cyanDocs) {
56890 if (cyanDocs.hasOwnProperty(k)) {
56891 if (cyanDocs[k] == null) {
56892 delete cyanDocs[k];
56893 }
56894 }
56895 }
56896 return { cyan: { docs: cyanDocs } };
56897 }
56898 GetAllFlags() {
56899 return {
56900 cyan: {
56901 docs: {
56902 readme: this.doc.usage.readme,
56903 semver: this.doc.usage.semVer,
56904 contributing: this.doc.usage.contributing,
56905 license: this.doc.usage.license,
56906 git: this.doc.usage.git
56907 }
56908 }
56909 };
56910 }
56911}
56912exports.DocumentParser = DocumentParser;
56913
56914
56915/***/ }),
56916
56917/***/ "./src/classLibrary/SpecialParser/LicenseResolver.ts":
56918/*!***********************************************************!*\
56919 !*** ./src/classLibrary/SpecialParser/LicenseResolver.ts ***!
56920 \***********************************************************/
56921/*! no static exports found */
56922/***/ (function(module, exports, __webpack_require__) {
56923
56924"use strict";
56925
56926Object.defineProperty(exports, "__esModule", { value: true });
56927const Licenses_1 = __webpack_require__(/*! ../Licenses */ "./src/classLibrary/Licenses.ts");
56928class LicenseResolver {
56929 constructor(varResolver) {
56930 this.varResolver = varResolver;
56931 }
56932 GetLicense(lic) {
56933 switch (lic) {
56934 case "GPL-3.0":
56935 return Licenses_1.Licenses.GPL3;
56936 case "ISC":
56937 return Licenses_1.Licenses.ISC;
56938 case "MIT":
56939 return Licenses_1.Licenses.MIT;
56940 case "Apache-2.0":
56941 return Licenses_1.Licenses.Apache2;
56942 default:
56943 return "";
56944 }
56945 }
56946 ResolveLicense(license, targetPath) {
56947 let file = {
56948 sourceAbsolutePath: "",
56949 destinationAbsolutePath: targetPath,
56950 relativePath: "",
56951 content: this.GetLicense(license.type)
56952 };
56953 let map = new Map([
56954 ["year", license.year],
56955 ["author", license.author]
56956 ]);
56957 file = this.varResolver.ResolveFileContent(map, file);
56958 return file;
56959 }
56960}
56961exports.LicenseResolver = LicenseResolver;
56962
56963
56964/***/ }),
56965
56966/***/ "./src/classLibrary/TargetUtil/AutoInquire.ts":
56967/*!****************************************************!*\
56968 !*** ./src/classLibrary/TargetUtil/AutoInquire.ts ***!
56969 \****************************************************/
56970/*! no static exports found */
56971/***/ (function(module, exports, __webpack_require__) {
56972
56973"use strict";
56974
56975var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
56976 return new (P || (P = Promise))(function (resolve, reject) {
56977 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
56978 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
56979 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
56980 step((generator = generator.apply(thisArg, _arguments || [])).next());
56981 });
56982};
56983var __importStar = (this && this.__importStar) || function (mod) {
56984 if (mod && mod.__esModule) return mod;
56985 var result = {};
56986 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
56987 result["default"] = mod;
56988 return result;
56989};
56990Object.defineProperty(exports, "__esModule", { value: true });
56991const inquirer = __importStar(__webpack_require__(/*! inquirer */ "./node_modules/inquirer/lib/inquirer.js"));
56992class AutoInquire {
56993 constructor(util, autoMapper) {
56994 this.u = util;
56995 this.c = util.c;
56996 this.autoMapper = autoMapper;
56997 }
56998 InquirePredicate(question, yes = "Yes", no = "No") {
56999 return __awaiter(this, void 0, void 0, function* () {
57000 let answer = yield inquirer.prompt([{
57001 type: "list",
57002 choices: [yes, no],
57003 name: "predicate",
57004 message: question
57005 }]);
57006 return answer["predicate"] === yes;
57007 });
57008 }
57009 InquireInput(object) {
57010 return __awaiter(this, void 0, void 0, function* () {
57011 let map = this.u.FlattenMappable(object);
57012 let questions = map
57013 .Map((key, value) => this.MakeInputQuestion(key, value));
57014 return yield inquirer.prompt(questions);
57015 });
57016 }
57017 InquireAsCheckBox(flags, question) {
57018 return __awaiter(this, void 0, void 0, function* () {
57019 let map = this.u.FlattenObject(flags);
57020 let questions = {
57021 type: "checkbox",
57022 name: "selected",
57023 message: question,
57024 choices: map.Values()
57025 };
57026 let answers = yield inquirer.prompt([questions]);
57027 let flagMap = map.MapValue((v) => answers["selected"].Has(v));
57028 let ret = {};
57029 flagMap.Each((k, v) => {
57030 let dot = k.split('.');
57031 this.SetValue(ret, dot, v);
57032 });
57033 return ret;
57034 });
57035 }
57036 InquireAsList(flags, question) {
57037 return __awaiter(this, void 0, void 0, function* () {
57038 let map = this.u.FlattenObject(flags);
57039 let questions = {
57040 type: "list",
57041 name: "selected",
57042 message: question,
57043 choices: map.Values()
57044 };
57045 let answers = yield inquirer.prompt([questions]);
57046 let flapMap = map.MapValue((v) => answers["selected"] === v);
57047 let ret = {};
57048 flapMap.Each((k, v) => {
57049 let dot = k.split('.');
57050 this.SetValue(ret, dot, v);
57051 });
57052 return ret;
57053 });
57054 }
57055 InquireAsPredicate(flags) {
57056 return __awaiter(this, void 0, void 0, function* () {
57057 let map = this.u.FlattenObject(flags);
57058 let questions = map.Map((k, v) => this.MakePredicateQuestion(k, v));
57059 let answers = yield inquirer.prompt(questions);
57060 return this.ConvertToBoolean(answers);
57061 });
57062 }
57063 InquireDocument(q) {
57064 return __awaiter(this, void 0, void 0, function* () {
57065 let questions = {};
57066 let retUsage = {
57067 license: false,
57068 contributing: false,
57069 semVer: false,
57070 git: false,
57071 readme: false
57072 };
57073 let fillQuestion = function (val, key, question) {
57074 if (typeof val === "boolean" && val) {
57075 retUsage[key] = true;
57076 }
57077 else if (typeof val === "boolean" && !val) {
57078 questions[key] = question;
57079 }
57080 };
57081 fillQuestion(q.license, "license", "Open Source License");
57082 fillQuestion(q.contributing, "contributing", "CONTRIBUTING.MD");
57083 fillQuestion(q.semVer, "semVer", "Semantic Versioning");
57084 fillQuestion(q.git, "git", "Initialize Git Repository");
57085 fillQuestion(q.readme, "readme", "README.MD");
57086 let ask = false;
57087 for (let k in questions) {
57088 if (questions.hasOwnProperty(k)) {
57089 let q = questions[k];
57090 if (this.c.IsString(q)) {
57091 ask = true;
57092 break;
57093 }
57094 }
57095 }
57096 if (ask) {
57097 let docsToUse = yield this.InquireAsCheckBox(questions, "Which documentation do you want to include?");
57098 retUsage = this.autoMapper.Overwrite(docsToUse, retUsage);
57099 }
57100 let varQuestions = {};
57101 if (retUsage.readme || retUsage.contributing || retUsage.license || retUsage.git)
57102 varQuestions["author"] = ["kirinnee", "Please enter your name"];
57103 if (retUsage.readme || retUsage.contributing || retUsage.git)
57104 varQuestions["email"] = ["kirinnee@gmail.com", "Please enter your email"];
57105 if (retUsage.git)
57106 varQuestions["gitURL"] = ["https://github.com/kirinnee/", "Please enter your remote repository URL"];
57107 if (retUsage.readme) {
57108 varQuestions["projectName"] = ["A CyanPrint Project", "Please enter your project name"];
57109 varQuestions["description"] = ["A Project Made with CyanPrint", "Please enter your project description"];
57110 }
57111 let variables = yield this.InquireInput(varQuestions);
57112 if (retUsage.license) {
57113 let lic = yield this.InquireLicense(false, true);
57114 variables.licenseType = lic.type;
57115 variables.years = lic.year;
57116 }
57117 return {
57118 data: variables,
57119 usage: retUsage
57120 };
57121 });
57122 }
57123 InquireLicense(inquireAuthor = true, inquireYear = true) {
57124 return __awaiter(this, void 0, void 0, function* () {
57125 let ap2 = "Apache License 2.0";
57126 let gpl3 = "GNU General Public License v3.0";
57127 let isc = "ISC License";
57128 let mit = "MIT License";
57129 //Map licenses to questions
57130 let map = new Map([
57131 [ap2, "Apache-2.0"],
57132 [gpl3, "GPL-3.0"],
57133 [isc, "ISC"],
57134 [mit, "MIT"]
57135 ]);
57136 //Ask for license
57137 let answers = yield inquirer.prompt([
57138 {
57139 type: "list",
57140 message: "Which Open Source License do you want to use?",
57141 name: "license",
57142 choices: [ap2, gpl3, isc, mit]
57143 }
57144 ]);
57145 let type = map.get(answers["license"]);
57146 let ret = {
57147 type: type,
57148 author: "",
57149 year: ""
57150 };
57151 //Check if user wants to prompt for author and year
57152 let iAuthor = {
57153 type: "input",
57154 message: "Who is this licensed to?",
57155 name: "author",
57156 };
57157 let iYear = {
57158 type: "input",
57159 message: "Which year did the copyright start?",
57160 name: "year",
57161 };
57162 //List of questions
57163 let q = [];
57164 if (inquireAuthor)
57165 q.push(iAuthor);
57166 if (iYear)
57167 q.push(iYear);
57168 if (q.length > 0) {
57169 let data = yield inquirer.prompt(q);
57170 if (data["year"] != null)
57171 ret.year = data["year"];
57172 if (data["author"] != null)
57173 ret.year = data["author"];
57174 }
57175 return ret;
57176 });
57177 }
57178 SetValue(obj, dot, value) {
57179 if (dot.length === 1) {
57180 obj[dot[0]] = value;
57181 }
57182 else {
57183 if (typeof obj[dot[0]] === "undefined") {
57184 obj[dot[0]] = {};
57185 }
57186 this.SetValue(obj[dot[0]], dot.Skip(1), value);
57187 }
57188 }
57189 ConvertToBoolean(answers) {
57190 let ret = {};
57191 for (let k in answers) {
57192 if (answers.hasOwnProperty(k)) {
57193 let ans = answers[k];
57194 if (typeof ans === "string") {
57195 ret[k] = ans === "Yes";
57196 }
57197 else if (typeof ans === "object") {
57198 ret[k] = this.ConvertToBoolean(ans);
57199 }
57200 else {
57201 throw new Error("Unknown type, has to be either string or object");
57202 }
57203 }
57204 }
57205 return ret;
57206 }
57207 MakePredicateQuestion(key, value) {
57208 return {
57209 type: "list",
57210 name: key,
57211 message: value,
57212 choices: ["Yes", "No"]
57213 };
57214 }
57215 MakeInputQuestion(key, value) {
57216 if (typeof value === "string") {
57217 return {
57218 type: "input",
57219 message: key.ReplaceAll(".", " ").CapitalizeWords(),
57220 name: key,
57221 default: value
57222 };
57223 }
57224 else {
57225 let question = value[1];
57226 let def = value[0];
57227 return {
57228 type: "input",
57229 message: question,
57230 name: key,
57231 default: def
57232 };
57233 }
57234 }
57235}
57236exports.AutoInquire = AutoInquire;
57237
57238
57239/***/ }),
57240
57241/***/ "./src/classLibrary/TargetUtil/AutoMapper.ts":
57242/*!***************************************************!*\
57243 !*** ./src/classLibrary/TargetUtil/AutoMapper.ts ***!
57244 \***************************************************/
57245/*! no static exports found */
57246/***/ (function(module, exports, __webpack_require__) {
57247
57248"use strict";
57249
57250Object.defineProperty(exports, "__esModule", { value: true });
57251class AutoMapper {
57252 constructor(util) {
57253 this.util = util;
57254 }
57255 /**
57256 * Join multiple object into a single object
57257 * @param b - any amount of objects
57258 * @constructor
57259 */
57260 JoinObjects(...b) {
57261 let ret = {};
57262 b.Each((o) => {
57263 for (let k in o) {
57264 if (o.hasOwnProperty(k)) {
57265 if (typeof ret[k] === "object") {
57266 ret[k] = this.JoinObjects(o[k], ret[k]);
57267 }
57268 else {
57269 ret[k] = o[k];
57270 }
57271 }
57272 }
57273 });
57274 return ret;
57275 }
57276 ReverseLoopUp(map, flags) {
57277 let flagsMap = this.util.FlattenFlagObject(flags);
57278 let mapMap = this.util.FlattenObject(map);
57279 let keyArr = flagsMap.Where((k, v) => v).Keys();
57280 let key = keyArr[0];
57281 return mapMap.get(key);
57282 }
57283 Overwrite(from, to) {
57284 for (let k in from) {
57285 if (from.hasOwnProperty(k)) {
57286 if (typeof to[k] === "object") {
57287 to[k] = this.Overwrite(from[k], to[k]);
57288 }
57289 else {
57290 to[k] = from[k];
57291 }
57292 }
57293 }
57294 return to;
57295 }
57296}
57297exports.AutoMapper = AutoMapper;
57298
57299
57300/***/ }),
57301
57302/***/ "./src/classLibrary/TargetUtil/Execute.ts":
57303/*!************************************************!*\
57304 !*** ./src/classLibrary/TargetUtil/Execute.ts ***!
57305 \************************************************/
57306/*! no static exports found */
57307/***/ (function(module, exports, __webpack_require__) {
57308
57309"use strict";
57310
57311var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
57312 return new (P || (P = Promise))(function (resolve, reject) {
57313 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
57314 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
57315 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
57316 step((generator = generator.apply(thisArg, _arguments || [])).next());
57317 });
57318};
57319var __importStar = (this && this.__importStar) || function (mod) {
57320 if (mod && mod.__esModule) return mod;
57321 var result = {};
57322 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
57323 result["default"] = mod;
57324 return result;
57325};
57326var __importDefault = (this && this.__importDefault) || function (mod) {
57327 return (mod && mod.__esModule) ? mod : { "default": mod };
57328};
57329Object.defineProperty(exports, "__esModule", { value: true });
57330const path = __importStar(__webpack_require__(/*! path */ "path"));
57331const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
57332const inquirer_1 = __importDefault(__webpack_require__(/*! inquirer */ "./node_modules/inquirer/lib/inquirer.js"));
57333const child_process_1 = __webpack_require__(/*! child_process */ "child_process");
57334class Execute {
57335 constructor(core, folderName, root, abs, autoInquirer, autoMapper) {
57336 core.AssertExtend();
57337 this.core = core;
57338 this.currentPath = path.dirname(abs);
57339 this.auto = autoInquirer;
57340 this.root = root;
57341 this.mapper = autoMapper;
57342 this.folderName = folderName;
57343 }
57344 call(p) {
57345 return __awaiter(this, void 0, void 0, function* () {
57346 let full = path.resolve(this.currentPath, p);
57347 let rel = path.relative(this.root, full).ReplaceAll("\\\\", "/");
57348 let execute = new Execute(this.core, this.folderName, this.root, full, this.auto, this.mapper);
57349 let Template = eval(`require("${rel}")`);
57350 return yield Template(this.folderName.ReplaceAll("\\\\", "/").split("/").Last(), chalk_1.default, inquirer_1.default, this.auto, this.mapper, execute);
57351 });
57352 }
57353 run(command) {
57354 return __awaiter(this, void 0, void 0, function* () {
57355 if (!Array.isArray(command))
57356 command = command.split(' ');
57357 if (!Array.isArray(command))
57358 throw new Error("command has to be array of string of array");
57359 let c = command.shift();
57360 let v = command;
57361 return new Promise((resolve, reject) => child_process_1.spawn(c, v, { stdio: "inherit", shell: true })
57362 .on("exit", (code) => {
57363 if (code === 0) {
57364 resolve();
57365 }
57366 else {
57367 reject(new Error("External command went wrong"));
57368 }
57369 }));
57370 });
57371 }
57372}
57373exports.Execute = Execute;
57374
57375
57376/***/ }),
57377
57378/***/ "./src/classLibrary/Template.ts":
57379/*!**************************************!*\
57380 !*** ./src/classLibrary/Template.ts ***!
57381 \**************************************/
57382/*! no static exports found */
57383/***/ (function(module, exports, __webpack_require__) {
57384
57385"use strict";
57386
57387var __importStar = (this && this.__importStar) || function (mod) {
57388 if (mod && mod.__esModule) return mod;
57389 var result = {};
57390 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
57391 result["default"] = mod;
57392 return result;
57393};
57394var __importDefault = (this && this.__importDefault) || function (mod) {
57395 return (mod && mod.__esModule) ? mod : { "default": mod };
57396};
57397Object.defineProperty(exports, "__esModule", { value: true });
57398const path = __importStar(__webpack_require__(/*! path */ "path"));
57399const graceful_fs_1 = __importDefault(__webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js"));
57400class Template {
57401 get Link() {
57402 return this.link;
57403 }
57404 get Template() {
57405 return `../templates/${this.group}/${this.key}`;
57406 }
57407 get Target() {
57408 return path.resolve(__dirname, this.Template);
57409 }
57410 Exist() {
57411 const exist = this.g.Exist(this.group);
57412 if (!exist)
57413 return false;
57414 const templates = this.g.ListTemplate(this.group).Map(([k, _]) => k);
57415 const info = path.resolve(this.Target, "cyan.json");
57416 const jsFile = path.resolve(this.Target, "cyan.config.js");
57417 return graceful_fs_1.default.existsSync(this.Target) && graceful_fs_1.default.existsSync(info) && graceful_fs_1.default.existsSync(jsFile) && templates.Has(this.key);
57418 }
57419 CreateGroupEntry() {
57420 this.g.AddTemplate(this.group, this.key, this.name);
57421 }
57422 DeleteGroupEntry() {
57423 this.g.RemoveTemplate(this.group, this.key);
57424 }
57425 get TemplateData() {
57426 const data = graceful_fs_1.default.readFileSync(path.resolve(this.Target, "cyan.json"), 'utf8');
57427 return JSON.parse(data);
57428 }
57429 constructor(group, key, name, link, g) {
57430 this.group = group;
57431 this.key = key;
57432 this.name = name;
57433 this.link = link;
57434 this.g = g;
57435 }
57436}
57437exports.Template = Template;
57438
57439
57440/***/ }),
57441
57442/***/ "./src/classLibrary/Utility.ts":
57443/*!*************************************!*\
57444 !*** ./src/classLibrary/Utility.ts ***!
57445 \*************************************/
57446/*! no static exports found */
57447/***/ (function(module, exports, __webpack_require__) {
57448
57449"use strict";
57450
57451var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
57452 return new (P || (P = Promise))(function (resolve, reject) {
57453 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
57454 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
57455 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
57456 step((generator = generator.apply(thisArg, _arguments || [])).next());
57457 });
57458};
57459var __importDefault = (this && this.__importDefault) || function (mod) {
57460 return (mod && mod.__esModule) ? mod : { "default": mod };
57461};
57462Object.defineProperty(exports, "__esModule", { value: true });
57463const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
57464const graceful_fs_1 = __importDefault(__webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js"));
57465const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
57466class Utility {
57467 constructor(core) {
57468 if (!core.IsExtended)
57469 throw "Core needs to be extended";
57470 this.c = core;
57471 String.prototype.isFile = function () {
57472 if (!core.IsString(this))
57473 return false;
57474 let s = this.ReplaceAll("\\\\", "/");
57475 if (s.Starts("."))
57476 return true;
57477 return s.split(".").length > 1;
57478 };
57479 String.prototype.FileName = function () {
57480 return this.ReplaceAll("\\\\", "/").split('.').Omit(1).join('.').split('/').Last();
57481 };
57482 }
57483 static Throw(type, error, target) {
57484 console.log(chalk_1.default.red(type + " Exception: \n\t" + error));
57485 if (target)
57486 console.log(target);
57487 process.exit(1);
57488 }
57489 FlattenMappable(obj, prepend = '') {
57490 let ret = new Map();
57491 for (let k in obj) {
57492 if (obj.hasOwnProperty(k)) {
57493 let data = obj[k];
57494 if (this.IsStringPair(data)) {
57495 ret.set(prepend + k, data);
57496 }
57497 else if (this.c.IsString(data)) {
57498 ret.set(prepend + k, data);
57499 }
57500 else if (typeof data === "object") {
57501 ret = new Map(ret.Arr().Union(this.FlattenMappable(data, prepend + k + '.').Arr(), true));
57502 }
57503 else {
57504 Utility.Throw("Type", "Every field has be an array of 2 values [string,string]");
57505 }
57506 }
57507 }
57508 return ret;
57509 }
57510 IsStringPair(obj) {
57511 return Array.isArray(obj) && this.c.IsString(obj[0]) && this.c.IsString(obj[1]);
57512 }
57513 FlattenFlagObject(obj, prepend = '') {
57514 let ret = new Map();
57515 for (let k in obj) {
57516 if (obj.hasOwnProperty(k)) {
57517 let data = obj[k];
57518 if (typeof data === "boolean") {
57519 ret.set(prepend + k, data);
57520 }
57521 else if (typeof data === "object") {
57522 ret = new Map(ret.Arr().Union(this.FlattenFlagObject(data, prepend + k + '.').Arr(), true));
57523 }
57524 else {
57525 Utility.Throw('Type', 'Every field has to be a boolean: field ' + k);
57526 }
57527 }
57528 }
57529 return ret;
57530 }
57531 FlattenObject(obj, prepend = '') {
57532 let c = this.c;
57533 let ret = new Map();
57534 for (let k in obj) {
57535 if (obj.hasOwnProperty(k)) {
57536 let data = obj[k];
57537 if (c.IsAnyString(data)) {
57538 if (c.IsString(data)) {
57539 ret.set(prepend + k, data);
57540 }
57541 else {
57542 Utility.Throw('Type', 'Every field cannot be empty: field ' + k, obj);
57543 }
57544 }
57545 else if (typeof data === "object") {
57546 ret = new Map(ret.Arr().Union(this.FlattenObject(data, prepend + k + '.').Arr(), true));
57547 }
57548 else {
57549 Utility.Throw('Type', 'Every field cannot be empty: field ' + k, obj);
57550 }
57551 }
57552 }
57553 return ret;
57554 }
57555 ASafeWriteFile(filePath, content, callback) {
57556 return __awaiter(this, void 0, void 0, function* () {
57557 if (graceful_fs_1.default.existsSync(filePath))
57558 return;
57559 this.EnsureDirectory(filePath);
57560 return yield new Promise(function (resolve) {
57561 graceful_fs_1.default.writeFile(filePath, content, 'utf8', function (err) {
57562 if (err)
57563 console.log(err);
57564 if (typeof callback === "function")
57565 callback();
57566 resolve();
57567 });
57568 });
57569 });
57570 }
57571 ASafeCreateDirectory(filePath, callback) {
57572 return __awaiter(this, void 0, void 0, function* () {
57573 if (graceful_fs_1.default.existsSync(filePath))
57574 return;
57575 this.EnsureDirectory(filePath);
57576 return yield new Promise(function (resolve) {
57577 graceful_fs_1.default.mkdir(filePath, function (err) {
57578 if (err)
57579 console.log(err);
57580 if (typeof callback === "function")
57581 callback();
57582 resolve();
57583 });
57584 });
57585 });
57586 }
57587 SafeWriteFile(filePath, content) {
57588 this.EnsureDirectory(filePath);
57589 graceful_fs_1.default.writeFileSync(filePath, content, 'utf8');
57590 }
57591 SafeCreateDirectory(directoryPath) {
57592 this.EnsureDirectory(directoryPath);
57593 graceful_fs_1.default.mkdirSync(directoryPath);
57594 }
57595 MapToObject(map) {
57596 let ret = {};
57597 map.Each((k, v) => {
57598 let dot = k.split('.');
57599 this.SetValue(ret, dot, v);
57600 });
57601 return ret;
57602 }
57603 SetValue(obj, dot, value) {
57604 if (dot.length === 1) {
57605 obj[dot[0]] = value;
57606 }
57607 else {
57608 if (typeof obj[dot[0]] === "undefined") {
57609 obj[dot[0]] = {};
57610 }
57611 this.SetValue(obj[dot[0]], dot.Skip(1), value);
57612 }
57613 }
57614 EnsureDirectory(filePath) {
57615 let dir = path_1.default.dirname(filePath);
57616 if (!graceful_fs_1.default.existsSync(dir)) {
57617 this.EnsureDirectory(dir);
57618 graceful_fs_1.default.mkdirSync(dir);
57619 }
57620 }
57621}
57622exports.Utility = Utility;
57623
57624
57625/***/ }),
57626
57627/***/ "./src/classLibrary/sdk/ApiSdk.ts":
57628/*!****************************************!*\
57629 !*** ./src/classLibrary/sdk/ApiSdk.ts ***!
57630 \****************************************/
57631/*! no static exports found */
57632/***/ (function(module, exports, __webpack_require__) {
57633
57634"use strict";
57635
57636var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
57637 return new (P || (P = Promise))(function (resolve, reject) {
57638 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
57639 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
57640 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
57641 step((generator = generator.apply(thisArg, _arguments || [])).next());
57642 });
57643};
57644var __importDefault = (this && this.__importDefault) || function (mod) {
57645 return (mod && mod.__esModule) ? mod : { "default": mod };
57646};
57647Object.defineProperty(exports, "__esModule", { value: true });
57648const node_fetch_1 = __importDefault(__webpack_require__(/*! node-fetch */ "./node_modules/node-fetch/lib/index.mjs"));
57649class ApiSdk {
57650 constructor(host) {
57651 this.host = host;
57652 }
57653 Endpoint(path) {
57654 return `${this.host}/${path}`;
57655 }
57656 ping(path, method = "GET", content = null, headers = {
57657 accept: "application/json",
57658 'Content-Type': 'application/json'
57659 }) {
57660 return __awaiter(this, void 0, void 0, function* () {
57661 try {
57662 const request = {
57663 method,
57664 headers,
57665 };
57666 if (content != null) {
57667 request.body = JSON.stringify(content);
57668 }
57669 return yield this.fetch(this.Endpoint(path), request);
57670 }
57671 catch (e) {
57672 return Promise.reject(e);
57673 }
57674 });
57675 }
57676 fetch(input, init) {
57677 return __awaiter(this, void 0, void 0, function* () {
57678 const response = yield node_fetch_1.default(input, init);
57679 if (response.status === 204) {
57680 return {};
57681 }
57682 let body = {};
57683 try {
57684 body = yield response.json();
57685 }
57686 catch (_a) { }
57687 if (!response.ok)
57688 return Promise.reject({ name: "Error", message: body, type: response.status });
57689 return body;
57690 });
57691 }
57692 TemplateExist(k) {
57693 return __awaiter(this, void 0, void 0, function* () {
57694 try {
57695 yield this.ping(`template/${k}`, "HEAD");
57696 return true;
57697 }
57698 catch (e) {
57699 return false;
57700 }
57701 });
57702 }
57703 GetTemplateData(k) {
57704 return __awaiter(this, void 0, void 0, function* () {
57705 try {
57706 return yield this.ping(`template/${k}`, "GET", null, {
57707 cli: "kirinnee"
57708 });
57709 }
57710 catch (e) {
57711 return Promise.reject(e);
57712 }
57713 });
57714 }
57715 GetGroupData(k) {
57716 return __awaiter(this, void 0, void 0, function* () {
57717 try {
57718 return yield this.ping(`group/${k}`, "GET", null, { cli: "kirinnee" });
57719 }
57720 catch (e) {
57721 return Promise.reject(e);
57722 }
57723 });
57724 }
57725 GroupExist(k) {
57726 return __awaiter(this, void 0, void 0, function* () {
57727 try {
57728 yield this.ping(`group/${k}`, "HEAD");
57729 return true;
57730 }
57731 catch (e) {
57732 return false;
57733 }
57734 });
57735 }
57736 getReadMeContent(k) {
57737 return __awaiter(this, void 0, void 0, function* () {
57738 const ep = false ? undefined : this.Endpoint(k);
57739 const response = yield node_fetch_1.default(ep);
57740 return yield response.text();
57741 });
57742 }
57743 ;
57744 UpdateTemplate(template, secret) {
57745 return __awaiter(this, void 0, void 0, function* () {
57746 try {
57747 const body = {
57748 name: template.name,
57749 repo: template.repo,
57750 secret,
57751 email: template.email,
57752 readme: template.readme,
57753 };
57754 yield this.ping(`template/${template.key}`, "PUT", body);
57755 return;
57756 }
57757 catch (e) {
57758 return Promise.reject(e);
57759 }
57760 });
57761 }
57762 UpdateGroup(group, secret) {
57763 return __awaiter(this, void 0, void 0, function* () {
57764 try {
57765 const body = {
57766 name: group.name,
57767 secret,
57768 email: group.email,
57769 readme: group.readme,
57770 templates: Object.keys(group.templates)
57771 };
57772 yield this.ping(`group/${group.key}`, "PUT", body);
57773 return;
57774 }
57775 catch (e) {
57776 return Promise.reject(e);
57777 }
57778 });
57779 }
57780}
57781exports.ApiSdk = ApiSdk;
57782
57783
57784/***/ }),
57785
57786/***/ "./src/create.ts":
57787/*!***********************!*\
57788 !*** ./src/create.ts ***!
57789 \***********************/
57790/*! no static exports found */
57791/***/ (function(module, exports, __webpack_require__) {
57792
57793"use strict";
57794
57795var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
57796 return new (P || (P = Promise))(function (resolve, reject) {
57797 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
57798 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
57799 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
57800 step((generator = generator.apply(thisArg, _arguments || [])).next());
57801 });
57802};
57803var __importDefault = (this && this.__importDefault) || function (mod) {
57804 return (mod && mod.__esModule) ? mod : { "default": mod };
57805};
57806Object.defineProperty(exports, "__esModule", { value: true });
57807const inquirer_1 = __importDefault(__webpack_require__(/*! inquirer */ "./node_modules/inquirer/lib/inquirer.js"));
57808const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
57809const Group_1 = __webpack_require__(/*! ./classLibrary/Group */ "./src/classLibrary/Group.ts");
57810const generator_1 = __webpack_require__(/*! ./generator */ "./src/generator.ts");
57811function Create(dep, folderName) {
57812 return __awaiter(this, void 0, void 0, function* () {
57813 let root = path_1.default.resolve(__dirname, '../templates');
57814 let group = new Group_1.Group(dep.core, dep.objex, root, dep.util);
57815 let map = new Map(group.ListAsArray());
57816 let answers = yield inquirer_1.default.prompt([
57817 {
57818 type: "list",
57819 message: "Please choose the template Group you want to use",
57820 name: "group",
57821 choices: map.Keys()
57822 }
57823 ]);
57824 return yield CreateTemplates(dep, group, map.get(answers["group"]), folderName);
57825 });
57826}
57827exports.Create = Create;
57828function CreateTemplates(dep, g, group, folderName) {
57829 return __awaiter(this, void 0, void 0, function* () {
57830 //Find path to folder
57831 let root = path_1.default.resolve(__dirname, '../templates/', group);
57832 // Obtain template list from config file
57833 const templates = new Map(g.ListTemplate(group).Map(([k, v]) => [v, k]));
57834 //Put up a list to see which question to return
57835 let answers = yield inquirer_1.default.prompt([
57836 {
57837 type: "list",
57838 message: "Please choose the template to use",
57839 name: "template",
57840 choices: templates.Keys()
57841 }
57842 ]);
57843 //Put up a template to see what to use
57844 let templatePath = path_1.default.resolve(root, templates.get(answers["template"]));
57845 let settings = yield generator_1.Interrogate(dep, dep.autoInquirer, templatePath, folderName);
57846 return generator_1.GenerateTemplate(dep, templatePath, folderName, settings, true);
57847 });
57848}
57849
57850
57851/***/ }),
57852
57853/***/ "./src/cyanprint.ts":
57854/*!**************************!*\
57855 !*** ./src/cyanprint.ts ***!
57856 \**************************/
57857/*! no static exports found */
57858/***/ (function(module, exports, __webpack_require__) {
57859
57860"use strict";
57861
57862var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
57863 return new (P || (P = Promise))(function (resolve, reject) {
57864 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
57865 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
57866 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
57867 step((generator = generator.apply(thisArg, _arguments || [])).next());
57868 });
57869};
57870var __importDefault = (this && this.__importDefault) || function (mod) {
57871 return (mod && mod.__esModule) ? mod : { "default": mod };
57872};
57873Object.defineProperty(exports, "__esModule", { value: true });
57874const commander_1 = __importDefault(__webpack_require__(/*! commander */ "./node_modules/commander/index.js"));
57875const Utility_1 = __webpack_require__(/*! ./classLibrary/Utility */ "./src/classLibrary/Utility.ts");
57876const install_1 = __webpack_require__(/*! ./install */ "./src/install.ts");
57877const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
57878const group_1 = __webpack_require__(/*! ./group */ "./src/group.ts");
57879const core_1 = __webpack_require__(/*! @kirinnee/core */ "./node_modules/@kirinnee/core/index.js");
57880const try_1 = __webpack_require__(/*! ./try */ "./src/try.ts");
57881const permute_1 = __webpack_require__(/*! ./permute */ "./src/permute.ts");
57882const create_1 = __webpack_require__(/*! ./create */ "./src/create.ts");
57883const objex_1 = __webpack_require__(/*! @kirinnee/objex */ "./node_modules/@kirinnee/objex/index.js");
57884const ApiSdk_1 = __webpack_require__(/*! ./classLibrary/sdk/ApiSdk */ "./src/classLibrary/sdk/ApiSdk.ts");
57885const AutoInquire_1 = __webpack_require__(/*! ./classLibrary/TargetUtil/AutoInquire */ "./src/classLibrary/TargetUtil/AutoInquire.ts");
57886const AutoMapper_1 = __webpack_require__(/*! ./classLibrary/TargetUtil/AutoMapper */ "./src/classLibrary/TargetUtil/AutoMapper.ts");
57887const remove_1 = __webpack_require__(/*! ./remove */ "./src/remove.ts");
57888const upgrade_1 = __webpack_require__(/*! ./upgrade */ "./src/upgrade.ts");
57889const push_1 = __webpack_require__(/*! ./push */ "./src/push.ts");
57890const core = new core_1.Kore();
57891core.ExtendPrimitives();
57892const objex = new objex_1.ObjectX(core);
57893objex.ExtendPrimitives();
57894const u = new Utility_1.Utility(core);
57895const api = new ApiSdk_1.ApiSdk( false ? undefined : "https://cyanprint.icu");
57896const autoMapper = new AutoMapper_1.AutoMapper(u);
57897const autoInquirer = new AutoInquire_1.AutoInquire(u, autoMapper);
57898const dep = {
57899 core,
57900 objex,
57901 util: u,
57902 api,
57903 autoInquirer,
57904 autoMapper,
57905};
57906commander_1.default
57907 .version("0.13.4");
57908// error on unknown commands
57909commander_1.default
57910 .on('command:*', function () {
57911 console.error('Invalid command: %s\nSee --help for a list of available commands.', commander_1.default.args.join(' '));
57912 process.exit(1);
57913});
57914const create = function (folderName) {
57915 return __awaiter(this, void 0, void 0, function* () {
57916 let reply = yield create_1.Create(dep, folderName);
57917 console.log(reply);
57918 process.exit(0);
57919 });
57920};
57921const group = function (action, key, name, email) {
57922 return __awaiter(this, void 0, void 0, function* () {
57923 switch (action.toLowerCase()) {
57924 case "c":
57925 case "create":
57926 if (name != null && key != null && email != null) {
57927 console.log(group_1.CreateGroup(key, name, email, "README.MD"));
57928 }
57929 else {
57930 console.log(chalk_1.default.yellowBright("Usage:") + " group create <group-key> <group-name> <author-email>");
57931 }
57932 break;
57933 case "r":
57934 case "delete":
57935 if (key != null) {
57936 const r = yield group_1.DeleteGroup(key);
57937 console.log(r);
57938 }
57939 else {
57940 console.log(chalk_1.default.yellowBright("Usage:") + " group delete <group-key>");
57941 }
57942 break;
57943 case "l":
57944 case "list":
57945 if (key == null) {
57946 console.log(group_1.ListGroup());
57947 }
57948 else {
57949 console.log(group_1.ListTemplates(key));
57950 }
57951 break;
57952 case "i":
57953 case "install":
57954 if (key != null) {
57955 const r = yield group_1.InstallGroup(dep, key);
57956 console.log(r);
57957 }
57958 else {
57959 console.log(chalk_1.default.yellowBright("Usage:") + " group install <group-key>");
57960 }
57961 break;
57962 case "u":
57963 case "update":
57964 if (key != null) {
57965 const r = yield group_1.UpdateGroup(dep, key);
57966 console.log(r);
57967 }
57968 else {
57969 console.log(chalk_1.default.yellowBright("Usage:") + " group update <group-key>");
57970 }
57971 break;
57972 case "p":
57973 case "push":
57974 if (key != null && name != null) {
57975 const r = yield group_1.PushGroup(dep, key, name);
57976 console.log(r);
57977 }
57978 else {
57979 console.log(chalk_1.default.yellowBright("Usage:") + " group push <group-key> <secret-token>");
57980 }
57981 break;
57982 default:
57983 console.log(chalk_1.default.redBright("Unknown group sub-command: available commands: \n\tcreate - creates a new group\n\tdelete - deletes a group\n\tlist - show the list of groups\n\tupdate - update the group and all its template\n\tinstall - install a group from online repository\n\tpush - pushes the group to online host"));
57984 }
57985 process.exit(0);
57986 });
57987};
57988const permute = function (from, to, cmd) {
57989 return __awaiter(this, void 0, void 0, function* () {
57990 let copyNode = cmd["copyNode"] != null;
57991 let git = cmd["git"] != null;
57992 let reply = yield permute_1.Permute(dep, git, copyNode, from, to);
57993 console.log(reply);
57994 process.exit(0);
57995 });
57996};
57997const install = function (link, dir, cmd) {
57998 let group = dir || "main";
57999 let copyNode = cmd["copyNode"] != null;
58000 if (group_1.ExistGroup(group)) {
58001 install_1.InstallTemplate(link, group, copyNode, dep)
58002 .then(reply => console.log(reply))
58003 .then(() => process.exit(0));
58004 }
58005 else {
58006 console.log(chalk_1.default.redBright("Group ") + chalk_1.default.yellow(group) + chalk_1.default.redBright(" does not exist!"));
58007 process.exit(0);
58008 }
58009};
58010const tryRun = function (from, to, cmd) {
58011 return __awaiter(this, void 0, void 0, function* () {
58012 let copyNode = cmd["copyNode"] != null;
58013 let git = cmd["git"] != null;
58014 let reply = yield try_1.Try(dep, from, to, git, copyNode);
58015 console.log(reply);
58016 process.exit(0);
58017 });
58018};
58019const remove = function (group, key) {
58020 return __awaiter(this, void 0, void 0, function* () {
58021 const reply = yield remove_1.RemoveTemplate(dep, key, group);
58022 console.log(reply);
58023 process.exit(0);
58024 });
58025};
58026const update = function (group, key) {
58027 return __awaiter(this, void 0, void 0, function* () {
58028 if (group == null) {
58029 const r = yield upgrade_1.UpdateEverything(dep);
58030 console.log(r);
58031 }
58032 else if (key == null) {
58033 const reply = yield upgrade_1.UpdateTemplatesInGroup(dep, group);
58034 console.log(reply);
58035 }
58036 else {
58037 const reply = yield upgrade_1.UpdateTemplate(dep, key, group);
58038 console.log(reply);
58039 }
58040 process.exit(0);
58041 });
58042};
58043commander_1.default
58044 .command("create <app-name>")
58045 .description("create a project from installed templates")
58046 .action(create);
58047commander_1.default
58048 .command("c <app-name>")
58049 .description("create a project from installed templates")
58050 .action(create);
58051commander_1.default
58052 .command("install <dir> [group]")
58053 .description("install templates from git or from local machine")
58054 .option("-N --copy-node", "Copies node_module to target area")
58055 .action(install);
58056commander_1.default
58057 .command("i <dir> [group]")
58058 .description("install templates from git or from local machine")
58059 .option("-N --copy-node", "Copies node_module to target area")
58060 .action(install);
58061commander_1.default
58062 .command("g <action> [key] [name] [email]")
58063 .description("Group functions - [create (c), deleted (d), list (l), install (i)]")
58064 .action(group);
58065commander_1.default
58066 .command("group <action> [key] [name] [email]")
58067 .description("Group functions - [create (c), deleted (d), list (l), install (i)]")
58068 .action(group);
58069commander_1.default
58070 .command("permute <from> <to>")
58071 .description("Permute all possible outcome of the template")
58072 .option("-N --copy-node", "Copies node_module to target area")
58073 .option("-G --git", "Simulates a git install from local folders, the target folder needs to be a git repository")
58074 .action(permute);
58075commander_1.default
58076 .command("try <from> <to>")
58077 .description("Try out the template")
58078 .option("-N --copy-node", "Copies node_module to target area")
58079 .option("-G --git", "Simulates a git install from local folders, the target folder needs to be a git repository")
58080 .action(tryRun);
58081commander_1.default
58082 .command("remove <group> <key>")
58083 .description("Deletes or removes the template from the group")
58084 .action(remove);
58085commander_1.default
58086 .command("r <group> <key>")
58087 .description("Deletes or removes the template from the group")
58088 .action(remove);
58089commander_1.default
58090 .command("upgrade [group] [key]")
58091 .description("updates a template of a group")
58092 .action(update);
58093commander_1.default
58094 .command("u [group] [key]")
58095 .description("updates a template of a group")
58096 .action(update);
58097commander_1.default
58098 .command("test")
58099 .action(() => __awaiter(this, void 0, void 0, function* () {
58100 const gd = yield api.GetGroupData("sample");
58101 const content = yield api.getReadMeContent(gd.readme);
58102 console.log(content);
58103}));
58104commander_1.default
58105 .command("push <secret>")
58106 .description("Pushes the CyanPrint template in the current directory to the repository.")
58107 .action((secret) => __awaiter(this, void 0, void 0, function* () {
58108 if (secret == null) {
58109 console.log(chalk_1.default.yellowBright("Usage:") + " push <secret>");
58110 }
58111 else {
58112 const r = yield push_1.PushTemplate(dep, secret);
58113 console.log(r);
58114 }
58115}));
58116commander_1.default.parse(process.argv);
58117let NO_COMMAND_SPECIFIED = commander_1.default.args.length === 0;
58118if (NO_COMMAND_SPECIFIED) {
58119 commander_1.default.help();
58120}
58121
58122
58123/***/ }),
58124
58125/***/ "./src/generator.ts":
58126/*!**************************!*\
58127 !*** ./src/generator.ts ***!
58128 \**************************/
58129/*! no static exports found */
58130/***/ (function(module, exports, __webpack_require__) {
58131
58132"use strict";
58133
58134var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
58135 return new (P || (P = Promise))(function (resolve, reject) {
58136 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
58137 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
58138 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
58139 step((generator = generator.apply(thisArg, _arguments || [])).next());
58140 });
58141};
58142var __importDefault = (this && this.__importDefault) || function (mod) {
58143 return (mod && mod.__esModule) ? mod : { "default": mod };
58144};
58145var __importStar = (this && this.__importStar) || function (mod) {
58146 if (mod && mod.__esModule) return mod;
58147 var result = {};
58148 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
58149 result["default"] = mod;
58150 return result;
58151};
58152Object.defineProperty(exports, "__esModule", { value: true });
58153const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
58154const RootFileFactory_1 = __webpack_require__(/*! ./classLibrary/RootFileFactory */ "./src/classLibrary/RootFileFactory.ts");
58155const fs = __importStar(__webpack_require__(/*! fs */ "fs"));
58156const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
58157const rimraf_1 = __importDefault(__webpack_require__(/*! rimraf */ "./node_modules/rimraf/rimraf.js"));
58158const DocumentParser_1 = __webpack_require__(/*! ./classLibrary/SpecialParser/DocumentParser */ "./src/classLibrary/SpecialParser/DocumentParser.ts");
58159const GlobFactory_1 = __webpack_require__(/*! ./classLibrary/GlobFactory */ "./src/classLibrary/GlobFactory.ts");
58160const GuidResolver_1 = __webpack_require__(/*! ./classLibrary/ParsingStrategy/GuidResolver */ "./src/classLibrary/ParsingStrategy/GuidResolver.ts");
58161const IfElseResolver_1 = __webpack_require__(/*! ./classLibrary/ParsingStrategy/IfElseResolver */ "./src/classLibrary/ParsingStrategy/IfElseResolver.ts");
58162const InverseIfElseResolver_1 = __webpack_require__(/*! ./classLibrary/ParsingStrategy/InverseIfElseResolver */ "./src/classLibrary/ParsingStrategy/InverseIfElseResolver.ts");
58163const InlineFlagResolver_1 = __webpack_require__(/*! ./classLibrary/ParsingStrategy/InlineFlagResolver */ "./src/classLibrary/ParsingStrategy/InlineFlagResolver.ts");
58164const InverseInlineFlagResolver_1 = __webpack_require__(/*! ./classLibrary/ParsingStrategy/InverseInlineFlagResolver */ "./src/classLibrary/ParsingStrategy/InverseInlineFlagResolver.ts");
58165const VariableResolver_1 = __webpack_require__(/*! ./classLibrary/ParsingStrategy/VariableResolver */ "./src/classLibrary/ParsingStrategy/VariableResolver.ts");
58166const MoveResolver_1 = __webpack_require__(/*! ./classLibrary/ParsingStrategy/MoveResolver */ "./src/classLibrary/ParsingStrategy/MoveResolver.ts");
58167const PackageResolver_1 = __webpack_require__(/*! ./classLibrary/ParsingStrategy/PackageResolver */ "./src/classLibrary/ParsingStrategy/PackageResolver.ts");
58168const Parser_1 = __webpack_require__(/*! ./classLibrary/Parser */ "./src/classLibrary/Parser.ts");
58169const LicenseResolver_1 = __webpack_require__(/*! ./classLibrary/SpecialParser/LicenseResolver */ "./src/classLibrary/SpecialParser/LicenseResolver.ts");
58170const ContributingParser_1 = __webpack_require__(/*! ./classLibrary/SpecialParser/ContributingParser */ "./src/classLibrary/SpecialParser/ContributingParser.ts");
58171const FileWriter_1 = __webpack_require__(/*! ./classLibrary/FileWriter */ "./src/classLibrary/FileWriter.ts");
58172const Execute_1 = __webpack_require__(/*! ./classLibrary/TargetUtil/Execute */ "./src/classLibrary/TargetUtil/Execute.ts");
58173const CyanParser_1 = __webpack_require__(/*! ./classLibrary/SpecialParser/CyanParser */ "./src/classLibrary/SpecialParser/CyanParser.ts");
58174const inquirer_1 = __importDefault(__webpack_require__(/*! inquirer */ "./node_modules/inquirer/lib/inquirer.js"));
58175const child_process_1 = __webpack_require__(/*! child_process */ "child_process");
58176function GenerateTemplate(dep, templatePath, folderName, settings, copyNode) {
58177 return __awaiter(this, void 0, void 0, function* () {
58178 //Generate baseline file fileFactory with To and From reading settled
58179 let to = path_1.default.resolve(process.cwd(), folderName);
58180 let fileFactory = new RootFileFactory_1.SimpleFileFactory(dep.core, templatePath, to);
58181 //Check if the target path is empty
58182 if (fs.existsSync(to)) {
58183 let del = yield dep.autoInquirer.InquirePredicate("There is an existing folder " + chalk_1.default.yellowBright(folderName) + ", do you want do delete that folder and proceed?");
58184 if (!del)
58185 return chalk_1.default.redBright("Template creation has been halted");
58186 console.log(chalk_1.default.cyanBright("Please wait..."));
58187 rimraf_1.default.sync(to);
58188 console.log(chalk_1.default.greenBright("Deletion has been completed!"));
58189 }
58190 //Setup DocumentParser for future usage
58191 let docParser = new DocumentParser_1.DocumentParser(settings.docs);
58192 console.log(chalk_1.default.cyanBright("Preparing template, please wait..."));
58193 //Setup GlobFactory to read streams
58194 let globFactory = new GlobFactory_1.GlobFactory(dep.util, fileFactory);
58195 //Create all relevant parsing strategy
58196 let strategies = [
58197 new GuidResolver_1.GuidResolver(dep.core),
58198 new IfElseResolver_1.IfElseResolver(dep.util),
58199 new InverseIfElseResolver_1.InverseIfElseResolver(dep.util),
58200 new InlineFlagResolver_1.InlineFlagResolver(dep.util, settings.comments),
58201 new InverseInlineFlagResolver_1.InverseInlineFlagResolver(dep.util, settings.comments),
58202 new VariableResolver_1.VariableResolver(dep.util),
58203 new MoveResolver_1.MoveResolver(dep.util),
58204 new PackageResolver_1.PackageResolver(dep.util)
58205 ];
58206 let parser = new Parser_1.Parser(dep.util, strategies, settings);
58207 //Special Parsing Strategies
58208 let licenseParser = new LicenseResolver_1.LicenseResolver(new VariableResolver_1.VariableResolver(dep.util));
58209 let contributingParser = new ContributingParser_1.ContributingResolver(dep.core);
58210 console.log(chalk_1.default.greenBright("Preparation done!"));
58211 console.log(chalk_1.default.cyanBright("Performing variable and flag scans..."));
58212 //Obtain all globs
58213 let files = settings.globs.Map((g) => globFactory.GenerateFiles(g.root, g.pattern, g.ignore)).Flatten();
58214 if (!copyNode)
58215 files = files.Where((f) => !f.sourceAbsolutePath.includes("node_modules"));
58216 //remove package.lock
58217 files = files.Where(f => f.sourceAbsolutePath.ReplaceAll("\\\\", "/").split("/").Last() !== "package-lock.json")
58218 .Where(f => f.sourceAbsolutePath.ReplaceAll("\\\\", "/").split("/").Last() !== "yarn.lock");
58219 //Add in the cyan.docs flag
58220 settings.flags = dep.autoMapper.JoinObjects(settings.flags, docParser.GetAllFlags());
58221 settings.variable = dep.autoMapper.JoinObjects(settings.variable, docParser.GetVariables());
58222 //Set the folder name in
58223 let fn = { cyan: { folder: { name: folderName.ReplaceAll("\\\\", "/").split("/").Last() } } };
58224 settings.variable = dep.autoMapper.JoinObjects(settings.variable, fn);
58225 //Generate flag counting data structures
58226 parser.CountFiles(files);
58227 //files all the name that are removed before starting to read
58228 files = parser.ParseFiles(files);
58229 //Read file asynchronously
58230 files = yield globFactory.ReadFiles(files);
58231 //Add license if document parser found one
58232 let license = docParser.GetLicense();
58233 if (license)
58234 files.push(licenseParser.ResolveLicense(license, path_1.default.resolve(to, "LICENSE.MD")));
58235 //Add Contributing if found one
58236 let contributing = docParser.GetContributing();
58237 if (contributing)
58238 files.push(contributingParser.ResolveContributing(contributing, path_1.default.resolve(to, "CONTRIBUTING.MD")));
58239 let ok = parser.CountOccurence(files);
58240 if (!ok) {
58241 let answers = yield dep.autoInquirer.InquirePredicate("There were variables missing from the template file, are you sure you want to continue?");
58242 if (!answers)
58243 return "The template generation has been cancelled";
58244 console.log(chalk_1.default.greenBright("Ignoring warning..."));
58245 }
58246 //Parse Templates
58247 files = parser.ParseContent(files);
58248 //Generate warning of possible code
58249 parser.CountPossibleRemains(files);
58250 console.log(chalk_1.default.cyanBright("Generating template..."));
58251 //Asynchronous write to target directory
58252 let writer = new FileWriter_1.FileWriter(dep.util);
58253 yield writer.AWriteFile(files);
58254 if (settings.npm) {
58255 console.log(chalk_1.default.cyanBright("Installing NPM modules"));
58256 let reply = "";
58257 let hasYarn = yield ExecuteCommandSimple("yarn", ["-v"], "", true);
58258 if (hasYarn) {
58259 console.info(chalk_1.default.greenBright("Yarn Detected... Using yarn!"));
58260 reply = yield ExecuteCommand("yarn", ["--prefer-offline"], "Installed NPM Modules", folderName, settings.npm);
58261 }
58262 else {
58263 reply = yield ExecuteCommand("npm", ["i"], "Installed NPM Modules", folderName, settings.npm);
58264 }
58265 console.log(reply);
58266 }
58267 let git = docParser.GetGit();
58268 if (git) {
58269 yield ExecuteCommandSimple("git", ["init"], folderName);
58270 yield ExecuteCommandSimple("git", ["config", "user.name", git.username], folderName);
58271 yield ExecuteCommandSimple("git", ["config", "user.email", git.email], folderName);
58272 yield ExecuteCommandSimple("git", ["rm", "-rf", "--cached", "."]);
58273 yield ExecuteCommandSimple("git", ["add", "."], folderName);
58274 let reply = yield ExecuteCommand("git", ["commit", "-m", '"Initial Commit~"'], "Initialized Git repository!", folderName);
58275 console.log(reply);
58276 if (git.remote != null) {
58277 let useRemote = yield dep.autoInquirer.InquirePredicate("Do you want to set your remote 'origin' to " + chalk_1.default.yellowBright(git.remote) + " and immediately push to origin?");
58278 if (useRemote) {
58279 yield ExecuteCommandSimple("git", ["remote", "add", "origin", git.remote], folderName);
58280 let reply = yield ExecuteCommand("git", ["push", "origin", "--all"], "Added and pushed to remote repository", folderName);
58281 console.log(reply);
58282 }
58283 }
58284 }
58285 return chalk_1.default.greenBright("Complete~!!");
58286 });
58287}
58288exports.GenerateTemplate = GenerateTemplate;
58289// Executes the cyan.config.js
58290function Interrogate(dep, autoInquirer, templatePath, folderName) {
58291 return __awaiter(this, void 0, void 0, function* () {
58292 //Gets relative path to configure file of the selected template
58293 let configFile = path_1.default.resolve(templatePath, "./cyan.config.js");
58294 let relConfigPath = path_1.default.relative(__dirname, configFile);
58295 let execute = new Execute_1.Execute(dep.core, folderName, __dirname, configFile, autoInquirer, dep.autoMapper);
58296 let cyanSafe = new CyanParser_1.CyanParser();
58297 //Get Template generating functions
58298 let Template = eval(`require("${relConfigPath.ReplaceAll("\\\\", "/")}")`);
58299 let rawSettings = yield Template(folderName.ReplaceAll("\\\\", "/").split('/').Last(), chalk_1.default, inquirer_1.default, autoInquirer, dep.autoMapper, execute);
58300 // Escape and normalize raw settings to "safe"
58301 return cyanSafe.Save(rawSettings);
58302 });
58303}
58304exports.Interrogate = Interrogate;
58305function ExecuteCommandSimple(command, variables, cd, ignore = false) {
58306 return __awaiter(this, void 0, void 0, function* () {
58307 let p = cd != null ? path_1.default.resolve(process.cwd(), cd) : process.cwd();
58308 console.log(p);
58309 return yield new Promise(function (resolve) {
58310 child_process_1.spawn(command, variables, {
58311 stdio: ignore ? "ignore" : "inherit",
58312 shell: true,
58313 cwd: p
58314 })
58315 .on("exit", (code) => {
58316 console.info(`${command} ${variables.join(' ')} ${cd ? 'at ' + cd : ''} with code ${code}`);
58317 if (code === 0) {
58318 resolve(true);
58319 }
58320 else {
58321 resolve(false);
58322 }
58323 })
58324 .on("error", err => console.info(err));
58325 });
58326 });
58327}
58328exports.ExecuteCommandSimple = ExecuteCommandSimple;
58329function ExecuteCommand(command, variables, done, cd, cdExt) {
58330 return __awaiter(this, void 0, void 0, function* () {
58331 cdExt = cdExt || ".";
58332 let p = cd != null ? path_1.default.resolve(process.cwd(), cd, cdExt) : process.cwd();
58333 return yield new Promise(function (resolve) {
58334 child_process_1.spawn(command, variables, { stdio: "inherit", shell: true, cwd: p })
58335 .on("exit", () => {
58336 resolve(chalk_1.default.greenBright(done));
58337 });
58338 });
58339 });
58340}
58341
58342
58343/***/ }),
58344
58345/***/ "./src/group.ts":
58346/*!**********************!*\
58347 !*** ./src/group.ts ***!
58348 \**********************/
58349/*! no static exports found */
58350/***/ (function(module, exports, __webpack_require__) {
58351
58352"use strict";
58353
58354var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
58355 return new (P || (P = Promise))(function (resolve, reject) {
58356 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
58357 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
58358 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
58359 step((generator = generator.apply(thisArg, _arguments || [])).next());
58360 });
58361};
58362var __importDefault = (this && this.__importDefault) || function (mod) {
58363 return (mod && mod.__esModule) ? mod : { "default": mod };
58364};
58365Object.defineProperty(exports, "__esModule", { value: true });
58366const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
58367const Group_1 = __webpack_require__(/*! ./classLibrary/Group */ "./src/classLibrary/Group.ts");
58368const core_1 = __webpack_require__(/*! @kirinnee/core */ "./node_modules/@kirinnee/core/index.js");
58369const objex_1 = __webpack_require__(/*! @kirinnee/objex */ "./node_modules/@kirinnee/objex/index.js");
58370const Utility_1 = __webpack_require__(/*! ./classLibrary/Utility */ "./src/classLibrary/Utility.ts");
58371const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
58372const AutoMapper_1 = __webpack_require__(/*! ./classLibrary/TargetUtil/AutoMapper */ "./src/classLibrary/TargetUtil/AutoMapper.ts");
58373const AutoInquire_1 = __webpack_require__(/*! ./classLibrary/TargetUtil/AutoInquire */ "./src/classLibrary/TargetUtil/AutoInquire.ts");
58374const install_1 = __webpack_require__(/*! ./install */ "./src/install.ts");
58375const fs_extra_1 = __importDefault(__webpack_require__(/*! fs-extra */ "./node_modules/fs-extra/lib/index.js"));
58376const graceful_fs_1 = __importDefault(__webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js"));
58377const rimraf = __webpack_require__(/*! rimraf */ "./node_modules/rimraf/rimraf.js");
58378const core = new core_1.Kore();
58379core.ExtendPrimitives();
58380const objex = new objex_1.ObjectX(core);
58381objex.ExtendPrimitives();
58382const util = new Utility_1.Utility(core);
58383let root = path_1.default.resolve(__dirname, '../templates');
58384let group = new Group_1.Group(core, objex, root, util);
58385function CreateGroup(key, name, email, readme) {
58386 const content = `# ${name}
58387*Unique Key*: ${key}
58388
58389# Author
58390${email}
58391`;
58392 const success = group.Create(key, name, email, readme, content);
58393 if (success)
58394 return chalk_1.default.greenBright("The Group " + chalk_1.default.yellowBright(key) + ` (${name}) has been created!`);
58395 return chalk_1.default.redBright("The Group " + chalk_1.default.yellowBright(key) + ` (${name}) already exist!`);
58396}
58397exports.CreateGroup = CreateGroup;
58398function DeleteGroup(key) {
58399 return __awaiter(this, void 0, void 0, function* () {
58400 const autoMapper = new AutoMapper_1.AutoMapper(util);
58401 const autoInquirer = new AutoInquire_1.AutoInquire(util, autoMapper);
58402 const confirm = yield autoInquirer.InquirePredicate(`Are you sure you want to delete Group ${key} and all templates and content with the group? This cannot be undone`);
58403 if (!confirm)
58404 return "User cancelled";
58405 const success = group.Delete(key);
58406 if (success)
58407 return chalk_1.default.greenBright("The Group " + chalk_1.default.yellowBright(key) + " has been deleted!");
58408 return chalk_1.default.redBright("The Group " + chalk_1.default.yellowBright(key) + " does not exist!");
58409 });
58410}
58411exports.DeleteGroup = DeleteGroup;
58412function ListGroup() {
58413 return group.ListAsArray().Map(([k, v]) => `${chalk_1.default.cyanBright(k)} ( ${chalk_1.default.red(v)} )`).join("\n");
58414}
58415exports.ListGroup = ListGroup;
58416function ExistGroup(name) {
58417 return group.Exist(name);
58418}
58419exports.ExistGroup = ExistGroup;
58420function ListTemplates(key) {
58421 if (!group.Exist(key))
58422 return chalk_1.default.red(`Group ${key} does not exist`);
58423 return group.ListTemplate(key).Map(([k, v]) => `${chalk_1.default.cyanBright(v)} ( ${chalk_1.default.red(k)} )`).join("\n");
58424}
58425exports.ListTemplates = ListTemplates;
58426function UpdateGroup(dep, key) {
58427 return __awaiter(this, void 0, void 0, function* () {
58428 const red = chalk_1.default.red;
58429 const cyan = chalk_1.default.cyanBright;
58430 // Check if group exist
58431 const exist = yield dep.api.GroupExist(key);
58432 if (!exist)
58433 return red(`Group ${key} does not exist`);
58434 //Pull group data
58435 const groupData = yield dep.api.GetGroupData(key);
58436 //Move old data
58437 const target = path_1.default.resolve(root, key);
58438 const old = target + "_old_kirin_temp_folder";
58439 fs_extra_1.default.moveSync(target, old);
58440 try {
58441 const content = yield dep.api.getReadMeContent(groupData.readme);
58442 const success = group.Create(groupData.unique_key, groupData.display_name, groupData.author, "README.MD", content);
58443 if (!success)
58444 throw red("Failed to create group, possibly due to old version still existing. Please try again.");
58445 for (const e of groupData.templates) {
58446 console.log(cyan("========================"));
58447 console.log(cyan(`Installing ${e}...`));
58448 const out = yield install_1.InstallTemplate(e, key, false, dep);
58449 console.log(out);
58450 }
58451 rimraf.sync(old);
58452 return cyan.greenBright(`Update of group ${key} completed!`);
58453 }
58454 catch (e) {
58455 //Roll back
58456 rimraf.sync(target);
58457 fs_extra_1.default.moveSync(old, target);
58458 return e;
58459 }
58460 });
58461}
58462exports.UpdateGroup = UpdateGroup;
58463function InstallGroup(dep, key) {
58464 return __awaiter(this, void 0, void 0, function* () {
58465 const red = chalk_1.default.red;
58466 const cyan = chalk_1.default.cyanBright;
58467 // Check if group exist
58468 const exist = yield dep.api.GroupExist(key);
58469 if (!exist)
58470 return red(`Group ${key} does not exist`);
58471 //Pull group data
58472 const groupData = yield dep.api.GetGroupData(key);
58473 if (group.Exist(groupData.unique_key)) {
58474 const override = yield dep.autoInquirer.InquirePredicate(`Group ${key} already exist, do you want to re-install? This cannot be undone.`);
58475 if (!override)
58476 return red(`User cancelled`);
58477 const success = group.Delete(key);
58478 if (!success)
58479 return red("Failed to remove old version, please try again");
58480 }
58481 const content = yield dep.api.getReadMeContent(groupData.readme);
58482 const success = group.Create(groupData.unique_key, groupData.display_name, groupData.author, "README.MD", content);
58483 if (!success)
58484 return red("Failed to create group, possibly due to old version still existing. Please try again.");
58485 for (const e of groupData.templates) {
58486 console.log(cyan("========================"));
58487 console.log(cyan(`Installing ${e}...`));
58488 const out = yield install_1.InstallTemplate(e, key, false, dep);
58489 console.log(out);
58490 }
58491 return cyan.greenBright(`Installation of group ${key} completed!`);
58492 });
58493}
58494exports.InstallGroup = InstallGroup;
58495function PushGroup(dep, key, secret) {
58496 return __awaiter(this, void 0, void 0, function* () {
58497 if (!group.Exist(key))
58498 return chalk_1.default.red(`Group ${key} does not exist!`);
58499 const groupData = group.ObtainGroupData(key);
58500 const readMePath = path_1.default.resolve(root, key, groupData.readme);
58501 const readMeBinary = graceful_fs_1.default.readFileSync(readMePath);
58502 groupData.readme = Buffer.from(readMeBinary).toString('base64');
58503 try {
58504 yield dep.api.UpdateGroup(groupData, secret);
58505 return chalk_1.default.greenBright(`Successfully pushed group ${key} to CyanPrint host!`);
58506 }
58507 catch (e) {
58508 return chalk_1.default.red(JSON.stringify(e.message));
58509 }
58510 });
58511}
58512exports.PushGroup = PushGroup;
58513
58514
58515/***/ }),
58516
58517/***/ "./src/install.ts":
58518/*!************************!*\
58519 !*** ./src/install.ts ***!
58520 \************************/
58521/*! no static exports found */
58522/***/ (function(module, exports, __webpack_require__) {
58523
58524"use strict";
58525
58526var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
58527 return new (P || (P = Promise))(function (resolve, reject) {
58528 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
58529 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
58530 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
58531 step((generator = generator.apply(thisArg, _arguments || [])).next());
58532 });
58533};
58534var __importDefault = (this && this.__importDefault) || function (mod) {
58535 return (mod && mod.__esModule) ? mod : { "default": mod };
58536};
58537Object.defineProperty(exports, "__esModule", { value: true });
58538const Installer_1 = __webpack_require__(/*! ./classLibrary/Installer */ "./src/classLibrary/Installer.ts");
58539const RootFileFactory_1 = __webpack_require__(/*! ./classLibrary/RootFileFactory */ "./src/classLibrary/RootFileFactory.ts");
58540const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
58541const graceful_fs_1 = __importDefault(__webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js"));
58542const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
58543const FileWriter_1 = __webpack_require__(/*! ./classLibrary/FileWriter */ "./src/classLibrary/FileWriter.ts");
58544const rimraf_1 = __importDefault(__webpack_require__(/*! rimraf */ "./node_modules/rimraf/rimraf.js"));
58545const Template_1 = __webpack_require__(/*! ./classLibrary/Template */ "./src/classLibrary/Template.ts");
58546const Group_1 = __webpack_require__(/*! ./classLibrary/Group */ "./src/classLibrary/Group.ts");
58547const node_fetch_1 = __importDefault(__webpack_require__(/*! node-fetch */ "./node_modules/node-fetch/lib/index.mjs"));
58548function InstallTemplate(key, group, copyNode, dep) {
58549 return __awaiter(this, void 0, void 0, function* () {
58550 // Obtain relative path to global node folder
58551 const fromPath = path_1.default.relative(__dirname, process.cwd());
58552 // Generate group instance to update group meta data during installation
58553 const g = new Group_1.Group(dep.core, dep.objex, path_1.default.resolve(__dirname, '../templates'), dep.util);
58554 // check with server whether key exist
58555 const exist = yield dep.api.TemplateExist(key);
58556 if (!exist)
58557 return chalk_1.default.red(`Template ${key} does not exist!`);
58558 // Create a reflection of file system for template using Template object.
58559 const r = yield dep.api.GetTemplateData(key);
58560 // Ping endpoint to check if repository exist
58561 const resp = yield node_fetch_1.default(r.repository, { method: "HEAD" });
58562 if (resp.status !== 200)
58563 return chalk_1.default.red("Repository does not exist! Please contact the owner of the template");
58564 const template = new Template_1.Template(group, r.unique_key, r.display_name, r.repository, g);
58565 let fileFactory = new RootFileFactory_1.RootFileFactory(dep.core, __dirname, fromPath, template.Template);
58566 if (graceful_fs_1.default.existsSync(template.Target)) {
58567 const overwrite = yield dep.autoInquirer.InquirePredicate("The following template already exist, do you want to re-install it?");
58568 if (overwrite) {
58569 rimraf_1.default.sync(template.Target);
58570 return DownloadTemplate(template, copyNode, fileFactory, dep);
58571 }
58572 else {
58573 return chalk_1.default.yellow("Installation has been stopped.");
58574 }
58575 }
58576 else {
58577 return DownloadTemplate(template, copyNode, fileFactory, dep);
58578 }
58579 });
58580}
58581exports.InstallTemplate = InstallTemplate;
58582function DownloadTemplate(template, copyNode, fileFactory, dep) {
58583 return __awaiter(this, void 0, void 0, function* () {
58584 const writer = new FileWriter_1.FileWriter(dep.util);
58585 const installer = new Installer_1.Installer(dep.core, fileFactory, dep.util, writer);
58586 const string = yield installer.Install(template.Link, copyNode);
58587 if (string !== "Installation Completed")
58588 return string;
58589 template.CreateGroupEntry();
58590 if (template.Exist()) {
58591 const data = template.TemplateData;
58592 const verify = data.key === template.key && template.name == data.name && template.link === data.repo;
58593 if (verify)
58594 return chalk_1.default.greenBright("Template ") +
58595 chalk_1.default.blueBright(template.name) +
58596 chalk_1.default.greenBright(" has been installed in Group ") +
58597 chalk_1.default.blueBright(template.group);
58598 }
58599 template.DeleteGroupEntry();
58600 rimraf_1.default.sync(template.Target);
58601 return chalk_1.default.redBright("Template ") +
58602 chalk_1.default.blueBright(template.name) +
58603 chalk_1.default.redBright(" failed to installed in Group ") +
58604 chalk_1.default.blueBright(template.group) +
58605 chalk_1.default.redBright(`, possibly due to the following reason:
58606\t- The target folder does not exist
58607\t- The target git repository does not exist
58608\t- The target folder or repository does not contain [cyan.config.js] in the root folder
58609\t- The target folder or repository does not contain [cyan.json] in the root folder
58610\t- The data in the target repository's [cyan.json] does not match with server's
58611`);
58612 });
58613}
58614
58615
58616/***/ }),
58617
58618/***/ "./src/permute.ts":
58619/*!************************!*\
58620 !*** ./src/permute.ts ***!
58621 \************************/
58622/*! no static exports found */
58623/***/ (function(module, exports, __webpack_require__) {
58624
58625"use strict";
58626
58627var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
58628 return new (P || (P = Promise))(function (resolve, reject) {
58629 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
58630 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
58631 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
58632 step((generator = generator.apply(thisArg, _arguments || [])).next());
58633 });
58634};
58635var __importDefault = (this && this.__importDefault) || function (mod) {
58636 return (mod && mod.__esModule) ? mod : { "default": mod };
58637};
58638var __importStar = (this && this.__importStar) || function (mod) {
58639 if (mod && mod.__esModule) return mod;
58640 var result = {};
58641 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
58642 result["default"] = mod;
58643 return result;
58644};
58645Object.defineProperty(exports, "__esModule", { value: true });
58646const GitSimulator_1 = __webpack_require__(/*! ./classLibrary/GitSimulator */ "./src/classLibrary/GitSimulator.ts");
58647const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
58648const path = __importStar(__webpack_require__(/*! path */ "path"));
58649const generator_1 = __webpack_require__(/*! ./generator */ "./src/generator.ts");
58650const FakeInquirer_1 = __webpack_require__(/*! ./classLibrary/Permute/FakeInquirer */ "./src/classLibrary/Permute/FakeInquirer.ts");
58651const InquirerSpy_1 = __webpack_require__(/*! ./classLibrary/Permute/InquirerSpy */ "./src/classLibrary/Permute/InquirerSpy.ts");
58652const PermuteManager_1 = __webpack_require__(/*! ./classLibrary/Permute/PermuteManager */ "./src/classLibrary/Permute/PermuteManager.ts");
58653const cli_progress_1 = __webpack_require__(/*! cli-progress */ "./node_modules/cli-progress/cli-progress.js");
58654const GuidResolver_1 = __webpack_require__(/*! ./classLibrary/ParsingStrategy/GuidResolver */ "./src/classLibrary/ParsingStrategy/GuidResolver.ts");
58655const fs = __importStar(__webpack_require__(/*! fs */ "fs"));
58656const rimraf = __importStar(__webpack_require__(/*! rimraf */ "./node_modules/rimraf/rimraf.js"));
58657function Concurrent(array, a) {
58658 return __awaiter(this, void 0, void 0, function* () {
58659 let prom = [];
58660 array.Each(e => {
58661 let x = new Promise(function (resolve) {
58662 a(e).then(function (r) {
58663 resolve(r);
58664 });
58665 });
58666 prom.push(x);
58667 });
58668 return Promise.all(prom);
58669 });
58670}
58671function Permute(dep, git, copyNode, from, to) {
58672 return __awaiter(this, void 0, void 0, function* () {
58673 let f = path.resolve(process.cwd(), from);
58674 if (git) {
58675 let gitSimulate = new GitSimulator_1.GitSimulator(dep.core);
58676 f = yield gitSimulate.SimulateGit(process.cwd(), from);
58677 console.log(chalk_1.default.blueBright(f));
58678 }
58679 let ret = "";
58680 try {
58681 let fakeInquire = new FakeInquirer_1.FakeInquirer(dep.autoInquirer);
58682 let cyanSafe = yield Spy(dep, f, to);
58683 console.info(chalk_1.default.greenBright("Completed getting all permutations!"));
58684 let folders = cyanSafe.Map(c => path.join(c.key, c.val.npm || ""));
58685 cyanSafe.Each(c => c.val.docs.usage.git = false).Each(c => delete c.val.npm);
58686 let logs = yield Concurrent(cyanSafe, (c) => StealLogs(dep, f, c, fakeInquire, copyNode));
58687 let JSONLog = path.resolve(process.cwd(), to, "logs.json");
58688 let dest = path.resolve(process.cwd(), to, "logs.txt");
58689 dep.util.SafeWriteFile(dest, logs.join("\n\n"));
58690 let obj = cyanSafe
58691 .Map(e => e.val.flags)
58692 .Each(e => delete e["cyan.docs"])
58693 .Map(e => e.AsMap())
58694 .Map((e) => e.MapValue(v => dep.core.WrapArray(v)));
58695 dep.util.SafeWriteFile(JSONLog, JSON.stringify(obj.Reduce((a, b) => {
58696 let values = a.Values().Map((e, i) => e.concat(b.Values()[i]));
58697 return a.Keys().Merge(values);
58698 }).AsObject()));
58699 let hasYarn = yield generator_1.ExecuteCommandSimple("yarn", ["-v"], "", true);
58700 if (hasYarn) {
58701 let s = yield Concurrent(folders, (e => generator_1.ExecuteCommandSimple("yarn", ["--prefer-offline"], e, true)));
58702 console.log(s);
58703 }
58704 else {
58705 let s = yield Concurrent(folders, (e => generator_1.ExecuteCommandSimple("npm", ["i"], e)));
58706 console.log(s);
58707 }
58708 ret = "Completed!";
58709 }
58710 catch (e) {
58711 ret = chalk_1.default.redBright(e);
58712 }
58713 if (git) {
58714 rimraf.sync(f);
58715 }
58716 return ret;
58717 });
58718}
58719exports.Permute = Permute;
58720function StealLogs(dep, templatePath, settings, autoInquire, copyNode) {
58721 return __awaiter(this, void 0, void 0, function* () {
58722 let logger = console.log;
58723 let logs = "\n\n==== start ====\n\n";
58724 cli_progress_1.Bar.prototype.start = function () { };
58725 cli_progress_1.Bar.prototype.update = function () { };
58726 cli_progress_1.Bar.prototype.stop = function () { };
58727 cli_progress_1.Bar.prototype.getTotal = function () { };
58728 console.log = function (...args) {
58729 //logger.apply(console, args);
58730 logs += (JSON.stringify(args) + "\n").Without([
58731 "\\u001b",
58732 "[91m",
58733 "[92m",
58734 "[93m",
58735 "[31m",
58736 "[39m",
58737 "[96m"
58738 ]);
58739 logs += "\n";
58740 };
58741 let dest = settings.key;
58742 yield generator_1.GenerateTemplate(dep, templatePath, dest, settings.val, copyNode);
58743 logs += "\n==== end ====\n\n";
58744 let logFile = path.resolve(process.cwd(), dest, "cyanprint_logs.txt");
58745 let cyanDiagram = path.resolve(process.cwd(), dest, "cyanprint_tree.json");
58746 dep.util.SafeWriteFile(logFile, logs);
58747 dep.util.SafeWriteFile(cyanDiagram, JSON.stringify(settings.val, null, 4));
58748 console.log = logger;
58749 return logs;
58750 });
58751}
58752function Spy(dep, f, to) {
58753 return __awaiter(this, void 0, void 0, function* () {
58754 let permute = new PermuteManager_1.PermuteManager(dep.core);
58755 let spyInquire = new InquirerSpy_1.InquirerSpy(dep.util, permute);
58756 let ret = [];
58757 let flag = false;
58758 let count = 0;
58759 while (!permute.Completed() || !flag) {
58760 if (!flag) {
58761 permute.Start(true);
58762 flag = true;
58763 }
58764 else {
58765 permute.Start();
58766 }
58767 let guid = new GuidResolver_1.GuidResolver(dep.core);
58768 let dest = path.join(to, findPath(to, guid));
58769 let cyan = yield generator_1.Interrogate(dep, spyInquire, f, dest);
58770 permute.End();
58771 ret.push({ key: dest, val: cyan });
58772 count++;
58773 }
58774 console.log("Number of Permutations: " + count);
58775 return ret;
58776 });
58777}
58778function findPath(to, guid) {
58779 let ret = guid.GenerateGuid();
58780 let check = path.resolve(process.cwd(), to, ret);
58781 if (fs.existsSync(check)) {
58782 return findPath(to, guid);
58783 }
58784 return ret;
58785}
58786
58787
58788/***/ }),
58789
58790/***/ "./src/push.ts":
58791/*!*********************!*\
58792 !*** ./src/push.ts ***!
58793 \*********************/
58794/*! no static exports found */
58795/***/ (function(module, exports, __webpack_require__) {
58796
58797"use strict";
58798
58799var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
58800 return new (P || (P = Promise))(function (resolve, reject) {
58801 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
58802 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
58803 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
58804 step((generator = generator.apply(thisArg, _arguments || [])).next());
58805 });
58806};
58807var __importStar = (this && this.__importStar) || function (mod) {
58808 if (mod && mod.__esModule) return mod;
58809 var result = {};
58810 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
58811 result["default"] = mod;
58812 return result;
58813};
58814var __importDefault = (this && this.__importDefault) || function (mod) {
58815 return (mod && mod.__esModule) ? mod : { "default": mod };
58816};
58817Object.defineProperty(exports, "__esModule", { value: true });
58818const path = __importStar(__webpack_require__(/*! path */ "path"));
58819const graceful_fs_1 = __importDefault(__webpack_require__(/*! graceful-fs */ "./node_modules/graceful-fs/graceful-fs.js"));
58820const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
58821const node_fetch_1 = __importDefault(__webpack_require__(/*! node-fetch */ "./node_modules/node-fetch/lib/index.mjs"));
58822function PushTemplate(dep, secret) {
58823 return __awaiter(this, void 0, void 0, function* () {
58824 const cd = process.cwd();
58825 // verify relevant files exist
58826 const cyanJson = path.resolve(cd, "cyan.json");
58827 if (!graceful_fs_1.default.existsSync(cyanJson))
58828 return chalk_1.default.red("cyan.json is not found in the current directory!");
58829 const cyanConfigJs = path.resolve(cd, "cyan.config.js");
58830 if (!graceful_fs_1.default.existsSync(cyanConfigJs))
58831 return chalk_1.default.red("cyan.config.js is not found in the current directory!");
58832 const cyanData = JSON.parse(graceful_fs_1.default.readFileSync(cyanJson, 'utf8'));
58833 if (cyanData.key == null)
58834 return chalk_1.default.red("'key' field not found in cyan.json");
58835 if (cyanData.name == null)
58836 return chalk_1.default.red("'name' field not found in cyan.json");
58837 if (cyanData.repo == null)
58838 return chalk_1.default.red("'repo' field not found in cyan.json");
58839 if (cyanData.readme == null)
58840 return chalk_1.default.red("'readme' field not found in cyan.json");
58841 if (cyanData.email == null)
58842 return chalk_1.default.red("'email' field not found in cyan.json");
58843 //Verify Repository
58844 const repoValid = yield RepoValid(cyanData.repo);
58845 if (!repoValid)
58846 return chalk_1.default.red(`Repository provided is not valid: ${cyanData.repo}`);
58847 //Verify readme
58848 if (!ReadMeValid(cyanData.readme))
58849 return chalk_1.default.red(`Readme provided is not valid: ${cyanData.readme}`);
58850 //verify key
58851 if (!KeyValid(cyanData.key))
58852 return chalk_1.default.red(`Key is not valid, only allow lower alphanumeric, '_' and '-': ${cyanData.key} `);
58853 //verify email
58854 if (!EmailValid(cyanData.email))
58855 return chalk_1.default.red(`Email format invalid: ${cyanData.email}`);
58856 //verify name
58857 if (!NameValid(cyanData.name))
58858 return chalk_1.default.red(`Name invalid, contains illegal characters. Only alphanumeric, '_', '-' amd spaces allowed: ${cyanData.name}`);
58859 const readMePath = path.resolve(cd, cyanData.readme);
58860 const readMeBinary = graceful_fs_1.default.readFileSync(readMePath);
58861 const templateData = {
58862 name: cyanData.name,
58863 key: cyanData.key,
58864 repo: cyanData.repo,
58865 email: cyanData.email,
58866 readme: Buffer.from(readMeBinary).toString('base64')
58867 };
58868 try {
58869 yield dep.api.UpdateTemplate(templateData, secret);
58870 return chalk_1.default.greenBright(`Successfully pushed template ${templateData.key} to remote host!`);
58871 }
58872 catch (e) {
58873 return chalk_1.default.red(JSON.stringify(e.message));
58874 }
58875 });
58876}
58877exports.PushTemplate = PushTemplate;
58878function NameValid(name) {
58879 const regex = /^[a-z][a-z0-9_\-\s]{2,}$/i;
58880 return regex.test(name);
58881}
58882exports.NameValid = NameValid;
58883function KeyValid(key) {
58884 const regex = /^[a-z][0-9a-z_]*$/;
58885 return regex.test(key);
58886}
58887exports.KeyValid = KeyValid;
58888function EmailValid(email) {
58889 const emailRegexp = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
58890 return emailRegexp.test(email);
58891}
58892exports.EmailValid = EmailValid;
58893function RepoValid(repo) {
58894 return __awaiter(this, void 0, void 0, function* () {
58895 const resp = yield node_fetch_1.default(repo, { method: "HEAD" });
58896 return resp.status === 200;
58897 });
58898}
58899function ReadMeValid(readme) {
58900 const readMePath = path.resolve(process.cwd(), readme);
58901 return graceful_fs_1.default.existsSync(readMePath);
58902}
58903
58904
58905/***/ }),
58906
58907/***/ "./src/remove.ts":
58908/*!***********************!*\
58909 !*** ./src/remove.ts ***!
58910 \***********************/
58911/*! no static exports found */
58912/***/ (function(module, exports, __webpack_require__) {
58913
58914"use strict";
58915
58916var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
58917 return new (P || (P = Promise))(function (resolve, reject) {
58918 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
58919 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
58920 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
58921 step((generator = generator.apply(thisArg, _arguments || [])).next());
58922 });
58923};
58924var __importDefault = (this && this.__importDefault) || function (mod) {
58925 return (mod && mod.__esModule) ? mod : { "default": mod };
58926};
58927Object.defineProperty(exports, "__esModule", { value: true });
58928const Group_1 = __webpack_require__(/*! ./classLibrary/Group */ "./src/classLibrary/Group.ts");
58929const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
58930const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
58931const Template_1 = __webpack_require__(/*! ./classLibrary/Template */ "./src/classLibrary/Template.ts");
58932const rimraf = __webpack_require__(/*! rimraf */ "./node_modules/rimraf/rimraf.js");
58933function RemoveTemplate(dep, key, group) {
58934 return __awaiter(this, void 0, void 0, function* () {
58935 const g = new Group_1.Group(dep.core, dep.objex, path_1.default.resolve(__dirname, '../templates'), dep.util);
58936 if (!g.Exist(group))
58937 return chalk_1.default.red(`Group ${chalk_1.default.cyanBright(key)} does not exist!`);
58938 const template = new Template_1.Template(group, key, "", "", g);
58939 if (!template.Exist())
58940 return chalk_1.default.red(`Template ${chalk_1.default.cyanBright(key)} does not exist within Group ${chalk_1.default.cyanBright(group)}`);
58941 const sure = yield dep.autoInquirer.InquirePredicate(`Are you sure you want to remove ${key} from Group ${group}? This cannot be undone.`);
58942 if (!sure)
58943 return "User cancelled";
58944 rimraf.sync(template.Target);
58945 template.DeleteGroupEntry();
58946 return chalk_1.default.greenBright("Template successfully deleted");
58947 });
58948}
58949exports.RemoveTemplate = RemoveTemplate;
58950
58951
58952/***/ }),
58953
58954/***/ "./src/try.ts":
58955/*!********************!*\
58956 !*** ./src/try.ts ***!
58957 \********************/
58958/*! no static exports found */
58959/***/ (function(module, exports, __webpack_require__) {
58960
58961"use strict";
58962
58963var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
58964 return new (P || (P = Promise))(function (resolve, reject) {
58965 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
58966 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
58967 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
58968 step((generator = generator.apply(thisArg, _arguments || [])).next());
58969 });
58970};
58971var __importDefault = (this && this.__importDefault) || function (mod) {
58972 return (mod && mod.__esModule) ? mod : { "default": mod };
58973};
58974var __importStar = (this && this.__importStar) || function (mod) {
58975 if (mod && mod.__esModule) return mod;
58976 var result = {};
58977 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
58978 result["default"] = mod;
58979 return result;
58980};
58981Object.defineProperty(exports, "__esModule", { value: true });
58982const GitSimulator_1 = __webpack_require__(/*! ./classLibrary/GitSimulator */ "./src/classLibrary/GitSimulator.ts");
58983const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
58984const path = __importStar(__webpack_require__(/*! path */ "path"));
58985const generator_1 = __webpack_require__(/*! ./generator */ "./src/generator.ts");
58986const rimraf = __importStar(__webpack_require__(/*! rimraf */ "./node_modules/rimraf/rimraf.js"));
58987function Try(dep, from, to, git, copyNode) {
58988 return __awaiter(this, void 0, void 0, function* () {
58989 let f = path.resolve(process.cwd(), from);
58990 if (git) {
58991 let gitSimulate = new GitSimulator_1.GitSimulator(dep.core);
58992 f = yield gitSimulate.SimulateGit(process.cwd(), from);
58993 console.log(chalk_1.default.blueBright(f));
58994 }
58995 let ret = "";
58996 try {
58997 let cyanSafe = yield generator_1.Interrogate(dep, dep.autoInquirer, f, to);
58998 let logger = console.log;
58999 console.log = function (...args) {
59000 logger.apply(console, args);
59001 };
59002 ret = yield generator_1.GenerateTemplate(dep, f, to, cyanSafe, copyNode);
59003 }
59004 catch (e) {
59005 ret = chalk_1.default.redBright(e);
59006 }
59007 if (git) {
59008 rimraf.sync(f);
59009 }
59010 return ret;
59011 });
59012}
59013exports.Try = Try;
59014
59015
59016/***/ }),
59017
59018/***/ "./src/upgrade.ts":
59019/*!************************!*\
59020 !*** ./src/upgrade.ts ***!
59021 \************************/
59022/*! no static exports found */
59023/***/ (function(module, exports, __webpack_require__) {
59024
59025"use strict";
59026
59027var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
59028 return new (P || (P = Promise))(function (resolve, reject) {
59029 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
59030 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
59031 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
59032 step((generator = generator.apply(thisArg, _arguments || [])).next());
59033 });
59034};
59035var __importDefault = (this && this.__importDefault) || function (mod) {
59036 return (mod && mod.__esModule) ? mod : { "default": mod };
59037};
59038Object.defineProperty(exports, "__esModule", { value: true });
59039const Group_1 = __webpack_require__(/*! ./classLibrary/Group */ "./src/classLibrary/Group.ts");
59040const path_1 = __importDefault(__webpack_require__(/*! path */ "path"));
59041const chalk_1 = __importDefault(__webpack_require__(/*! chalk */ "./node_modules/chalk/index.js"));
59042const Template_1 = __webpack_require__(/*! ./classLibrary/Template */ "./src/classLibrary/Template.ts");
59043const RootFileFactory_1 = __webpack_require__(/*! ./classLibrary/RootFileFactory */ "./src/classLibrary/RootFileFactory.ts");
59044const FileWriter_1 = __webpack_require__(/*! ./classLibrary/FileWriter */ "./src/classLibrary/FileWriter.ts");
59045const Installer_1 = __webpack_require__(/*! ./classLibrary/Installer */ "./src/classLibrary/Installer.ts");
59046const fs_extra_1 = __importDefault(__webpack_require__(/*! fs-extra */ "./node_modules/fs-extra/lib/index.js"));
59047const node_fetch_1 = __importDefault(__webpack_require__(/*! node-fetch */ "./node_modules/node-fetch/lib/index.mjs"));
59048const rimraf = __webpack_require__(/*! rimraf */ "./node_modules/rimraf/rimraf.js");
59049function UpdateEverything(dep) {
59050 return __awaiter(this, void 0, void 0, function* () {
59051 const sure = yield dep.autoInquirer.InquirePredicate(`Update all templates to the latest version? This cannot be undone.`);
59052 if (!sure)
59053 return "User cancelled";
59054 let root = path_1.default.resolve(__dirname, '../templates');
59055 let g = new Group_1.Group(dep.core, dep.objex, root, dep.util);
59056 const groups = g.ListAsArray().Map(([_, v]) => v);
59057 for (const group of groups) {
59058 yield UpdateTemplatesInGroup(dep, group, false);
59059 }
59060 return "Completed updating all templates!";
59061 });
59062}
59063exports.UpdateEverything = UpdateEverything;
59064function UpdateTemplatesInGroup(dep, group, confirm = true) {
59065 return __awaiter(this, void 0, void 0, function* () {
59066 let root = path_1.default.resolve(__dirname, '../templates');
59067 let g = new Group_1.Group(dep.core, dep.objex, root, dep.util);
59068 //Check if group exist locally
59069 if (!g.Exist(group))
59070 return chalk_1.default.red(`Group ${group} does not exist!`);
59071 // Confirm if user wants to upgrade
59072 if (confirm) {
59073 const sure = yield dep.autoInquirer.InquirePredicate(`Update all templates from Group ${group} to the latest version? This cannot be undone.`);
59074 if (!sure)
59075 return "User cancelled";
59076 }
59077 //Extract data and update each template
59078 const data = g.ObtainGroupData(group);
59079 for (const key in data.templates) {
59080 if (data.templates.hasOwnProperty(key)) {
59081 const [t, s] = yield UpdateTemplate(dep, key, group, false);
59082 if (s) {
59083 console.log(t);
59084 }
59085 else {
59086 console.log(chalk_1.default.red(`Failed updating template ${key}:`));
59087 console.log(t);
59088 }
59089 }
59090 }
59091 return "Done updating templates!";
59092 });
59093}
59094exports.UpdateTemplatesInGroup = UpdateTemplatesInGroup;
59095function UpdateTemplate(dep, key, group, confirm = true) {
59096 return __awaiter(this, void 0, void 0, function* () {
59097 // check with server whether key exist
59098 const exist = yield dep.api.TemplateExist(key);
59099 if (!exist)
59100 return [chalk_1.default.red(`Template ${key} not longer exist!`), false];
59101 // Create a reflection of file system for template using Template object.
59102 const r = yield dep.api.GetTemplateData(key);
59103 // Ping endpoint to check if repository exist
59104 const resp = yield node_fetch_1.default(r.repository, { method: "HEAD" });
59105 if (resp.status !== 200)
59106 return [chalk_1.default.red("Repository does not exist! Please contact the owner of the template"), false];
59107 const g = new Group_1.Group(dep.core, dep.objex, path_1.default.resolve(__dirname, '../templates'), dep.util);
59108 //Reject if group does not exist
59109 if (!g.Exist(group))
59110 return [chalk_1.default.red(`Group ${chalk_1.default.cyanBright(key)} does not exist!`), false];
59111 // Reject if template does not exist within group
59112 const template = new Template_1.Template(group, key, r.display_name, r.repository, g);
59113 // if (!template.Exist()) return chalk.red(`Template ${chalk.cyanBright(key)} does not exist within Group ${chalk.cyanBright(group)}`);
59114 // Confirm if user wants to upgrade
59115 if (confirm) {
59116 const sure = yield dep.autoInquirer.InquirePredicate(`Update ${key} from Group ${group} to the latest version? This cannot be undone.`);
59117 if (!sure)
59118 return ["User cancelled", false];
59119 }
59120 // Delete current entry
59121 const old = template.Target + "_old";
59122 const oldExist = fs_extra_1.default.existsSync(old);
59123 if (oldExist)
59124 rimraf.sync(old);
59125 yield fs_extra_1.default.move(template.Target, old);
59126 try {
59127 // Attempt
59128 const fileFactory = new RootFileFactory_1.RootFileFactory(dep.core, __dirname, path_1.default.relative(__dirname, process.cwd()), template.Template);
59129 const writer = new FileWriter_1.FileWriter(dep.util);
59130 const installer = new Installer_1.Installer(dep.core, fileFactory, dep.util, writer);
59131 const string = yield installer.Install(template.Link, false);
59132 if (string !== "Installation Completed")
59133 throw string;
59134 if (template.Exist()) {
59135 const data = template.TemplateData;
59136 const verify = data.key === template.key && template.name == data.name && template.link === data.repo;
59137 if (verify) {
59138 const g = chalk_1.default.greenBright;
59139 const c = chalk_1.default.cyanBright;
59140 rimraf.sync(old);
59141 return [`${g("Successfully updated Template")} ${c(template.name)} ${g("in Group")} ${c(template.group)}`, true];
59142 }
59143 }
59144 const red = chalk_1.default.red;
59145 const cyan = chalk_1.default.cyan;
59146 throw red("Failed to upgrade Template ") + cyan(template.name) + red(" in Group ") + cyan(template.group) +
59147 red(` possibly due to the following reason
59148\t- The target folder does not exist
59149\t- The target git repository does not exist
59150\t- The target folder or repository does not contain [cyan.config.js] in the root folder
59151\t- The target folder or repository does not contain [cyan.json] in the root folder
59152\t- The data in the target repository's [cyan.json] does not match with server's
59153`);
59154 }
59155 catch (e) {
59156 //Rollback
59157 rimraf.sync(template.Target);
59158 yield fs_extra_1.default.move(old, template.Target);
59159 return [e, false];
59160 }
59161 });
59162}
59163exports.UpdateTemplate = UpdateTemplate;
59164
59165
59166/***/ }),
59167
59168/***/ "assert":
59169/*!*************************!*\
59170 !*** external "assert" ***!
59171 \*************************/
59172/*! no static exports found */
59173/***/ (function(module, exports) {
59174
59175module.exports = require("assert");
59176
59177/***/ }),
59178
59179/***/ "buffer":
59180/*!*************************!*\
59181 !*** external "buffer" ***!
59182 \*************************/
59183/*! no static exports found */
59184/***/ (function(module, exports) {
59185
59186module.exports = require("buffer");
59187
59188/***/ }),
59189
59190/***/ "child_process":
59191/*!********************************!*\
59192 !*** external "child_process" ***!
59193 \********************************/
59194/*! no static exports found */
59195/***/ (function(module, exports) {
59196
59197module.exports = require("child_process");
59198
59199/***/ }),
59200
59201/***/ "constants":
59202/*!****************************!*\
59203 !*** external "constants" ***!
59204 \****************************/
59205/*! no static exports found */
59206/***/ (function(module, exports) {
59207
59208module.exports = require("constants");
59209
59210/***/ }),
59211
59212/***/ "crypto":
59213/*!*************************!*\
59214 !*** external "crypto" ***!
59215 \*************************/
59216/*! no static exports found */
59217/***/ (function(module, exports) {
59218
59219module.exports = require("crypto");
59220
59221/***/ }),
59222
59223/***/ "events":
59224/*!*************************!*\
59225 !*** external "events" ***!
59226 \*************************/
59227/*! no static exports found */
59228/***/ (function(module, exports) {
59229
59230module.exports = require("events");
59231
59232/***/ }),
59233
59234/***/ "fs":
59235/*!*********************!*\
59236 !*** external "fs" ***!
59237 \*********************/
59238/*! no static exports found */
59239/***/ (function(module, exports) {
59240
59241module.exports = require("fs");
59242
59243/***/ }),
59244
59245/***/ "http":
59246/*!***********************!*\
59247 !*** external "http" ***!
59248 \***********************/
59249/*! no static exports found */
59250/***/ (function(module, exports) {
59251
59252module.exports = require("http");
59253
59254/***/ }),
59255
59256/***/ "https":
59257/*!************************!*\
59258 !*** external "https" ***!
59259 \************************/
59260/*! no static exports found */
59261/***/ (function(module, exports) {
59262
59263module.exports = require("https");
59264
59265/***/ }),
59266
59267/***/ "os":
59268/*!*********************!*\
59269 !*** external "os" ***!
59270 \*********************/
59271/*! no static exports found */
59272/***/ (function(module, exports) {
59273
59274module.exports = require("os");
59275
59276/***/ }),
59277
59278/***/ "path":
59279/*!***********************!*\
59280 !*** external "path" ***!
59281 \***********************/
59282/*! no static exports found */
59283/***/ (function(module, exports) {
59284
59285module.exports = require("path");
59286
59287/***/ }),
59288
59289/***/ "readline":
59290/*!***************************!*\
59291 !*** external "readline" ***!
59292 \***************************/
59293/*! no static exports found */
59294/***/ (function(module, exports) {
59295
59296module.exports = require("readline");
59297
59298/***/ }),
59299
59300/***/ "stream":
59301/*!*************************!*\
59302 !*** external "stream" ***!
59303 \*************************/
59304/*! no static exports found */
59305/***/ (function(module, exports) {
59306
59307module.exports = require("stream");
59308
59309/***/ }),
59310
59311/***/ "string_decoder":
59312/*!*********************************!*\
59313 !*** external "string_decoder" ***!
59314 \*********************************/
59315/*! no static exports found */
59316/***/ (function(module, exports) {
59317
59318module.exports = require("string_decoder");
59319
59320/***/ }),
59321
59322/***/ "tty":
59323/*!**********************!*\
59324 !*** external "tty" ***!
59325 \**********************/
59326/*! no static exports found */
59327/***/ (function(module, exports) {
59328
59329module.exports = require("tty");
59330
59331/***/ }),
59332
59333/***/ "url":
59334/*!**********************!*\
59335 !*** external "url" ***!
59336 \**********************/
59337/*! no static exports found */
59338/***/ (function(module, exports) {
59339
59340module.exports = require("url");
59341
59342/***/ }),
59343
59344/***/ "util":
59345/*!***********************!*\
59346 !*** external "util" ***!
59347 \***********************/
59348/*! no static exports found */
59349/***/ (function(module, exports) {
59350
59351module.exports = require("util");
59352
59353/***/ }),
59354
59355/***/ "zlib":
59356/*!***********************!*\
59357 !*** external "zlib" ***!
59358 \***********************/
59359/*! no static exports found */
59360/***/ (function(module, exports) {
59361
59362module.exports = require("zlib");
59363
59364/***/ })
59365
59366/******/ });
59367});
59368//# sourceMappingURL=cyan.js.map
\No newline at end of file