PageSourceSearch

https://www.tianan-insurance.com/tianwebsite/pc/js/index/index_href.js

js tianan-insurance.com collected 2026-10-04 08:28:37 UTC 178,947 bytes, 3,908 lines download raw bytes

1var htmls = ""
2var name = ""
3$(document).ready(function () {
4  (function () {
5    var link = document.createElement('link')
6    link.type = 'image/x-icon'
7    link.rel = 'shortcut icon'
8    link.href = '/favicon.ico'
9    document.getElementsByTagName('head')[0].appendChild(link)
10  }())
11  gettags = function (e) {
12    var evt = window.event || e
13    if (evt.keyCode == 13) {
14      var keyword = document.getElementById("tags").value
15      window.location.href = "/search/search_page.html?keyword=" + keyword
16    } else if (e == 0) {
17      var keyword = document.getElementById("tags").value
18      window.location.href = "/search/search_page.html?keyword=" + keyword
19    }
20  }
21  
22  extWebLogionCheck = function(){
23     if (infoToken&&infoToken!='') {
24            window.location.href='https://ta-extweb.95505.cn/extWeb/i.do?infoToken='+infoToken
25          }else{
26            alert('请先登录!')
27          }
28  };
29  var infoToken=''
30  counttags = function () {
31    $.ajax({
32      type: "GET",
33      dataType: "jsonp",
34      async: false,
35      jsonpCallback: "loginCallback", //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
36      url: "https://tianaw.95505.cn/tacpc/tiananapp/loginSession/getLoginSession",
37      beforeSend: function (XMLHttpRequest) {
38        XMLHttpRequest.setRequestHeader("content-type", "application/json; charset=utf-8")
39      },
40      success: function (data) {
41        name = data.split('-')[0]
42        infoToken=data.split('-')[1]
43        check()
44      },
45      error: function (e) {
46        name = ""
47        check()
48      }
49    })
50    var datas = {
51      "url": ajaxUrl + "/claim_service/getnumtages",
52      "params": ""
53    }
54    $.ajax({
55      type: "POST",
56      dataType: "json",
57      url: baseUrl + "/api/forwarding",
58      data: JSON.stringify(datas),
59      beforeSend: function (XMLHttpRequest) {
60        XMLHttpRequest.setRequestHeader("content-type", "application/json; charset=utf-8")
61      },
62      success: function (data) {
63        if (data.state == 1) {
64          //console.log(data.data)
65          var html = ""
66          if (data.data.length > 2) {
67            html += "热门关键字:<a href='/search/search_page.html?keyword=" + data.data[0].tags + "'>" + data.data[0].tags + "</a><img class='line_img'src='/tianwebsite/pc/img/line_img.jpg'/><a href='/search/search_page.html?keyword=" + data.data[1].tags + "'>" + data.data[1].tags + "</a><img class='line_img' src='/tianwebsite/pc/img/line_img.jpg'/><a href='/search/search_page.html?keyword=" + data.data[2].tags + "'>" + data.data[2].tags + "</a><img class='line_img'src='/tianwebsite/pc/img/line_img.jpg'/><a href='/customer_service/electronic_policy.html'>保单验真</a>"
68          } else if (data.data.length > 1) {
69            html += "热门关键字:<a href='/search/search_page.html?keyword=" + data.data[0].tags + "'>" + data.data[0].tags + "</a><img class='line_img' src='/tianwebsite/pc/img/line_img.jpg'/><a href='/search/search_page.html?keyword=" + data.data[1].tags + "'>" + data.data[1].tags + "</a><img class='line_img'src='/tianwebsite/pc/img/line_img.jpg'/><a href='/customer_service/electronic_policy.html'>保单验真</a>"
70          } else if (data.data.length > 0) {
71            html += "热门关键字:<a href='/search/search_page.html?keyword=" + data.data[0].tags + "'>" + data.data[0].tags + "</a><img class='line_img'src='/tianwebsite/pc/img/line_img.jpg'/><a href='/customer_service/electronic_policy.html'>保单验真</a>"
72          } else { }
73          htmls = html
74        } else { }
75        check()
76      }
77    })
78  }
79  counttags()
80  var timer = null
81
82  function check () {
83    var dom = document.getElementById("popular")
84    if (dom) {
85      //  执行dom加载完成后的操作
86      document.getElementById("popular").innerHTML = htmls
87      if (!name) {
88        var loginhtml = "<div class='login'>" +
89          "<div class='center' id='login'>" +
90          "<span>欢迎光临天安保险商城</span>&nbsp;" +
91          "<a target='_blank' href='https://tianaw.95505.cn/tacpc/#/login' id='login'>登录</a><img class='line_img' src='/tianwebsite/pc/img/line_img.jpg'/>" +
92          "<a target='_blank' href='https://tianaw.95505.cn/tacpc/#/register' id='register'>注册</a>" +
93          "<div class='assist-open' id='assist-open' >无障碍浏览</div>"+
94          "</div>" +
95          "</div>"
96        $("#login").replaceWith(loginhtml)
97      } else {
98        var loginhtml = "<div class='login'>" +
99          "<div class='center' id='login'>" +
100          "<span>欢迎光临天安保险商城</span>&nbsp;" +
101          "<a target='_blank' href='https://tianaw.95505.cn/tacpc/#/mydata/myMes' id='login'>" + name + "</a><img class='line_img' src='/tianwebsite/pc/img/line_img.jpg'/>" +
102          "<a target='_blank' href='https://tianaw.95505.cn/tacpc/#/mydata/myMes' id='login'>" + "个人中心" + "</a><img class='line_img' src='/tianwebsite/pc/img/line_img.jpg'/>" +
103          "<a target='_blank' href='https://tianaw.95505.cn/tacpc/tiananapp/loginSession/quit' id='register'>退出</a>" +
104           "<div class='assist-open' id='assist-open' >无障碍浏览</div>"+
105          "</div>" +
106          "</div>"
107        $("#login").replaceWith(loginhtml)
108      }
109      $("#popular").html(htmls)
110      //  清除定时器
111      //  清除定时器
112      if (!timer) {
113        clearTimeout(timer)
114      }
115    } else {
116      //自我调用
117      timer = setTimeout(check, 0)
118    }
119  }
120
121  var x
122  $("body").delegate(".funt_menu", "mouseenter", function () {
123    var ids = $(this).attr("id")
124    var y = ids.split("_")[1]
125    x = $(".right_menu_tab").children("li")
126    $(".choose_index" + y).addClass("backgroundorange")
127    $(".right_content" + y).removeClass("displaynone")
128    for (var i = 1; i < x.length + 1; i++) {
129      if (i != y) {
130        $(".choose_index" + i).removeClass("backgroundorange")
131        $(".random_content" + i).addClass("displaynone")
132      }
133    }
134  })
135  $("body").delegate(".funt_menu", "mouseleave", function () {
136    for (var i = 2; i < x.length + 2; i++) {
137      $(".choose_index" + i).removeClass("backgroundorange")
138      $(".right_content" + i).addClass("displaynone")
139    }
140  })
141  $("body").delegate(".goToTop", "click", function () {
142    $('html,body').animate({
143      scrollTop: 0
144    }, 'slow')
145  })
146
147  //访问统计
148  function getBrowserInfo () {
149    var agent = navigator.userAgent.toLowerCase()
150    var arr = []
151    var system = agent.split(" ")[1].split(" ")[0].split("(")[1]
152    arr.push(system)
153    var regStr_edge = /edge\/[\d.]+/gi
154    var regStr_ie = /trident\/[\d.]+/gi
155    var regStr_ff = /firefox\/[\d.]+/gi
156    var regStr_chrome = /chrome\/[\d.]+/gi
157    var regStr_saf = /safari\/[\d.]+/gi
158    var regStr_opera = /opr\/[\d.]+/gi
159    var regStr_UC = /ubrowser\/[\d.]+/gi
160    var regStr_BIDU = /bidubrowser\/[\d.]+/gi
161    var regStr_360 = /360\/[\d.]+/gi
162    if (agent.indexOf("bidubrowser") > 0) {
163      arr.push("百度")
164      return arr
165    }
166    if (agent.indexOf("ubrowser") > 0) {
167
168      arr.push("UC")
169      return arr
170    }
171    if (agent.indexOf("trident") > 0) {
172      arr.push("IE")
173      return arr
174    };
175    if (agent.indexOf("edge") > 0) {
176
177      arr.push("Edge")
178      return arr
179    };
180    if (agent.indexOf("firefox") > 0) {
181
182      arr.push("火狐")
183      return arr
184    }
185    //Op
186    if (agent.indexOf("opr") > 0) {
187
188      arr.push("oprea")
189      return arr
190    }
191    //Safari
192    if (agent.indexOf("safari") > 0 && agent.indexOf("chrome") < 0) {
193
194      arr.push("Safari")
195      return arr
196    }
197    if (agent.indexOf("qqbrowser") > 0) {
198
199      arr.push("QQ")
200      return arr
201    }
202    //360
203    if (agent.indexOf("chrome") > 0) {
204      var is360 = _mime("type", "application/vnd.chromium.remoting-viewer")
205
206      function _mime (option, value) {
207        var mimeTypes = navigator.mimeTypes
208        for (var mt in mimeTypes) {
209          if (mimeTypes[mt][option] == value) {
210            return true
211          }
212        }
213        return false
214      }
215      if (is360) {
216        // arr.push(agent.match(regStr_360)[0].split("/")[0]);
217        arr.push("360")
218        return arr
219      }
220
221    }
222    //Chrome
223    if (agent.indexOf("chrome") > 0) {
224      arr.push(agent.match(regStr_chrome)[0].split("/")[0])
225      arr.push(agent.match(regStr_chrome)[0].split("/")[1])
226      return arr
227    }
228
229  };
230  //ip地址和
231  function getIntnetIP () {
232    var JSONP = document.createElement("script")
233    JSONP.type = "text/javascript"
234    JSONP.src = "https://pv.sohu.com/cityjson?ie=utf-8"
235    document.getElementsByTagName("head")[0].appendChild(JSONP)
236    myFunction()
237  }
238
239  function myFunction () {
240    setTimeout(function () {
241      var xmlhttp
242      if (window.XMLHttpRequest) {
243        //  IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
244        xmlhttp = new XMLHttpRequest()
245      } else {
246        // IE6, IE5 浏览器执行代码
247        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
248      }
249      xmlhttp.onreadystatechange = function () {
250        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { }
251      }
252
253      xmlhttp.open("post", baseUrl + "/api/forwarding", true)
254      var data = {
255        url: window.location.href,
256        userAgent: navigator.userAgent,
257        referrer: document.referrer,
258        cookie: document.cookie,
259        device: IsPC(),
260        os: getBrowserInfo()[0],
261        browser: getBrowserInfo()[1],
262        ip: returnCitySN['cip'],
263        area: returnCitySN['cname'],
264      }
265      var datas = {
266        "url": ajaxUrl + "/cms/addvisitlob",
267        "params": data
268      }
269      xmlhttp.setRequestHeader("content-type", "application/json")
270      xmlhttp.send(JSON.stringify(datas))
271    }, 1000)
272  }
273  //设备类型
274  function IsPC () {
275    var device
276    var system = {}
277    var p = navigator.platform
278    system.win = p.indexOf("Win") == 0
279    system.mac = p.indexOf("Mac") == 0
280    system.x11 = (p == "X11") || (p.indexOf("Linux") == 0)
281    if (system.win || system.mac || system.xll) { //如果是电脑跳转到
282      device = "COMPUTER"
283      return device
284    } else { //如果是手机,跳转到
285      device = "MOBILE"
286      return device
287    }
288  };
289  getIntnetIP()
290  (function (global, factory) {
291    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
292    typeof define === 'function' && define.amd ? define(factory) :
293    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.AssistEntry = factory());
294  }(this, (function () { 'use strict';
295
296    function ownKeys$1(object, enumerableOnly) {
297      var keys = Object.keys(object);
298
299      if (Object.getOwnPropertySymbols) {
300        var symbols = Object.getOwnPropertySymbols(object);
301
302        if (enumerableOnly) {
303          symbols = symbols.filter(function (sym) {
304            return Object.getOwnPropertyDescriptor(object, sym).enumerable;
305          });
306        }
307
308        keys.push.apply(keys, symbols);
309      }
310
311      return keys;
312    }
313
314    function _objectSpread2(target) {
315      for (var i = 1; i < arguments.length; i++) {
316        var source = arguments[i] != null ? arguments[i] : {};
317
318        if (i % 2) {
319          ownKeys$1(Object(source), true).forEach(function (key) {
320            _defineProperty(target, key, source[key]);
321          });
322        } else if (Object.getOwnPropertyDescriptors) {
323          Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
324        } else {
325          ownKeys$1(Object(source)).forEach(function (key) {
326            Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
327          });
328        }
329      }
330
331      return target;
332    }
333
334    function _classCallCheck(instance, Constructor) {
335      if (!(instance instanceof Constructor)) {
336        throw new TypeError("Cannot call a class as a function");
337      }
338    }
339
340    function _defineProperties(target, props) {
341      for (var i = 0; i < props.length; i++) {
342        var descriptor = props[i];
343        descriptor.enumerable = descriptor.enumerable || false;
344        descriptor.configurable = true;
345        if ("value" in descriptor) descriptor.writable = true;
346        Object.defineProperty(target, descriptor.key, descriptor);
347      }
348    }
349
350    function _createClass(Constructor, protoProps, staticProps) {
351      if (protoProps) _defineProperties(Constructor.prototype, protoProps);
352      if (staticProps) _defineProperties(Constructor, staticProps);
353      return Constructor;
354    }
355
356    function _defineProperty(obj, key, value) {
357      if (key in obj) {
358        Object.defineProperty(obj, key, {
359          value: value,
360          enumerable: true,
361          configurable: true,
362          writable: true
363        });
364      } else {
365        obj[key] = value;
366      }
367
368      return obj;
369    }
370
371    function _inherits(subClass, superClass) {
372      if (typeof superClass !== "function" && superClass !== null) {
373        throw new TypeError("Super expression must either be null or a function");
374      }
375
376      subClass.prototype = Object.create(superClass && superClass.prototype, {
377        constructor: {
378          value: subClass,
379          writable: true,
380          configurable: true
381        }
382      });
383      if (superClass) _setPrototypeOf(subClass, superClass);
384    }
385
386    function _getPrototypeOf(o) {
387      _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
388        return o.__proto__ || Object.getPrototypeOf(o);
389      };
390      return _getPrototypeOf(o);
391    }
392
393    function _setPrototypeOf(o, p) {
394      _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
395        o.__proto__ = p;
396        return o;
397      };
398
399      return _setPrototypeOf(o, p);
400    }
401
402    function _isNativeReflectConstruct() {
403      if (typeof Reflect === "undefined" || !Reflect.construct) return false;
404      if (Reflect.construct.sham) return false;
405      if (typeof Proxy === "function") return true;
406
407      try {
408        Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
409        return true;
410      } catch (e) {
411        return false;
412      }
413    }
414
415    function _assertThisInitialized(self) {
416      if (self === void 0) {
417        throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
418      }
419
420      return self;
421    }
422
423    function _possibleConstructorReturn(self, call) {
424      if (call && (typeof call === "object" || typeof call === "function")) {
425        return call;
426      }
427
428      return _assertThisInitialized(self);
429    }
430
431    function _createSuper(Derived) {
432      var hasNativeReflectConstruct = _isNativeReflectConstruct();
433
434      return function _createSuperInternal() {
435        var Super = _getPrototypeOf(Derived),
436            result;
437
438        if (hasNativeReflectConstruct) {
439          var NewTarget = _getPrototypeOf(this).constructor;
440
441          result = Reflect.construct(Super, arguments, NewTarget);
442        } else {
443          result = Super.apply(this, arguments);
444        }
445
446        return _possibleConstructorReturn(this, result);
447      };
448    }
449
450    function _unsupportedIterableToArray(o, minLen) {
451      if (!o) return;
452      if (typeof o === "string") return _arrayLikeToArray(o, minLen);
453      var n = Object.prototype.toString.call(o).slice(8, -1);
454      if (n === "Object" && o.constructor) n = o.constructor.name;
455      if (n === "Map" || n === "Set") return Array.from(o);
456      if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
457    }
458
459    function _arrayLikeToArray(arr, len) {
460      if (len == null || len > arr.length) len = arr.length;
461
462      for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
463
464      return arr2;
465    }
466
467    function _createForOfIteratorHelper(o, allowArrayLike) {
468      var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
469
470      if (!it) {
471        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
472          if (it) o = it;
473          var i = 0;
474
475          var F = function () {};
476
477          return {
478            s: F,
479            n: function () {
480              if (i >= o.length) return {
481                done: true
482              };
483              return {
484                done: false,
485                value: o[i++]
486              };
487            },
488            e: function (e) {
489              throw e;
490            },
491            f: F
492          };
493        }
494
495        throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
496      }
497
498      var normalCompletion = true,
499          didErr = false,
500          err;
501      return {
502        s: function () {
503          it = it.call(o);
504        },
505        n: function () {
506          var step = it.next();
507          normalCompletion = step.done;
508          return step;
509        },
510        e: function (e) {
511          didErr = true;
512          err = e;
513        },
514        f: function () {
515          try {
516            if (!normalCompletion && it.return != null) it.return();
517          } finally {
518            if (didErr) throw err;
519          }
520        }
521      };
522    }
523
524    var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
525
526    function createCommonjsModule(fn, basedir, module) {
527      return module = {
528        path: basedir,
529        exports: {},
530        require: function (path, base) {
531          return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);
532        }
533      }, fn(module, module.exports), module.exports;
534    }
535
536    function commonjsRequire () {
537      throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
538    }
539
540    var check = function (it) {
541      return it && it.Math == Math && it;
542    };
543
544    // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
545    var global_1 =
546      // eslint-disable-next-line es/no-global-this -- safe
547      check(typeof globalThis == 'object' && globalThis) ||
548      check(typeof window == 'object' && window) ||
549      // eslint-disable-next-line no-restricted-globals -- safe
550      check(typeof self == 'object' && self) ||
551      check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||
552      // eslint-disable-next-line no-new-func -- fallback
553      (function () { return this; })() || Function('return this')();
554
555    var fails = function (exec) {
vendor: 4,313 bytes, lines 556-671
556      try {
557        return !!exec();
558      } catch (error) {
559        return true;
560      }
561    };
562
563    // Detect IE8's incomplete defineProperty implementation
564    var descriptors = !fails(function () {
565      // eslint-disable-next-line es/no-object-defineproperty -- required for testing
566      return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
567    });
568
569    var $propertyIsEnumerable = {}.propertyIsEnumerable;
570    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
571    var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;
572
573    // Nashorn ~ JDK8 bug
574    var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({ 1: 2 }, 1);
575
576    // `Object.prototype.propertyIsEnumerable` method implementation
577    // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
578    var f$4 = NASHORN_BUG ? function propertyIsEnumerable(V) {
579      var descriptor = getOwnPropertyDescriptor$1(this, V);
580      return !!descriptor && descriptor.enumerable;
581    } : $propertyIsEnumerable;
582
583    var objectPropertyIsEnumerable = {
584      f: f$4
585    };
586
587    var createPropertyDescriptor = function (bitmap, value) {
588      return {
589        enumerable: !(bitmap & 1),
590        configurable: !(bitmap & 2),
591        writable: !(bitmap & 4),
592        value: value
593      };
594    };
595
596    var toString = {}.toString;
597
598    var classofRaw = function (it) {
599      return toString.call(it).slice(8, -1);
600    };
601
602    var split = ''.split;
603
604    // fallback for non-array-like ES3 and non-enumerable old V8 strings
605    var indexedObject = fails(function () {
606      // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
607      // eslint-disable-next-line no-prototype-builtins -- safe
608      return !Object('z').propertyIsEnumerable(0);
609    }) ? function (it) {
610      return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
611    } : Object;
612
613    // `RequireObjectCoercible` abstract operation
614    // https://tc39.es/ecma262/#sec-requireobjectcoercible
615    var requireObjectCoercible = function (it) {
616      if (it == undefined) throw TypeError("Can't call method on " + it);
617      return it;
618    };
619
620    // toObject with fallback for non-array-like ES3 strings
621
622
623
624    var toIndexedObject = function (it) {
625      return indexedObject(requireObjectCoercible(it));
626    };
627
628    var isObject = function (it) {
629      return typeof it === 'object' ? it !== null : typeof it === 'function';
630    };
631
632    // `ToPrimitive` abstract operation
633    // https://tc39.es/ecma262/#sec-toprimitive
634    // instead of the ES6 spec version, we didn't implement @@toPrimitive case
635    // and the second argument - flag - preferred type is a string
636    var toPrimitive = function (input, PREFERRED_STRING) {
637      if (!isObject(input)) return input;
638      var fn, val;
639      if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
640      if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
641      if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
642      throw TypeError("Can't convert object to primitive value");
643    };
644
645    // `ToObject` abstract operation
646    // https://tc39.es/ecma262/#sec-toobject
647    var toObject = function (argument) {
648      return Object(requireObjectCoercible(argument));
649    };
650
651    var hasOwnProperty = {}.hasOwnProperty;
652
653    var has$1 = function hasOwn(it, key) {
654      return hasOwnProperty.call(toObject(it), key);
655    };
656
657    var document$1 = global_1.document;
658    // typeof document.createElement is 'object' in old IE
659    var EXISTS = isObject(document$1) && isObject(document$1.createElement);
660
661    var documentCreateElement = function (it) {
662      return EXISTS ? document$1.createElement(it) : {};
663    };
664
665    // Thank's IE8 for his funny defineProperty
666    var ie8DomDefine = !descriptors && !fails(function () {
667      // eslint-disable-next-line es/no-object-defineproperty -- requied for testing
668      return Object.defineProperty(documentCreateElement('div'), 'a', {
669        get: function () { return 7; }
670      }).a != 7;
671    });
vendor: 1,977 bytes, lines 672-726
672
673    // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
674    var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
675
676    // `Object.getOwnPropertyDescriptor` method
677    // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
678    var f$3 = descriptors ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
679      O = toIndexedObject(O);
680      P = toPrimitive(P, true);
681      if (ie8DomDefine) try {
682        return $getOwnPropertyDescriptor(O, P);
683      } catch (error) { /* empty */ }
684      if (has$1(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
685    };
686
687    var objectGetOwnPropertyDescriptor = {
688      f: f$3
689    };
690
691    var anObject = function (it) {
692      if (!isObject(it)) {
693        throw TypeError(String(it) + ' is not an object');
694      } return it;
695    };
696
697    // eslint-disable-next-line es/no-object-defineproperty -- safe
698    var $defineProperty = Object.defineProperty;
699
700    // `Object.defineProperty` method
701    // https://tc39.es/ecma262/#sec-object.defineproperty
702    var f$2 = descriptors ? $defineProperty : function defineProperty(O, P, Attributes) {
703      anObject(O);
704      P = toPrimitive(P, true);
705      anObject(Attributes);
706      if (ie8DomDefine) try {
707        return $defineProperty(O, P, Attributes);
708      } catch (error) { /* empty */ }
709      if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
710      if ('value' in Attributes) O[P] = Attributes.value;
711      return O;
712    };
713
714    var objectDefineProperty = {
715      f: f$2
716    };
717
718    var createNonEnumerableProperty = descriptors ? function (object, key, value) {
719      return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
720    } : function (object, key, value) {
721      object[key] = value;
722      return object;
723    };
724
725    var setGlobal = function (key, value) {
726      try {
vendor: 4,712 bytes, lines 727-870
727        createNonEnumerableProperty(global_1, key, value);
728      } catch (error) {
729        global_1[key] = value;
730      } return value;
731    };
732
733    var SHARED = '__core-js_shared__';
734    var store$1 = global_1[SHARED] || setGlobal(SHARED, {});
735
736    var sharedStore = store$1;
737
738    var functionToString = Function.toString;
739
740    // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
741    if (typeof sharedStore.inspectSource != 'function') {
742      sharedStore.inspectSource = function (it) {
743        return functionToString.call(it);
744      };
745    }
746
747    var inspectSource = sharedStore.inspectSource;
748
749    var WeakMap$1 = global_1.WeakMap;
750
751    var nativeWeakMap = typeof WeakMap$1 === 'function' && /native code/.test(inspectSource(WeakMap$1));
752
753    var shared = createCommonjsModule(function (module) {
754    (module.exports = function (key, value) {
755      return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});
756    })('versions', []).push({
757      version: '3.12.1',
758      mode: 'global',
759      copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
760    });
761    });
762
763    var id = 0;
764    var postfix = Math.random();
765
766    var uid = function (key) {
767      return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
768    };
769
770    var keys$1 = shared('keys');
771
772    var sharedKey = function (key) {
773      return keys$1[key] || (keys$1[key] = uid(key));
774    };
775
776    var hiddenKeys$1 = {};
777
778    var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
779    var WeakMap = global_1.WeakMap;
780    var set, get, has;
781
782    var enforce = function (it) {
783      return has(it) ? get(it) : set(it, {});
784    };
785
786    var getterFor = function (TYPE) {
787      return function (it) {
788        var state;
789        if (!isObject(it) || (state = get(it)).type !== TYPE) {
790          throw TypeError('Incompatible receiver, ' + TYPE + ' required');
791        } return state;
792      };
793    };
794
795    if (nativeWeakMap || sharedStore.state) {
796      var store = sharedStore.state || (sharedStore.state = new WeakMap());
797      var wmget = store.get;
798      var wmhas = store.has;
799      var wmset = store.set;
800      set = function (it, metadata) {
801        if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
802        metadata.facade = it;
803        wmset.call(store, it, metadata);
804        return metadata;
805      };
806      get = function (it) {
807        return wmget.call(store, it) || {};
808      };
809      has = function (it) {
810        return wmhas.call(store, it);
811      };
812    } else {
813      var STATE = sharedKey('state');
814      hiddenKeys$1[STATE] = true;
815      set = function (it, metadata) {
816        if (has$1(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
817        metadata.facade = it;
818        createNonEnumerableProperty(it, STATE, metadata);
819        return metadata;
820      };
821      get = function (it) {
822        return has$1(it, STATE) ? it[STATE] : {};
823      };
824      has = function (it) {
825        return has$1(it, STATE);
826      };
827    }
828
829    var internalState = {
830      set: set,
831      get: get,
832      has: has,
833      enforce: enforce,
834      getterFor: getterFor
835    };
836
837    var redefine = createCommonjsModule(function (module) {
838    var getInternalState = internalState.get;
839    var enforceInternalState = internalState.enforce;
840    var TEMPLATE = String(String).split('String');
841
842    (module.exports = function (O, key, value, options) {
843      var unsafe = options ? !!options.unsafe : false;
844      var simple = options ? !!options.enumerable : false;
845      var noTargetGet = options ? !!options.noTargetGet : false;
846      var state;
847      if (typeof value == 'function') {
848        if (typeof key == 'string' && !has$1(value, 'name')) {
849          createNonEnumerableProperty(value, 'name', key);
850        }
851        state = enforceInternalState(value);
852        if (!state.source) {
853          state.source = TEMPLATE.join(typeof key == 'string' ? key : '');
854        }
855      }
856      if (O === global_1) {
857        if (simple) O[key] = value;
858        else setGlobal(key, value);
859        return;
860      } else if (!unsafe) {
861        delete O[key];
862      } else if (!noTargetGet && O[key]) {
863        simple = true;
864      }
865      if (simple) O[key] = value;
866      else createNonEnumerableProperty(O, key, value);
867    // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
868    })(Function.prototype, 'toString', function toString() {
869      return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
870    });
vendor: 5,937 bytes, lines 871-1038
871    });
872
873    var path = global_1;
874
875    var aFunction$1 = function (variable) {
876      return typeof variable == 'function' ? variable : undefined;
877    };
878
879    var getBuiltIn = function (namespace, method) {
880      return arguments.length < 2 ? aFunction$1(path[namespace]) || aFunction$1(global_1[namespace])
881        : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
882    };
883
884    var ceil = Math.ceil;
885    var floor$2 = Math.floor;
886
887    // `ToInteger` abstract operation
888    // https://tc39.es/ecma262/#sec-tointeger
889    var toInteger = function (argument) {
890      return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor$2 : ceil)(argument);
891    };
892
893    var min$4 = Math.min;
894
895    // `ToLength` abstract operation
896    // https://tc39.es/ecma262/#sec-tolength
897    var toLength = function (argument) {
898      return argument > 0 ? min$4(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
899    };
900
901    var max$2 = Math.max;
902    var min$3 = Math.min;
903
904    // Helper for a popular repeating case of the spec:
905    // Let integer be ? ToInteger(index).
906    // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
907    var toAbsoluteIndex = function (index, length) {
908      var integer = toInteger(index);
909      return integer < 0 ? max$2(integer + length, 0) : min$3(integer, length);
910    };
911
912    // `Array.prototype.{ indexOf, includes }` methods implementation
913    var createMethod$2 = function (IS_INCLUDES) {
914      return function ($this, el, fromIndex) {
915        var O = toIndexedObject($this);
916        var length = toLength(O.length);
917        var index = toAbsoluteIndex(fromIndex, length);
918        var value;
919        // Array#includes uses SameValueZero equality algorithm
920        // eslint-disable-next-line no-self-compare -- NaN check
921        if (IS_INCLUDES && el != el) while (length > index) {
922          value = O[index++];
923          // eslint-disable-next-line no-self-compare -- NaN check
924          if (value != value) return true;
925        // Array#indexOf ignores holes, Array#includes - not
926        } else for (;length > index; index++) {
927          if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
928        } return !IS_INCLUDES && -1;
929      };
930    };
931
932    var arrayIncludes = {
933      // `Array.prototype.includes` method
934      // https://tc39.es/ecma262/#sec-array.prototype.includes
935      includes: createMethod$2(true),
936      // `Array.prototype.indexOf` method
937      // https://tc39.es/ecma262/#sec-array.prototype.indexof
938      indexOf: createMethod$2(false)
939    };
940
941    var indexOf = arrayIncludes.indexOf;
942
943
944    var objectKeysInternal = function (object, names) {
945      var O = toIndexedObject(object);
946      var i = 0;
947      var result = [];
948      var key;
949      for (key in O) !has$1(hiddenKeys$1, key) && has$1(O, key) && result.push(key);
950      // Don't enum bug & hidden keys
951      while (names.length > i) if (has$1(O, key = names[i++])) {
952        ~indexOf(result, key) || result.push(key);
953      }
954      return result;
955    };
956
957    // IE8- don't enum bug keys
958    var enumBugKeys = [
959      'constructor',
960      'hasOwnProperty',
961      'isPrototypeOf',
962      'propertyIsEnumerable',
963      'toLocaleString',
964      'toString',
965      'valueOf'
966    ];
967
968    var hiddenKeys = enumBugKeys.concat('length', 'prototype');
969
970    // `Object.getOwnPropertyNames` method
971    // https://tc39.es/ecma262/#sec-object.getownpropertynames
972    // eslint-disable-next-line es/no-object-getownpropertynames -- safe
973    var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
974      return objectKeysInternal(O, hiddenKeys);
975    };
976
977    var objectGetOwnPropertyNames = {
978      f: f$1
979    };
980
981    // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
982    var f = Object.getOwnPropertySymbols;
983
984    var objectGetOwnPropertySymbols = {
985      f: f
986    };
987
988    // all object keys, includes non-enumerable and symbols
989    var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
990      var keys = objectGetOwnPropertyNames.f(anObject(it));
991      var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
992      return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
993    };
994
995    var copyConstructorProperties = function (target, source) {
996      var keys = ownKeys(source);
997      var defineProperty = objectDefineProperty.f;
998      var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
999      for (var i = 0; i < keys.length; i++) {
1000        var key = keys[i];
1001        if (!has$1(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
1002      }
1003    };
1004
1005    var replacement = /#|\.prototype\./;
1006
1007    var isForced = function (feature, detection) {
1008      var value = data[normalize(feature)];
1009      return value == POLYFILL ? true
1010        : value == NATIVE ? false
1011        : typeof detection == 'function' ? fails(detection)
1012        : !!detection;
1013    };
1014
1015    var normalize = isForced.normalize = function (string) {
1016      return String(string).replace(replacement, '.').toLowerCase();
1017    };
1018
1019    var data = isForced.data = {};
1020    var NATIVE = isForced.NATIVE = 'N';
1021    var POLYFILL = isForced.POLYFILL = 'P';
1022
1023    var isForced_1 = isForced;
1024
1025    var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
1026
1027
1028
1029
1030
1031
1032    /*
1033      options.target      - name of the target object
1034      options.global      - target is the global object
1035      options.stat        - export as static methods of target
1036      options.proto       - export as prototype methods of target
1037      options.real        - real prototype method for the `pure` version
1038      options.forced      - export even if the native feature is available
1039      options.bind        - bind methods to the target, required for the `pure` version
1040      options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
1041      options.unsafe      - use the simple assignment of property instead of delete + defineProperty
1042      options.sham        - add a flag to not completely full polyfills
1043      options.enumerable  - export as enumerable property
1044      options.noTargetGet - prevent calling a getter on target
1045    */
1046    var _export = function (options, source) {
1047      var TARGET = options.target;
1048      var GLOBAL = options.global;
1049      var STATIC = options.stat;
1050      var FORCED, target, key, targetProperty, sourceProperty, descriptor;
1051      if (GLOBAL) {
1052        target = global_1;
1053      } else if (STATIC) {
1054        target = global_1[TARGET] || setGlobal(TARGET, {});
1055      } else {
1056        target = (global_1[TARGET] || {}).prototype;
1057      }
1058      if (target) for (key in source) {
1059        sourceProperty = source[key];
1060        if (options.noTargetGet) {
1061          descriptor = getOwnPropertyDescriptor(target, key);
1062          targetProperty = descriptor && descriptor.value;
1063        } else targetProperty = target[key];
1064        FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
1065        // contained in target
1066        if (!FORCED && targetProperty !== undefined) {
1067          if (typeof sourceProperty === typeof targetProperty) continue;
1068          copyConstructorProperties(sourceProperty, targetProperty);
1069        }
1070        // add a flag to not completely full polyfills
1071        if (options.sham || (targetProperty && targetProperty.sham)) {
1072          createNonEnumerableProperty(sourceProperty, 'sham', true);
1073        }
1074        // extend global
1075        redefine(target, key, sourceProperty, options);
1076      }
1077    };
1078
1079    var aFunction = function (it) {
1080      if (typeof it != 'function') {
1081        throw TypeError(String(it) + ' is not a function');
1082      } return it;
1083    };
1084
1085    // optional / simple context binding
1086    var functionBindContext = function (fn, that, length) {
1087      aFunction(fn);
1088      if (that === undefined) return fn;
1089      switch (length) {
1090        case 0: return function () {
1091          return fn.call(that);
1092        };
1093        case 1: return function (a) {
1094          return fn.call(that, a);
1095        };
1096        case 2: return function (a, b) {
1097          return fn.call(that, a, b);
1098        };
1099        case 3: return function (a, b, c) {
1100          return fn.call(that, a, b, c);
1101        };
1102      }
1103      return function (/* ...args */) {
1104        return fn.apply(that, arguments);
1105      };
1106    };
1107
1108    // `IsArray` abstract operation
1109    // https://tc39.es/ecma262/#sec-isarray
1110    // eslint-disable-next-line es/no-array-isarray -- safe
1111    var isArray = Array.isArray || function isArray(arg) {
1112      return classofRaw(arg) == 'Array';
1113    };
1114
1115    var engineUserAgent = getBuiltIn('navigator', 'userAgent') || '';
1116
1117    var process = global_1.process;
1118    var versions = process && process.versions;
1119    var v8 = versions && versions.v8;
1120    var match, version;
1121
1122    if (v8) {
1123      match = v8.split('.');
1124      version = match[0] < 4 ? 1 : match[0] + match[1];
1125    } else if (engineUserAgent) {
1126      match = engineUserAgent.match(/Edge\/(\d+)/);
1127      if (!match || match[1] >= 74) {
1128        match = engineUserAgent.match(/Chrome\/(\d+)/);
1129        if (match) version = match[1];
1130      }
1131    }
1132
1133    var engineV8Version = version && +version;
1134
1135    /* eslint-disable es/no-symbol -- required for testing */
1136
1137
1138
1139    // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
1140    var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
1141      return !String(Symbol()) ||
1142        // Chrome 38 Symbol has incorrect toString conversion
1143        // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
1144        !Symbol.sham && engineV8Version && engineV8Version < 41;
1145    });
1146
1147    /* eslint-disable es/no-symbol -- required for testing */
1148
1149
1150    var useSymbolAsUid = nativeSymbol
1151      && !Symbol.sham
1152      && typeof Symbol.iterator == 'symbol';
1153
1154    var WellKnownSymbolsStore = shared('wks');
1155    var Symbol$1 = global_1.Symbol;
1156    var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid;
1157
1158    var wellKnownSymbol = function (name) {
1159      if (!has$1(WellKnownSymbolsStore, name) || !(nativeSymbol || typeof WellKnownSymbolsStore[name] == 'string')) {
1160        if (nativeSymbol && has$1(Symbol$1, name)) {
1161          WellKnownSymbolsStore[name] = Symbol$1[name];
1162        } else {
1163          WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
1164        }
1165      } return WellKnownSymbolsStore[name];
1166    };
1167
1168    var SPECIES$4 = wellKnownSymbol('species');
1169
1170    // `ArraySpeciesCreate` abstract operation
1171    // https://tc39.es/ecma262/#sec-arrayspeciescreate
1172    var arraySpeciesCreate = function (originalArray, length) {
1173      var C;
1174      if (isArray(originalArray)) {
1175        C = originalArray.constructor;
1176        // cross-realm fallback
1177        if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
1178        else if (isObject(C)) {
1179          C = C[SPECIES$4];
1180          if (C === null) C = undefined;
1181        }
1182      } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
1183    };
1184
1185    var push = [].push;
1186
1187    // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
1188    var createMethod$1 = function (TYPE) {
1189      var IS_MAP = TYPE == 1;
1190      var IS_FILTER = TYPE == 2;
1191      var IS_SOME = TYPE == 3;
1192      var IS_EVERY = TYPE == 4;
1193      var IS_FIND_INDEX = TYPE == 6;
1194      var IS_FILTER_OUT = TYPE == 7;
1195      var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
1196      return function ($this, callbackfn, that, specificCreate) {
1197        var O = toObject($this);
1198        var self = indexedObject(O);
1199        var boundFunction = functionBindContext(callbackfn, that, 3);
1200        var length = toLength(self.length);
1201        var index = 0;
1202        var create = specificCreate || arraySpeciesCreate;
1203        var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
1204        var value, result;
1205        for (;length > index; index++) if (NO_HOLES || index in self) {
1206          value = self[index];
1207          result = boundFunction(value, index, O);
1208          if (TYPE) {
1209            if (IS_MAP) target[index] = result; // map
1210            else if (result) switch (TYPE) {
1211              case 3: return true;              // some
1212              case 5: return value;             // find
1213              case 6: return index;             // findIndex
1214              case 2: push.call(target, value); // filter
1215            } else switch (TYPE) {
1216              case 4: return false;             // every
1217              case 7: push.call(target, value); // filterOut
1218            }
1219          }
1220        }
1221        return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
1222      };
1223    };
1224
1225    var arrayIteration = {
1226      // `Array.prototype.forEach` method
1227      // https://tc39.es/ecma262/#sec-array.prototype.foreach
1228      forEach: createMethod$1(0),
1229      // `Array.prototype.map` method
1230      // https://tc39.es/ecma262/#sec-array.prototype.map
1231      map: createMethod$1(1),
1232      // `Array.prototype.filter` method
1233      // https://tc39.es/ecma262/#sec-array.prototype.filter
1234      filter: createMethod$1(2),
1235      // `Array.prototype.some` method
1236      // https://tc39.es/ecma262/#sec-array.prototype.some
1237      some: createMethod$1(3),
1238      // `Array.prototype.every` method
1239      // https://tc39.es/ecma262/#sec-array.prototype.every
1240      every: createMethod$1(4),
1241      // `Array.prototype.find` method
1242      // https://tc39.es/ecma262/#sec-array.prototype.find
1243      find: createMethod$1(5),
1244      // `Array.prototype.findIndex` method
1245      // https://tc39.es/ecma262/#sec-array.prototype.findIndex
1246      findIndex: createMethod$1(6),
1247      // `Array.prototype.filterOut` method
1248      // https://github.com/tc39/proposal-array-filtering
1249      filterOut: createMethod$1(7)
1250    };
1251
1252    var SPECIES$3 = wellKnownSymbol('species');
1253
1254    var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
1255      // We can't use this feature detection in V8 since it causes
1256      // deoptimization and serious performance degradation
1257      // https://github.com/zloirock/core-js/issues/677
1258      return engineV8Version >= 51 || !fails(function () {
1259        var array = [];
1260        var constructor = array.constructor = {};
1261        constructor[SPECIES$3] = function () {
1262          return { foo: 1 };
1263        };
1264        return array[METHOD_NAME](Boolean).foo !== 1;
1265      });
1266    };
1267
1268    var $map = arrayIteration.map;
1269
1270
1271    var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport('map');
1272
1273    // `Array.prototype.map` method
1274    // https://tc39.es/ecma262/#sec-array.prototype.map
1275    // with adding support of @@species
1276    _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, {
1277      map: function map(callbackfn /* , thisArg */) {
1278        return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
1279      }
1280    });
1281
1282    /*
1283    ie10 不支持 location.origin,以下是hack方法
1284    */
1285    if (!window.location.origin) {
1286      window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');
1287    }
1288
1289    var createProperty = function (object, key, value) {
1290      var propertyKey = toPrimitive(key);
1291      if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
1292      else object[propertyKey] = value;
1293    };
1294
1295    var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
1296    var MAX_SAFE_INTEGER$1 = 0x1FFFFFFFFFFFFF;
1297    var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
1298
1299    // We can't use this feature detection in V8 since it causes
1300    // deoptimization and serious performance degradation
1301    // https://github.com/zloirock/core-js/issues/679
1302    var IS_CONCAT_SPREADABLE_SUPPORT = engineV8Version >= 51 || !fails(function () {
1303      var array = [];
1304      array[IS_CONCAT_SPREADABLE] = false;
1305      return array.concat()[0] !== array;
1306    });
1307
1308    var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
1309
1310    var isConcatSpreadable = function (O) {
1311      if (!isObject(O)) return false;
1312      var spreadable = O[IS_CONCAT_SPREADABLE];
1313      return spreadable !== undefined ? !!spreadable : isArray(O);
1314    };
1315
1316    var FORCED$2 = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
1317
1318    // `Array.prototype.concat` method
1319    // https://tc39.es/ecma262/#sec-array.prototype.concat
1320    // with adding support of @@isConcatSpreadable and @@species
1321    _export({ target: 'Array', proto: true, forced: FORCED$2 }, {
1322      // eslint-disable-next-line no-unused-vars -- required for `.length`
1323      concat: function concat(arg) {
1324        var O = toObject(this);
1325        var A = arraySpeciesCreate(O, 0);
1326        var n = 0;
1327        var i, k, length, len, E;
1328        for (i = -1, length = arguments.length; i < length; i++) {
1329          E = i === -1 ? O : arguments[i];
1330          if (isConcatSpreadable(E)) {
1331            len = toLength(E.length);
1332            if (n + len > MAX_SAFE_INTEGER$1) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
1333            for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
1334          } else {
1335            if (n >= MAX_SAFE_INTEGER$1) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
1336            createProperty(A, n++, E);
1337          }
1338        }
1339        A.length = n;
1340        return A;
1341      }
1342    });
1343
1344    // `Object.keys` method
1345    // https://tc39.es/ecma262/#sec-object.keys
1346    // eslint-disable-next-line es/no-object-keys -- safe
1347    var objectKeys = Object.keys || function keys(O) {
1348      return objectKeysInternal(O, enumBugKeys);
1349    };
1350
1351    // `Object.defineProperties` method
1352    // https://tc39.es/ecma262/#sec-object.defineproperties
1353    // eslint-disable-next-line es/no-object-defineproperties -- safe
1354    var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
1355      anObject(O);
1356      var keys = objectKeys(Properties);
1357      var length = keys.length;
1358      var index = 0;
1359      var key;
1360      while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]);
1361      return O;
1362    };
1363
1364    var html = getBuiltIn('document', 'documentElement');
1365
1366    var GT = '>';
1367    var LT = '<';
1368    var PROTOTYPE = 'prototype';
1369    var SCRIPT = 'script';
1370    var IE_PROTO = sharedKey('IE_PROTO');
1371
1372    var EmptyConstructor = function () { /* empty */ };
1373
1374    var scriptTag = function (content) {
1375      return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
1376    };
1377
1378    // Create object with fake `null` prototype: use ActiveX Object with cleared prototype
1379    var NullProtoObjectViaActiveX = function (activeXDocument) {
1380      activeXDocument.write(scriptTag(''));
1381      activeXDocument.close();
1382      var temp = activeXDocument.parentWindow.Object;
1383      activeXDocument = null; // avoid memory leak
1384      return temp;
1385    };
1386
1387    // Create object with fake `null` prototype: use iframe Object with cleared prototype
1388    var NullProtoObjectViaIFrame = function () {
vendor: 4,312 bytes, lines 1389-1504
1389      // Thrash, waste and sodomy: IE GC bug
1390      var iframe = documentCreateElement('iframe');
1391      var JS = 'java' + SCRIPT + ':';
1392      var iframeDocument;
1393      iframe.style.display = 'none';
1394      html.appendChild(iframe);
1395      // https://github.com/zloirock/core-js/issues/475
1396      iframe.src = String(JS);
1397      iframeDocument = iframe.contentWindow.document;
1398      iframeDocument.open();
1399      iframeDocument.write(scriptTag('document.F=Object'));
1400      iframeDocument.close();
1401      return iframeDocument.F;
1402    };
1403
1404    // Check for document.domain and active x support
1405    // No need to use active x approach when document.domain is not set
1406    // see https://github.com/es-shims/es5-shim/issues/150
1407    // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
1408    // avoid IE GC bug
1409    var activeXDocument;
1410    var NullProtoObject = function () {
1411      try {
1412        /* global ActiveXObject -- old IE */
1413        activeXDocument = document.domain && new ActiveXObject('htmlfile');
1414      } catch (error) { /* ignore */ }
1415      NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
1416      var length = enumBugKeys.length;
1417      while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
1418      return NullProtoObject();
1419    };
1420
1421    hiddenKeys$1[IE_PROTO] = true;
1422
1423    // `Object.create` method
1424    // https://tc39.es/ecma262/#sec-object.create
1425    var objectCreate = Object.create || function create(O, Properties) {
1426      var result;
1427      if (O !== null) {
1428        EmptyConstructor[PROTOTYPE] = anObject(O);
1429        result = new EmptyConstructor();
1430        EmptyConstructor[PROTOTYPE] = null;
1431        // add "__proto__" for Object.getPrototypeOf polyfill
1432        result[IE_PROTO] = O;
1433      } else result = NullProtoObject();
1434      return Properties === undefined ? result : objectDefineProperties(result, Properties);
1435    };
1436
1437    var UNSCOPABLES = wellKnownSymbol('unscopables');
1438    var ArrayPrototype = Array.prototype;
1439
1440    // Array.prototype[@@unscopables]
1441    // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
1442    if (ArrayPrototype[UNSCOPABLES] == undefined) {
1443      objectDefineProperty.f(ArrayPrototype, UNSCOPABLES, {
1444        configurable: true,
1445        value: objectCreate(null)
1446      });
1447    }
1448
1449    // add a key to Array.prototype[@@unscopables]
1450    var addToUnscopables = function (key) {
1451      ArrayPrototype[UNSCOPABLES][key] = true;
1452    };
1453
1454    var $includes = arrayIncludes.includes;
1455
1456
1457    // `Array.prototype.includes` method
1458    // https://tc39.es/ecma262/#sec-array.prototype.includes
1459    _export({ target: 'Array', proto: true }, {
1460      includes: function includes(el /* , fromIndex = 0 */) {
1461        return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
1462      }
1463    });
1464
1465    // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
1466    addToUnscopables('includes');
1467
1468    var MATCH$2 = wellKnownSymbol('match');
1469
1470    // `IsRegExp` abstract operation
1471    // https://tc39.es/ecma262/#sec-isregexp
1472    var isRegexp = function (it) {
1473      var isRegExp;
1474      return isObject(it) && ((isRegExp = it[MATCH$2]) !== undefined ? !!isRegExp : classofRaw(it) == 'RegExp');
1475    };
1476
1477    var notARegexp = function (it) {
1478      if (isRegexp(it)) {
1479        throw TypeError("The method doesn't accept regular expressions");
1480      } return it;
1481    };
1482
1483    var MATCH$1 = wellKnownSymbol('match');
1484
1485    var correctIsRegexpLogic = function (METHOD_NAME) {
1486      var regexp = /./;
1487      try {
1488        '/./'[METHOD_NAME](regexp);
1489      } catch (error1) {
1490        try {
1491          regexp[MATCH$1] = false;
1492          return '/./'[METHOD_NAME](regexp);
1493        } catch (error2) { /* empty */ }
1494      } return false;
1495    };
1496
1497    // `String.prototype.includes` method
1498    // https://tc39.es/ecma262/#sec-string.prototype.includes
1499    _export({ target: 'String', proto: true, forced: !correctIsRegexpLogic('includes') }, {
1500      includes: function includes(searchString /* , position = 0 */) {
1501        return !!~String(requireObjectCoercible(this))
1502          .indexOf(notARegexp(searchString), arguments.length > 1 ? arguments[1] : undefined);
1503      }
1504    });
1505
1506    var arrayMethodIsStrict = function (METHOD_NAME, argument) {
1507      var method = [][METHOD_NAME];
1508      return !!method && fails(function () {
1509        // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
1510        method.call(null, argument || function () { throw 1; }, 1);
1511      });
1512    };
1513
1514    var nativeJoin = [].join;
1515
1516    var ES3_STRINGS = indexedObject != Object;
1517    var STRICT_METHOD$1 = arrayMethodIsStrict('join', ',');
1518
1519    // `Array.prototype.join` method
1520    // https://tc39.es/ecma262/#sec-array.prototype.join
1521    _export({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD$1 }, {
1522      join: function join(separator) {
1523        return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
1524      }
1525    });
1526
1527    // `RegExp.prototype.flags` getter implementation
1528    // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
1529    var regexpFlags = function () {
1530      var that = anObject(this);
1531      var result = '';
1532      if (that.global) result += 'g';
1533      if (that.ignoreCase) result += 'i';
1534      if (that.multiline) result += 'm';
1535      if (that.dotAll) result += 's';
1536      if (that.unicode) result += 'u';
1537      if (that.sticky) result += 'y';
1538      return result;
1539    };
1540
1541    // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
1542    // so we use an intermediate function.
1543    function RE(s, f) {
1544      return RegExp(s, f);
1545    }
1546
1547    var UNSUPPORTED_Y$3 = fails(function () {
1548      // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
1549      var re = RE('a', 'y');
1550      re.lastIndex = 2;
1551      return re.exec('abcd') != null;
1552    });
1553
1554    var BROKEN_CARET = fails(function () {
1555      // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
1556      var re = RE('^r', 'gy');
1557      re.lastIndex = 2;
1558      return re.exec('str') != null;
1559    });
1560
1561    var regexpStickyHelpers = {
1562      UNSUPPORTED_Y: UNSUPPORTED_Y$3,
1563      BROKEN_CARET: BROKEN_CARET
1564    };
1565
1566    /* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
1567    /* eslint-disable regexp/no-useless-quantifier -- testing */
1568
1569
1570
1571
1572    var nativeExec = RegExp.prototype.exec;
1573    var nativeReplace = shared('native-string-replace', String.prototype.replace);
1574
1575    var patchedExec = nativeExec;
1576
1577    var UPDATES_LAST_INDEX_WRONG = (function () {
1578      var re1 = /a/;
1579      var re2 = /b*/g;
1580      nativeExec.call(re1, 'a');
1581      nativeExec.call(re2, 'a');
1582      return re1.lastIndex !== 0 || re2.lastIndex !== 0;
1583    })();
1584
1585    var UNSUPPORTED_Y$2 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET;
1586
1587    // nonparticipating capturing group, copied from es5-shim's String#split patch.
1588    var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
1589
1590    var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$2;
1591
1592    if (PATCH) {
1593      patchedExec = function exec(str) {
1594        var re = this;
1595        var lastIndex, reCopy, match, i;
1596        var sticky = UNSUPPORTED_Y$2 && re.sticky;
1597        var flags = regexpFlags.call(re);
1598        var source = re.source;
1599        var charsAdded = 0;
1600        var strCopy = str;
1601
1602        if (sticky) {
1603          flags = flags.replace('y', '');
1604          if (flags.indexOf('g') === -1) {
1605            flags += 'g';
1606          }
1607
1608          strCopy = String(str).slice(re.lastIndex);
1609          // Support anchored sticky behavior.
1610          if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
1611            source = '(?: ' + source + ')';
1612            strCopy = ' ' + strCopy;
1613            charsAdded++;
1614          }
1615          // ^(? + rx + ) is needed, in combination with some str slicing, to
1616          // simulate the 'y' flag.
1617          reCopy = new RegExp('^(?:' + source + ')', flags);
1618        }
1619
1620        if (NPCG_INCLUDED) {
1621          reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
1622        }
1623        if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
1624
1625        match = nativeExec.call(sticky ? reCopy : re, strCopy);
1626
1627        if (sticky) {
1628          if (match) {
1629            match.input = match.input.slice(charsAdded);
vendor: 12,087 bytes, lines 1630-1919
1630            match[0] = match[0].slice(charsAdded);
1631            match.index = re.lastIndex;
1632            re.lastIndex += match[0].length;
1633          } else re.lastIndex = 0;
1634        } else if (UPDATES_LAST_INDEX_WRONG && match) {
1635          re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
1636        }
1637        if (NPCG_INCLUDED && match && match.length > 1) {
1638          // Fix browsers whose `exec` methods don't consistently return `undefined`
1639          // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
1640          nativeReplace.call(match[0], reCopy, function () {
1641            for (i = 1; i < arguments.length - 2; i++) {
1642              if (arguments[i] === undefined) match[i] = undefined;
1643            }
1644          });
1645        }
1646
1647        return match;
1648      };
1649    }
1650
1651    var regexpExec = patchedExec;
1652
1653    // `RegExp.prototype.exec` method
1654    // https://tc39.es/ecma262/#sec-regexp.prototype.exec
1655    _export({ target: 'RegExp', proto: true, forced: /./.exec !== regexpExec }, {
1656      exec: regexpExec
1657    });
1658
1659    // TODO: Remove from `core-js@4` since it's moved to entry points
1660
1661
1662
1663
1664
1665
1666
1667    var SPECIES$2 = wellKnownSymbol('species');
1668    var RegExpPrototype$2 = RegExp.prototype;
1669
1670    var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
1671      // #replace needs built-in support for named groups.
1672      // #match works fine because it just return the exec results, even if it has
1673      // a "grops" property.
1674      var re = /./;
1675      re.exec = function () {
1676        var result = [];
1677        result.groups = { a: '7' };
1678        return result;
1679      };
1680      return ''.replace(re, '$<a>') !== '7';
1681    });
1682
1683    // IE <= 11 replaces $0 with the whole match, as if it was $&
1684    // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
1685    var REPLACE_KEEPS_$0 = (function () {
1686      // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing
1687      return 'a'.replace(/./, '$0') === '$0';
1688    })();
1689
1690    var REPLACE = wellKnownSymbol('replace');
1691    // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
1692    var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
1693      if (/./[REPLACE]) {
1694        return /./[REPLACE]('a', '$0') === '';
1695      }
1696      return false;
1697    })();
1698
1699    // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
1700    // Weex JS has frozen built-in prototypes, so use try / catch wrapper
1701    var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
1702      // eslint-disable-next-line regexp/no-empty-group -- required for testing
1703      var re = /(?:)/;
1704      var originalExec = re.exec;
1705      re.exec = function () { return originalExec.apply(this, arguments); };
1706      var result = 'ab'.split(re);
1707      return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
1708    });
1709
1710    var fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) {
1711      var SYMBOL = wellKnownSymbol(KEY);
1712
1713      var DELEGATES_TO_SYMBOL = !fails(function () {
1714        // String methods call symbol-named RegEp methods
1715        var O = {};
1716        O[SYMBOL] = function () { return 7; };
1717        return ''[KEY](O) != 7;
1718      });
1719
1720      var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
1721        // Symbol-named RegExp methods call .exec
1722        var execCalled = false;
1723        var re = /a/;
1724
1725        if (KEY === 'split') {
1726          // We can't use real regex here since it causes deoptimization
1727          // and serious performance degradation in V8
1728          // https://github.com/zloirock/core-js/issues/306
1729          re = {};
1730          // RegExp[@@split] doesn't call the regex's exec method, but first creates
1731          // a new one. We need to return the patched regex when creating the new one.
1732          re.constructor = {};
1733          re.constructor[SPECIES$2] = function () { return re; };
1734          re.flags = '';
1735          re[SYMBOL] = /./[SYMBOL];
1736        }
1737
1738        re.exec = function () { execCalled = true; return null; };
1739
1740        re[SYMBOL]('');
1741        return !execCalled;
1742      });
1743
1744      if (
1745        !DELEGATES_TO_SYMBOL ||
1746        !DELEGATES_TO_EXEC ||
1747        (KEY === 'replace' && !(
1748          REPLACE_SUPPORTS_NAMED_GROUPS &&
1749          REPLACE_KEEPS_$0 &&
1750          !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
1751        )) ||
1752        (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
1753      ) {
1754        var nativeRegExpMethod = /./[SYMBOL];
1755        var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
1756          var $exec = regexp.exec;
1757          if ($exec === regexpExec || $exec === RegExpPrototype$2.exec) {
1758            if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
1759              // The native String method already delegates to @@method (this
1760              // polyfilled function), leasing to infinite recursion.
1761              // We avoid it by directly calling the native @@method method.
1762              return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
1763            }
1764            return { done: true, value: nativeMethod.call(str, regexp, arg2) };
1765          }
1766          return { done: false };
1767        }, {
1768          REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,
1769          REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
1770        });
1771        var stringMethod = methods[0];
1772        var regexMethod = methods[1];
1773
1774        redefine(String.prototype, KEY, stringMethod);
1775        redefine(RegExpPrototype$2, SYMBOL, length == 2
1776          // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
1777          // 21.2.5.11 RegExp.prototype[@@split](string, limit)
1778          ? function (string, arg) { return regexMethod.call(string, this, arg); }
1779          // 21.2.5.6 RegExp.prototype[@@match](string)
1780          // 21.2.5.9 RegExp.prototype[@@search](string)
1781          : function (string) { return regexMethod.call(string, this); }
1782        );
1783      }
1784
1785      if (sham) createNonEnumerableProperty(RegExpPrototype$2[SYMBOL], 'sham', true);
1786    };
1787
1788    var SPECIES$1 = wellKnownSymbol('species');
1789
1790    // `SpeciesConstructor` abstract operation
1791    // https://tc39.es/ecma262/#sec-speciesconstructor
1792    var speciesConstructor = function (O, defaultConstructor) {
1793      var C = anObject(O).constructor;
1794      var S;
1795      return C === undefined || (S = anObject(C)[SPECIES$1]) == undefined ? defaultConstructor : aFunction(S);
1796    };
1797
1798    // `String.prototype.{ codePointAt, at }` methods implementation
1799    var createMethod = function (CONVERT_TO_STRING) {
1800      return function ($this, pos) {
1801        var S = String(requireObjectCoercible($this));
1802        var position = toInteger(pos);
1803        var size = S.length;
1804        var first, second;
1805        if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
1806        first = S.charCodeAt(position);
1807        return first < 0xD800 || first > 0xDBFF || position + 1 === size
1808          || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
1809            ? CONVERT_TO_STRING ? S.charAt(position) : first
1810            : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
1811      };
1812    };
1813
1814    var stringMultibyte = {
1815      // `String.prototype.codePointAt` method
1816      // https://tc39.es/ecma262/#sec-string.prototype.codepointat
1817      codeAt: createMethod(false),
1818      // `String.prototype.at` method
1819      // https://github.com/mathiasbynens/String.prototype.at
1820      charAt: createMethod(true)
1821    };
1822
1823    var charAt = stringMultibyte.charAt;
1824
1825    // `AdvanceStringIndex` abstract operation
1826    // https://tc39.es/ecma262/#sec-advancestringindex
1827    var advanceStringIndex = function (S, index, unicode) {
1828      return index + (unicode ? charAt(S, index).length : 1);
1829    };
1830
1831    // `RegExpExec` abstract operation
1832    // https://tc39.es/ecma262/#sec-regexpexec
1833    var regexpExecAbstract = function (R, S) {
1834      var exec = R.exec;
1835      if (typeof exec === 'function') {
1836        var result = exec.call(R, S);
1837        if (typeof result !== 'object') {
1838          throw TypeError('RegExp exec method returned something other than an Object or null');
1839        }
1840        return result;
1841      }
1842
1843      if (classofRaw(R) !== 'RegExp') {
1844        throw TypeError('RegExp#exec called on incompatible receiver');
1845      }
1846
1847      return regexpExec.call(R, S);
1848    };
1849
1850    var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y;
1851    var arrayPush = [].push;
1852    var min$2 = Math.min;
1853    var MAX_UINT32 = 0xFFFFFFFF;
1854
1855    // @@split logic
1856    fixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {
1857      var internalSplit;
1858      if (
1859        'abbc'.split(/(b)*/)[1] == 'c' ||
1860        // eslint-disable-next-line regexp/no-empty-group -- required for testing
1861        'test'.split(/(?:)/, -1).length != 4 ||
1862        'ab'.split(/(?:ab)*/).length != 2 ||
1863        '.'.split(/(.?)(.?)/).length != 4 ||
1864        // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing
1865        '.'.split(/()()/).length > 1 ||
1866        ''.split(/.?/).length
1867      ) {
1868        // based on es5-shim implementation, need to rework it
1869        internalSplit = function (separator, limit) {
1870          var string = String(requireObjectCoercible(this));
1871          var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
1872          if (lim === 0) return [];
1873          if (separator === undefined) return [string];
1874          // If `separator` is not a regex, use native split
1875          if (!isRegexp(separator)) {
1876            return nativeSplit.call(string, separator, lim);
1877          }
1878          var output = [];
1879          var flags = (separator.ignoreCase ? 'i' : '') +
1880                      (separator.multiline ? 'm' : '') +
1881                      (separator.unicode ? 'u' : '') +
1882                      (separator.sticky ? 'y' : '');
1883          var lastLastIndex = 0;
1884          // Make `global` and avoid `lastIndex` issues by working with a copy
1885          var separatorCopy = new RegExp(separator.source, flags + 'g');
1886          var match, lastIndex, lastLength;
1887          while (match = regexpExec.call(separatorCopy, string)) {
1888            lastIndex = separatorCopy.lastIndex;
1889            if (lastIndex > lastLastIndex) {
1890              output.push(string.slice(lastLastIndex, match.index));
1891              if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));
1892              lastLength = match[0].length;
1893              lastLastIndex = lastIndex;
1894              if (output.length >= lim) break;
1895            }
1896            if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop
1897          }
1898          if (lastLastIndex === string.length) {
1899            if (lastLength || !separatorCopy.test('')) output.push('');
1900          } else output.push(string.slice(lastLastIndex));
1901          return output.length > lim ? output.slice(0, lim) : output;
1902        };
1903      // Chakra, V8
1904      } else if ('0'.split(undefined, 0).length) {
1905        internalSplit = function (separator, limit) {
1906          return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);
1907        };
1908      } else internalSplit = nativeSplit;
1909
1910      return [
1911        // `String.prototype.split` method
1912        // https://tc39.es/ecma262/#sec-string.prototype.split
1913        function split(separator, limit) {
1914          var O = requireObjectCoercible(this);
1915          var splitter = separator == undefined ? undefined : separator[SPLIT];
1916          return splitter !== undefined
1917            ? splitter.call(separator, O, limit)
1918            : internalSplit.call(String(O), separator, limit);
1919        },
1920        // `RegExp.prototype[@@split]` method
1921        // https://tc39.es/ecma262/#sec-regexp.prototype-@@split
1922        //
1923        // NOTE: This cannot be properly polyfilled in engines that don't support
1924        // the 'y' flag.
1925        function (regexp, limit) {
1926          var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);
1927          if (res.done) return res.value;
1928
1929          var rx = anObject(regexp);
1930          var S = String(this);
1931          var C = speciesConstructor(rx, RegExp);
1932
1933          var unicodeMatching = rx.unicode;
1934          var flags = (rx.ignoreCase ? 'i' : '') +
1935                      (rx.multiline ? 'm' : '') +
1936                      (rx.unicode ? 'u' : '') +
1937                      (UNSUPPORTED_Y$1 ? 'g' : 'y');
1938
1939          // ^(? + rx + ) is needed, in combination with some S slicing, to
1940          // simulate the 'y' flag.
1941          var splitter = new C(UNSUPPORTED_Y$1 ? '^(?:' + rx.source + ')' : rx, flags);
1942          var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
1943          if (lim === 0) return [];
1944          if (S.length === 0) return regexpExecAbstract(splitter, S) === null ? [S] : [];
1945          var p = 0;
1946          var q = 0;
1947          var A = [];
1948          while (q < S.length) {
1949            splitter.lastIndex = UNSUPPORTED_Y$1 ? 0 : q;
1950            var z = regexpExecAbstract(splitter, UNSUPPORTED_Y$1 ? S.slice(q) : S);
1951            var e;
1952            if (
1953              z === null ||
1954              (e = min$2(toLength(splitter.lastIndex + (UNSUPPORTED_Y$1 ? q : 0)), S.length)) === p
1955            ) {
1956              q = advanceStringIndex(S, q, unicodeMatching);
1957            } else {
1958              A.push(S.slice(p, q));
1959              if (A.length === lim) return A;
1960              for (var i = 1; i <= z.length - 1; i++) {
1961                A.push(z[i]);
1962                if (A.length === lim) return A;
1963              }
1964              q = p = e;
1965            }
1966          }
1967          A.push(S.slice(p));
1968          return A;
1969        }
1970      ];
1971    }, UNSUPPORTED_Y$1);
1972
1973    var floor$1 = Math.floor;
1974    var replace = ''.replace;
1975    var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
1976    var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g;
1977
1978    // https://tc39.es/ecma262/#sec-getsubstitution
1979    var getSubstitution = function (matched, str, position, captures, namedCaptures, replacement) {
1980      var tailPos = position + matched.length;
1981      var m = captures.length;
1982      var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
1983      if (namedCaptures !== undefined) {
1984        namedCaptures = toObject(namedCaptures);
1985        symbols = SUBSTITUTION_SYMBOLS;
1986      }
1987      return replace.call(replacement, symbols, function (match, ch) {
1988        var capture;
1989        switch (ch.charAt(0)) {
1990          case '$': return '$';
1991          case '&': return matched;
1992          case '`': return str.slice(0, position);
1993          case "'": return str.slice(tailPos);
1994          case '<':
1995            capture = namedCaptures[ch.slice(1, -1)];
1996            break;
1997          default: // \d\d?
1998            var n = +ch;
1999            if (n === 0) return match;
2000            if (n > m) {
2001              var f = floor$1(n / 10);
2002              if (f === 0) return match;
2003              if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
2004              return match;
2005            }
2006            capture = captures[n - 1];
2007        }
2008        return capture === undefined ? '' : capture;
2009      });
2010    };
2011
2012    var max$1 = Math.max;
2013    var min$1 = Math.min;
2014
2015    var maybeToString = function (it) {
2016      return it === undefined ? it : String(it);
2017    };
2018
2019    // @@replace logic
2020    fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
2021      var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;
2022      var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;
2023      var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';
2024
2025      return [
2026        // `String.prototype.replace` method
2027        // https://tc39.es/ecma262/#sec-string.prototype.replace
2028        function replace(searchValue, replaceValue) {
2029          var O = requireObjectCoercible(this);
2030          var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
2031          return replacer !== undefined
2032            ? replacer.call(searchValue, O, replaceValue)
2033            : nativeReplace.call(String(O), searchValue, replaceValue);
2034        },
2035        // `RegExp.prototype[@@replace]` method
2036        // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
2037        function (regexp, replaceValue) {
2038          if (
2039            (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||
2040            (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE
2040) === -1)
2041          ) {
2042            var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
2043            if (res.done) return res.value;
2044          }
2045
2046          var rx = anObject(regexp);
2047          var S = String(this);
2048
2049          var functionalReplace = typeof replaceValue === 'function';
2050          if (!functionalReplace) replaceValue = String(replaceValue);
2051
2052          var global = rx.global;
2053          if (global) {
2054            var fullUnicode = rx.unicode;
2055            rx.lastIndex = 0;
2056          }
2057          var results = [];
2058          while (true) {
2059            var result = regexpExecAbstract(rx, S);
2060            if (result === null) break;
2061
2062            results.push(result);
2063            if (!global) break;
2064
2065            var matchStr = String(result[0]);
2066            if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
2067          }
2068
2069          var accumulatedResult = '';
2070          var nextSourcePosition = 0;
2071          for (var i = 0; i < results.length; i++) {
2072            result = results[i];
2073
2074            var matched = String(result[0]);
2075            var position = max$1(min$1(toInteger(result.index), S.length), 0);
2076            var captures = [];
2077            // NOTE: This is equivalent to
2078            //   captures = result.slice(1).map(maybeToString)
2079            // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
2080            // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
2081            // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
2082            for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
2083            var namedCaptures = result.groups;
2084            if (functionalReplace) {
2085              var replacerArgs = [matched].concat(captures, position, S);
2086              if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
2087              var replacement = String(replaceValue.apply(undefined, replacerArgs));
2088            } else {
2089              replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
2090            }
2091            if (position >= nextSourcePosition) {
2092              accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
2093              nextSourcePosition = position + matched.length;
2094            }
2095          }
2096          return accumulatedResult + S.slice(nextSourcePosition);
2097        }
2098      ];
2099    });
2100
2101    var js_cookie = createCommonjsModule(function (module, exports) {
2102    (function (factory) {
2103      var registeredInModuleLoader;
2104      {
2105        module.exports = factory();
2106        registeredInModuleLoader = true;
2107      }
2108      if (!registeredInModuleLoader) {
2109        var OldCookies = window.Cookies;
2110        var api = window.Cookies = factory();
2111        api.noConflict = function () {
2112          window.Cookies = OldCookies;
2113          return api;
2114        };
2115      }
2116    }(function () {
2117      function extend () {
2118        var i = 0;
2119        var result = {};
2120        for (; i < arguments.length; i++) {
2121          var attributes = arguments[ i ];
2122          for (var key in attributes) {
2123            result[key] = attributes[key];
2124          }
2125        }
2126        return result;
2127      }
2128
2129      function decode (s) {
2130        return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);
2131      }
2132
2133      function init (converter) {
2134        function api() {}
2135
2136        function set (key, value, attributes) {
2137          if (typeof document === 'undefined') {
2138            return;
2139          }
2140
2141          attributes = extend({
2142            path: '/'
2143          }, api.defaults, attributes);
2144
2145          if (typeof attributes.expires === 'number') {
2146            attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);
2147          }
2148
2149          // We're using "expires" because "max-age" is not supported by IE
2150          attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
2151
2152          try {
2153            var result = JSON.stringify(value);
2154            if (/^[\{\[]/.test(result)) {
2155              value = result;
2156            }
2157          } catch (e) {}
2158
2159          value = converter.write ?
2160            converter.write(value, key) :
2161            encodeURIComponent(String(value))
2162              .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
2163
2164          key = encodeURIComponent(String(key))
2165            .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)
2166            .replace(/[\(\)]/g, escape);
2167
2168          var stringifiedAttributes = '';
2169          for (var attributeName in attributes) {
2170            if (!attributes[attributeName]) {
2171              continue;
2172            }
2173            stringifiedAttributes += '; ' + attributeName;
2174            if (attributes[attributeName] === true) {
2175              continue;
2176            }
2177
2178            // Considers RFC 6265 section 5.2:
2179            // ...
2180            // 3.  If the remaining unparsed-attributes contains a %x3B (";")
2181            //     character:
2182            // Consume the characters of the unparsed-attributes up to,
2183            // not including, the first %x3B (";") character.
2184            // ...
2185            stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];
2186          }
2187
2188          return (document.cookie = key + '=' + value + stringifiedAttributes);
2189        }
2190
2191        function get (key, json) {
2192          if (typeof document === 'undefined') {
2193            return;
2194          }
2195
2196          var jar = {};
2197          // To prevent the for loop in the first place assign an empty array
2198          // in case there are no cookies at all.
2199          var cookies = document.cookie ? document.cookie.split('; ') : [];
2200          var i = 0;
2201
2202          for (; i < cookies.length; i++) {
2203            var parts = cookies[i].split('=');
2204            var cookie = parts.slice(1).join('=');
2205
2206            if (!json && cookie.charAt(0) === '"') {
2207              cookie = cookie.slice(1, -1);
2208            }
2209
2210            try {
2211              var name = decode(parts[0]);
2212              cookie = (converter.read || converter)(cookie, name) ||
2213                decode(cookie);
2214
2215              if (json) {
2216                try {
2217                  cookie = JSON.parse(cookie);
2218                } catch (e) {}
2219              }
2220
2221              jar[name] = cookie;
2222
2223              if (key === name) {
2224                break;
2225              }
2226            } catch (e) {}
2227          }
2228
2229          return key ? jar[key] : jar;
2230        }
2231
2232        api.set = set;
2233        api.get = function (key) {
2234          return get(key, false /* read as raw */);
2235        };
2236        api.getJSON = function (key) {
2237          return get(key, true /* read as json */);
2238        };
2239        api.remove = function (key, attributes) {
2240          set(key, '', extend(attributes, {
2241            expires: -1
2242          }));
2243        };
2244
2245        api.defaults = {};
2246
2247        api.withConverter = init;
2248
2249        return api;
2250      }
2251
2252      return init(function () {});
2253    }));
2254    });
2255
2256    var namespace = "mozi-assist";
2257    var domain = "";
2258    var url = "https://tts.baidu.com/text2audio";
2259    var config = {
2260      namespace: namespace,
2261      domain: domain,
2262      url: url
2263    };
2264
2265    var __domain = config.domain;
2266    var cookie = {
2267      set: function set(key, value, namespace) {
2268        var memory = {
2269          show: false,
2270          // 是否展示无障碍
2271          audio: false,
2272          // 是否开启声音
2273          speed: 'middle',
2274          // 语速
2275          zomm: 0.1,
2276          // 缩放倍数
2277          cursor: false,
2278          // 是否替换鼠标样式
2279          pointer: false,
2280          // 是否开启十字线
2281          bigtext: false,
2282          // 是否开启大字幕
2283          overead: false // 是否开启指读
2284
2285        };
2286
2287        if (js_cookie.get(namespace)) {
2288          memory = JSON.parse(js_cookie.get(namespace));
2289        }
2290
2291        memory[key] = value;
2292        js_cookie.set(namespace, JSON.stringify(memory), {
2293          domain: __domain
2294        });
2295      },
2296      get: function get(key, namespace) {
2297        var __key = '';
2298
2299        if (js_cookie.get(namespace)) {
2300          __key = JSON.parse(js_cookie.get(namespace))[key];
2301        }
2302
2303        return __key;
2304      },
2305      remove: function remove(namespace) {
2306        js_cookie.remove(namespace, {
2307          domain: __domain
2308        });
2309      },
2310      setTag: function setTag(namespace) {
2311        var __key = "".concat(namespace, "-ignore");
2312
2313        var __data = [];
2314
2315        if (js_cookie.get(__key)) {
2316          __data = JSON.parse(js_cookie.get(__key));
2317        }
2318
2319        var _location = location,
2320            origin = _location.origin,
2321            pathname = _location.pathname;
2322
2323        var __ignoreUrl = "".concat(origin).concat(pathname);
2324
2325        !__data.includes(__ignoreUrl) && __data.push("".concat(origin).concat(pathname));
2326        js_cookie.set(__key, JSON.stringify(__data), {
2327          domain: __domain
2328        });
2329      },
2330      getTag: function getTag(namespace) {
2331        var __key = "".concat(namespace, "-ignore");
2332
2333        var __data = [];
2334
2335        if (js_cookie.get(__key)) {
2336          __data = JSON.parse(js_cookie.get(__key));
2337        }
2338
2339        return __data;
2340      }
2341    };
2342
2343    var addEvent = function addEvent(element, type, callback) {
2344      var ignore = ['DOMContentLoaded'];
2345
2346      var __type = ignore.includes(type) ? type : 'on' + type;
2347
2348      if (element.addEventListener) {
2349        element.addEventListener(type, callback, false);
2350      } else if (element.attachEvent) {
2351        element.attachEvent(__type, callback);
2352      } else {
2353        element[__type] = callback;
2354      }
2355    };
2356
2357    var removeEvent = function removeEvent(element, type, callback) {
2358      var ignore = ['DOMContentLoaded'];
2359
2360      var __type = ignore.includes(type) ? type : 'on' + type;
2361
2362      if (element.removeEventListener) {
2363        element.removeEventListener(type, callback);
2364      } else if (element.detachEvent) {
2365        element.detachEvent(__type, callback);
2366      } else {
2367        element[__type] = null;
2368      }
2369    };
2370
2371    var ruleType = function ruleType(target) {
2372      var __role = !!target.getAttribute('role') && target.getAttribute('role').toUpperCase() || target.tagName.toUpperCase();
2373
2374      var __roleName = {
2375        IMG: '图片',
2376        BUTTON: '按钮',
2377        INPUT: '输入框',
2378        CHECKBOX: '复选框',
2379        RADIO: '单选框',
2380        OPTION: '下拉框',
2381        A: '链接'
2382      };
2383
2384      if (__role == 'INPUT') {
2385        if (target.type == 'radio') {
2386          return '单选框';
2387        } else if (target.type == 'checkbox') {
2388          // button reset file
2389          return '复选框';
2390        } else if (target.type == 'text') {
2391          // button reset file
2392          return '文本框';
2393        } else if (target.type == 'submit') {
2394          return '提交按钮';
2395        } else if (target.type == 'reset') {
2396          return '重置按钮';
2397        } else if (target.type == 'password') {
2398          return '密码输入框';
2399        } else {
2400          return '输入框';
2401        }
2402      }
2403
2404      return __roleName[__role] || '文本';
2405    };
2406
2407    var parseTagText = function parseTagText(target) {
2408      var __name = ruleType(target);
2409
2410      var __role = !!target.getAttribute('role') && target.getAttribute('role').toUpperCase();
2411
2412      if (__role === 'A' || target.tagName === 'A') {
2413        console.log('这是一个链接:' + target.alt || target.title || target.innerText);
2414        return "\u94FE\u63A5 ".concat(target.alt || target.title || target.innerText);
2415      }
2416
2417      if (target.children.length === 0) {
2418        if (__role === 'IMG' || target.tagName === 'IMG') {
2419          console.log('这是一张图片:' + target.alt || target.title);
2420          return "\u56FE\u7247 ".concat(target.alt || target.title);
2421        }
2422
2423        if (__role === 'BUTTON' || target.tagName === 'BUTTON') {
2424          console.log('这是一个按钮:' + target.innerText);
2425          return "\u6309\u94AE ".concat(target.alt || target.title || target.innerText);
2426        }
2427
2428        if (__role === 'INPUT' || target.tagName === 'INPUT') {
2429          console.log("\u8FD9\u662F\u4E00\u4E2A".concat(__name, ":") + target.alt || target.title || target.value);
2430          return "".concat(__name, " ").concat(target.alt || target.title || target.value);
2431        }
2432
2433        if (__role === 'LABEL' || target.tagName === 'LABEL') {
2434          var __linkId = target.getAttribute('for');
2435
2436          var __linkDom = document.getElementById(__linkId);
2437
2438          if (!!__linkDom && !!__linkDom.type && __linkDom.type == 'radio') {
2439            console.log("\u8FD9\u662F\u4E00\u4E2A\u5355\u9009:" + target.alt || target.title || target.innerText);
2440            return "\u5355\u9009 ".concat(target.alt || target.title || target.innerText);
2441          }
2442        }
2443
2444        if (target.alt || target.title || target.innerText) {
2445          console.log("".concat(__name, " ").concat(target.alt || target.title || target.innerText));
2446          return "".concat(__name, " ").concat(target.alt || target.title || target.innerText);
2447        }
2448
2449        return '';
2450      }
2451
2452      if (target.children.length < 5 && (target.alt || target.title || target.innerText)) {
2453        console.log("".concat(__name, " ").concat(target.alt || target.title || target.innerText));
2454        return "".concat(__name, " ").concat(target.alt || target.title || target.innerText);
2455      }
2456
2457      return '';
2458    };
2459
2460    var trim = function trim(s) {
2461      return s.replace(/(^\s*)|(\s*$)/g, "");
2462    };
2463    /**
2464     * 判断是否是IE
2465     */
2466
2467    var isIE = function isIE() {
2468      if (!!window.ActiveXobject || "ActiveXObject" in window) {
2469        return true;
2470      } else {
2471        return false;
2472      }
2473    };
2474    /**
2475     * 判断是否是IE11
2476     */
2477
2478
2479    var isIE11 = function isIE11() {
2480      if (/Trident\/7\./.test(navigator.userAgent)) {
2481        return true;
2482      } else {
2483        return false;
2484      }
2485    };
2486
2487    var isFirefox = function isFirefox() {
2488      var ua = navigator.userAgent;
2489
2490      if (ua.indexOf('Firefox') > -1) {
2491        return true;
2492      }
2493
2494      return false;
2495    };
2496
2497    var removeNode = function removeNode(item) {
2498      if (isIE() || isIE11()) {
2499        item.removeNode(true);
2500      } else {
2501        item.remove();
2502      }
2503    };
2504
2505    // iterable DOM collections
2506    // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
2507    var domIterables = {
2508      CSSRuleList: 0,
2509      CSSStyleDeclaration: 0,
2510      CSSValueList: 0,
2511      ClientRectList: 0,
2512      DOMRectList: 0,
2513      DOMStringList: 0,
2514      DOMTokenList: 1,
2515      DataTransferItemList: 0,
2516      FileList: 0,
2517      HTMLAllCollection: 0,
2518      HTMLCollection: 0,
2519      HTMLFormElement: 0,
2520      HTMLSelectElement: 0,
2521      MediaList: 0,
2522      MimeTypeArray: 0,
2523      NamedNodeMap: 0,
2524      NodeList: 1,
2525      PaintRequestList: 0,
2526      Plugin: 0,
2527      PluginArray: 0,
2528      SVGLengthList: 0,
2529      SVGNumberList: 0,
2530      SVGPathSegList: 0,
2531      SVGPointList: 0,
2532      SVGStringList: 0,
2533      SVGTransformList: 0,
2534      SourceBufferList: 0,
2535      StyleSheetList: 0,
2536      TextTrackCueList: 0,
2537      TextTrackList: 0,
2538      TouchList: 0
2539    };
2540
2541    var $forEach = arrayIteration.forEach;
2542
2543
2544    var STRICT_METHOD = arrayMethodIsStrict('forEach');
2545
2546    // `Array.prototype.forEach` method implementation
2547    // https://tc39.es/ecma262/#sec-array.prototype.foreach
2548    var arrayForEach = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {
2549      return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
2550    // eslint-disable-next-line es/no-array-prototype-foreach -- safe
2551    } : [].forEach;
2552
2553    for (var COLLECTION_NAME in domIterables) {
2554      var Collection = global_1[COLLECTION_NAME];
2555      var CollectionPrototype = Collection && Collection.prototype;
2556      // some Chrome versions have non-configurable methods on DOMTokenList
2557      if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) try {
2558        createNonEnumerableProperty(CollectionPrototype, 'forEach', arrayForEach);
2559      } catch (error) {
2560        CollectionPrototype.forEach = arrayForEach;
2561      }
2562    }
2563
2564    var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');
2565
2566    var max = Math.max;
2567    var min = Math.min;
2568    var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
2569    var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';
2570
2571    // `Array.prototype.splice` method
2572    // https://tc39.es/ecma262/#sec-array.prototype.splice
2573    // with adding support of @@species
2574    _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {
2575      splice: function splice(start, deleteCount /* , ...items */) {
2576        var O = toObject(this);
2577        var len = toLength(O.length);
2578        var actualStart = toAbsoluteIndex(start, len);
2579        var argumentsLength = arguments.length;
2580        var insertCount, actualDeleteCount, A, k, from, to;
2581        if (argumentsLength === 0) {
2582          insertCount = actualDeleteCount = 0;
2583        } else if (argumentsLength === 1) {
2584          insertCount = 0;
2585          actualDeleteCount = len - actualStart;
2586        } else {
2587          insertCount = argumentsLength - 2;
2588          actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);
2589        }
2590        if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {
2591          throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);
2592        }
2593        A = arraySpeciesCreate(O, actualDeleteCount);
2594        for (k = 0; k < actualDeleteCount; k++) {
2595          from = actualStart + k;
2596          if (from in O) createProperty(A, k, O[from]);
2597        }
2598        A.length = actualDeleteCount;
2599        if (insertCount < actualDeleteCount) {
2600          for (k = actualStart; k < len - actualDeleteCount; k++) {
2601            from = k + actualDeleteCount;
2602            to = k + insertCount;
2603            if (from in O) O[to] = O[from];
2604            else delete O[to];
2605          }
2606          for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];
2607        } else if (insertCount > actualDeleteCount) {
2608          for (k = len - actualDeleteCount; k > actualStart; k--) {
2609            from = k + actualDeleteCount - 1;
2610            to = k + insertCount - 1;
2611            if (from in O) O[to] = O[from];
2612            else delete O[to];
2613          }
2614        }
2615        for (k = 0; k < insertCount; k++) {
2616          O[k + actualStart] = arguments[k + 2];
2617        }
2618        O.length = len - actualDeleteCount + insertCount;
2619        return A;
2620      }
2621    });
2622
2623    var pubSub = {
2624      list: {},
2625      subscribe: function subscribe(key, fn) {
2626        if (!this.list[key]) this.list[key] = [];
2627        this.list[key].push(fn);
2628      },
2629      unsubscribe: function unsubscribe(key, fn) {
2630        var fnList = this.list[key];
2631        if (!fnList) return false;
2632
2633        if (!fn) {
2634          // 不传入指定的方法,清空所用 key 下的订阅
2635          fnList && (fnList.length = 0);
2636        } else {
2637          fnList.forEach(function (item, index) {
2638            item === fn && fnList.splice(index, 1);
2639          });
2640        }
2641      },
2642      publish: function publish(key) {
2643        var fnList = this.list[key];
2644        if (!fnList) return false;
2645
2646        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2647          args[_key - 1] = arguments[_key];
2648        }
2649
2650        var _iterator = _createForOfIteratorHelper(this.list[key]),
2651            _step;
2652
2653        try {
2654          for (_iterator.s(); !(_step = _iterator.n()).done;) {
2655            var fn = _step.value;
2656            !!fn && fn.call.apply(fn, [this].concat(args));
2657          }
2658        } catch (err) {
2659          _iterator.e(err);
2660        } finally {
2661          _iterator.f();
2662        }
2663      }
2664    };
2665
2666    var Base = /*#__PURE__*/function () {
2667      function Base() {
2668        _classCallCheck(this, Base);
2669
2670        this.config = {
2671          namespace: 'mozi-assist',
2672          domain: '.mozi.com',
2673          url: ''
2674        };
2675        this.message = pubSub;
2676        this.tmplStyle = [];
2677        this.tmplHtml = [];
2678        this.registeOpen();
2679      }
2680
2681      _createClass(Base, [{
2682        key: "mergeConfig",
2683        value: function mergeConfig(opts) {
2684          this.config = _objectSpread2(_objectSpread2({}, this.config), opts);
2685          this.creatContainer();
2686        }
2687      }, {
2688        key: "use",
2689        value: function use(plugin) {
2690          for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2691            args[_key - 1] = arguments[_key];
2692          }
2693
2694          plugin.init.apply(plugin, [this].concat(args));
2695        }
2696      }, {
2697        key: "useEvent",
2698        value: function useEvent(plugin) {
2699          for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
2700            args[_key2 - 1] = arguments[_key2];
2701          }
2702
2703          plugin.setEvents.apply(plugin, [this].concat(args));
2704        }
2705      }, {
2706        key: "creatContainer",
2707        value: function creatContainer() {
2708          var namespace = this.config.namespace;
2709
2710          if (document.getElementById(namespace)) {
2711            return;
2712          }
2713
2714          var Container = document.createElement("div");
2715          Container.id = namespace;
2716          document.body.appendChild(Container);
2717        }
2718      }, {
2719        key: "registeOpen",
2720        value: function registeOpen() {
2721          var _this = this;
2722
2723          addEvent(document, 'click', function (event) {
2724            var event = window.event || event;
2725            var target = event.target || event.srcElement;
2726
2727            if (target.getAttribute('id') == 'assist-open') {
2728              if (!_this.existIgnore()) {
2729                _this.show();
2730
2731                _this.message.publish('openState', true);
2732              } else {
2733                var namespace = _this.config.namespace;
2734                cookie.set('show', true, namespace);
2735
2736                var __href = document.getElementById('assist-open').getAttribute('assist-href');
2737
2738                window.location.href = __href;
2739              }
2740            }
2741          });
2742        }
2743      }, {
2744        key: "isShow",
2745        value: function isShow() {
2746          var _this2 = this;
2747
2748          var namespace = this.config.namespace;
2749          addEvent(window, 'DOMContentLoaded', function () {
2750            if (cookie.get('show', namespace) && !_this2.existIgnore()) {
2751              _this2.isShowTopBar(true);
2752
2753              _this2.message.publish('openState', true);
2754            } else {
2755              _this2.message.publish('openState', false);
2756            }
2757          });
2758        }
2759      }, {
2760        key: "existIgnore",
2761        value: function existIgnore() {
2762          var namespace = this.config.namespace;
2763          var _location = location,
2764              origin = _location.origin,
2765              pathname = _location.pathname;
2766
2767          var __key = "".concat(origin).concat(pathname);
2768
2769          return cookie.getTag(namespace).includes(__key);
2770        }
2771      }, {
2772        key: "show",
2773        value: function show() {
2774          this.isShowTopBar(true);
2775        }
2776      }, {
2777        key: "close",
2778        value: function close() {
2779          this.isShowTopBar(false);
2780        }
2781      }, {
2782        key: "showTag",
2783        value: function showTag() {
2784          var namespace = this.config.namespace;
2785          cookie.setTag(namespace); // 设置忽略
2786
2787          this.resetAction(); // 重置插件状态
2788        }
2789      }, {
2790        key: "isShowTopBar",
2791        value: function isShowTopBar(isShow) {
2792          var namespace = this.config.namespace;
2793          var activeBtn = document.getElementById("".concat(namespace, "-topbar-html"));
2794
2795          if (isShow) {
2796            document.body.style.marginTop = '100px';
2797            activeBtn.style.display = 'block';
2798            cookie.set('show', true, namespace);
2799            this.hideModules();
2800          } else {
2801            document.body.style.cssText = ''; //activeBtn.style.display = 'none'
2802
2803            cookie.remove("".concat(namespace));
2804            location.reload();
2805          }
2806        }
2807      }, {
2808        key: "hideModules",
2809        value: function hideModules() {
2810          var namespace = this.config.namespace;
2811          var classList = document.getElementsByClassName("".concat(namespace, "-hide"));
2812
2813          for (var i = 0; i < classList.length; i++) {
2814            classList[i].style.display = 'none';
2815          }
2816        }
2817      }, {
2818        key: "creatStyle",
2819        value: function creatStyle(id, css) {
2820          var flag = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
2821
2822          if (!flag) {
2823            this.tmplStyle.push(css);
2824          } else {
2825            var namespace = this.config.namespace;
2826            var styleNode = document.createElement('style');
2827            styleNode.type = 'text/css';
2828            styleNode.id = "".concat(namespace, "-").concat(id);
2829            styleNode.className = id;
2830
2831            if (styleNode.styleSheet) {
2832              styleNode.styleSheet.cssText = css;
2833            } else {
2834              styleNode.innerHTML = css;
2835            }
2836
2837            document.getElementsByTagName('head')[0].appendChild(styleNode);
2838          }
2839        }
2840      }, {
2841        key: "creatHtml",
2842        value: function creatHtml(id, htmlFn) {
2843          var namespace = this.config.namespace;
2844          var DomContainer = document.createElement("div");
2845          DomContainer.id = "".concat(namespace, "-").concat(id);
2846          DomContainer.className = id;
2847          DomContainer.style.display = 'none';
2848
2849          if (typeof htmlFn !== 'function') {
2850            console.error('htmlFn不是一个函数');
2851            return;
2852          }
2853
2854          var __html = htmlFn(namespace);
2855
2856          DomContainer.innerHTML = __html;
2857          this.tmplHtml.push(DomContainer.outerHTML);
2858        }
2859      }, {
2860        key: "registeHtml",
2861        value: function registeHtml() {
2862          var namespace = this.config.namespace;
2863          document.getElementById(namespace).innerHTML = this.tmplHtml.join('');
2864        }
2865      }, {
2866        key: "registeStyle",
2867        value: function registeStyle() {
2868          var namespace = this.config.namespace;
2869          var styleNode = document.createElement('style');
2870          styleNode.type = 'text/css';
2871          styleNode.id = "".concat(namespace, "-style");
2872
2873          var __css = this.tmplStyle.join('\n');
2874
2875          if (styleNode.styleSheet) {
2876            styleNode.styleSheet.cssText = __css;
2877          } else {
2878            styleNode.innerHTML = __css;
2879          }
2880
2881          document.getElementsByTagName('head')[0].appendChild(styleNode);
2882        }
2883      }, {
2884        key: "formatLongText",
2885        value: function formatLongText() {
2886          var namespace = this.config.namespace;
2887          var longText = document.getElementsByClassName("".concat(namespace, "-long-text")) || [];
2888          [].forEach.call(longText, function (el) {
2889            var __el = el.innerText.split('。');
2890
2891            var __elItem = [];
2892
2893            __el.map(function (item) {
2894              __elItem.push("<label>".concat(item, "</label>"));
2895            });
2896
2897            el.innerHTML = __elItem.join('。');
2898          });
2899        }
2900      }]);
2901
2902      return Base;
2903    }();
2904
2905    var styles$4 = ".topbar-html {\n  width: 100%;\n  background: #797F8D;\n  overflow: hidden;\n  z-index: 2147483645;\n  position: fixed;\n  top: 0;\n  box-shadow: 0 0 10px 2px #999;\n  left: 0;\n  right: 0;\n}\n.topbar-html-mright {\n  margin-right: 50px !important;\n}\n.topbar-html-margin0 {\n  margin: 0 !important;\n}\n.topbar-html-content {\n  width: 1080px;\n  height: 100px;\n  margin: 0 auto;\n  display: flex;\n  justify-content: center;\n}\n.topbar-html-content-item {\n  cursor: pointer;\n  margin: 0 6px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n.topbar-html-content-item span {\n  height: 30px;\n  line-height: 30px;\n  color: #FFFFFF;\n  font-size: 16px;\n  font-weight: 500;\n  font-family: PingFangSC-Medium;\n}\n.topbar-html-content-item img {\n  height: 52px;\n  width: 52px;\n  border-radius: 5px;\n  display: block;\n}";
2906
2907    var img$n = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAkFBMVEUAAAD///////////////////////////////////////8zMzM5OTk8PDz8/PxcXFzu7u6zs7NHR0diYmJBQUG3t7eqqqqkpKSBgYHQ0NC+vr5MTEybm5v5+fnz8/Po6OjV1dWfn590dHRPT0/h4eHd3d3b29vLy8vFxcWvr6+WlpaHh4dmZmZXV1dubm6MjIwpqEHtAAAACnRSTlMAvfPZlHYzJgQRpdOjTAAAA69JREFUaN7t2mlTpDAQBuAZj1WbTkBuGOa+D/X//7sdDTHRWbTTzqRqq3w/7g4+SRMghPR07m7711dw1lxd92/veh/zpw8XSv+PxdzfwAVzc6+dhz5cNP2Htj9Uhy+pPt3AxXPzNg7AQ15HRB88pH+8fsBL7nq34CW3PiqnancNXnLduwIvueqBp/xCvxAbitZ1Pp0WeVZFoHNuSE6aUGAqMAgQhRCY7Cp5fmhSiiPxKUKU1VkhmQ2EDdjWPJNng7JYMR1UXJ8HWoSa6aTCFbQZzuIw50HNyZlBPP2
2907nQtVvFLxmxoCig7CbjiLcN3meF2WSorClcATHlKoJE2doEaPVkdljZLehfrYsHIwBIFTtyVyhpbBG8k4rJsOtNRrTJcCT+u2jIzS22vvYMYg3ZkRixITG5k+UEroiC1PdMQsaxZpJ1/BVVnNNzTmQTNAMKJXvf4oMqBDakQBUiQEt9aHJEAiZtc1yh0LdH+UQ+sSD6raFT5KgRKvVapKyIBm3HVp9Y6j7WyqOQQ6UCXVEQSja4B1gQHN1REwo3Cb9AVS1HdrA95niD6BSHTAAQtbBKVQRIdl2aAuUnJwjpD34TOWQeAm9xGgnLoEK7VTZn4EZMpSoytVACx9C/RwjhQ9F6hSlQAsfqhR0AFr4UKagEjipy3JDhXJ1jgqOk7/NMIiQmm1g7miYeRNuaNA0YEO1auP0spApRkGDtuocNQzohX73No/xPQOaKaimQZV6lCUMKFGXekWDImTfGUTnzatH+Dk9i3YCCUQo1KfUNbmCDiTIvE3OnKHn4C0NFZowazdEPWVwmzPgzhEqWkiC4yxISCdHtjM86pzB1E5kTlDdHlVRITOFGtC7ZObGc9Chz71x7wC9oCmD+9vEmuxMUM/X6ZDpUpCOiI6cB9YNlfPGJ2mXUNh2KARHaIF0yX5bXrpC0Aj627IMtVOAMwQHcp9G4XujJAOK3ldO5qsvnXWKgUo8AgYEC2Gv+3VF7jUTiDGwIFha66abDiYbWGtOwIRgLAw12A5Pq7sT1i+W4AwZyWqvwOc6spXHGZr/xXgBP4BglHxcU02TssjzvNl/WlMVhwh+BIEsSKvEDQATMlkS1r0XwIbs1N+s5GcA54FAZnPRxQyo3yaIqf7xtQWFKCcAQIXIVpMgHjl8JVIUYTNx/X5ET1RleTGdbut193D+v77x/UL+IW/bDLxtnPC2FcTb5hZv23V8bUDytqXK1yYxb9vefG3k87U10etmS2/bR/8CfLm94E4nnEwAAAAASUVORK5CYII=";
2908
2909    var img$m = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAjVBMVEUAAAD///////////////////////8zMzM4ODg+Pj719fWoqKg7OztGRkbg4OD39/d1dXVbW1vIyMj7+/tMTEzj4+OUlJSCgoJCQkLo6Oi9vb1RUVHs7Ozb29vX19fw8PDAwMC6urpwcHC0tLRVVVWlpaVpaWnQ0NCurq6enp6ZmZmLi4uIiIh7e3thYWGg660bAAAABnRSTlMA+uWnfzGozdCBAAADiklEQVRo3u3a7XKqMBAGYK3HJeFEUEHRgqj41dqP+7+805MNs5lhILF2memM758iJTwG1hDbDL4yHj0NgS3Dp9F4oPOHSyHrj3agh3xJ4yH0kOF4MIJeMho8QS95GgyhlwwH0FMe0AN6QA/ot0FRNhFikm3sfQxQnIlAR2S0kwGKP1VQJwcMBxTPyKE+3Q81HYGGkUoA4ICMQ/kA4IDC2hHvH7ghgQEiR80BKtzkgKg/ewD4K/Rm/PNQeCSHoPDHIXKegQdqOjxQ02mH4u29UJgbR2mnBXoXIp3fBW0bDkG2g5XvgDz70w4lASb6LhRfUro/HRDUR0U3QcXhnEqhowKM2EEnVBlpsvWHinc8PYacTig0PRdnb+giReBwCKKsV3QrvaBLkwkUOU2oWOO+SJoxPfSCyiYj5BxaoXAmRBCjZC7e0gcKJw1FZGtoh7ACCr33VWH/Qw/opMz502ypc9phsxZojUfn+qB4hdDVDQ0n2LDxwWuDFhIbvOndzwo76IY2eKTcgieU5PTY/conNr84oZOgVl5Q3aUg1fv3+CpzQssAT+APQWkuwou+SwKvnROa0nFekN5GaaZ/ccZ3WnBAiSkgfV8PUndvxwHVJz/ozyH+4pUF2uKNqfQLrIYpCwQzukm0zQFVpsCpGnIe6A2rwT4DD7S0oA8+iFrRpUv5i+GTsRhCu7zxSXFmgXAkVfZgt2SBcmt8m9Mo0Q5RoSa3QAccVI9W0cmN3/NIljdAG4nnPlkjkAIXNDet/KGinqEmVvvKCSWmWZV4QkmAkThtzPDF3glBhpJI33ZznXLbCRXoiJl+ZxtsrWI3VKjARJqI4z5ph9bKntrPUM3ADcFLLVHkcd0KwVEfsrBnWyJyQ3Tx7IhV1AptAylX+EZi80yfghsyE9tGZNQGQVKWMX01pA65Idil0iERRElm6KgluCDKoRKirgWSuqHKXIg0dkN2wmjzP/NXkjqhq7kKqvzut/JIktQBTQLMHr4LwYKkDggPEidwQDf2qQlNqRDckL/UhMJASXUFF+QvtZf3fL8AN+Qvcf0ZrVkRPBBJK5J4oKa0BrgilDBAtrQ74IYCDsiWBP48AzBAWhKGoqkBA6QlG8rxFt0Luftkao4FgnWuUJEpTSQ4IIhfUiWlSk8x7WOAdIqybPTmN/979AE9oF8C9bWkqrdFYr0te+ttIV9fSxP7W2zZ2/LRf1C1IJ35WNi4AAAAAElFTkSuQmCC";
2910
2911    var img$l = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABqCAMAAABnCuSYAAAAw1BMVEUAAAD///////////////////////////////////////////////////////////8zMzP8/Px5eXk6Ojrj4+NBQUE3Nzf5+fn09PRISEjn5+fb29ubm5uWlpbGxsaoqKiDg4N+fn5zc3NtbW1kZGRUVFTf39/U1NTLy8tPT09MTEzw8PCxsbGPj49hYWHr6+u4uLiioqKSkpJpaWnY2NiLi4uHh4ddXV3l5eW7u7vDw8O1tbWsrKyfn5/t7e3Pz8+/v7+8gE6lAAAAD3RSTlMAyDfs3bdeSxoQ5K2klG8zW7abAAAEyUlEQVRo3u2aiW7iMBBAs9tu2z3HTiAOuSDhvinQAqXX/3/Vih0Tb9jER49IK/WpqlQ1ybM9kxknYFXJ11/fP70j3399Rc/lN3hnvl0ePBdQAReWdXUGFXB2Zf2ESvhpnUMlnFsUKoFaUBEfog/Rh4jDgl0zXN7eRA/3sQ/Im4v8fTIkf+NsljF7a9H8ukuKcNNn+oaiQdslpdSn8zcSxR0ix7n130BUaxM1TsheKaKhc7JQm7adJOmqe7KY3cGrRP6MCNxZNHgUQ+gtWrksjOjLRXd1kjG7H8M/BNMGyejMXypqkgx7DcXQvcj7Ue9loogcacuuQBeNLID9l4imhNN4Bjne1CWI0zcXPWRLPwYlcf04p8BUNCGcFgUNesPj9H0zUd/lKd0EPbwVQTbUROTxATox6EJbBJmaiGyCLEAf2ibInb7omSARmOB1eZiYroiN8IwUzKjx3FvqiiJeJz0wZOBiBgV6orGDidADY0JesPREkQiQKYxna09H5OFKjwpDSg8/EmIUJTqiezx2AkXMm81HqWmGy+5piDaYo7RoPtv6oZzJTHc4zHu1qIdHXkMRf7YpK5DRxTapFoWYofOiCfFBSKd0jcf4SlEHWx0UscSL3IIEn4dYJWJueSrQBuGhlk0JR5qoRAO81rbIc0c4TZAQYTKpRLjEI2lNJ12QwIf6qBC1SmsI9cSecSBZO4aHPClEuMKhZPelrOsjjLJC1ChveBshcn3JlFbYKxQiV8w7Dw3405ey4uLqt+Qiym/JrIbSbY1zi2m7EBWKwriWwYDmNoS2XDQ+ye4Hh+QZML64FChLicCd0lxtSeWiOZ415xOKyQkjClFWzBKSY5Lbeq7kIg/PqQFycyqKgPrH1e2RPHbujk21YrQWg8tTowApD3aL5LnJjS6Ri8DBSHDtuPHvtegA0y9wSY76lgcpwcqrEA2zvoWm0BYke0pFy2ngb5sT+fkmGypE7fy2lgKS+6uZz4DTQ3HPsVOIbng7kkA9XF/R8YsSN1CI7nG9KcjAe7ek4+/wP0whCvCwvnRKQZYAjJaMYqNs5XURSmkXLT1siFFWimx1awO6K+/pff7sohRNlGsndg83pfFzPKWIp1QLpIS8K5VtqG2NnarNW5t0RvQQpX35ti7WEMWi2khMbBI9Fez3Ga8XVCUSFcapgUD7sSIUt5datCC8OpizxQDXPS0RHcofydUP5iFoiMRDubMGQ5a8AHqaIuADGz2CEQuC7EBXVOPlecbAgD4/awW6ItFxEtBn3uCF1jcQgW3wbgvpdcUbGgORN5S8rZO+sZuCkQh6xxNHAWjQdAmSUiMRhhZxnkEFaxFOh4GpCAYO4di+YtmGhLPxwFwE/br4RMCDUtZiB95mYChCeiOxO1xuoQg6aJOMhIKxCBmnRNCZ+KeW/hKHonr9iiIp17l977DVjGseBWDj9S5M67n/reE1Igg65B+co13gLhmoRCr2DaJkFQC8WgSsOVJongB0RGroflVqqbf6ANoiNf7DzC2w2DsGYCZS48VR2nUzxyy5xkTTFZlBH2vrp37ge1DM//ZZ+YfoQ/R/ic6gEs6sL1AJX6xLqIRLy/oBFfDj8J3OChbv
2911C36v8+Ic3pXzC+vI1ed35Mo68BtVKaeQ+hFKXwAAAABJRU5ErkJggg==";
2912
2913    var img$k = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAmVBMVEX8/PwAAAD///////////////////8zMzM3Nzfg4OBERERRUVE+Pj6kpKTn5+fi4uKFhYVubm5YWFj4+Pj09PTAwMCbm5vs7OzZ2dmSkpKKiopNTU1BQUFra2vw8PDPz8+ysrKvr6/FxcWOjo54eHhiYmLLy8u4uLhwcHBmZmY7OzvS0tKVlZWAgIB9fX10dHSqqqpJSUleXl4uaMzTAAAABnRSTlP+AOWnfzGF0eAUAAAD5UlEQVRo3u3a2XqqMBAAYLpNIhakrCog7vtW3//hjoeJRhrwZNTynQvnplVC/jAJCWkxXl5ePt5e4Rfj9e3jiByhdwN+OYz3v9A71BDvL8aHATXEkXmDWuLNeIVa4tWAmuIJPaEn9ITuhFqB5YzTw2K+7fRXPn73cKg3GCeMcc6OgT/ddfZ4KJgzJC6Ds+/QfiRk9GPBlFib1sOgYVxGSKrrPwSKdsV6MQpfJbMHQG2TS4OZ6cgazPr7cOvyy2yO7oYCzs8pSgeXPe9NO+bZ4ql/HxSer2YZRurh6eR8PG7dA41lh/cqBkrzVOQzux0anTKzu9LcfiJKfbZuhfpMhAXXwnZR4k3/NijjoneGcD28ncje102QnYhebuBnnTHTuQXChPBEazJbCymgQ3uRuBVoxRyLmx4VipbYxD7ohd/EBHSoUBfPG4Fu2J+YgYgGRZiJpCwTQycsG8eWaBoN6uBZg7IKj98zo6Sib7ykHgUycGjHZSs6r2r3DKE9BRpWD9ZG3hdp6Q2Rn+RSoHGeuSZUQl9QeUmsQYDyynhIhLxlfpqlD7WxaTYRgk2eiLk+hCP1G6jQLD9vqQ1hy7hDhiKRCW3IxZuIDIGZQ0NtCGeTjA5NcDToQgZmoDBrBYemCJycTp++Cnly8pyvdaEeQp4yPErD/zlz8a4uZGMNSvKVUBaGMG/P5g6IVUdXhYipuzyyqIYyNXXEwVCY77fnTloWtxKBslzyji4EWGn7R0EMMXuLT15xZUxpwxuaefkZ/T7CtS/QhnY4nMiQL9YJbQgHj0uGhthvhjY0FbciFcJNwQS0IQNHQ58KmbheakLytplQIJmIFQESG5Y2DZqL9ZIA+fhYt4CqacMBNVY4FNb6kJwIpqCGW3WtBzzHJkFtVv2M1o1Lt0wBXtCY+JA/lwNPL7xY9CsFkpfE27rQjosLIkLQFTurSM8JRcNsMuSLLazr6TiB3L/TIHn78bmGNOVM3g9UCPZCcu1/OZYomUQ3QeCIdpqrq4zhMAFlcBtkTLioYX+lVANLyQ6iQ9CLT1IcVBSJHPmnNLN1KwT+gjMRh6zseMixgJToEEZXPu80rWI93nAsGFWiQzBgTFrm1grarchuZIPOhDPJmIpEhiAzL7PDi7+I3y3DUSQyBN4aa62Myd/KpUSGZLS2rIrizJ1hISnRIRl29zO3FGaHN7MikSFZLhgnxZ5hy9TC2UmRaJAajcEojRN+rMpNN5ZcqhTJJkDkQEmdxQkQSVK3pQSILHHl+8dCKKnPdr8CwcB1lfXi//2v5RN6Qk/oCT02antJrLbX3mp7ka+uVxPre9myttdH/wB03iKbr43v3gAAAABJRU5ErkJggg==";
2914
2915    var img$j = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAllBMVEUAAAD///////////////////////8zMzM2NjY4ODj7+/tSUlLi4uJERESTk5OFhYX4+Pjn5+fAwMCkpKRYWFhBQUH09PSbm5vs7Ox2dnbZ2dlra2tiYmJNTU08PDzPz8+ysrKvr6+pqamJiYmOjo5/f3/w8PDLy8t7e3twcHDT09PGxsbk5ORmZmZeXl5JSUm3t7e6urrPoq9IAAAABnRSTlMA+uWnfzGozdCBAAADxklEQVRo3u3a7XaaQBCAYZM0M7sIyJcIgkHFbxOT3P/NNd3ZIoRod4zh9IfvjzanUR9YB8RTeh89PtzDD3b/8NhT/bqDH+7ul3Kggz6kxzvooLvH3gN00kPvHjrpvgcddYNu0A26Qd+E7CAcpNkh3y7d6S4GRgxoNUuHiFLgR/R35BbXh4ItElFP4uvIvyZkTSfEtBO4tK8G7SdtoE6V8VWgJG0ul5RCSNmghu9XgMaOrF5QoJMtwtnbdD7aRAJr2sL6LhRIUS1RNnuGY97adbD6ZRZ/DxpVe/M0SqDVOq9WdGJ/A7LSao7L1Yk97ldbUlwOLQRSqX1m9If6UcPnS6Ep6kI4lx+RJPrxZVAh9Jrs4Xxe+nciLoL8IT1bv8tGM+NeAkWSDkYfDHK1FPChuV64HRi1pYc7HhdKnlA1BbPivpKEy4VKWrgFmObTlomEByWSDg0PjAsFbRoPcmmHZmCe9UonkRUHsmi0JxYweqO1m3OgfTWsnCL1pIgDpULtEPB6R5XNgNQEiRET8tTT5NwcGqPKB2ZLtRBbcyhUM/cK3N4U9GQM0ZaJARtK9EoYQ5E+iNg5CtobQ3Q2KfhQTtNgClmoSqBWcOh/Wdb4/B6IP5BrCq0I8pofGqeKP5+5ZGkK+ahqLX6r1gfDSI3r0hR6bkN4urINMZfOgmMvp6Hi89KJkjkMq/o/bY5X4PQHJZon3pI3DEAvOv7Ef5XnQb1MjXdoDPXVxr4BO/rsC4yhFGkFuMWoso0hGp6IDe2VIyxjaF0dirwWagNzMIYsGqrpRedUOTKH9GGTMx29EDsGNMXmgHMui1+BAcV0WffCcnb63MeBQJ8I1hzoQO/sMwsaI3InPKAdSoEFwZY7eN5Ev69MSO+SNJ6HlE62G2BCUOpvVomZM9Ib5rOhWH+FjTyzN4gKgQtVh5/YGkhridXxwIZgrqXIB+qfjxwmfIgunuj5zu4sYw1QQwVcBlm51K8wt+Bkdi6abxAfgtVEaGkSwNclA5TaEY59KQTxi0Ddofjq9yNJD2hKfAis8njx0w+br+PtN8Q0JT5EzRCPlrMJg7Gd+HYxc3OBR8ZpSWwICqe+OrL5g/45tAYtiQ2B5wqB58ptAGhIfIiylyhPIAKjdwBoSXyI8hdDFG1GYroDqiXxIcoKNh+WqCNPWegDZSARZJY9W2SToUTpRNkyHFtAtSWfBfGrpByOMSCW1P5ayoDYkoR6DIglta/tfgSC2SEK4VP/7/9a3qAbdINu0HXr7Caxzm576+xGvq5uTezuZsvObh/9DX0gIQxCgyCMAAAAAElFTkSuQmCC";
2916
2917    var img$i = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAmVBMVEUAAAD///////////////////////8zMzM5OTnT09M/Pz/7+/tGRkY1NTXv7+9OTk7c3Nx6enpYWFjo6OjFxcVfX1/39/fW1tbMzMy7u7usrKyNjY1oaGhTU1Pz8/Pk5OTQ0NC3t7eysrJzc3NKSkqjo6OdnZ2Tk5OAgIDr6+vg4OCXl5dvb29ra2tjY2O+vr6Dg4Onp6eJiYmMMDgYAAAABnRSTlMA+uWnfzGozdCBAAAC8UlEQVRo3u3ay3LiMBAFUAzhCmxjg23wA8wbwpsk//9xk4nUyC6YmgVqVRbcDVBenFJJ5W4JNb7TbjUdsMVpttqNn7zxKWS9/TiwkG+p7cBCnHajBStpNZqwkmbDgZU4DVjKC3pBL8gKNN+8LwPUwwDtT+I7boFKOCAvEjIfHigs0FZQTiNQOKCJuGVIE8UCuUInPECGA+qIStw5KEwQcZ0cFB4op7XX+wTACHWnt0UxBjgheAOSBiNWCHgn6RLwQih6SipjXggJLT4/5YWQ+kpyE14Is5CW+ZIXQjAUKkdeCKMVSTuPFQK+SDpPeSFsSIr2vBByWubrPi+EzKVlnvFC6K+pbix4IewjobLhhTA9k/TFC8HbkbQasULAUbdHvBCWVDfCGS+ExKW60eWFdN3oJLwQ4pLqRsELIbgIlXdeqNoeeawQMCZpMuWF8EnLPIp5IVx13eCFMHf1foMVwiFUkr/nhXR7NOCEnOAwX7hqSKahuJ/lxXa8Ow1DSVBGhqFI3IVnRPk/oA9j0MKTn+XjAQWmoI1YqrL3yIn6MARthQgd+TZdV4WeH11W48SDCYj6BNXLFZKYLJI0nhqtsLSPLdXGwpez4plvt6ggXGvdfmEa0huWoRqSK3sgzzC0E7cktTO2pVHIGQidi+qL5ZBKhpMTSlZdHCI3B3krqmyybJ9VcZCPI2NQdiYnVSNLa+swMQXd6mcffbWFUMVCPh+agrQDnOR39VL7oDkzCa0PANCtleyZnLPJ01CknXBWPTjuqV9qzrrPQjvtxJDJqhWO5uz0LDTrKKfcgzKUQ1LwiubsOQiLzt2xY1I7XU3lr+2zEGa70p8UDyauE1S71PNz0OPkekeUU+O4YoCoMXHjz1BQjhwQNSY9cYsbsEBeSAA5V7BAKOrO5ACAAar3Wr1BChkGCHOaH3ccg8IB4er/ZdabKXRYIIwWx23m4T6//w/fF/SCXtB/Yu1KlbVLYtauvVm7yGfraqK9y5bWro/+AdOIGl9J8J/ZAAAAAElFTkSuQmCC";
2918
2919    var img$h = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAUVBMVEUAAAD///////////////////////8zMzPz8/NZWVnAwMA/Pz/a2tpzc3P4+Pi6urpOTk47Ozvu7u6qqqp6enphYWHS0tLHx8ebm5uTk5Nra2tiB1jKAAAABnRSTlMA++WnfzGVrfkxAAABBElEQVRo3u3aW46CQBCF4S6QU+04w8XLzOj+F6qCLZrYSSfaFSDn38CXEOCljrtUlYUgW1KUletbCTInq96BQRepEhgklSthUukKmFQ4gUniYBQhQoSWDYk3gbb7TtsGT+WA6lav7fBQFuhf+7oaY1mgkw79YiwLtNahL4wRAqEQIRAKEQKhECEQChHCkiEf7bAZanysOhna7jca7RtDPxpt3aRBvlVNguLtkqCjvg11PgU6vA/p36Sgjzy6Sb0MH3i9p/bBLvJfR4gQoVuEQChECIRChEDo3qyPIC/POrM+VL08vc37mHiNECFCS4esJlVmIzGz2ZvZkM9qmmg3tjSbj54BcxwE/PC391YAAAAASUVORK5CYII=";
2920
2921    var img$g = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAjVBMVEUAAAD///////////////////////////8zMzOysrI3NzdgYGBcXFzOzs6VlZU1NTX8/Pz39/dmZmZFRUW8vLyrq6uenp6BgYFwcHBXV1dBQUH09PTh4eHZ2dnHx8eSkpJQUFBLS0s8PDzl5eXU1NR0dHTw8PDb29vAwMCvr6+mpqaMjIx6enrr6+tiYmIKA4ZdAAAAB3RSTlMA+uWnfzED0RzAUQAAAf1JREFUaN7t2tlSwjAUgOGyeQ6B0n2je9kFff/HUybRGUenSROaUSf/NeQbaHJBONZ7i9kURmw6W1j3nuYTGLnJ/OkdmoOG5pa1mICGJgtrBlqaWVPQ0tQCTRnIQAb6J9DODpcDO5f5UKioW5TJ8S/eACi/OihdGwpDRYtKJa4YtA9QsdQTgV4CVC4RgFwfH9CSD12QFVyj5cDiA0HaNudBboO0jQsSFSukxTwoRNozyOUxKXA50I2+bgWylewI2hyIbbk9SJewr74fKhQ+EOtEl/D7IZu+qgaFtngv64dCla3AyugG74eWH+dNIbrviIH+IxSla07+Jn8AdEN+pM2VoT2KRDbKUOQISakyVAk55KoMuRnhOw7ZKUNwTLb4ra9455ePP0f2x8P/moEMZCADGchABjKQgQz0c3u6TDw65BG8V40OQYQOOimMD0GVpNHf/rFsoCHQZXSoolCsAjX0UrUfKimUKDjsRK/7oePnHa90Z7rEoR+CTPUK0mUrRByoZjfxR1koQtqOA52Q5ntyjt3R978CB4IDk5pQ4jm91ARpFRcqCbK6bDWwxkHWK3AhiFG97U4AglTZcc4gAnkHRYeEwINYtaPitDaIQnDypZlu44EQxCpiv+nIwIL1Lfxkft9/5QYy0DhpGxLTNvambZBP12iivmFLbeOjbzu6QQG065M4AAAAAElFTkSuQmCC";
2922
2923    var img$f = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAk1BMVEUAAAD///////////////////////////8zMzM8PDyQkJDv7++pqal0dHRJSUlZWVk4ODj8/PyxsbH39/ejo6Nvb2/5+fnOzs6fn5+3t7ebm5uXl5fi4uKHh4d+fn5nZ2dMTExERETo6Ojd3d2/v7+Dg4N5eXnIyMiVlZVTU1Pz8/PU1NTQ0NCMjIzY2NhgYGCtra3alU/RAAAAB3RSTlMA+uWnfzED0RzAUQAAAoNJREFUaN7t2ttu4jAQgGFO7UwwFDvHpuRAIMBCgfb9n27JxNpuF21jSMcqUv47JOCLIyLI4N65h+EAGBsMH3pVj6M+MNcfPZ6hEVhodD5vfbBQ/6E3BCsNewOw0qAHluqgDuqgDvqBkIj98fX5sbgOes3x1vKDOaSO2KZUmUIBtitQZtAY23Y0glbYvpMJtEGddK5Noi4wgDz97HQJ17c86mPcN0MRUhnc1hqpbTMUI/V6I3RCym2GJkiJG6E9Uj475HVQB1mHwMGqmB/K8Jwj+CGRIxYlsEK6VeQBO6S7fyicbNaRBcib4bkjPzRHKvC4oRzrZktmaIa64tUShLLkh3Q+O5RLpNaKGXK3DlK5YIZgtUBqlzBDIN6QKiJmCMINUjJmharmWDfnhiCWSG1CZgiiAqk3wQxBskNqsWKGYJ8j5WyZIVBrpOSBEUrK9+dx5iA144JCAFEbOsUDJQEAvOBHBbBApwJjAO/pA3r+3ntYDR0cxEUI4KJOjpX5Xbk5tJF6Dap6GLjlwfvyOgodpNYJ/JuqC8PQqwo/QTpHAGyrq
29231VdMTnR4f/alZcQHvXUym2EVhKNO1xCMgFY6SV933Qr+wwV1TFO9fzEbYRgagwFQGVILZIUz0X1J2rWDCnjNU3+Ptu7JSwlfT+M6bEwmakG8qpR43aHMqvemJakX+uZTYlL/xc1p150z3V+1SSCj/Zk0pJ0Ae/cO8XLH/wskFjUTNxwwbYvmTrFJoJP/Yi/DKxD5XraWDZRraEUjXpTLaETGua2hN5NobQltDWF/JYQ5GbOYt8W8sazp8Z2qbij66iDOgg6qIP+dMeQrU1i1ra9WdvIZ2tror3Nlta2j/4GQjRJ2VA0dAoAAAAASUVORK5CYII=";
2924
2925    var img$e = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAllBMVEUAAAD///////////////////////8zMzNDQ0OlpaX7+/vq6upQUFDk5OTf3983Nzfx8fHDw8OSkpLS0tKDg4N+fn5bW1v39/fZ2dmYmJiLi4tVVVV5eXljY2M6OjrKysqioqKdnZ1zc3NnZ2dfX19LS0tHR0e/v7+7u7u0tLSurq5sbGw/Pz+qqqpZWVmIiIjs7OzFxcURI+eeAAAABnRSTlMA+uWnfzGozdCBAAADWUlEQVRo3u3aaXOiQBAGYI+1wRkuRRRFUeMZjxz//89tVnnH1JaQbqywtbv0tyTdPjJMzwwVGh/RabfoG6PV7jQu8aNJ3xzNHxeHKogPqdOkCqLZabSpkmg3WlRJtBpUUdRQDdXQPw6p2BVkl4fOqWXNxJQc2lm/YqiEZXJoZV1iLiyTQ/YV6tKnqKH/BQpUJVDPsdIoKIT2yWn9/iCk+pdPnRVBi8vP/YegYGWhPXOhIL3+4hiUh7RjZXHOh0LkJFoOGQfxng+5JsnR5aC3m5OofIiebtJbGUjNLMRQUwE0GprEmSoBDUx5NCruo9HUpA7k0LMpXny9MixN8rMU0ieUdjlLUBfZJy2Enm7Xw4FogfwnGdS7DToPoggVPRH0gvmmuJAaokQC7bKi1OVvE16aFe0EEC5oLNmPxrgkPhSj05UEUlhJYjb0mlUcZDvsISubcCGVfdZWySDU2YoJzc0dkkHmLs2ZEPJdKeThGzKhdbY3yE9BSbaI8yDlX9P7cqh//ZuvWJCHxpND+6zUY0E93CI55GK940BY8k90P5yijSfFt2BAGGgnB4owOvdig9vLgSaFqzBpGx+Vv0hOOBAWoBXlSa/DY96OnR1oXlnQAM0gD0ADydC9yAj50OFIs5EzZjIsWdAB7S13FPYXUcN6csgTNazGWVAO4dSpWRAWmYHYQTPbxIOOmA1l58KRCeHUGUodPJMtmZBnlRy7AaYRE8ICnWqZo1Msx1xojEsqd0FjNqT9rGc9UROhSrMhmhY/gxQ/6UyJD4XFzyDFTzqhADLf7uSxB+5kRkECuT7O+QHPCXDC910RRH0MxEpxHLVCfp9k0ChB5VQxnCmyk5EQothH7Vp/5eg1cv2YpBCdLcQ2LHbCrUk9kxyiiSn3z6pg2Lq+SZyQFELbIpx9XtLeQQ5aVQ6po3WL9fxeynxo3eKoxBCkyPoUydL9rUeXyee/R3DkENrJxCZa7GI3CNx4t5hiChQ0EB+inm2xwu7RYxDpFcdZaSoPIfbbr5gt5uRjEI2WduGojUf0MASq6+QxThfMgxAinGzujNkEqxMD4od7iNY2DHsdHdBXPEgYgRvPw9gt3A//un/41lAN1dAfgip7Sayy194qe5GvqlcTq3vZsrLXR38CNzUbwKsmamQAAAAASUVORK5CYII=";
2926
2927    var img$d = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAolBMVEUAAAAAvssAv8wAvswAv8sAv8sAvssAvs0AxNEAv8wAw9IAv8sAvsv////x+/z3/P38/v71/Pz4/f0Fv8xe1t7u+/vK8vTz+/waxNASw8/g9/jl+PosydTF8PNz2+JS09ye5us2zNY8zdfA7/Jp2OBZ1d0kx9KY5Op53ONu2uJ93uTa9vez6++C3+VK0Nrp+ftCz9jQ8/Wq6e5k2N8JwM2P4uiT7n99AAAADHRSTlMA2b69u5R2MybzEfI7x2vHAAAEAElEQVRo3u3a2XLaMBQGYNKkadIeS5aM9x2D2ZdC+v6v1gTJxqkHcqSAZjqT/yqJTT50LAlbaNDk6fHh7hmumue7h8enwfv8uIcb5f5H1/kON8z3lvn5DW6abz8ldENHSjp106/eDzCQtx5xDwZy/zp+wEieBo9gJI+DBzCSh8EdGMnd4BmM5HkAhvIFfUHaULjLx7NZNp+UASCiBTnlwiPcJcy2OSUuo+l6dAOoLHzCrfexCSlG14UmkW93hK61HDpXg4Yxsc6HbPPrQLVHrMvxvQRkXvaxN9aDFtT+p1qU9f7EMtkprbcjew0orPxulbjrTRfj8TwrKpd2G8rSEF4zpcffSmWo3lKrCeWrYXfwBPmqY/Ho7Zh3/NmdqEIJaWtEyDroD61D5Lfl2yYAv8W5Q0UoOFUmOteJNzFrJBZoQjVpnen5seJkp64RaEFhLP8BdXeXC7yksk1LLSjl0vFCuBwnZfJUpgHNfVk2z/l4vq247HvqUNK8yQo1la3k6eqQJy4Q914AlZTrQbkonP0b054wSZLStXUgJ5YXKEEwlu2S11AdaEKEkyE+eKOmKTrQUrwiRhRu41r60Eg0yN/Ax5n5n4AKUY0IENlZfWiEhYg4/wCY9K4RXwESkpWjDqDyJ6bdxFPAQmsx+FagGTSUisrlgIs+xESpA0BFHwoE5AIu+lAphmAFuOhDcv6Zgk42RbHBQnN6nLgzHWds2RYvkFDGj6NoruEEohttcNDsONTZWAPK2fE9zm4NyWLwDAcd2PEaLTSgP2LWR87euX6v28s5BQeNxDhKNaBUDPURDgq59swgp/0AB8nTeajs1M3khYS85gNZNWMBVVhoIWq3V4ZWohRrLFS2pVbLC5O3DFjIETc2bK06XCUEoHgXRBw1aCtuows8VPo63SEnsnJ4CCLrmEilSY580RIAlO+9pyrzHJNlUIGgeZrYoZ1SPk1sHSVINslyQ8XC+WJCVX7io56DG0KeaJDtgSJUU0tBctLm9EQVah9HWPXyseMxefIclCGo0G0KmxU9noIGFG5t+fJlctHZuc3KSRzqQFC77VJgdmEtaMosGVKDFgSJ1cSPN2eYYdQ6VgCaEATEbqno4PSPrwk5rRcnoA1BHfFTq+gqD7rKcE9PreFxDZ+AIEzfralStyqy+Xi8mKYuJ50jfhWCLiQzZ/1V4v6fFgCfhSDxfOtyiFeDBtRPfnklPx4CXAcCZ7IkZ76b8KMJgD7Uz6ggvW9bOGFFCYCG0NY6ZcwllNs2Iy4n3qJ0ANCQWoJyMs9ms0O+O9+d/6/v+L4g85CpbQa/jG2cMLYVxNjmFmPbdUxtQDK2pcrUJjFT296MbeQztDXR7GZLY9tH/wJaqhlff2pFzgAAAABJRU5ErkJggg==";
2928
2929    var img$c = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAnFBMVEUAAAAAv8wAvswAv8sAv80AwdAAvsv////3/P35/f0Mwc39/v70/Pxt2eHw+/zu+vvl+PoGv8ys6u5R09spyNPX9fff9/gjx9Imx9KF4OYdxdEPws7p+frL8vQZxNDQ8/VX1Nwyy9UvydQTw8983uRe1t687vGy6++d5utH0NlFz9lx2+LH8POa5eqT4+k/ztil6OyO4uhm2OA6zddz/xLXAAAABnRSTlMA++WnfzGVrfkxAAADxUlEQVRo3u3abXeaMBQHcNuuNwnJglFB6wNK1epmrW33/b/bXC7bZeMAmdvlnJ7j/00hgj8DIb226Z1zf3d7A2y5ub277/l84lLI+uQd6CBn6Z6zP9Sn+94ddJK73i10ktveDXSSmx50lCt0ha7QFfpo0OjYV6q/H5XbGCC3l0qco+WeGhkg92xEEZ0UbRxQhA5GHbGRAYoWUpRi8nMbA0SO1vjjFYABIke+vOJGDBxQtCwc8xVgp32XOCByVue9z35HRaHQZQ4nNPvlDIETmiWFI9HhgNBR1J9ayK3boXCnHnqRMj39E7SuOASVHRz5l0NRyamHnMCMLoWiU5+cBgiK0aJGfwVl26fUyh9RRpDTBO1Q0v11OJS9SCMo5DRBs1Rhl56CoW9WlgR6fpohmMaaPlII9A2Pr/SnFsqm2DayeLCdBUF5lVH2C9RC0cIo4VDCC24eQqCo/4ciY7mfQj0ktBB6nvnWTSHNAqDPpnj/dP/gcxhGAPXQFPuc+IPcHKFNADRHRkyA0gSNDZ7w5puHuDdvhx7xSLuGQMglWgiafJ7x9FMrdDB0VhAE42Kspb595ff0sRV6w0s+C4cgLy7Cux9L+NT2W6EBHRcG0fhZ+Bee8JZlHJDr42Xw93VrffeG/x+iN9/6KU/5FzYs0BpvzMDvWNxmgWBJN4m2OaBdMcBpNCQ8ED4UpvwOPNADjmm//coH0Vl06VIeaFEMAJrtlixQMe/sStP/EwuEM6nxk53DL04PLFCCU5Cf377SLNEIveA57m+grSk9Oq/aQ49t0EH54/JQiIofeyjNQBaaIOq5tuFQpjT++vZX4YTQrhVyRnhp4AIhJ34rG/d45VatEBxlUQS9Db/45OtGKCtKv6XzJYdE1bVDmREYbWMfK5OVq4emplzaL7Rv3odUqu+mWhAvp7UQYBU0LldbchICwVFVJBVPaqG1sHaOHySa49EDCICosC1Hk1QZ3i7P3W9fDc0kEIJhalskgijuWVKN3wxRtjuprE+sSGqGdsWTkboQiDIbPf7IaSM1SQ3QJi5GzuOl38pH8U9p1AT1BWYFl0IwJqkBsjiyD3A5BBOS6qGBxoEQBIVLVSgSxpoNtEHhUv3w/roaQwgULrH+BXJMEi9Ekh0xQVVpCrDRHnIcEEnxcCuKapsDQgkBJahMZIBQwlBpwAHBeF6SdOJvEQPkJfXLETNsY4Fgmhh0TEqFBAcE7j01NjbpIaI2Bsgny/NKbz7yv0ev
29290BX6IFBXS6o6WyTW2bK3zhbydbU0sbvFlp0tH/0OpJspgKLrZusAAAAASUVORK5CYII=";
2930
2931    var img$b = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAsVBMVEUAAAAAv8wAvswAv8sAv80AwdAAvsv///8Fv8x53eRR09zu+/z6/v79//8kx9J/3uUrydT3/f70/P1Ez9kextEMwc4JwM237PCs6u5p2eFX1N0ZxNAQws7f9/kxytXa9vjE8POd5uuE4OY+ztiN4uhu2+JJ0Nrl+fo3zNYVw8/i+PnU9PbI8fSY5erA7/K67vGx6++I4ed13ONj19/p+vum6e2i5+xd1t5N0tvN8/aT4+lAZSgTAAAABnRSTlMA++WnfzGVrfkxAAAEnklEQVRo3u2a6VbaQBSAQeudQEIIZiGQEPZd2bSgvv+DtYc7k2k0mQVoTnuO378eQ79Z7iam8puH+7sq/DWqd/cPlTM/dC36rh9nD5TAb9NDFUqg+lC5h1K4r9xBKdxVqlAK1QqUxLfoW/SviwKnPq3tPz5Gh47rAXJzkXc69hrkD1pPeze4tSg6rEkeVlg3bigatxukEHMS3Ug0GxAxrWfvBiK7TeS0asaVIqPZ+nRQT+1weNxt+xbJ0HevEnlPf178YOQu+RLs7rBHOI3RFaI3k6Q8dWL4QjKZ8yc20aWiTiNdbpgUne2Jx/3KuUw0Ioy2AwK66a7MxSWiSbrQOojxJ2zrjwt9UY15BkuFVDPZnhxd0QvzDJVKjN1n2/f0RIlFo2AKasRbFp2Gjiju0Yx3QZlnaproiEKCdEEDVqve1EVvBBmBDv6aXlOgKgrowe1AD5vG3l5JxDN17YMmLoaQ5aiJlo8YCDZo08Ql/lQTjdgF6WP0MSlsFVGMJ90L4AJmNMtVRB189gUuYoDHHiuIsNfNjdxEbv6cGipb6shFNj55yL2CDSEkBCGYTAO5qInXGQFAwamOhaIDLtSTijbY6iCPd0KkW4oaeMUyUWAVh4JDh5RIIRyOMpFLdy7quU2FpJ3LRAdMotxQeKWiuTDwxvjQUiIaYg0R1HRZ9wjwksYS0aD4cMJUNAARPbxliei1cMlLi6Q4ItEWe4VEZBWmypRwnuU9/VksMopX/I63h/ObqFVN8EGxKP4U3bFbp3SoARvBFMvVW53h+p/ieycWRSiK+GCYZUhPsE//R445zo6eW7HIx0/ZPHOyjMHH/uvScOeseONU2BHghxJeyTP00rve4aVx+DF8YA2SiOh66Y5aJEstrXiNyCVZTKAcz//8kIh6mb71kv1t/D3gOT3aZj3WKds5mxJROzvWOtMap2uci1wX44+gj/6sYwPDxJyXiCa0HQkw5ugoeDCi1ywR0XQx5I0gr4TwDTcCkYg3t4WwiVrM81RYgd6lrfxV3tt4Ha8XFu+JVBSyzJf3NrKGryzwRzOp6IWdnXymIqfCk3v0pSK/lTfU5obMKidkfJPWbqkIsBFYnkjkn2+yUzzWzWQiPtR+iG+plb/p4JXNQHIRrFV+PVrWF4IUOyiJuizp9fHwgk1fSQR9FlPatNmEqSaq0y92El3Png6YvpKIL2y11PN0+XypKLJpwxsYOp4F/dQW5CKekMhRwxPR7mF66iJeNp9xTxrfbzXeQEcU96lpo3hPrsm/c9IRgc0mrZ6j4pmy4SIETREkjwR5rEs1wZBQNoa2CFxmImEk9sz6aceNQV8EC5OwTTVjKCTZ8VElgEtE4PRIqtp7Bftuk5SjAZeJIN6RlMbm5YtrsV/xB6wpgK6Ic7Ayf+kYTmd2DADGMuk2d2ZmLE/gGhE4G/KFFrNzrH0AMpGM05xI2ToAV4sg6KwkmjGAikiOcdo0iizmMAFQFsnxagMrxxJ2AwA9kRx/NgrXVuoYDKd8L9oiOUs7GS8cT1Aq/qu/lX+LvkX/l6isV6pKe0mstNfeSnuRr6xXE8t72bK010d/AQQIN3f3lf4mAAAAAElFTkSuQmCC";
2932
2933    var img$a = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAApVBMVEUAAAAAvssAv8wAvswAv8sAv80AwdAAvsv////5/f37/v79/v73/f0HwMwlx9K17PDx+/zo+fqY5eofxtHX9PaH4OY7zdft+vtQ0tsOwc7d9vgTw8+T4+ly2+IYxNDS8/bG8POg5+uN4uhs2eFk199g1t4xytXN8vXA7/K67fFI0NoqydP0/Pzh9/mv6++q6e193uRZ1d1Cz9ik6OyB3+V23OPZ9feaBTLJAAAAB3RSTlMA/Prlp38x8V/kKgAABD5JREFUaN7t2mlz2jAQBmByNJJWMtQ4Prnv+4b8/5/WoDUZE9up1qGeTsv7pVPa+BHr1QFx5T0vz08P7I/l4en5paLz45H94Tz+0A4rIe/SyyMrIY8vlWdWSp4rT6yUPFUeWCl5qLCScofu0B36V6FqcKpvZt3puueOvJARQoAaw43PpRL8PfpPOXG920NBDQTwT1F8dXRuCo0iCTwzAnrVm0HzCCTPjZDN8CZQY80heV2lQCh19ZK/uwE0tgWPA4Lbs35ruBsNtoeOkIrHkbL/bShQ8FGi2TB55629a8vLIGAWfg/aShkzy22bpbLvXppERNXvQJvLZaDZyGmUt7hRxE+vONSPHbn+YrgjP57DP52i0EjGt7rFvorTQUm8hcUgD+K7M2dfx1rH/7NWCHJ8MLjLmCO+d3CLQFgQ8I0WMxewygEdGsTlMFyga0JDtkWF2ksc4oiZJXzVknCpUBN/rs9M4/zECrRpUEPp9+NnVWJeP2b1cQtwaDTIxU4YZl2QS8UzBmCtdOupBgny9RuK8t4rZI17pyExoEBzmdusC30vapkTAs4/NKFAG125KPMglA/tcEZUCZC+mDgRIWuJtTOHxlzHIUKsJ861q5lDLd3cK0aFsHZLc6gH5xLUyVA7roQxNNG1HpKheFbMjSFcTTw6NNVTdmAMcZ2rVSvovmIiPGTFf3urXdWpDmfoaAo1ELKSm4bg2QEeJlcuda550xRycIdIvmRnKqmNYXuGoEeDIPkS5EKy+RmSvW+Ubspz4xUvncV1GldTSwGG49YLGMGD1HapXFOIYWONP/EYXL1n1iXXJwfd3i1j6FWPeUefRyvcXYyhjcQKUKEQj3cLUwibh0/IEO6XwjKG9ti4IRXq6+7uMmPIwqPJiAjhtFZHc4hNJQ6NBu3jiUWARqBrN6ZBa4H7JQEKdTeIGctZNmTWpujhlxwuBWIHXK33WYcqmdPBXTznOyRooRsVOpnH8lWU5QTY2xtGgi4fQ0bMNFYkceEiQmOpITU2hfDMKQ6MCMWfW8BumzlbwFZok6HQx5pPLBMnwLpBi5EhtgeupbWBtFc4qmmhj/8DiVLH+Z0zAHT8diGI1QVKvvd1v9VxRFJ4Rb+imaIEYsDyU+0KjmmxolAjEhypKGDZadfh4gi7WhRi4RQuX/1NvKx/PypkEhIZwjQlxwB/O11fx5ofPhiZkqgQGwJ8jJjbh1MwrradhTd0uyA1g/MaUhIVYp6dqA4oGaMqUTJxYvWURIaY5YLg+QHoVhm7lugQptrLpQSf4PkvJVEhjNP3JaQUqeQamzFDokMYKzj4XIjE3eLLWgtXp1yJDmEWw/5s5Suu7M6sd8KtKlNyCBA9KKVWcQJEl2RyayFAZEmxZAgQScr8tvj2EBtOOqn94u/9reUdukN36H+BynqkqrSHxEp77K20B/nKejSxvIctS3t89BeexFWlWRwk5gAAAABJRU5ErkJggg==";
2934
2935    var img$9 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAApVBMVEUAAAAAv8wAvswAv8sAv80AwdAAvsv////8/v74/f36/f4Hv8zX9fckx9Lp+fofxtGY5Ok7zdft+/tQ0tsRws8Lwc1z2+IYxNDE8POI4efz/Py87vF/3uUxytXl+Pm17PCh5+yT4+ls2eFDz9nd9viN4uhh1t7S8/av6++q6e3K8vSF4ObP8vVj198oyNPg9/im6Ox43eNl2N9b1d5Y1N1K0dqc5ut7OHYxAAAABnRSTlMA++WnfzGVrfkxAAAD9UlEQVRo3u3aaVPbMBAG4ATKaldO4tjxlfu+CVeh//+nlchL7YBJtSH1dNq8X5iBcR55tY5so8prbq6vqvDHUr26vqmYfJMqcuubcaCEvEo3VSgh1ZvKNZSS68oVlJKrShVKSbUCJeUCXaAL9K9C9VbUXHc3yWrUXnghCCKAgt3aV0havcb8xNutd36oNUSN6l1IDXruOSFnMUOtCkP4o342aHqPxQpT4+AsULxSeYeIkIgOfuU/nwHqD0hxUKtGdx49PX+f9EZLrSiz5l+GWvQ2ORq7Ozc/cdN2Q739EbvB16Ce4lCnFxfMXvJWVprVvwKt8XcT/lJDPuGOdzo0Ry7M6shwFz5fw379VGjBDEZwLO6S0nOqhadBHnJNpnA84QrTAg9Pglwf7WY56xlsnwLdUlp5FyyyxZRqyaEJF84DqwzTYQ1CKRR3lMkC7BLWtBlXWwqNyRw3B9u4nbQCsQyKjaMaglU0MqdEcxnUNhA+gX2cgTJSIIEc3zgzkOQ7mtpNJNBL1qyCLI10K4HWpt4zkOXZQOpOAJkOokch5KSHTeyhvjJxQZjRvhA4tIci03P3UofboWMPjfYHUFMMxVwJa2hjav0E4jQMNLWG0m8TTw4l3A2WkKNM4oO7oU2tMMODOjX1HtraQkEKhflFQ6vioAref3PR2BZy04+AXAaFyoeFobeH8McXIPwUwvz4Hw00EpbOgSxd9Wm896XTY2EzBAeXFmFR9OEX79g0Q9sWAjJQ/x1fnMM7B9PekTVUM8X/DuLcmwNb1tAauQLChLxOWEM94hVMFl4vybGGpmnjBlJobgaYgDXkkIEWMoYva+rZQ9DFPZQIHY8vLAG0QG5wUVamEAMQQGF6n9o94YRoK4HggXgJEyTRZmZdEdQ3Di4FTis9oTWIIBhqYeOFM55XIdRPDyPbfuB7TnoAIcTPLdiI7ZweDywWQwE/wm4c+wlSGIEYgik/W64spCkpvh7kUPYUu3R/50wwfWLxYznEN0/7kO8dZZwmpnUjD06DnIT49dnkSPnuEq3SRCCGOMGMeJJnLShO3ERiRzfqUiiTupol3BTVJewRMyxJoSxjxdGqFtUPK/vyQDpjWJJDnB1i7u3z6LHVr8funbdrJ1r9YrCBmSSGON4gN2wkZnW+ZPToNDNJDnHCLZL6PIjJ/sPzkhzi1EefUlrd8rvoA0kOcdy5j/qDgoQrbsYPkhziOK0HXxHlENUZRi5wCiU5xLl7mg/vfVLUWHZHES9VRZIrgeTJpASyCCC5hCFkEUBiiSAfASSUcAsHEUCC7DbLD+vF3/tfywt0gS7Q/wKVtaWqtE1ipW17K20jX1lbE8vbbFna9tGfpbEkz2i9HpUAAAAASUVORK5CYII=";
2936
2937    var img$8 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAn1BMVEUAAAAAv8wAvswAv8sAv80AwdAAvsv////4/f04zNYFv8zt+vv8/v7Z9ff0/Pzn+frf9/gsydQVw88bxdBp2eBY1N1T09w8ztc0y9Ulx9IPws7O8vWr6e5K0dogxtEJwc3S9Pa97vG47fCx6+/H8PPC7/Kk6Oyf5+uO4uiI4OZy2+JCztnx+/ya5eqB3+Ve1t7j+PmT4+h83uR33ONk199wOre6AAAABnRSTlMA++WnfzGVrfkxAAAC80lEQVRo3u3aSXfaMBQFYIZyBTKTR2wz2oEwhiQk//+3NUV6WLTp6cJ6Ol1wV4EsvmOkk/sU1PhKp91qgi3NVrvTuOYHn0LWj6sDB/mSOk04SLPTaMNJ2o0WnKTVaMJJmg04ygN6QA/ICTQ57F8D3IcBCkvxFS+CEQ5IToXKiwSFBfoQlHIJCge0EbdMaaFYoJOoMs6gwgF1hRFvAgoTNNRSNwGFB0pWWuofADBCvbwQOjuAE4J8Jmm2ZIWAPUmbnBdC1NfSYMELYU6bb5TyQkhHWhrOeSEsBrTNP3khBGuhc+aFsJyRtJWsEPBOUpnzQlVFTUNeCHGXesPnhTDxqt5gheCPqTdiXgjhVOgceCHkJUnvvBDklqSnJSsEnElaB7wQPm+9kfFCZm/wQmZvsEJmb0S8EPLbzLznhSBnJD1LVgjYkVTkvBAOtM1XIS+EhHrjzeeFqt44TXghZNQbo5AXQjClvccKBVkv9vQj2YZC/5hEl932aT1QBGVpGVqJ38P0RPFfoBdr0KvENYNvHS+wBR3Epwa/c1Y+6kM0pg7UT3JsCt3RajPbzSVsQDQn6FkuUkQRH9NFbrlh9+rz0QeLkdpm0v64RYWQ0HJdE1mHXoTOVD+Sp0Z9aRnailv0KHJRr17tQs+iykYPDCc11lmEaDSgTMzNIWJ7kHyiZlO1XeKaYEhrZgk6ltrxUv1k6d2Bdm4LGpPjw9dHCF0W6vdrSxBl5APQH6IPc8sfrUJvGQD07io7U2tW1IZWlTNeqLcKNWz/Uqtd36sLbYmp/nl2NBuuWrOaUDYkJwRlrYpBv0FrVhNCrKSN0Zzzu1Nyql5d6kJYbAdeEcGMmuGGgTmllvWg75NUJ6JkLVRmDBANJqcwqur8zAHRYNI3px8OiAaTKsMELBCie6fIALBA5iP1ZylUGCBMaH2GuwUoHBCSt+vf2Y8cVVggLOPz5SjxZ/7/L3wf0AN6QP+IsytVzi6JObv25uwin6urie4uWzq7PvoTA1gcp9niWMsAAAAASUVORK5CYII=";
2938
2939    var img$7 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAWlBMVEUAAAAAv8wAvswAv8sAv80AwdAAvsv///8Pws7Q8/VP0tuw6u4vydTw+/vv+vv1/P3e9vjG8POD3+VV09w/ztgWw88IwMzs+vu57fCq6e2i5+xt2eFp2eBa1N0bVuUsAAAABnRSTlMA+uWnfzGozdCBAAABDElEQVRo3u3aC66CMBCF4Q7Iab1Xxffb/W9TBZtqYpWoHcGcfwNfQlqSZsacKvJMkCzJ8sJU9QSJk17lQKGTVAgUksLkUCk3GVTKjEAlMVCKECFCPw45RPootNiUdnzATSkgN7bn9rgqCTS1VeUSoSTQ2tbNEUoC9S/QH0KEQMhHCIR8hEDIRwiEfITwy5CLNhnVzVysZWNosV3ZaAPU/dto/dkzKLwXXoJCu0bQ1L4Nla4JNHkfsvNWQR/5dK06DArHu9GFHdY9uLCt/AURIkToEiEQ8hECIR8hEPJ1G7o7BOn0WOfuoKrTo7fYMLHb41FChAh9CxKoJGpLYmprb2qLfFqriXrLlmrro0c+CAVx4/q+RAAAAABJRU5ErkJggg==";
2940
2941    var img$6 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAkFBMVEUAAAAAvssAv8wAvswAv8sAv80AwdAA2/8Avsv///9h1t75/f3H8PP9/v7L8fSF3+Y+zdf7/v4JwM3j+Plo2OAQws7u+vu/7vJR0tsix9
2941L0/P3R8/ae5uswytTb9vez6++u6u7q+fqI4OZ73eRY1N02zNYqydSn6O2Q4uh23ONu2uFI0NpDz9nD7/IZxNCK4efrtanHAAAACHRSTlMA/Prlp38xA5BBKAUAAAIJSURBVGje7drZjtowFIDhsM4xwWQn+8IOhZm+/9uV6rjVVKpyHJtYXfxfR/6I5FzYHOfZcj6bwGhNZvOl8723xRRGbrp4e0ILMNDCcZZTMNB06czBSHNnBkaaORMw0sQBQ1nIQhYaF8r942pgWZ0Mhc77iKnE0zgcACXXgCkXZdLQOWJaVZLQacs0a0MZ6GPHtKtkoJS9oCMNrZgousargd06l2HbhIQasU+9EBTK10I6UNCRYV9ArVBIOwq64HNrUK3muIJPQLjl+AmUqxDy+qGceiG6My6R9kM+PrUHjfB7L/uhjNwKdCVu8H5ohdBKB8J951roX4TidkOUeskLoEvAGZUbJdrQicnkHrShOJCBeKsN3eXe6KoNQenSTlDk+lBSbfnncBn+uSKtX/8d+biMB79mIQtZyEIWspCFLGQhC/2+kzg9jA6FLnvGH6NDELOAB62JM+yj6uK/+7BsIWPQRga6I3TTgRq8ZO6HaoQqoKK+aLbphxIufo564m6x64eg1L6CFCvEBLT/eROvWMywnIDOHJ97D9Ucv/hxz0xA0DGsyRSYj33AsDsJ1QETFeV6YE3ARO9AQnBj+m1zCQhabYdnIAOFnabjZkBC2NdAx4keIAtBnSozhReCHITlh7Qp3IHtNpejYP7E/8ot9L9BpkaqjA2JGRt7MzbIZ2o00dywpbHx0W/4CGtodLp8vQAAAABJRU5ErkJggg==";
2942
2943    var img$5 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAn1BMVEUAAAAAvssAv8wAvswAv8sAv80AwdAAvsv////0/PyL4ecSws5s2eGu6u7k+frQ8/Vh1t4Lwc0HwMz6/v502+L4/f4Vw889zth33OOo6e2b5uuW5OmF4OZ73eRa1d05zdckx9IcxdHr+vuC3+VR09wsydTh9/nZ9fey6++h5+x/3uUzy9XJ8fTA7/K37fBF0Nm97vGQ4+ln2ODU9PaS4+iKiZWvAAAAB3RSTlMA/Prlp38x8V/kKgAAApBJREFUaN7t2mmPokAQgGGvsQqP4RJQVC7xGs9x5v//tpWyk87uzoZWrM6a8HzSL74B1Ja2GlfdTrsJbJrtTrdB3lrArPVGHdDgWuq2QINWt9EBLTqNNmjRbjRBi2YDNKlDdagO1SH1kB+NevcbR/59ofiMjzrEd4Q+sYqpcmiD1RwVQz2s6lsptMTqdiqhCQqecS8PhY1CyDHEJU3hfuk3Es8uDwVItvCYEMmpPBQhiR8M7ZBY5aEBEv/BkI1kpBzq16E69DIhMLAQsYbkV6WR8of8A2KWA19IWgY28Iak1w85g0kYaAjZJl598oc+xAJuc4cOeGOmzCEThfedphAaOXNIGrOHzi6S0GEOWScDybnPHILlCsk6YQ6Bv0eSBcwhcCZIvIg1VFjgzYI7BJGHZOIwhyDIkOx95hAkaySrJXMI+mckxok5BE6IxI0ZQ0l+GfdCA4nJFXIA/FtDcHhCyQYA5ihlz7zjk6FdhhGA/S5D8yfew8pQbCCuHAALBbf3xLtyGZoYtO6Jp0crj22lfYYwgR84gn3l/LTCGj7AqVgq7tg5cT3PLeC/rPM/Q+LX3bE4k6WhpYvK4r9DbnJ7iXVpCGaKFXkl93iTeYg4FPsnVmkIhsqhDZAtklUyxavg9o4yy0PqO3YDcbY9umQppMWDfX9GZ98vD8Hu6KodkBB8obctvkzokDwkdlmI9PPRjCwKH4U5GZPR1SAAyYYCHZJw5N33nqKwT0FiCPkrypgWSCwhSIZGNgngN//FXwbaQ3k4LLW9VA9NUcmhamiHiqyKoYtqaFoxdFINjSqG4KDWWfWrhuye+V7qa+q/0OeoDtUhqEN1iI+2kSptQ2Laxt60DfLpGk3UN2ypbXz0F72CSzMm2iCFAAAAAElFTkSuQmCC";
2944
2945    var img$4 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAqFBMVEUAAAAAv8wAvswAv8sAv80AwdAAvsv////t+vtx2uIbxdAFv8wjx9L4/f1M0drZ9ffP8/UTw8+e5uuS4+k2zNYHwMzl+PrV9PbD7/KI4OZ93uUpyNPq+frL8vS+7vKv6++p6e2i5+yY5epr2eFR0ttCz9j8/v7d9vi57fBm2OBf1t4vytQnyNMJwM3z/Pzg9/iD3+V43eNW1N3H8PM8zdcNws6M4ed13OOQ5B26AAAABnRSTlMA+uWnfzGozdCBAAADfUlEQVRo3u3a+VPiMBQHcI7lBZIe9KKclVoQkEMB0f//P1vFHO4ObfLqbJ2d6fc3xzw/mPYlqbbxnk671YR/lmar3Wlc8wur4K1fVwcqyLvUaUIFaXYabagk7UYLKkmr0YRK0mxARamhGqqhn4GikCJGl4eyAyFDC1uFhxbkI32GLMNDCblmiSzDQ9NPKEOW4aHuJ9SDL6mhH4a8qBLIcYmdeoXQKe6ene9CI/KRYRHUu349+hbkJYS3Zz50sck1a688RF3Ck+VDL2JMTHWQ3iFOPmTJQS4tB3nK6bN8CO6U5JWB2JCIzCgUQJeZHDhkJaB7WZ7ui/toP5dD7/HQoyx+068MRzn4EQvRrijtgR6CnhjdpUjoTjkmELyJ8Xc4yBF1vumi6stOQEF9cb9FplAkSvoYaMGLbMt8m9jZvGiBgMSnG2P2o2fxK5lDIS9ZRRgoWvGy0BgKeMUGt8NueFlgCjH+s6YMB0VT3kvMEFrKK4SDYCx2LyNIXVULC+144bMhdOYbGWAhiPkibgYx3hAjPDTi7ceMoIloPCykGn1nBDniEuEhS6x3ekgt+Qe4nVXRxnPI/RSN3Ile5UCpmJ1beVKXVw8Fhasw0Gtbvhau+oEeUoeFBPKk+/46b8ceqqODHvJFM2CjIB83dYjgp06tWE9oRd0MYz2kVvsHhnfYA99fUA07wUMTVMNSeRZERp06qREEU3HroOPzHRPMoDW/G0rfC2sjSJ2kX3CKeiY7GkI7zaOB9gFkYgiBy/cvinMo3zFdMIWeSanbwRdHBmOIPvCenaCaSFRRYwjmhc8gmiedOZhDYeEziOZJJ0RA8tMdJsYTd5CzgIEsW5zzPTPHW8knHRQEr4QnYSYOS8T4V8BB+1hUziO9E83F6HiPhGBrqz9n6Bw6E2PtLWAhyIjIICx2woEcmgEegkCW21kBwzJbDgwABam2lXFPeYNOrho1h3IQWxOV2fLWkOWMqKwZElJSSr4kPv7VIrtx/PX7KYNSkDqHqwzSt8XW8jxruzim8hZQ5+3yEDhdYpSuA9+DgCYmTkJBC2lzGuiYwQlAD+lzGU8LZ218AQRUmH3PzWPc3h4AAWkTBoMbcxaEAICE9LE2/rkrJ+zsb3hfISBEPGu7fNlaRfvh//cP3xqqoRr6M5W9UlXZS2KVvfZW2Yt8Vb2aWN3LlpW9PvobhVMftSFfeGQAAAAASUVORK5CYII=";
2946
2947    var img$3 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAyVBMVEUAAAD///////////////////////////////8zMzM/Pz/c3NzCwsI6Ojo2Njb8/Pw4ODg8PDxCQkLt7e2ampqwsLD4+Pj09PSMjIyJiYlnZ2dhYWFTU1NPT09ISEioqKilpaVvb29sbGzS0tK5ubmmpqaFhYV8fHxKSkrx8fHq6urW1tbOzs7Ly8vExMStra2rq6uWlpZycnJLS0vm5ubGxsaSkpLIyMi/v7+ysrKioqKPj494eHh1dXVtbW1eXl7g4OCfn59bW1uBhrKlAAAACHRSTlMA+uWnfzED/pS6TTQAAAL/SURBVGje7dprU+IwFIBhbupJJW1apNwsXkBYUFAQ1ivr5f//qC1puidsZ+KgPZlhhvcTExyeSaikDCnEHZRLRSCrWCofFNYdVqgUtCqHMVQBC1XidSuChYoHhTJYqVwogZVKhSJYqVgAS+2hPbSH9tBOQaPH84/6eHOMAKoNhCNcR3R6OEYBXQeCqZagooB6PsMecTw/CB2MLyCOAupxpicG8RgFdKPm4wqRiAEABXTDlXM/Dj9dOaURAYROdwRQlZNzjgkgdMYQQw4VNNEcOggd0a0BJfSQzudXDSgh3aGElppDCU00hxLqaw4B9D6tn6+bdXx0cocaL13f4WIdU7n36OQGXfmcYejkDQ19ZnDyg+Yi4zgROrlBz25mOnzVgNyhmp/OgieK6LbilzNCYSuI+rDRojmsmqGBWrjT/sKTqXET1GJxVxt7/vrpuhFyJOM3ceRrKGDrzrR7MvlsZIJ68k/cDmwDRUx2989J5MAE9ZMXmG4F1VnS7YbDWgZIXXOithUEMyXJd+VYOe3QBJ0klxpsB8HvVEKn04DcIZTcJ80hgeBFSegQQdBkWm8NoIBQQocQglbqfI6AGsKr3MrSuY8kEDooVemgF6YnUCL6h60PlTSlgfAjyEulpRn6cCUUfv9D1XtNHvMHI/SUfJO7+f42gdK7CVoGct7Nn2x83orJBiYoFExW/clW7s3lwNAEwaWbvJfPIwNjujlBqWqEjrlaYdE9lXWG1fALKGwGp33Q82ZB9ARGCC6UhDlBHSD/O9Uwctn/+TMvfwgaTGSluZc/BGGbZyR+4eUHYZOI86xEAAEs7prz9ro3n6NEAGm1UKKF4BYlWgjOUaKF4CqV/ni0kC7RQrpEC8FZKl16tJAu0UFZaUoIobQ6UvsjH5NAKHUd9cADEgjupIRdxmMEUEbi1xBHAsGtjw7eT+UIocRTxseFo4Bgcu+4MeP4JzhGAsHRdNDuvPYboLfbP4/uoT20O5CtI1XWDolZO/Zm7SCfraOJ9g5bWjs++hf/oHqtqKJk0gAAAABJRU5ErkJggg==";
2948
2949    var img$2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAA3lBMVEUAAAD///////////////////////8zMzPb29s3NzdYWFg6Ojr9/f329vb8/Pz4+PhPT0/v7+89PT3o6Ohubm7s7Ozk5OTT09ODg4NSUlLz8/Pf39+bm5uOjo54eHhra2tBQUHX19erq6t9fX1mZmZMTExJSUnCwsK4uLizs7Ourq6Hh4eAgIBhYWHGxsaTk5Nzc3NjY2Px8fHh4eHa2trPz8/MzMy7u7uoqKiRkZFeXl5DQ0M/Pz/JycnExMSfn5+Xl5eVlZVpaWm/v7+hoaGYmJhGRkakpKRwcHCLi4tOBDJdAAAABnRSTlMA++WnfzGVrfkxAAAFBklEQVRo3u2aaVfiMBSGi44JpRtQ9h2FUWQVUFldcET9/39oHG5iSkuSFpiemXN8P3lOYh56c7ekVT51dnoSQX9NkZPTM2WjHzLK4awfGw4KQZ+kswgKQZEz5RSFolPlBIWiEyWCQlFEQSHpG/QN+tdBVvR+Upq2P54fz5c2Ah0dZLc6ceyUNuv3jGOD0m8xvEvq4MU8IugupWKuauX0kUC9GyyW1raPAMqksFxayToQZJY0vKXFrFrpXAxWeZcx83cHgeyuc+O7T0u2HeboKrflhc/6/qDLGlunez5EHo3Lazajkd4XNGGLVMY827bymKpZ3A/0hKlSohX0q5903jy7D6iMiX6+ILGMMvWMZDY46JFybhI+Qm1Bo7cYFNSinJyvFFPM08e3g4HqxBjqBPnTsEpIMzMIqEAiROshv9JzhFQOAqpg0BXyL53mqkv/oBca7CiICnmyTYZfkNGE/xigYMqQRDL1C3qG+TFjRyK4vBYE750KHlT0B0okwRFGO4Zin8s88kklkrAEIG/qeUJetTcj/GeyiLeO/IAKEOVNa8c6Sf4egB4A1PEDOoe518ire5KUEF9dMPvQB2gGPmryw0szBSUMppzLQSOY+WuX29OyXkd8QTB15SBwHHVXtbzCROcC0C+YYktBjc28KtqhAQVdCEA2TGnJQJbKdYWCRkFxJNAN/BYZaAlLZXglCiSqha/gTDIQmLiJdijFQJei/pn8Fgkox80hQ5WB+gKQBVNuJSCw8KvYcriBBGrCLktAa27Bg
29491oN4ZzUBSCY2JeAVO9zgxIw8gDpbiwAgfVzYpAJpokij66hRTRX0pAtg3+LQQmudwOgTYpIR+rf72JQGkBpyo1S3YLl7kghyNP0F2XKbLWeVTGo4CxcQ88ZbK2jhCNMjA7gieJZRycwEIN0Z3q+wG61IT3TkH13Df/cFMsPyR6BNGKhP6phJhaFna9Cv/SMZ9nva0tAcYg28rdLeVaBVxDcLhVZkS1JQCnS1rIlmbRNeI1pyN55OCmHIe4loLLTZa5SMaZZrgjbmCShtgJijOrm1XI47lgCuob/Fp1VGmDdLCz4xulgDAkoSneVrz6ELBh5buzu/WLSUj4nWylrdIhLetvWOOyyFFQh/sVXAjMtCu5RYtEHKagltJ3b7V85XbNmiEGsBckJQCxjJD0dqVHj9EkKpx1VbT6IxVef19b1ZCDWp3/wQXXK0RKehmENSU8Xg0AxWCTDBZka91xc4jbUCrfzrcpCFmuevjmjgesbvkB6XHYkn9Ki4ZJexdwoVPiHcq3ODVmOv/QFx3JF0JM2wTS8Z55ybA6JWw5ipsZdi0PKNLBW1t05QRNtrsKLFEmzY3jye5pc29XsACBUCXC3BRrl2QEgAKhA81kDYtL/jd004H3daI5BzagfzoT2XQM9IAjVkzRxvkgxVg4TNazgd6pLSsIVW8x5+Kobs8I+t8TZ+Vc1KA0FKXbAuiBjv3vvYpMVnn5md+guHW3zhbnvTX7C2fM2rm03JdtvsnF1cshLkLftLj436WUKOkJWYnxfel9sjdUPe60TvcEeaZTOpE6Ng19UtdZYqlURoYNByJo0xZjqLTrSOz6z1eBSFjnYnMNBIPuxq3op88q9hdDxQCCj9zzIf9Fq3c4bnBiODQLp6Uz9Nhu1Xbnmv31X/g36Bv1foLA+qQrtI7HQPnsL7UO+sD5NDO9jy9A+H/0NycNHk3RuOUIAAAAASUVORK5CYII=";
2950
2951    var img$1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAolBMVEUAAAAAv8wAvswAv8sAv80AwdAAvsv////v+/v1/P1N0dosydP8/v4Ev8z5/f33/f3x+/x+3uTs+vsWw88Pws6z6++U4+lh1t5l2ODh9/m37PCP4uhy2+Ju2uFq2eFI0Nrk+PnF8PO97vFDz9g1zNbe9vit6u6k6OxX1N08zdcKwM3W9PaF4OYYxNDK8fSZ5eocxdHZ9fcqyNOK4ecjx9LQ8/U2dbEYAAAABnRSTlMA++WnfzGVrfkxAAAC0klEQVRo3u3aa2/aMBiGYSjjMabOoSEQBrThfFpbKN3+/19bY9geOkup6PxGqsT9KRIoF7EgNoprbzUbN3WIVb9pNGu2b1IKrW/WQQW9Sc06KqjerDVQSY3aDSrpplZHJdVrqKgrdIWu0BX6UlC6Ht1le7xLAOrsolYUxnqyAROA5kmkbEblYN6heaxYG8wbRIfpn2BeoY1W50U7MJ/Q5nQ9RkdHMQH8Q7yecLHfPhs7dh0BiM44Bdr24loHAYjOE96gloVu/UOzM0cGch1BiM536whAriMJ5X+dDiShmePIQOszRwA65P1R0ePEcTxC6es4bumoyCg63qH7WCtGxze0ilWJ4w/qRo4Tv9DxBo3Mv4zRyxTeoY4+nT3WxhaNewegFNr2kpc13rXvrdrl0O40cL/W+8AGWynUK47vcda8eDkrhVqWiYdgH0KJokRHLUqg01vMBJdAC2V7eH8SlZRB6+MUnV8EZepYH7bbRNl6ZdAotOuozkUQHinRmW7LoDtVZHARRCmjM6HjEcKrspns8MdJIQJheJLoeIcosWc63iH0HEcCokRHHsrARIcubIOJfBkoiUF0KMn+YFfKFuVgMrcgSuWQsVDw6ZsqpVkplB2nic1/TBPB0v3P7kK5PUE0/PzER6lXBgWRsrU/PZVTWpVBGBhVFI5SsEsXJ0HXfthS6FYrmw7HP2yTVTv4ANoOT8stSo/JIkMphO5RYqaV9AH/K9XtwrhL4jsBCKkKXakrAGE71Y6kux4hNnuJtCMFHiG2fxgup0XPWlPyCbkNKclC6FOShXBPSQpyJVmI0iCQglxJFsIDJSnIlYQgVwKQx3IQpSUwCO3RkwhEadxStiiAd4gSMwMwXxDvRkzPwfxBrrQD8wa5UsyBk4AwW7RMwTjrCF8Qy3fTyXKd4ryv/Xj0Cl2hrwNVtaWqsk1ilW17q2wjX1VbE6vbbFnZ9tHfnZ0j0oLHnMYAAAAASUVORK5CYII=";
2952
2953    var img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAMAAAAqwkWTAAAAq1BMVEUAAAAAv8wAvswAv8sAv80AwdAAvsv///8uytQMwc4HwMzR8/YTw8/6/f39/v7d9vg2zNYjx9L3/P3r+vvC7/K47fCD3+a07O+I4OZY1N1H0NkexdEZxNCt6u6d5uuX5Op+3uX1/Pzl+PrY9ffH8POi5+xm2OApyNPz+/zh9/l33ONM0drv+/uN4udr2eE9zte97vFf1t5x2+JCz9in6O1R09yQ4+jK8fTO8vXaeG6JAAAABnRSTlMA++WnfzGVrfkxAAAExklEQVRo3u2aa3OiMBSGtd2eAAUBL4iCiPda71rb/f+/bLtNSOjG5IB1md2Zvh86nTHyJOfkXIipvevh/q4Of031u/uH2od+YJSvs358cKACvZMe6lCB6g+1e6hE97U7qER3tTpUonoNKtI36Bv0r4Ms43xMw+Fr8DzvR0B1c1B0mLkNklPzLeybtwbFx0dySc7gbN0QtOs2iFKtTXwjUL9N9GoOoxuA/C7B1UytL4KstEk+af3WGSSzwX7ikE+anL4EiqZ5x0+DU5xbai9xiVAj+AJotSZc060NkozNWIxox9eCtg0+3YEBCh0mnLRcXAcK+BM6C9Cox1fV8q4BbfhEz6CXucmWPvLKg5656e0CobbO1rQoCzpknKRQillMsuVH5UCew3bBEYrJ7mS70yoDMl0W8X0orCEjbcqABoSqByWU5apVcdCZUAVQRuaEucksCjKX9BsDKCe/Rb8X
2953akFypD6aIMlazTXBe3JoUlwUA9kjuhH8Cx/9fH/Ms5qU0im+oKD8ggLVzmqo12S5NCj8IiBzTV1qXXjOE/OBUn0W5UVAWzp2rt6NbVBrSs1uIyAxdGypw2ukK2FsmjjIpyMvedzMyrqnIdFgmuKglLozBlk9wrRVUUTWj1BQm5Y6XWIiMw0oprXpgIEsh9pYZzniqihipjMMdKKP8hUliskGrAMYY6Bn9ZS7ArTS9c9sLggoUeYQ2xGgUAOyqJN2CIhaONVbjuxBoyX1MgIaKwserdVvH3+fVBAxMERADl230nJ9mu4MtKYP9SCLqJ4zp+0U7NGQ3VA360G2Iq6BAYYQsDDBilJXD4opKM64RqYd3UsnljUnWRAvDC7/U4R09CBTxKvo1YTGfM32x+jEITm5Xi5iB8hmyPtoRv7UkKfn1R8hnKstr9S4CGjELPRbLQm04/iAl9O8PDG/IQJyabSJ//OaiO2358Gd10JUzhQBUWtseFHPa/QRXkYWsjuJ080ZooeAXvNbptd5FHpLFnnrGrCnRD6gHVi5jWsgoDmaYhhg7tEHHi/X4YaJgAy8KwhpR0WN3DIvZ6CfgICYhVO00VmrmhiXehkFvbD9pZZNhNbSgphFVyjogNvOFaBAkbtHJgLiLUiiAYmM8WQrGuoXQEDcdk6kBon4ClVtXR8DicTyqgYZPIKlBVnjLPniIHiUX4+khKiaTKpsqGvKzreD9YikGUuNe1MEFw4CF3slD3nRkPsSEYU46Mw8YOhD1okUExibWpDcky5jbSSFCptzU+Agv6k/bgG/TUZSkvGaknMxEGzR9xNTmkM8ZgdcEQ6SX4WGFhSUP2HHVCsoAzJdxWkdemK3AQUIOW4hrlGEc2yw4YPSJ5DeU5Y4zyjGSvhxpVUaBKcRYXqJEbPxujE1rzkl9lq8GqQaTxmijeyY1517L5ai8ISRYt0CQ2bWtSf5du4pjfZcYnnhUgxwtl/5EeT4uYtPjn3f/O192+il3bXU4V8PAqNNJDU5ncsJTcBAmA5jgmq/AEBBqKztUo/p7AAKgXDUYd9QUdaJcA4OwhU9Tx2Z0hr0LIByIFxmPxhMHM6YJkckDSIgRLFv7DwjklLFf/pb+TfoG/R/gaq6UlXZJbHKrr1VdpGvqquJ1V22rOz66C+wOzeLd8XkIgAAAABJRU5ErkJggg==";
2954
2955    var topBarHtml = function topBarHtml(namespace) {
2956      return "<div class='topbar-html-content' id='".concat(namespace, "-topbar-html-content'>\n        <div id='").concat(namespace, "-reset' class='topbar-html-content-item'>\n          <span>\u91CD\u7F6E</span>\n          <img src='").concat(img$n, "' source-src='").concat(img$n, "'  hover-src='").concat(img$d, "'></img>\n        </div>\n        <div id='").concat(namespace, "-audio' class='topbar-html-content-item topbar-html-margin0'>\n          <span>\u58F0\u97F3\u5F00\u5173</span>\n          <img src='").concat(img$m, "' name='audio' source-src='").concat(img$m, "'  hover-src='").concat(img$c, "'    selected-src='").concat(img$3, "'   selected-hover-src='").concat(img$1, "'></img>\n        </div>\n        <div id='").concat(namespace, "-audio-speed' class='topbar-html-content-item topbar-html-mright'>\n          <span>\u8BED\u901F</span>\n          <img src='").concat(img$l, "' name='speed' source-src='").concat(img$l, "'  hover-src='").concat(img$b, "'  selected-src='").concat(img$2, "'   selected-hover-src='").concat(img, "'></img>\n        </div>\n        <div id='").concat(namespace, "-zoom-out' class='topbar-html-content-item'>\n          <span>\u653E\u5927</span>\n          <img src='").concat(img$k, "' source-src='").concat(img$k, "'  hover-src='").concat(img$a, "'></img>\n        </div>\n        <div id='").concat(namespace, "-zoom-min' class='topbar-html-content-item topbar-html-mright'>\n          <span>\u7F29\u5C0F</span>\n          <img src='").concat(img$j, "' source-src='").concat(img$j, "'  hover-src='").concat(img$9, "'></img>\n        </div>\n        <div id='").concat(namespace, "-cursor-auto' class='topbar-html-content-item topbar-html-margin0'>\n          <span>\u9F20\u6807\u6837\u5F0F</span>\n          <img src='").concat(img$i, "' source-src='").concat(img$i, "'  hover-src='").concat(img$8, "'></img>\n        </div>\n        <div id='").concat(namespace, "-pointer-follow' class='topbar-html-content-item'>\n          <span>\u5341\u5B57\u7EBF</span>\n          <img src='").concat(img$h, "' source-src='").concat(img$h, "'  hover-src='").concat(img$7, "'></img>\n        </div>\n        <div id='").concat(namespace, "-bigtext' class='topbar-html-content-item topbar-html-mright'>\n          <span>\u5927\u5B57\u5E55</span>\n          <img src='").concat(img$g, "' source-src='").concat(img$g, "'  hover-src='").concat(img$6, "'></img>\n        </div>\n        <div id='").concat(namespace, "-pointeread' class='topbar-html-content-item topbar-html-mright'>\n          <span>\u6307\u8BFB</span>\n          <img src='").concat(img$f, "' source-src='").concat(img$f, "'  hover-src='").concat(img$5, "'></img>\n        </div>\n        <div id='").concat(namespace, "-close' class='topbar-html-content-item'>\n          <span>\u9000\u51FA\u670D\u52A1</span>\n          <img src='").concat(img$e, "' source-src='").concat(img$e, "'  hover-src='").concat(img$4, "'></img>\n        </div>\n      </div>");
2957    };
2958
2959    var TopBar = {
2960      init: function init(core) {
2961        var namespace = core.config.namespace;
2962        this.namespace = namespace;
2963        core.creatStyle('topbar-style', styles$4);
2964        core.creatHtml('topbar-html', topBarHtml);
2965      },
2966      setEvents: function setEvents(core) {
2967        var _this = this;
2968
2969        var namespace = core.config.namespace;
2970        var BtnClose = document.getElementById("".concat(namespace, "-close"));
2971        var BtnReset = document.getElementById("".concat(namespace, "-reset"));
2972        var HoverItem = document.getElementById("".concat(namespace, "-topbar-html-content"));
2973
2974        BtnClose.onclick = function () {
2975          core.close();
2976        };
2977
2978        BtnReset.onclick = function () {
2979          core.resetAction();
2980        };
2981
2982        if (isFirefox()) {
2983          document.getElementById("".concat(namespace, "-zoom-out")).style.display = 'none';
2984          document.getElementById("".concat(namespace, "-zoom-min")).style.display = 'none';
2985        }
2986
2987        [].forEach.call(HoverItem.children, function (el) {
2988          addEvent(el, 'mouseover', _this.mouseOver);
2989          addEvent(el, 'mouseout', _this.mouseOut);
2990        });
2991      },
2992      mouseOver: function mouseOver(event) {
2993        var event = window.event || event;
2994        var target = event.target || event.srcElement;
2995
2996        if (target.tagName !== 'IMG') {
2997          return;
2998        }
2999
3000        var __name = target.getAttribute('name');
3001
3002        var __hover = target.getAttribute('hover-src');
3003
3004        if (__name == 'audio') {
3005          if (cookie.get('audio', TopBar.namespace)) {
3006            target.src = __hover;
3007          } else {
3008            target.src = target.getAttribute('selected-hover-src');
3009          }
3010        } else if (__name == 'speed') {
3011          if (cookie.get('speed', TopBar.namespace) == 'fast') {
3012            target.src = target.getAttribute('selected-hover-src');
3013          } else {
3014            target.src = __hover;
3015          }
3016        } else {
3017          target.src = __hover;
3018        }
3019      },
3020      mouseOut: function mouseOut(event) {
3021        var event = window.event || event;
3022        var target = event.target || event.srcElement;
3023
3024        if (target.tagName !== 'IMG') {
3025          return;
3026        }
3027
3028        var __name = target.getAttribute('name');
3029
3030        var __source = target.getAttribute('source-src');
3031
3032        if (__name == 'audio') {
3033          if (cookie.get('audio', TopBar.namespace)) {
3034            target.src = __source;
3035          } else {
3036            target.src = target.getAttribute('selected-src');
3037          }
3038        } else if (__name == 'speed') {
3039          if (cookie.get('speed', TopBar.namespace) == 'fast') {
3040            target.src = target.getAttribute('selected-src');
3041          } else {
3042            target.src = __source;
3043          }
3044        } else {
3045          target.src = __source;
3046        }
3047      }
3048    };
3049
3050    var aPossiblePrototype = function (it) {
3051      if (!isObject(it) && it !== null) {
3052        throw TypeError("Can't set " + String(it) + ' as a prototype');
3053      } return it;
3054    };
3055
3056    /* eslint-disable no-proto -- safe */
3057
3058
3059
3060    // `Object.setPrototypeOf` method
3061    // https://tc39.es/ecma262/#sec-object.setprototypeof
3062    // Works with __proto__ only. Old v8 can't work with null proto objects.
3063    // eslint-disable-next-line es/no-object-setprototypeof -- safe
3064    var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () {
3065      var CORRECT_SETTER = false;
3066      var test = {};
3067      var setter;
3068      try {
3069        // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
3070        setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
3071        setter.call(test, []);
3072        CORRECT_SETTER = test instanceof Array;
3073      } catch (error) { /* empty */ }
3074      return function setPrototypeOf(O, proto) {
3075        anObject(O);
3076        aPossiblePrototype(proto);
3077        if (CORRECT_SETTER) setter.call(O, proto);
3078        else O.__proto__ = proto;
3079        return O;
3080      };
3081    }() : undefined);
3082
3083    // makes subclassing work correct for wrapped built-ins
3084    var inheritIfRequired = function ($this, dummy, Wrapper) {
3085      var NewTarget, NewTargetPrototype;
3086      if (
3087        // it can work only with native `setPrototypeOf`
3088        objectSetPrototypeOf &&
3089        // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
3090        typeof (NewTarget = dummy.constructor) == 'function' &&
3091        NewTarget !== Wrapper &&
3092        isObject(NewTargetPrototype = NewTarget.prototype) &&
3093        NewTargetPrototype !== Wrapper.prototype
3094      ) objectSetPrototypeOf($this, NewTargetPrototype);
3095      return $this;
3096    };
3097
3098    var SPECIES = wellKnownSymbol('species');
3099
3100    var setSpecies = function (CONSTRUCTOR_NAME) {
3101      var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
3102      var defineProperty = objectDefineProperty.f;
3103
3104      if (descriptors && Constructor && !Constructor[SPECIES]) {
3105        defineProperty(Constructor, SPECIES, {
3106          configurable: true,
3107          get: function () { return this; }
3108        });
3109      }
3110    };
3111
3112    var defineProperty = objectDefineProperty.f;
3113    var getOwnPropertyNames = objectGetOwnPropertyNames.f;
3114
3115
3116
3117
3118
3119    var enforceInternalState = internalState.enforce;
3120
3121
3122
3123    var MATCH = wellKnownSymbol('match');
3124    var NativeRegExp = global_1.RegExp;
3125    var RegExpPrototype$1 = NativeRegExp.prototype;
3126    var re1 = /a/g;
3127    var re2 = /a/g;
3128
3129    // "new" should create a new object, old webkit bug
3130    var CORRECT_NEW = new NativeRegExp(re1) !== re1;
3131
3132    var UNSUPPORTED_Y = regexpStickyHelpers.UNSUPPORTED_Y;
3133
3134    var FORCED$1 = descriptors && isForced_1('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {
3135      re2[MATCH] = false;
3136      // RegExp constructor can alter flags and IsRegExp works correct with @@match
3137      return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';
3138    }
3138)));
3139
3140    // `RegExp` constructor
3141    // https://tc39.es/ecma262/#sec-regexp-constructor
3142    if (FORCED$1) {
3143      var RegExpWrapper = function RegExp(pattern, flags) {
3144        var thisIsRegExp = this instanceof RegExpWrapper;
3145        var patternIsRegExp = isRegexp(pattern);
3146        var flagsAreUndefined = flags === undefined;
3147        var sticky;
3148
3149        if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {
3150          return pattern;
3151        }
3152
3153        if (CORRECT_NEW) {
3154          if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;
3155        } else if (pattern instanceof RegExpWrapper) {
3156          if (flagsAreUndefined) flags = regexpFlags.call(pattern);
3157          pattern = pattern.source;
3158        }
3159
3160        if (UNSUPPORTED_Y) {
3161          sticky = !!flags && flags.indexOf('y') > -1;
3162          if (sticky) flags = flags.replace(/y/g, '');
3163        }
3164
3165        var result = inheritIfRequired(
3166          CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),
3167          thisIsRegExp ? this : RegExpPrototype$1,
3168          RegExpWrapper
3169        );
3170
3171        if (UNSUPPORTED_Y && sticky) {
3172          var state = enforceInternalState(result);
3173          state.sticky = true;
3174        }
3175
3176        return result;
3177      };
3178      var proxy = function (key) {
3179        key in RegExpWrapper || defineProperty(RegExpWrapper, key, {
3180          configurable: true,
3181          get: function () { return NativeRegExp[key]; },
3182          set: function (it) { NativeRegExp[key] = it; }
3183        });
3184      };
3185      var keys = getOwnPropertyNames(NativeRegExp);
3186      var index = 0;
3187      while (keys.length > index) proxy(keys[index++]);
3188      RegExpPrototype$1.constructor = RegExpWrapper;
3189      RegExpWrapper.prototype = RegExpPrototype$1;
3190      redefine(global_1, 'RegExp', RegExpWrapper);
3191    }
3192
3193    // https://tc39.es/ecma262/#sec-get-regexp-@@species
3194    setSpecies('RegExp');
3195
3196    var TO_STRING = 'toString';
3197    var RegExpPrototype = RegExp.prototype;
3198    var nativeToString = RegExpPrototype[TO_STRING];
3199
3200    var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
3201    // FF44- RegExp#toString has a wrong name
3202    var INCORRECT_NAME = nativeToString.name != TO_STRING;
3203
3204    // `RegExp.prototype.toString` method
3205    // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
3206    if (NOT_GENERIC || INCORRECT_NAME) {
3207      redefine(RegExp.prototype, TO_STRING, function toString() {
3208        var R = anObject(this);
3209        var p = String(R.source);
3210        var rf = R.flags;
3211        var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? regexpFlags.call(R) : rf);
3212        return '/' + p + '/' + f;
3213      }, { unsafe: true });
3214    }
3215
3216    var audioTabText = {
3217      pointeread: '已开启指读模式',
3218      bigtextOpen: '大字幕已开启',
3219      bigtextClose: '大字幕已关闭',
3220      pointerFollowOpen: '十字线已开启',
3221      pointerFollowClose: '十字线已关闭',
3222      cursorAutoOpen: '大鼠标已开启',
3223      cursorAutoClose: '大鼠标已关闭',
3224      zoomOut: '页面已放大',
3225      zoomOutEnd: '页面已放到最大',
3226      zoomMin: '页面已缩小',
3227      zoomMinEnd: '页面已缩至最小',
3228      speedQuick: '语速已加快',
3229      speedMiddle: '语速已正常',
3230      audioOpen: '声音已开启',
3231      audioClose: '声音关闭',
3232      reset: '已重置'
3233    };
3234    var symbolsReg = new RegExp("[]");
3235
3236    var styles$3 = ".bigtext-html {\n  z-index: 99999999999;\n  height: 150px;\n  text-align: center;\n  position: fixed;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  border-top: 1px solid #505050;\n}\n.bigtext-html-content {\n  height: 100%;\n  background-color: #FFFFFF;\n  font-size: 53px;\n  color: #333 !important;\n  text-align: center;\n  font-weight: bold;\n}";
3237
3238    var BigTextHtml$1 = function BigTextHtml(namespace) {
3239      return "<audio autoplay id='".concat(namespace, "-audio-media'>\n               <source src='' id='").concat(namespace, "-audio-source'>\n               <embed height=\"0\" width=\"0\"  src='' id='").concat(namespace, "-audio-embed'>\n        </audio>\n        ");
3240    };
3241
3242    var Audio = {
3243      init: function init(core) {
3244        var _core$config = core.config,
3245            namespace = _core$config.namespace,
3246            url = _core$config.url;
3247        this.body = document.body;
3248        this.namespace = namespace;
3249        this.AudioApi = url;
3250        core.creatStyle('audio-style', styles$3);
3251        core.creatHtml('audio-html', BigTextHtml$1);
3252        this.isAudio = cookie.get('audio', namespace);
3253      },
3254      setEvents: function setEvents(core) {
3255        var namespace = core.config.namespace;
3256        this.registeDom(namespace);
3257        this.toggleAudio();
3258
3259        if (this.isAudio) {
3260          this.addEventMove();
3261          addEvent(document, 'click', this.forceSafariPlayAudio); // 苹果浏览器需要用户跟浏览器有个交互才可以播放语音
3262        } else {
3263          this.audioTabImg.src = this.audioTabImg.getAttribute('selected-src');
3264        }
3265
3266        if (this.speed == 'fast') {
3267          this.speedTabImg.src = this.speedTabImg.getAttribute('selected-src');
3268        } else {
3269          this.speedTabImg.src = this.speedTabImg.getAttribute('source-src');
3270        }
3271      },
3272      registeDom: function registeDom(namespace) {
3273        this.audio = document.getElementById("".concat(namespace, "-audio-media")) || '';
3274        this.audioTab = document.getElementById("".concat(namespace, "-audio")) || '';
3275        this.audioTabImg = this.audioTab.getElementsByTagName('img')[0];
3276        this.speed = cookie.get('speed', namespace);
3277        this.speedTab = document.getElementById("".concat(namespace, "-audio-speed")) || '';
3278        this.speedTabImg = this.speedTab.getElementsByTagName('img')[0];
3279        this.pointeReadTab = document.getElementById("".concat(namespace, "-pointeread")) || '';
3280      },
3281      toggleAudio: function toggleAudio() {
3282        var _this = this;
3283
3284        var namespace = Audio.namespace;
3285
3286        this.audioTab.onclick = function () {
3287          if (_this.isAudio) {
3288            _this.closeAudio();
3289          } else {
3290            _this.showAudio();
3291
3292            Audio.playAudio(audioTabText.audioOpen);
3293          }
3294        };
3295
3296        this.speedTab.onclick = function () {
3297          if (_this.speed == 'middle') {
3298            _this.speed = 'fast';
3299            _this.speedTabImg.src = _this.speedTabImg.getAttribute('selected-src');
3300            Audio.playAudio(audioTabText.speedQuick);
3301          } else {
3302            _this.speed = 'middle';
3303            _this.speedTabImg.src = _this.speedTabImg.getAttribute('source-src');
3304            Audio.playAudio(audioTabText.speedMiddle);
3305          }
3306
3307          cookie.set('speed', _this.speed, namespace);
3308        };
3309
3310        this.pointeReadTab.onclick = function () {
3311          _this.showAudio();
3312
3313          Audio.playAudio(audioTabText.pointeread);
3314        };
3315      },
3316      showAudio: function showAudio() {
3317        var namespace = Audio.namespace;
3318        this.isAudio = true;
3319        this.addEventMove();
3320        cookie.set('audio', true, namespace);
3321        this.audioTabImg.src = this.audioTabImg.getAttribute('source-src');
3322      },
3323      closeAudio: function closeAudio() {
3324        var namespace = Audio.namespace;
3325        this.isAudio = false;
3326        this.audio.pause();
3327        this.removeEventMove();
3328        cookie.set('audio', false, namespace);
3329        this.audioTabImg.src = this.audioTabImg.getAttribute('selected-src');
3330      },
3331      addEventMove: function addEventMove() {
3332        addEvent(this.body, 'mouseover', this.mouseOver);
3333      },
3334      removeEventMove: function removeEventMove() {
3335        removeEvent(this.body, 'mouseover', this.mouseOver);
3336      },
3337      forceSafariPlayAudio: function forceSafariPlayAudio() {
3338        var audio = Audio.audio;
3339        audio.load();
3340        audio.play();
3341      },
3342      mouseOver: function mouseOver(event) {
3343        var event = window.event || event;
3344        var target = event.target || event.srcElement;
3345
3346        var __text = parseTagText(target).replace(symbolsReg, '');
3347
3348        var __parentNodeId = target.parentNode.id;
3349
3350        var __isAssist = __parentNodeId.indexOf(Audio.namespace) > -1;
3351
3352        if (__text == '' || trim(__text) == '文本' || __isAssist) {
3353          return;
3354        }
3355
3356        Audio.playAudio(__text);
3357      },
3358      playAudio: function playAudio(text) {
3359        var namespace = Audio.namespace,
3360            AudioApi = Audio.AudioApi,
3361            isAudio = Audio.isAudio,
3362            audio = Audio.audio,
3363            speed = Audio.speed,
3364            forceSafariPlayAudio = Audio.forceSafariPlayAudio;
3365
3366        if (!isAudio) {
3367          return;
3368        }
3369
3370        var __speed = speed == 'middle' ? 5 : 7;
3371
3372        var AudioParam = "cuid=baike&lan=ZH&ctp=1&pdt=301&vol=9&rate=32&per=1&spd=".concat(__speed, "&tex=").concat(encodeURI(text));
3373        var AudioUrl = "".concat(AudioApi, "?").concat(AudioParam);
3374        audio.src = AudioUrl;
3375        document.getElementById("".concat(namespace, "-audio-source")).src = AudioUrl;
3376        document.getElementById("".concat(namespace, "-audio-embed")).src = AudioUrl;
3377        var playPromise = audio.play();
3378
3379        if (playPromise) {
3380          playPromise.then(function (_) {
3381            // audio.pause();
3382            removeEvent(document, 'click', forceSafariPlayAudio);
3383          }).catch(function (error) {
3384            console.log(error);
3385          });
3386        }
3387      },
3388      reset: function reset() {
3389        var namespace = Audio.namespace;
3390        this.closeAudio();
3391        this.speedTabImg.src = this.speedTabImg.getAttribute('source-src');
3392        this.speed = 'middle';
3393        cookie.set('speed', 'middle', namespace);
3394      }
3395    };
3396
3397    // `thisNumberValue` abstract operation
3398    // https://tc39.es/ecma262/#sec-thisnumbervalue
3399    var thisNumberValue = function (value) {
3400      if (typeof value != 'number' && classofRaw(value) != 'Number') {
3401        throw TypeError('Incorrect invocation');
3402      }
3403      return +value;
3404    };
3405
3406    // `String.prototype.repeat` method implementation
3407    // https://tc39.es/ecma262/#sec-string.prototype.repeat
3408    var stringRepeat = function repeat(count) {
3409      var str = String(requireObjectCoercible(this));
3410      var result = '';
3411      var n = toInteger(count);
3412      if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');
3413      for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
3414      return result;
3415    };
3416
3417    var nativeToFixed = 1.0.toFixed;
3418    var floor = Math.floor;
3419
3420    var pow = function (x, n, acc) {
3421      return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
3422    };
3423
3424    var log = function (x) {
3425      var n = 0;
3426      var x2 = x;
3427      while (x2 >= 4096) {
3428        n += 12;
3429        x2 /= 4096;
3430      }
3431      while (x2 >= 2) {
3432        n += 1;
3433        x2 /= 2;
3434      } return n;
3435    };
3436
3437    var multiply = function (data, n, c) {
3438      var index = -1;
3439      var c2 = c;
3440      while (++index < 6) {
3441        c2 += n * data[index];
3442        data[index] = c2 % 1e7;
3443        c2 = floor(c2 / 1e7);
3444      }
3445    };
3446
3447    var divide = function (data, n) {
3448      var index = 6;
3449      var c = 0;
3450      while (--index >= 0) {
3451        c += data[index];
3452        data[index] = floor(c / n);
3453        c = (c % n) * 1e7;
3454      }
3455    };
3456
3457    var dataToString = function (data) {
3458      var index = 6;
3459      var s = '';
3460      while (--index >= 0) {
3461        if (s !== '' || index === 0 || data[index] !== 0) {
3462          var t = String(data[index]);
3463          s = s === '' ? t : s + stringRepeat.call('0', 7 - t.length) + t;
3464        }
3465      } return s;
3466    };
3467
3468    var FORCED = nativeToFixed && (
3469      0.00008.toFixed(3) !== '0.000' ||
3470      0.9.toFixed(0) !== '1' ||
3471      1.255.toFixed(2) !== '1.25' ||
3472      1000000000000000128.0.toFixed(0) !== '1000000000000000128'
3473    ) || !fails(function () {
3474      // V8 ~ Android 4.3-
3475      nativeToFixed.call({});
3476    });
3477
3478    // `Number.prototype.toFixed` method
3479    // https://tc39.es/ecma262/#sec-number.prototype.tofixed
3480    _export({ target: 'Number', proto: true, forced: FORCED }, {
3481      toFixed: function toFixed(fractionDigits) {
3482        var number = thisNumberValue(this);
3483        var fractDigits = toInteger(fractionDigits);
3484        var data = [0, 0, 0, 0, 0, 0];
3485        var sign = '';
3486        var result = '0';
3487        var e, z, j, k;
3488
3489        if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');
3490        // eslint-disable-next-line no-self-compare -- NaN check
3491        if (number != number) return 'NaN';
3492        if (number <= -1e21 || number >= 1e21) return String(number);
3493        if (number < 0) {
3494          sign = '-';
3495          number = -number;
3496        }
3497        if (number > 1e-21) {
3498          e = log(number * pow(2, 69, 1)) - 69;
3499          z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);
3500          z *= 0x10000000000000;
3501          e = 52 - e;
3502          if (e > 0) {
3503            multiply(data, 0, z);
3504            j = fractDigits;
3505            while (j >= 7) {
3506              multiply(data, 1e7, 0);
3507              j -= 7;
3508            }
3509            multiply(data, pow(10, j, 1), 0);
3510            j = e - 1;
3511            while (j >= 23) {
3512              divide(data, 1 << 23);
3513              j -= 23;
3514            }
3515            divide(data, 1 << j);
3516            multiply(data, 1, 1);
3517            divide(data, 2);
3518            result = dataToString(data);
3519          } else {
3520            multiply(data, 0, z);
3521            multiply(data, 1 << -e, 0);
3522            result = dataToString(data) + stringRepeat.call('0', fractDigits);
3523          }
3524        }
3525        if (fractDigits > 0) {
3526          k = result.length;
3527          result = sign + (k <= fractDigits
3528            ? '0.' + stringRepeat.call('0', fractDigits - k) + result
3529            : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));
3530        } else {
3531          result = sign + result;
3532        } return result;
3533      }
3534    });
3535
3536    var ZoomPage = {
3537      init: function init(core) {
3538        var namespace = core.config.namespace;
3539        this.size = cookie.get('zomm', namespace) || 1.0;
3540        this.ignore = ['LINK', 'SCRIPT'];
3541        this.namespace = namespace;
3542        this.set();
3543      },
3544      setEvents: function setEvents(core) {
3545        var _this = this;
3546
3547        var namespace = core.config.namespace;
3548
3549        document.getElementById("".concat(namespace, "-zoom-out")).onclick = function () {
3550          _this.zoomOut(core);
3551        };
3552
3553        document.getElementById("".concat(namespace, "-zoom-min")).onclick = function () {
3554          _this.zoomMin(core);
3555        };
3556
3557        addEvent(window, 'DOMContentLoaded', function () {
3558          _this.updateZoomState(core);
3559        });
3560      },
3561      updateZoomState: function updateZoomState(core) {
3562        var message = core.message;
3563        message.publish('zoomState', this.size);
3564      },
3565      zoomOut: function zoomOut(core) {
3566        if (this.size >= 1.3) {
3567          console.log('已最大');
3568          Audio.playAudio(audioTabText.zoomOutEnd);
3569          this.updateZoomState(core);
3570          return;
3571        }
3572
3573        this.size = parseFloat((this.size + 0.1).toFixed(10));
3574        this.updateZoomState(core);
3575        this.set();
3576        Audio.playAudio(audioTabText.zoomOut);
3577      },
3578      zoomMin: function zoomMin(core) {
3579        if (this.size <= 1.0) {
3580          console.log('已最小');
3581          Audio.playAudio(audioTabText.zoomMinEnd);
3582          this.updateZoomState(core);
3583          return;
3584        }
3585
3586        this.size = parseFloat((this.size - 0.1).toFixed(10));
3587        this.updateZoomState(core);
3588        this.set();
3589        Audio.playAudio(audioTabText.zoomMin);
3590      },
3591      set: function set() {
3592        var _this2 = this;
3593
3594        [].forEach.call(document.body.children, function (el) {
3595          var __el = el.tagName.toUpperCase();
3596
3597          if (_this2.ignore.indexOf(__el) > -1 || el.id == _this2.namespace) {
3598            return;
3599          }
3600
3601          el.style.zoom = _this2.size; //  el.style.transform = `scale(${this.size})`
3602          //el.style.transformOrigin = '0px 0px'
3603        });
3604        cookie.set('zomm', this.size, this.namespace);
3605      },
3606      reset: function reset() {
3607        this.size = 1.0;
3608        this.set();
3609      }
3610    };
3611
3612    var styles$2 = ".pointer-follow-html-x, .pointer-follow-html-y {\n  z-index: 99999999999;\n  transform: none;\n  transform-origin: 0px 0px;\n  position: fixed;\n  top: 0;\n  left: 0;\n  background-color: #ff0000 !important;\n  width: 100%;\n  height: 4px;\n}\n.pointer-follow-html-y {\n  height: 100%;\n  width: 4px;\n}";
3613
3614    var PointerFllowHtml = function PointerFllowHtml() {
3615      return "<div class='pointer-follow-html'>\n        <div  class=\"pointer-follow-html-x\" id=\"pointer-follow-html-x\"></div>\n        <div class=\"pointer-follow-html-y\" id=\"pointer-follow-html-y\"></div>\n      </div>";
3616    };
3617
3618    var PointerFllow = {
3619      init: function init(core) {
3620        core.config.namespace;
3621        this.body = document.body;
3622        core.creatStyle('pointer-follow-style', styles$2);
3623        core.creatHtml('pointer-follow-html', PointerFllowHtml);
3624      },
3625      setEvents: function setEvents(core) {
3626        var namespace = core.config.namespace;
3627
3628        if (cookie.get('pointer', namespace)) {
3629          this.show(core);
3630        }
3631
3632        this.togglePointer(core, namespace);
3633      },
3634      addEventMove: function addEventMove() {
3635        addEvent(this.body, 'mousemove', this.mouseMove);
3636      },
3637      removeEventMove: function removeEventMove() {
3638        removeEvent(this.body, 'mousemove', this.mouseMove);
3639      },
3640      togglePointer: function togglePointer(core, namespace) {
3641        var _this = this;
3642
3643        var tabBarBtn = document.getElementById("".concat(namespace, "-pointer-follow"));
3644        var activeBtn = document.getElementById("".concat(namespace, "-pointer-follow-html"));
3645
3646        tabBarBtn.onclick = function () {
3647          if (activeBtn.style.display == 'block') {
3648            _this.reset(core);
3649
3650            Audio.playAudio(audioTabText.pointerFollowClose);
3651          } else {
3652            _this.show(core);
3653
3654            Audio.playAudio(audioTabText.pointerFollowOpen);
3655          }
3656        };
3657      },
3658      mouseMove: function mouseMove(event) {
3659        var event = window.event || event;
3660        var pointerX = document.getElementById("pointer-follow-html-x"),
3661            pointerY = document.getElementById("pointer-follow-html-y");
3662        pointerX.style.top = event.clientY - 10 + "px";
3663        pointerY.style.left = event.clientX - 10 + "px";
3664      },
3665      show: function show(core) {
3666        var namespace = core.config.namespace;
3667        var activeBtn = document.getElementById("".concat(namespace, "-pointer-follow-html"));
3668        activeBtn.style.display = 'block';
3669        this.addEventMove();
3670        cookie.set('pointer', true, namespace);
3671      },
3672      reset: function reset(core) {
3673        var namespace = core.config.namespace;
3674        var activeBtn = document.getElementById("".concat(namespace, "-pointer-follow-html"));
3675        activeBtn.style.display = 'none';
3676        this.removeEventMove();
3677        cookie.set('pointer', false, namespace);
3678      }
3679    };
3680
3681    var styles$1 = "* {\n  cursor: url(\"./allaw.cur\"), auto !important;\n}\n\na {\n  cursor: url(\"./linkaw.cur\"), auto !important;\n}";
3682
3683    var CursorAuto = {
3684      init: function init(core) {
3685        core.config.namespace;
3686      },
3687      setEvents: function setEvents(core) {
3688        var namespace = core.config.namespace;
3689
3690        if (cookie.get('cursor', namespace)) {
3691          core.creatStyle('cursor-auto-style', styles$1, true);
3692        }
3693
3694        var tabBarBtn = document.getElementById("".concat(namespace, "-cursor-auto"));
3695
3696        tabBarBtn.onclick = function () {
3697          var activeBtn = document.getElementById("".concat(namespace, "-cursor-auto-style"));
3698
3699          if (activeBtn) {
3700            removeNode(activeBtn);
3701            cookie.set('cursor', false, namespace);
3702            Audio.playAudio(audioTabText.cursorAutoClose);
3703          } else {
3704            cookie.set('cursor', true, namespace);
3705            core.creatStyle('cursor-auto-style', styles$1, true);
3706            Audio.playAudio(audioTabText.cursorAutoOpen);
3707          }
3708        };
3709      },
3710      reset: function reset(core) {
3711        var namespace = core.config.namespace;
3712        var activeBtn = document.getElementById("".concat(namespace, "-cursor-auto-style"));
3713        activeBtn && removeNode(activeBtn);
3714      }
3715    };
3716
3717    var styles = ".bigtext-html {\n  z-index: 99999999999;\n  height: 150px;\n  text-align: center;\n  position: fixed;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  border-top: 1px solid #797F8D;\n  background-color: #FFFFFF;\n}\n.bigtext-html-content {\n  height: 100%;\n  background-color: #FFFFFF;\n  font-size: 53px;\n  color: #333 !important;\n  text-align: center;\n  font-weight: bold;\n  width: 93%;\n  margin: 0 auto;\n}\n.bigtext-html-btn {\n  width: 20px;\n  height: 20px;\n  background-color: red;\n  position: absolute;\n  right: 20px;\n  top: 20px;\n  border-radius: 10px;\n  color: #FFFFFF;\n  cursor: pointer;\n}\n.bigtext-html-bone {\n  width: 100%;\n  height: 151px;\n}";
3718
3719    var BigTextHtml = function BigTextHtml(namespace) {
3720      return "<div id='".concat(namespace, "-bigtext-html' class='bigtext-html'>\n           <div id='").concat(namespace, "-bigtext-content' class='bigtext-html-content'></div>\n           <div class='bigtext-html-btn' id='").concat(namespace, "-bigtext-close'>\n              <i class='bigtext-html-close' role='button' title='\u5173\u95ED\u5927\u5B57\u5E55\u6A21\u5F0F'>X</i>\n           </div>\n        </div>");
3721    };
3722
3723    var BigTextBone = function BigTextBone() {
3724      return "<div class='bigtext-html-bone'></div>";
3725    };
3726
3727    var BigText = {
3728      init: function init(core) {
3729        var namespace = core.config.namespace;
3730        this.body = document.body;
3731        this.namespace = namespace;
3732        core.creatStyle('bigtext-style', styles);
3733        core.creatHtml('bigtext-html', BigTextHtml);
3734        core.creatHtml('bigtext-bone', BigTextBone);
3735      },
3736      setEvents: function setEvents(core) {
3737        var _this = this;
3738
3739        var namespace = core.config.namespace;
3740        addEvent(window, 'DOMContentLoaded', function () {
3741          if (cookie.get('bigtext', namespace)) {
3742            _this.show(core);
3743          }
3744        });
3745        this.toggleBigText(core, namespace);
3746      },
3747      addEventMove: function addEventMove() {
3748        addEvent(this.body, 'mouseover', this.mouseOver);
3749      },
3750      removeEventMove: function removeEventMove() {
3751        removeEvent(this.body, 'mouseover', this.mouseOver);
3752      },
3753      toggleBigText: function toggleBigText(core, namespace) {
3754        var _this2 = this;
3755
3756        var tabBarBtn = document.getElementById("".concat(namespace, "-bigtext"));
3757        var tabBarBtnClose = document.getElementById("".concat(namespace, "-bigtext-close"));
3758
3759        tabBarBtn.onclick = function () {
3760          var activeBtn = document.getElementById("".concat(namespace, "-bigtext-html"));
3761
3762          if (activeBtn.style.display == 'block') {
3763            _this2.reset(core);
3764
3765            Audio.playAudio(audioTabText.bigtextClose);
3766          } else {
3767            _this2.show(core);
3768
3769            Audio.playAudio(audioTabText.bigtextOpen);
3770          }
3771        };
3772
3773        tabBarBtnClose.onclick = function () {
3774          _this2.reset(core);
3775
3776          Audio.playAudio(audioTabText.bigtextClose);
3777        };
3778      },
3779      mouseOver: function mouseOver(event) {
3780        var event = window.event || event;
3781        var target = event.target || event.srcElement;
3782        var namespace = BigText.namespace;
3783        var __parentNodeId = target.parentNode.id;
3784
3785        var __isAssist = __parentNodeId.indexOf(namespace) > -1;
3786
3787        var activeBtn = document.getElementById("".concat(namespace, "-bigtext-content"));
3788        activeBtn.innerText = parseTagText(target).replace(symbolsReg, '');
3789
3790        if (__isAssist || activeBtn.innerText == '文本') {
3791          activeBtn.innerText = '';
3792          return;
3793        }
3794      },
3795      show: function show(core) {
3796        var namespace = core.config.namespace;
3797        var activeBtn = document.getElementById("".concat(namespace, "-bigtext-html"));
3798        var tabBar = document.getElementById("".concat(namespace, "-bigtext-bone"));
3799        activeBtn.style.display = 'block';
3800        tabBar.style.display = 'block';
3801        this.addEventMove();
3802        cookie.set('bigtext', true, namespace);
3803        core.message.publish('bigTextState', true);
3804      },
3805      reset: function reset(core) {
3806        var namespace = core.config.namespace;
3807        var activeBtn = document.getElementById("".concat(namespace, "-bigtext-html"));
3808        var tabBar = document.getElementById("".concat(namespace, "-bigtext-bone"));
3809        activeBtn.style.display = 'none';
3810        tabBar.style.display = 'none';
3811        this.removeEventMove();
3812        cookie.set('bigtext', false, namespace);
3813        core.message.publish('bigTextState', false);
3814      }
3815    };
3816
3817    var InitModules = [TopBar, Audio, ZoomPage, PointerFllow, CursorAuto, BigText];
3818
3819    var Assist = /*#__PURE__*/function (_Base) {
3820      _inherits(Assist, _Base);
3821
3822      var _super = _createSuper(Assist);
3823
3824      function Assist() {
3825        var _this;
3826
3827        var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3828
3829        _classCallCheck(this, Assist);
3830
3831        _this = _super.call(this, opts); // 合并参数
3832
3833        _this.mergeConfig(opts); // 初始化插件
3834
3835
3836        _this.init();
3837
3838        _this.isShow();
3839
3840        _this.resetAction = _this.reset;
3841        return _this;
3842      }
3843
3844      _createClass(Assist, [{
3845        key: "init",
3846        value: function init() {
3847          var _this2 = this;
3848
3849          // 初始化dom
3850          InitModules.map(function (item) {
3851            return _this2.use(item);
3852          });
3853          this.registeStyle();
3854          this.registeHtml(); // 初始化事件
3855
3856          InitModules.map(function (item) {
3857            return _this2.useEvent(item);
3858          }); // 格式化大段文本
3859
3860          this.formatLongText();
3861        }
3862      }, {
3863        key: "reset",
3864        value: function reset() {
3865          Audio.reset();
3866          ZoomPage.reset();
3867          CursorAuto.reset(this);
3868          PointerFllow.reset(this);
3869          BigText.reset(this);
3870        }
3871      }]);
3872
3873      return Assist;
3874    }(Base);
3875
3876    var AssistEntry = new Assist(config);
3877
3878    return AssistEntry;
3879
3880  })));
3881});
3882
3883(function(ji, a, x, i, n, c) {
3884  ji[n] = ji[n] || function() {
3885   (ji[n].n = ji[n].n || []).push(arguments);
3886  };
3887  j = a.createElement(x), s = a.getElementsByTagName(x)[0];
3888  j.async = true;
3889  if(typeof c==="function"){if(typeof document.attachEvent!=="object"){j.onload=function(){c()}}else{j.onreadystatechange=function(){var r=j.readyState;if(r==="loaded"||r==="complete"){j.onreadystatechange=null;c()}}}};
3890  j.charset = "UTF-8";
3891  j.src = i + "?v=" + new Date().getUTCDate() + "&id=c2c5bgjpmhy2yq&appName=tacxznk942&appChannel=20003";
3892  s.parentNode.insertBefore(j, s);
3893 })(window, document, "script", "https://web.jiaxincloud.com/mcs.js", "_JIAXIN");
3894 _JIAXIN();
3895
3896function goPAGE () {
3897  if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
3898    if (window.location.href == 'https://www.95505.com.cn/customer_service/electronic_policy_download.html') {
3899      window.location.href = "/mobile/m_customer_service/m_download_elePolicy.html"
3900    } else if (window.location.href.indexOf('https://www.95505.com.cn/public_activity_content_atr')>-1) {
3901      var str = window.location.href.split('/');
3902      window.location.href = "/mobile/m_public_activity_content_atr/"+str[4]+"/index.html"
3903    }else{
3904      window.location.href = "/mobile"
3905    }
3906  }
3907}
3908goPAGE()

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.