北京经济技术开发区经开区虚拟城市项目-【前端】-移动端Web
lixuliang
2024-05-08 f5233339920a59103d53e8efadc6f3f5d0b64f31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
!function (e, t) { if ("object" == typeof exports && "object" == typeof module) module.exports = t(); else if ("function" == typeof define && define.amd) define([], t); else { var n, i = t(); for (n in i) ("object" == typeof exports ? exports : e)[n] = i[n] } }(window, function () {
    return n = [function (e, t, ls) {
        !function (us) {
            var ds;//! moment.js
            //! version : 2.29.1
            //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
            //! license : MIT
            //! momentjs.com
            us.exports = function () {
                "use strict"; var t, r; function l() { return t.apply(null, arguments) } function e(e) { t = e } function s(e) { return e instanceof Array || Object.prototype.toString.call(e) === "[object Array]" } function o(e) { return e != null && Object.prototype.toString.call(e) === "[object Object]" } function u(e, t) { return Object.prototype.hasOwnProperty.call(e, t) } function d(e) { if (Object.getOwnPropertyNames) return Object.getOwnPropertyNames(e).length === 0; else { var t; for (t in e) if (u(e, t)) return false; return true } } function a(e) { return e === void 0 } function h(e) { return typeof e === "number" || Object.prototype.toString.call(e) === "[object Number]" } function c(e) { return e instanceof Date || Object.prototype.toString.call(e) === "[object Date]" } function i(e, t) { var n = [], i; for (i = 0; i < e.length; ++i)n.push(t(e[i], i)); return n } function _(e, t) { for (var n in t) if (u(t, n)) e[n] = t[n]; if (u(t, "toString")) e.toString = t.toString; if (u(t, "valueOf")) e.valueOf = t.valueOf; return e } function f(e, t, n, i) { return Gn(e, t, n, i, true).utc() } function n() { return { empty: false, unusedTokens: [], unusedInput: [], overflow: -2, charsLeftOver: 0, nullInput: false, invalidEra: null, invalidMonth: null, invalidFormat: false, userInvalidated: false, iso: false, parsedDateParts: [], era: null, meridiem: null, rfc2822: false, weekdayMismatch: false } } function m(e) { if (e._pf == null) e._pf = n(); return e._pf } if (Array.prototype.some) r = Array.prototype.some; else r = function (e) { var t = Object(this), n = t.length >>> 0, i; for (i = 0; i < n; i++)if (i in t && e.call(this, t[i], i, t)) return true; return false }; function p(e) { if (e._isValid == null) { var t = m(e), n = r.call(t.parsedDateParts, function (e) { return e != null }), i = !isNaN(e._d.getTime()) && t.overflow < 0 && !t.empty && !t.invalidEra && !t.invalidMonth && !t.invalidWeekday && !t.weekdayMismatch && !t.nullInput && !t.invalidFormat && !t.userInvalidated && (!t.meridiem || t.meridiem && n); if (e._strict) i = i && t.charsLeftOver === 0 && t.unusedTokens.length === 0 && t.bigHour === undefined; if (Object.isFrozen == null || !Object.isFrozen(e)) e._isValid = i; else return i } return e._isValid } function y(e) { var t = f(NaN); if (e != null) _(m(t), e); else m(t).userInvalidated = true; return t } var v = l.momentProperties = [], g = false; function M(e, t) { var n, i, r; if (!a(t._isAMomentObject)) e._isAMomentObject = t._isAMomentObject; if (!a(t._i)) e._i = t._i; if (!a(t._f)) e._f = t._f; if (!a(t._l)) e._l = t._l; if (!a(t._strict)) e._strict = t._strict; if (!a(t._tzm)) e._tzm = t._tzm; if (!a(t._isUTC)) e._isUTC = t._isUTC; if (!a(t._offset)) e._offset = t._offset; if (!a(t._pf)) e._pf = m(t); if (!a(t._locale)) e._locale = t._locale; if (v.length > 0) for (n = 0; n < v.length; n++) { i = v[n]; r = t[i]; if (!a(r)) e[i] = r } return e } function L(e) { M(this, e); this._d = new Date(e._d != null ? e._d.getTime() : NaN); if (!this.isValid()) this._d = new Date(NaN); if (g === false) { g = true; l.updateOffset(this); g = false } } function S(e) { return e instanceof L || e != null && e._isAMomentObject != null } function k(e) { if (l.suppressDeprecationWarnings === false && typeof console !== "undefined" && console.warn) console.warn("Deprecation warning: " + e) } function b(r, a) { var s = true; return _(function () { if (l.deprecationHandler != null) l.deprecationHandler(null, r); if (s) { var e = [], t, n, i; for (n = 0; n < arguments.length; n++) { t = ""; if (typeof arguments[n] === "object") { t += "\n[" + n + "] "; for (i in arguments[0]) if (u(arguments[0], i)) t += i + ": " + arguments[0][i] + ", "; t = t.slice(0, -2) } else t = arguments[n]; e.push(t) } k(r + "\nArguments: " + Array.prototype.slice.call(e).join("") + "\n" + (new Error).stack); s = false } return a.apply(this, arguments) }, a) } var w = {}, D; function T(e, t) { if (l.deprecationHandler != null) l.deprecationHandler(e, t); if (!w[e]) { k(t); w[e] = true } } function E(e) { return typeof Function !== "undefined" && e instanceof Function || Object.prototype.toString.call(e) === "[object Function]" } function Y(e) { var t, n; for (n in e) if (u(e, n)) { t = e[n]; if (E(t)) this[n] = t; else this["_" + n] = t } this._config = e; this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source) } function P(e, t) { var n = _({}, e), i; for (i in t) if (u(t, i)) if (o(e[i]) && o(t[i])) { n[i] = {}; _(n[i], e[i]); _(n[i], t[i]) } else if (t[i] != null) n[i] = t[i]; else delete n[i]; for (i in e) if (u(e, i) && !u(t, i) && o(e[i])) n[i] = _({}, n[i]); return n } function C(e) { if (e != null) this.set(e) } if (l.suppressDeprecationWarnings = false, l.deprecationHandler = null, Object.keys) D = Object.keys; else D = function (e) { var t, n = []; for (t in e) if (u(e, t)) n.push(t); return n }; var A = { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }; function R(e, t, n) { var i = this._calendar[e] || this._calendar["sameElse"]; return E(i) ? i.call(t, n) : i } function x(e, t, n) { var i = "" + Math.abs(e), r = t - i.length, a = e >= 0; return (a ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, r)).toString().substr(1) + i } var O = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, I = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, W = {}, H = {}; function j(e, t, n, i) { var r = i; if (typeof i === "string") r = function () { return this[i]() }; if (e) H[e] = r; if (t) H[t[0]] = function () { return x(r.apply(this, arguments), t[1], t[2]) }; if (n) H[n] = function () { return this.localeData().ordinal(r.apply(this, arguments), e) } } function F(e) { if (e.match(/\[[\s\S]/)) return e.replace(/^\[|\]$/g, ""); return e.replace(/\\/g, "") } function B(i) { var r = i.match(O), e, a; for (e = 0, a = r.length; e < a; e++)if (H[r[e]]) r[e] = H[r[e]]; else r[e] = F(r[e]); return function (e) { var t = "", n; for (n = 0; n < a; n++)t += E(r[n]) ? r[n].call(e, i) : r[n]; return t } } function N(e, t) { if (!e.isValid()) return e.localeData().invalidDate(); t = z(t, e.localeData()); W[t] = W[t] || B(t); return W[t](e) } function z(e, t) { var n = 5; function i(e) { return t.longDateFormat(e) || e } I.lastIndex = 0; while (n >= 0 && I.test(e)) { e = e.replace(I, i); I.lastIndex = 0; n -= 1 } return e } var U = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }; function V(e) { var t = this._longDateFormat[e], n = this._longDateFormat[e.toUpperCase()]; if (t || !n) return t; this._longDateFormat[e] = n.match(O).map(function (e) { if (e === "MMMM" || e === "MM" || e === "DD" || e === "dddd") return e.slice(1); return e }).join(""); return this._longDateFormat[e] } var G = "Invalid date"; function J() { return this._invalidDate } var q = "%d", K = /\d{1,2}/; function X(e) { return this._ordinal.replace("%d", e) } var Z = { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", w: "a week", ww: "%d weeks", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }; function $(e, t, n, i) { var r = this._relativeTime[n]; return E(r) ? r(e, t, n, i) : r.replace(/%d/i, e) } function Q(e, t) { var n = this._relativeTime[e > 0 ? "future" : "past"]; return E(n) ? n(t) : n.replace(/%s/i, t) } var ee = {}; function te(e, t) { var n = e.toLowerCase(); ee[n] = ee[n + "s"] = ee[t] = e } function ne(e) { return typeof e === "string" ? ee[e] || ee[e.toLowerCase()] : undefined } function ie(e) { var t = {}, n, i; for (i in e) if (u(e, i)) { n = ne(i); if (n) t[n] = e[i] } return t } var re = {}; function ae(e, t) { re[e] = t } function se(e) { var t = [], n; for (n in e) if (u(e, n)) t.push({ unit: n, priority: re[n] }); t.sort(function (e, t) { return e.priority - t.priority }); return t } function oe(e) { return e % 4 === 0 && e % 100 !== 0 || e % 400 === 0 } function ue(e) { if (e < 0) return Math.ceil(e) || 0; else return Math.floor(e) } function de(e) { var t = +e, n = 0; if (t !== 0 && isFinite(t)) n = ue(t); return n } function le(t, n) { return function (e) { if (e != null) { ce(this, t, e); l.updateOffset(this, n); return this } else return he(this, t) } } function he(e, t) { return e.isValid() ? e._d["get" + (e._isUTC ? "UTC" : "") + t]() : NaN } function ce(e, t, n) { if (e.isValid() && !isNaN(n)) if (t === "FullYear" && oe(e.year()) && e.month() === 1 && e.date() === 29) { n = de(n); e._d["set" + (e._isUTC ? "UTC" : "") + t](n, e.month(), $e(n, e.month())) } else e._d["set" + (e._isUTC ? "UTC" : "") + t](n) } function _e(e) { e = ne(e); if (E(this[e])) return this[e](); return this } function fe(e, t) { if (typeof e === "object") { e = ie(e); var n = se(e), i; for (i = 0; i < n.length; i++)this[n[i].unit](e[n[i].unit]) } else { e = ne(e); if (E(this[e])) return this[e](t) } return this } var me = /\d/, pe = /\d\d/, ye = /\d{3}/, ve = /\d{4}/, ge = /[+-]?\d{6}/, Me = /\d\d?/, Le = /\d\d\d\d?/, Se = /\d\d\d\d\d\d?/, ke = /\d{1,3}/, be = /\d{1,4}/, we = /[+-]?\d{1,6}/, De = /\d+/, Te = /[+-]?\d+/, Ee = /Z|[+-]\d\d:?\d\d/gi, Ye = /Z|[+-]\d\d(?::?\d\d)?/gi, Pe = /[+-]?\d+(\.\d{1,3})?/, Ce = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, Ae; function Re(e, n, i) { Ae[e] = E(n) ? n : function (e, t) { return e && i ? i : n } } function xe(e, t) { if (!u(Ae, e)) return new RegExp(Oe(e)); return Ae[e](t._strict, t._locale) } function Oe(e) { return Ie(e.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (e, t, n, i, r) { return t || n || i || r })) } function Ie(e) { return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") } var Ae = {}, We = {}; function He(e, n) { var t, i = n; if (typeof e === "string") e = [e]; if (h(n)) i = function (e, t) { t[n] = de(e) }; for (t = 0; t < e.length; t++)We[e[t]] = i } function je(e, r) { He(e, function (e, t, n, i) { n._w = n._w || {}; r(e, n._w, n, i) }) } function Fe(e, t, n) { if (t != null && u(We, e)) We[e](t, n._a, n, e) } var Be = 0, Ne = 1, ze = 2, Ue = 3, Ve = 4, Ge = 5, Je = 6, qe = 7, Ke = 8, Xe; function Ze(e, t) { return (e % t + t) % t } if (Array.prototype.indexOf) Xe = Array.prototype.indexOf; else Xe = function (e) { var t; for (t = 0; t < this.length; ++t)if (this[t] === e) return t; return -1 }; function $e(e, t) { if (isNaN(e) || isNaN(t)) return NaN; var n = Ze(t, 12); e += (t - n) / 12; return n === 1 ? oe(e) ? 29 : 28 : 31 - n % 7 % 2 } j("M", ["MM", 2], "Mo", function () { return this.month() + 1 }), j("MMM", 0, 0, function (e) { return this.localeData().monthsShort(this, e) }), j("MMMM", 0, 0, function (e) { return this.localeData().months(this, e) }), te("month", "M"), ae("month", 8), Re("M", Me), Re("MM", Me, pe), Re("MMM", function (e, t) { return t.monthsShortRegex(e) }), Re("MMMM", function (e, t) { return t.monthsRegex(e) }), He(["M", "MM"], function (e, t) { t[Ne] = de(e) - 1 }), He(["MMM", "MMMM"], function (e, t, n, i) { var r = n._locale.monthsParse(e, i, n._strict); if (r != null) t[Ne] = r; else m(n).invalidMonth = e }); var Qe = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), et = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), tt = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, nt = Ce, it = Ce; function rt(e, t) { if (!e) return s(this._months) ? this._months : this._months["standalone"]; return s(this._months) ? this._months[e.month()] : this._months[(this._months.isFormat || tt).test(t) ? "format" : "standalone"][e.month()] } function at(e, t) { if (!e) return s(this._monthsShort) ? this._monthsShort : this._monthsShort["standalone"]; return s(this._monthsShort) ? this._monthsShort[e.month()] : this._monthsShort[tt.test(t) ? "format" : "standalone"][e.month()] } function st(e, t, n) { var i, r, a, s = e.toLocaleLowerCase(); if (!this._monthsParse) { this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; for (i = 0; i < 12; ++i) { a = f([2e3, i]); this._shortMonthsParse[i] = this.monthsShort(a, "").toLocaleLowerCase(); this._longMonthsParse[i] = this.months(a, "").toLocaleLowerCase() } } if (n) if (t === "MMM") { r = Xe.call(this._shortMonthsParse, s); return r !== -1 ? r : null } else { r = Xe.call(this._longMonthsParse, s); return r !== -1 ? r : null } else if (t === "MMM") { r = Xe.call(this._shortMonthsParse, s); if (r !== -1) return r; r = Xe.call(this._longMonthsParse, s); return r !== -1 ? r : null } else { r = Xe.call(this._longMonthsParse, s); if (r !== -1) return r; r = Xe.call(this._shortMonthsParse, s); return r !== -1 ? r : null } } function ot(e, t, n) { var i, r, a; if (this._monthsParseExact) return st.call(this, e, t, n); if (!this._monthsParse) { this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = [] } for (i = 0; i < 12; i++) { r = f([2e3, i]); if (n && !this._longMonthsParse[i]) { this._longMonthsParse[i] = new RegExp("^" + this.months(r, "").replace(".", "") + "$", "i"); this._shortMonthsParse[i] = new RegExp("^" + this.monthsShort(r, "").replace(".", "") + "$", "i") } if (!n && !this._monthsParse[i]) { a = "^" + this.months(r, "") + "|^" + this.monthsShort(r, ""); this._monthsParse[i] = new RegExp(a.replace(".", ""), "i") } if (n && t === "MMMM" && this._longMonthsParse[i].test(e)) return i; else if (n && t === "MMM" && this._shortMonthsParse[i].test(e)) return i; else if (!n && this._monthsParse[i].test(e)) return i } } function ut(e, t) { var n; if (!e.isValid()) return e; if (typeof t === "string") if (/^\d+$/.test(t)) t = de(t); else { t = e.localeData().monthsParse(t); if (!h(t)) return e } n = Math.min(e.date(), $e(e.year(), t)); e._d["set" + (e._isUTC ? "UTC" : "") + "Month"](t, n); return e } function dt(e) { if (e != null) { ut(this, e); l.updateOffset(this, true); return this } else return he(this, "Month") } function lt() { return $e(this.year(), this.month()) } function ht(e) { if (this._monthsParseExact) { if (!u(this, "_monthsRegex")) _t.call(this); if (e) return this._monthsShortStrictRegex; else return this._monthsShortRegex } else { if (!u(this, "_monthsShortRegex")) this._monthsShortRegex = nt; return this._monthsShortStrictRegex && e ? this._monthsShortStrictRegex : this._monthsShortRegex } } function ct(e) { if (this._monthsParseExact) { if (!u(this, "_monthsRegex")) _t.call(this); if (e) return this._monthsStrictRegex; else return this._monthsRegex } else { if (!u(this, "_monthsRegex")) this._monthsRegex = it; return this._monthsStrictRegex && e ? this._monthsStrictRegex : this._monthsRegex } } function _t() { function e(e, t) { return t.length - e.length } var t = [], n = [], i = [], r, a; for (r = 0; r < 12; r++) { a = f([2e3, r]); t.push(this.monthsShort(a, "")); n.push(this.months(a, "")); i.push(this.months(a, "")); i.push(this.monthsShort(a, "")) } t.sort(e); n.sort(e); i.sort(e); for (r = 0; r < 12; r++) { t[r] = Ie(t[r]); n[r] = Ie(n[r]) } for (r = 0; r < 24; r++)i[r] = Ie(i[r]); this._monthsRegex = new RegExp("^(" + i.join("|") + ")", "i"); this._monthsShortRegex = this._monthsRegex; this._monthsStrictRegex = new RegExp("^(" + n.join("|") + ")", "i"); this._monthsShortStrictRegex = new RegExp("^(" + t.join("|") + ")", "i") } function ft(e) { return oe(e) ? 366 : 365 } j("Y", 0, 0, function () { var e = this.year(); return e <= 9999 ? x(e, 4) : "+" + e }), j(0, ["YY", 2], 0, function () { return this.year() % 100 }), j(0, ["YYYY", 4], 0, "year"), j(0, ["YYYYY", 5], 0, "year"), j(0, ["YYYYYY", 6, true], 0, "year"), te("year", "y"), ae("year", 1), Re("Y", Te), Re("YY", Me, pe), Re("YYYY", be, ve), Re("YYYYY", we, ge), Re("YYYYYY", we, ge), He(["YYYYY", "YYYYYY"], Be), He("YYYY", function (e, t) { t[Be] = e.length === 2 ? l.parseTwoDigitYear(e) : de(e) }), He("YY", function (e, t) { t[Be] = l.parseTwoDigitYear(e) }), He("Y", function (e, t) { t[Be] = parseInt(e, 10) }), l.parseTwoDigitYear = function (e) { return de(e) + (de(e) > 68 ? 1900 : 2e3) }; var mt = le("FullYear", true); function pt() { return oe(this.year()) } function yt(e, t, n, i, r, a, s) { var o; if (e < 100 && e >= 0) { o = new Date(e + 400, t, n, i, r, a, s); if (isFinite(o.getFullYear())) o.setFullYear(e) } else o = new Date(e, t, n, i, r, a, s); return o } function vt(e) { var t, n; if (e < 100 && e >= 0) { n = Array.prototype.slice.call(arguments); n[0] = e + 400; t = new Date(Date.UTC.apply(null, n)); if (isFinite(t.getUTCFullYear())) t.setUTCFullYear(e) } else t = new Date(Date.UTC.apply(null, arguments)); return t } function gt(e, t, n) { var i = 7 + t - n, r = (7 + vt(e, 0, i).getUTCDay() - t) % 7; return -r + i - 1 } function Mt(e, t, n, i, r) { var a = (7 + n - i) % 7, s = gt(e, i, r), o = 1 + 7 * (t - 1) + a + s, u, d; if (o <= 0) { u = e - 1; d = ft(u) + o } else if (o > ft(e)) { u = e + 1; d = o - ft(e) } else { u = e; d = o } return { year: u, dayOfYear: d } } function Lt(e, t, n) { var i = gt(e.year(), t, n), r = Math.floor((e.dayOfYear() - i - 1) / 7) + 1, a, s; if (r < 1) { s = e.year() - 1; a = r + St(s, t, n) } else if (r > St(e.year(), t, n)) { a = r - St(e.year(), t, n); s = e.year() + 1 } else { s = e.year(); a = r } return { week: a, year: s } } function St(e, t, n) { var i = gt(e, t, n), r = gt(e + 1, t, n); return (ft(e) - i + r) / 7 } function kt(e) { return Lt(e, this._week.dow, this._week.doy).week } j("w", ["ww", 2], "wo", "week"), j("W", ["WW", 2], "Wo", "isoWeek"), te("week", "w"), te("isoWeek", "W"), ae("week", 5), ae("isoWeek", 5), Re("w", Me), Re("ww", Me, pe), Re("W", Me), Re("WW", Me, pe), je(["w", "ww", "W", "WW"], function (e, t, n, i) { t[i.substr(0, 1)] = de(e) }); var bt = { dow: 0, doy: 6 }; function wt() { return this._week.dow } function Dt() { return this._week.doy } function Tt(e) { var t = this.localeData().week(this); return e == null ? t : this.add((e - t) * 7, "d") } function Et(e) { var t = Lt(this, 1, 4).week; return e == null ? t : this.add((e - t) * 7, "d") } function Yt(e, t) { if (typeof e !== "string") return e; if (!isNaN(e)) return parseInt(e, 10); e = t.weekdaysParse(e); if (typeof e === "number") return e; return null } function Pt(e, t) { if (typeof e === "string") return t.weekdaysParse(e) % 7 || 7; return isNaN(e) ? null : e } function Ct(e, t) { return e.slice(t, 7).concat(e.slice(0, t)) } j("d", 0, "do", "day"), j("dd", 0, 0, function (e) { return this.localeData().weekdaysMin(this, e) }), j("ddd", 0, 0, function (e) { return this.localeData().weekdaysShort(this, e) }), j("dddd", 0, 0, function (e) { return this.localeData().weekdays(this, e) }), j("e", 0, 0, "weekday"), j("E", 0, 0, "isoWeekday"), te("day", "d"), te("weekday", "e"), te("isoWeekday", "E"), ae("day", 11), ae("weekday", 11), ae("isoWeekday", 11), Re("d", Me), Re("e", Me), Re("E", Me), Re("dd", function (e, t) { return t.weekdaysMinRegex(e) }), Re("ddd", function (e, t) { return t.weekdaysShortRegex(e) }), Re("dddd", function (e, t) { return t.weekdaysRegex(e) }), je(["dd", "ddd", "dddd"], function (e, t, n, i) { var r = n._locale.weekdaysParse(e, i, n._strict); if (r != null) t.d = r; else m(n).invalidWeekday = e }), je(["d", "e", "E"], function (e, t, n, i) { t[i] = de(e) }); var At = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), Rt = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), xt = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), Ot = Ce, It = Ce, Wt = Ce; function Ht(e, t) { var n = s(this._weekdays) ? this._weekdays : this._weekdays[e && e !== true && this._weekdays.isFormat.test(t) ? "format" : "standalone"]; return e === true ? Ct(n, this._week.dow) : e ? n[e.day()] : n } function jt(e) { return e === true ? Ct(this._weekdaysShort, this._week.dow) : e ? this._weekdaysShort[e.day()] : this._weekdaysShort } function Ft(e) { return e === true ? Ct(this._weekdaysMin, this._week.dow) : e ? this._weekdaysMin[e.day()] : this._weekdaysMin } function Bt(e, t, n) { var i, r, a, s = e.toLocaleLowerCase(); if (!this._weekdaysParse) { this._weekdaysParse = []; this._shortWeekdaysParse = []; this._minWeekdaysParse = []; for (i = 0; i < 7; ++i) { a = f([2e3, 1]).day(i); this._minWeekdaysParse[i] = this.weekdaysMin(a, "").toLocaleLowerCase(); this._shortWeekdaysParse[i] = this.weekdaysShort(a, "").toLocaleLowerCase(); this._weekdaysParse[i] = this.weekdays(a, "").toLocaleLowerCase() } } if (n) if (t === "dddd") { r = Xe.call(this._weekdaysParse, s); return r !== -1 ? r : null } else if (t === "ddd") { r = Xe.call(this._shortWeekdaysParse, s); return r !== -1 ? r : null } else { r = Xe.call(this._minWeekdaysParse, s); return r !== -1 ? r : null } else if (t === "dddd") { r = Xe.call(this._weekdaysParse, s); if (r !== -1) return r; r = Xe.call(this._shortWeekdaysParse, s); if (r !== -1) return r; r = Xe.call(this._minWeekdaysParse, s); return r !== -1 ? r : null } else if (t === "ddd") { r = Xe.call(this._shortWeekdaysParse, s); if (r !== -1) return r; r = Xe.call(this._weekdaysParse, s); if (r !== -1) return r; r = Xe.call(this._minWeekdaysParse, s); return r !== -1 ? r : null } else { r = Xe.call(this._minWeekdaysParse, s); if (r !== -1) return r; r = Xe.call(this._weekdaysParse, s); if (r !== -1) return r; r = Xe.call(this._shortWeekdaysParse, s); return r !== -1 ? r : null } } function Nt(e, t, n) { var i, r, a; if (this._weekdaysParseExact) return Bt.call(this, e, t, n); if (!this._weekdaysParse) { this._weekdaysParse = []; this._minWeekdaysParse = []; this._shortWeekdaysParse = []; this._fullWeekdaysParse = [] } for (i = 0; i < 7; i++) { r = f([2e3, 1]).day(i); if (n && !this._fullWeekdaysParse[i]) { this._fullWeekdaysParse[i] = new RegExp("^" + this.weekdays(r, "").replace(".", "\\.?") + "$", "i"); this._shortWeekdaysParse[i] = new RegExp("^" + this.weekdaysShort(r, "").replace(".", "\\.?") + "$", "i"); this._minWeekdaysParse[i] = new RegExp("^" + this.weekdaysMin(r, "").replace(".", "\\.?") + "$", "i") } if (!this._weekdaysParse[i]) { a = "^" + this.weekdays(r, "") + "|^" + this.weekdaysShort(r, "") + "|^" + this.weekdaysMin(r, ""); this._weekdaysParse[i] = new RegExp(a.replace(".", ""), "i") } if (n && t === "dddd" && this._fullWeekdaysParse[i].test(e)) return i; else if (n && t === "ddd" && this._shortWeekdaysParse[i].test(e)) return i; else if (n && t === "dd" && this._minWeekdaysParse[i].test(e)) return i; else if (!n && this._weekdaysParse[i].test(e)) return i } } function zt(e) { if (!this.isValid()) return e != null ? this : NaN; var t = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); if (e != null) { e = Yt(e, this.localeData()); return this.add(e - t, "d") } else return t } function Ut(e) { if (!this.isValid()) return e != null ? this : NaN; var t = (this.day() + 7 - this.localeData()._week.dow) % 7; return e == null ? t : this.add(e - t, "d") } function Vt(e) { if (!this.isValid()) return e != null ? this : NaN; if (e != null) { var t = Pt(e, this.localeData()); return this.day(this.day() % 7 ? t : t - 7) } else return this.day() || 7 } function Gt(e) { if (this._weekdaysParseExact) { if (!u(this, "_weekdaysRegex")) Kt.call(this); if (e) return this._weekdaysStrictRegex; else return this._weekdaysRegex } else { if (!u(this, "_weekdaysRegex")) this._weekdaysRegex = Ot; return this._weekdaysStrictRegex && e ? this._weekdaysStrictRegex : this._weekdaysRegex } } function Jt(e) { if (this._weekdaysParseExact) { if (!u(this, "_weekdaysRegex")) Kt.call(this); if (e) return this._weekdaysShortStrictRegex; else return this._weekdaysShortRegex } else { if (!u(this, "_weekdaysShortRegex")) this._weekdaysShortRegex = It; return this._weekdaysShortStrictRegex && e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex } } function qt(e) { if (this._weekdaysParseExact) { if (!u(this, "_weekdaysRegex")) Kt.call(this); if (e) return this._weekdaysMinStrictRegex; else return this._weekdaysMinRegex } else { if (!u(this, "_weekdaysMinRegex")) this._weekdaysMinRegex = Wt; return this._weekdaysMinStrictRegex && e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex } } function Kt() { function e(e, t) { return t.length - e.length } var t = [], n = [], i = [], r = [], a, s, o, u, d; for (a = 0; a < 7; a++) { s = f([2e3, 1]).day(a); o = Ie(this.weekdaysMin(s, "")); u = Ie(this.weekdaysShort(s, "")); d = Ie(this.weekdays(s, "")); t.push(o); n.push(u); i.push(d); r.push(o); r.push(u); r.push(d) } t.sort(e); n.sort(e); i.sort(e); r.sort(e); this._weekdaysRegex = new RegExp("^(" + r.join("|") + ")", "i"); this._weekdaysShortRegex = this._weekdaysRegex; this._weekdaysMinRegex = this._weekdaysRegex; this._weekdaysStrictRegex = new RegExp("^(" + i.join("|") + ")", "i"); this._weekdaysShortStrictRegex = new RegExp("^(" + n.join("|") + ")", "i"); this._weekdaysMinStrictRegex = new RegExp("^(" + t.join("|") + ")", "i") } function Xt() { return this.hours() % 12 || 12 } function Zt() { return this.hours() || 24 } function $t(e, t) { j(e, 0, 0, function () { return this.localeData().meridiem(this.hours(), this.minutes(), t) }) } function Qt(e, t) { return t._meridiemParse } function en(e) { return (e + "").toLowerCase().charAt(0) === "p" } j("H", ["HH", 2], 0, "hour"), j("h", ["hh", 2], 0, Xt), j("k", ["kk", 2], 0, Zt), j("hmm", 0, 0, function () { return "" + Xt.apply(this) + x(this.minutes(), 2) }), j("hmmss", 0, 0, function () { return "" + Xt.apply(this) + x(this.minutes(), 2) + x(this.seconds(), 2) }), j("Hmm", 0, 0, function () { return "" + this.hours() + x(this.minutes(), 2) }), j("Hmmss", 0, 0, function () { return "" + this.hours() + x(this.minutes(), 2) + x(this.seconds(), 2) }), $t("a", true), $t("A", false), te("hour", "h"), ae("hour", 13), Re("a", Qt), Re("A", Qt), Re("H", Me), Re("h", Me), Re("k", Me), Re("HH", Me, pe), Re("hh", Me, pe), Re("kk", Me, pe), Re("hmm", Le), Re("hmmss", Se), Re("Hmm", Le), Re("Hmmss", Se), He(["H", "HH"], Ue), He(["k", "kk"], function (e, t, n) { var i = de(e); t[Ue] = i === 24 ? 0 : i }), He(["a", "A"], function (e, t, n) { n._isPm = n._locale.isPM(e); n._meridiem = e }), He(["h", "hh"], function (e, t, n) { t[Ue] = de(e); m(n).bigHour = true }), He("hmm", function (e, t, n) { var i = e.length - 2; t[Ue] = de(e.substr(0, i)); t[Ve] = de(e.substr(i)); m(n).bigHour = true }), He("hmmss", function (e, t, n) { var i = e.length - 4, r = e.length - 2; t[Ue] = de(e.substr(0, i)); t[Ve] = de(e.substr(i, 2)); t[Ge] = de(e.substr(r)); m(n).bigHour = true }), He("Hmm", function (e, t, n) { var i = e.length - 2; t[Ue] = de(e.substr(0, i)); t[Ve] = de(e.substr(i)) }), He("Hmmss", function (e, t, n) { var i = e.length - 4, r = e.length - 2; t[Ue] = de(e.substr(0, i)); t[Ve] = de(e.substr(i, 2)); t[Ge] = de(e.substr(r)) }); var tn, nn = le("Hours", true); function rn(e, t, n) { if (e > 11) return n ? "pm" : "PM"; else return n ? "am" : "AM" } var an = { calendar: A, longDateFormat: U, invalidDate: G, ordinal: q, dayOfMonthOrdinalParse: K, relativeTime: Z, months: Qe, monthsShort: et, week: bt, weekdays: At, weekdaysMin: xt, weekdaysShort: Rt, meridiemParse: /[ap]\.?m?\.?/i }, sn = {}, on = {}, un; function dn(e, t) { var n, i = Math.min(e.length, t.length); for (n = 0; n < i; n += 1)if (e[n] !== t[n]) return n; return i } function ln(e) { return e ? e.toLowerCase().replace("_", "-") : e } function hn(e) { var t = 0, n, i, r, a; while (t < e.length) { a = ln(e[t]).split("-"); n = a.length; i = ln(e[t + 1]); i = i ? i.split("-") : null; while (n > 0) { r = cn(a.slice(0, n).join("-")); if (r) return r; if (i && i.length >= n && dn(a, i) >= n - 1) break; n-- } t++ } return un } function cn(t) { var e = null, n; if (sn[t] === undefined && typeof us !== "undefined" && us && us.exports) try { e = un._abbr; n = ds; ls(284)("./" + t); _n(e) } catch (e) { sn[t] = null } return sn[t] } function _n(e, t) { var n; if (e) { if (a(t)) n = pn(e); else n = fn(e, t); if (n) un = n; else if (typeof console !== "undefined" && console.warn) console.warn("Locale " + e + " not found. Did you forget to load it?") } return un._abbr } function fn(e, t) { if (t !== null) { var n, i = an; t.abbr = e; if (sn[e] != null) { T("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change " + "an existing locale. moment.defineLocale(localeName, " + "config) should only be used for creating a new locale " + "See http://momentjs.com/guides/#/warnings/define-locale/ for more info."); i = sn[e]._config } else if (t.parentLocale != null) if (sn[t.parentLocale] != null) i = sn[t.parentLocale]._config; else { n = cn(t.parentLocale); if (n != null) i = n._config; else { if (!on[t.parentLocale]) on[t.parentLocale] = []; on[t.parentLocale].push({ name: e, config: t }); return null } } sn[e] = new C(P(i, t)); if (on[e]) on[e].forEach(function (e) { fn(e.name, e.config) }); _n(e); return sn[e] } else { delete sn[e]; return null } } function mn(e, t) { if (t != null) { var n, i, r = an; if (sn[e] != null && sn[e].parentLocale != null) sn[e].set(P(sn[e]._config, t)); else { i = cn(e); if (i != null) r = i._config; t = P(r, t); if (i == null) t.abbr = e; n = new C(t); n.parentLocale = sn[e]; sn[e] = n } _n(e) } else if (sn[e] != null) if (sn[e].parentLocale != null) { sn[e] = sn[e].parentLocale; if (e === _n()) _n(e) } else if (sn[e] != null) delete sn[e]; return sn[e] } function pn(e) { var t; if (e && e._locale && e._locale._abbr) e = e._locale._abbr; if (!e) return un; if (!s(e)) { t = cn(e); if (t) return t; e = [e] } return hn(e) } function yn() { return D(sn) } function vn(e) { var t, n = e._a; if (n && m(e).overflow === -2) { t = n[Ne] < 0 || n[Ne] > 11 ? Ne : n[ze] < 1 || n[ze] > $e(n[Be], n[Ne]) ? ze : n[Ue] < 0 || n[Ue] > 24 || n[Ue] === 24 && (n[Ve] !== 0 || n[Ge] !== 0 || n[Je] !== 0) ? Ue : n[Ve] < 0 || n[Ve] > 59 ? Ve : n[Ge] < 0 || n[Ge] > 59 ? Ge : n[Je] < 0 || n[Je] > 999 ? Je : -1; if (m(e)._overflowDayOfYear && (t < Be || t > ze)) t = ze; if (m(e)._overflowWeeks && t === -1) t = qe; if (m(e)._overflowWeekday && t === -1) t = Ke; m(e).overflow = t } return e } var gn = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, Mn = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, Ln = /Z|[+-]\d\d(?::?\d\d)?/, Sn = [["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, false], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, false], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, false], ["YYYYDDD", /\d{7}/], ["YYYYMM", /\d{6}/, false], ["YYYY", /\d{4}/, false]], kn = [["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/]], bn = /^\/?Date\((-?\d+)/i, wn = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, Dn = { UT: 0, GMT: 0, EDT: -4 * 60, EST: -5 * 60, CDT: -5 * 60, CST: -6 * 60, MDT: -6 * 60, MST: -7 * 60, PDT: -7 * 60, PST: -8 * 60 }; function Tn(e) { var t, n, i = e._i, r = gn.exec(i) || Mn.exec(i), a, s, o, u; if (r) { m(e).iso = true; for (t = 0, n = Sn.length; t < n; t++)if (Sn[t][1].exec(r[1])) { s = Sn[t][0]; a = Sn[t][2] !== false; break } if (s == null) { e._isValid = false; return } if (r[3]) { for (t = 0, n = kn.length; t < n; t++)if (kn[t][1].exec(r[3])) { o = (r[2] || " ") + kn[t][0]; break } if (o == null) { e._isValid = false; return } } if (!a && o != null) { e._isValid = false; return } if (r[4]) if (Ln.exec(r[4])) u = "Z"; else { e._isValid = false; return } e._f = s + (o || "") + (u || ""); jn(e) } else e._isValid = false } function En(e, t, n, i, r, a) { var s = [Yn(e), et.indexOf(t), parseInt(n, 10), parseInt(i, 10), parseInt(r, 10)]; if (a) s.push(parseInt(a, 10)); return s } function Yn(e) { var t = parseInt(e, 10); if (t <= 49) return 2e3 + t; else if (t <= 999) return 1900 + t; return t } function Pn(e) { return e.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "") } function Cn(e, t, n) { if (e) { var i = Rt.indexOf(e), r = new Date(t[0], t[1], t[2]).getDay(); if (i !== r) { m(n).weekdayMismatch = true; n._isValid = false; return false } } return true } function An(e, t, n) { if (e) return Dn[e]; else if (t) return 0; else { var i = parseInt(n, 10), r = i % 100, a = (i - r) / 100; return a * 60 + r } } function Rn(e) { var t = wn.exec(Pn(e._i)), n; if (t) { n = En(t[4], t[3], t[2], t[5], t[6], t[7]); if (!Cn(t[1], n, e)) return; e._a = n; e._tzm = An(t[8], t[9], t[10]); e._d = vt.apply(null, e._a); e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm); m(e).rfc2822 = true } else e._isValid = false } function xn(e) { var t = bn.exec(e._i); if (t !== null) { e._d = new Date(+t[1]); return } Tn(e); if (e._isValid === false) delete e._isValid; else return; Rn(e); if (e._isValid === false) delete e._isValid; else return; if (e._strict) e._isValid = false; else l.createFromInputFallback(e) } function On(e, t, n) { if (e != null) return e; if (t != null) return t; return n } function In(e) { var t = new Date(l.now()); if (e._useUTC) return [t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()]; return [t.getFullYear(), t.getMonth(), t.getDate()] } function Wn(e) { var t, n, i = [], r, a, s; if (e._d) return; r = In(e); if (e._w && e._a[ze] == null && e._a[Ne] == null) Hn(e); if (e._dayOfYear != null) { s = On(e._a[Be], r[Be]); if (e._dayOfYear > ft(s) || e._dayOfYear === 0) m(e)._overflowDayOfYear = true; n = vt(s, 0, e._dayOfYear); e._a[Ne] = n.getUTCMonth(); e._a[ze] = n.getUTCDate() } for (t = 0; t < 3 && e._a[t] == null; ++t)e._a[t] = i[t] = r[t]; for (; t < 7; t++)e._a[t] = i[t] = e._a[t] == null ? t === 2 ? 1 : 0 : e._a[t]; if (e._a[Ue] === 24 && e._a[Ve] === 0 && e._a[Ge] === 0 && e._a[Je] === 0) { e._nextDay = true; e._a[Ue] = 0 } e._d = (e._useUTC ? vt : yt).apply(null, i); a = e._useUTC ? e._d.getUTCDay() : e._d.getDay(); if (e._tzm != null) e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm); if (e._nextDay) e._a[Ue] = 24; if (e._w && typeof e._w.d !== "undefined" && e._w.d !== a) m(e).weekdayMismatch = true } function Hn(e) { var t, n, i, r, a, s, o, u, d; t = e._w; if (t.GG != null || t.W != null || t.E != null) { a = 1; s = 4; n = On(t.GG, e._a[Be], Lt(Jn(), 1, 4).year); i = On(t.W, 1); r = On(t.E, 1); if (r < 1 || r > 7) u = true } else { a = e._locale._week.dow; s = e._locale._week.doy; d = Lt(Jn(), a, s); n = On(t.gg, e._a[Be], d.year); i = On(t.w, d.week); if (t.d != null) { r = t.d; if (r < 0 || r > 6) u = true } else if (t.e != null) { r = t.e + a; if (t.e < 0 || t.e > 6) u = true } else r = a } if (i < 1 || i > St(n, a, s)) m(e)._overflowWeeks = true; else if (u != null) m(e)._overflowWeekday = true; else { o = Mt(n, i, r, a, s); e._a[Be] = o.year; e._dayOfYear = o.dayOfYear } } function jn(e) { if (e._f === l.ISO_8601) { Tn(e); return } if (e._f === l.RFC_2822) { Rn(e); return } e._a = []; m(e).empty = true; var t = "" + e._i, n, i, r, a, s, o = t.length, u = 0, d; r = z(e._f, e._locale).match(O) || []; for (n = 0; n < r.length; n++) { a = r[n]; i = (t.match(xe(a, e)) || [])[0]; if (i) { s = t.substr(0, t.indexOf(i)); if (s.length > 0) m(e).unusedInput.push(s); t = t.slice(t.indexOf(i) + i.length); u += i.length } if (H[a]) { if (i) m(e).empty = false; else m(e).unusedTokens.push(a); Fe(a, i, e) } else if (e._strict && !i) m(e).unusedTokens.push(a) } m(e).charsLeftOver = o - u; if (t.length > 0) m(e).unusedInput.push(t); if (e._a[Ue] <= 12 && m(e).bigHour === true && e._a[Ue] > 0) m(e).bigHour = undefined; m(e).parsedDateParts = e._a.slice(0); m(e).meridiem = e._meridiem; e._a[Ue] = Fn(e._locale, e._a[Ue], e._meridiem); d = m(e).era; if (d !== null) e._a[Be] = e._locale.erasConvertYear(d, e._a[Be]); Wn(e); vn(e) } function Fn(e, t, n) { var i; if (n == null) return t; if (e.meridiemHour != null) return e.meridiemHour(t, n); else if (e.isPM != null) { i = e.isPM(n); if (i && t < 12) t += 12; if (!i && t === 12) t = 0; return t } else return t } function Bn(e) { var t, n, i, r, a, s, o = false; if (e._f.length === 0) { m(e).invalidFormat = true; e._d = new Date(NaN); return } for (r = 0; r < e._f.length; r++) { a = 0; s = false; t = M({}, e); if (e._useUTC != null) t._useUTC = e._useUTC; t._f = e._f[r]; jn(t); if (p(t)) s = true; a += m(t).charsLeftOver; a += m(t).unusedTokens.length * 10; m(t).score = a; if (!o) { if (i == null || a < i || s) { i = a; n = t; if (s) o = true } } else if (a < i) { i = a; n = t } } _(e, n || t) } function Nn(e) { if (e._d) return; var t = ie(e._i), n = t.day === undefined ? t.date : t.day; e._a = i([t.year, t.month, n, t.hour, t.minute, t.second, t.millisecond], function (e) { return e && parseInt(e, 10) }); Wn(e) } function zn(e) { var t = new L(vn(Un(e))); if (t._nextDay) { t.add(1, "d"); t._nextDay = undefined } return t } function Un(e) { var t = e._i, n = e._f; e._locale = e._locale || pn(e._l); if (t === null || n === undefined && t === "") return y({ nullInput: true }); if (typeof t === "string") e._i = t = e._locale.preparse(t); if (S(t)) return new L(vn(t)); else if (c(t)) e._d = t; else if (s(n)) Bn(e); else if (n) jn(e); else Vn(e); if (!p(e)) e._d = null; return e } function Vn(e) { var t = e._i; if (a(t)) e._d = new Date(l.now()); else if (c(t)) e._d = new Date(t.valueOf()); else if (typeof t === "string") xn(e); else if (s(t)) { e._a = i(t.slice(0), function (e) { return parseInt(e, 10) }); Wn(e) } else if (o(t)) Nn(e); else if (h(t)) e._d = new Date(t); else l.createFromInputFallback(e) } function Gn(e, t, n, i, r) { var a = {}; if (t === true || t === false) { i = t; t = undefined } if (n === true || n === false) { i = n; n = undefined } if (o(e) && d(e) || s(e) && e.length === 0) e = undefined; a._isAMomentObject = true; a._useUTC = a._isUTC = r; a._l = n; a._i = e; a._f = t; a._strict = i; return zn(a) } function Jn(e, t, n, i) { return Gn(e, t, n, i, false) } l.createFromInputFallback = b("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), " + "which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are " + "discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function (e) { e._d = new Date(e._i + (e._useUTC ? " UTC" : "")) }), l.ISO_8601 = function () { }, l.RFC_2822 = function () { }; var qn = b("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function () { var e = Jn.apply(null, arguments); if (this.isValid() && e.isValid()) return e < this ? this : e; else return y() }), Kn = b("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function () { var e = Jn.apply(null, arguments); if (this.isValid() && e.isValid()) return e > this ? this : e; else return y() }); function Xn(e, t) { var n, i; if (t.length === 1 && s(t[0])) t = t[0]; if (!t.length) return Jn(); n = t[0]; for (i = 1; i < t.length; ++i)if (!t[i].isValid() || t[i][e](n)) n = t[i]; return n } function Zn() { var e = [].slice.call(arguments, 0); return Xn("isBefore", e) } function $n() { var e = [].slice.call(arguments, 0); return Xn("isAfter", e) } var Qn = function () { return Date.now ? Date.now() : +new Date }, ei = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; function ti(e) { var t, n = false, i; for (t in e) if (u(e, t) && !(Xe.call(ei, t) !== -1 && (e[t] == null || !isNaN(e[t])))) return false; for (i = 0; i < ei.length; ++i)if (e[ei[i]]) { if (n) return false; if (parseFloat(e[ei[i]]) !== de(e[ei[i]])) n = true } return true } function ni() { return this._isValid } function ii() { return Di(NaN) } function ri(e) { var t = ie(e), n = t.year || 0, i = t.quarter || 0, r = t.month || 0, a = t.week || t.isoWeek || 0, s = t.day || 0, o = t.hour || 0, u = t.minute || 0, d = t.second || 0, l = t.millisecond || 0; this._isValid = ti(t); this._milliseconds = +l + d * 1e3 + u * 6e4 + o * 1e3 * 60 * 60; this._days = +s + a * 7; this._months = +r + i * 3 + n * 12; this._data = {}; this._locale = pn(); this._bubble() } function ai(e) { return e instanceof ri } function si(e) { if (e < 0) return Math.round(-1 * e) * -1; else return Math.round(e) } function oi(e, t, n) { var i = Math.min(e.length, t.length), r = Math.abs(e.length - t.length), a = 0, s; for (s = 0; s < i; s++)if (n && e[s] !== t[s] || !n && de(e[s]) !== de(t[s])) a++; return a + r } function ui(e, n) { j(e, 0, 0, function () { var e = this.utcOffset(), t = "+"; if (e < 0) { e = -e; t = "-" } return t + x(~~(e / 60), 2) + n + x(~~e % 60, 2) }) } ui("Z", ":"), ui("ZZ", ""), Re("Z", Ye), Re("ZZ", Ye), He(["Z", "ZZ"], function (e, t, n) { n._useUTC = true; n._tzm = li(Ye, e) }); var di = /([\+\-]|\d\d)/gi; function li(e, t) { var n = (t || "").match(e), i, r, a; if (n === null) return null; i = n[n.length - 1] || []; r = (i + "").match(di) || ["-", 0, 0]; a = +(r[1] * 60) + de(r[2]); return a === 0 ? 0 : r[0] === "+" ? a : -a } function hi(e, t) { var n, i; if (t._isUTC) { n = t.clone(); i = (S(e) || c(e) ? e.valueOf() : Jn(e).valueOf()) - n.valueOf(); n._d.setTime(n._d.valueOf() + i); l.updateOffset(n, false); return n } else return Jn(e).local() } function ci(e) { return -Math.round(e._d.getTimezoneOffset()) } function _i(e, t, n) { var i = this._offset || 0, r; if (!this.isValid()) return e != null ? this : NaN; if (e != null) { if (typeof e === "string") { e = li(Ye, e); if (e === null) return this } else if (Math.abs(e) < 16 && !n) e = e * 60; if (!this._isUTC && t) r = ci(this); this._offset = e; this._isUTC = true; if (r != null) this.add(r, "m"); if (i !== e) if (!t || this._changeInProgress) Ci(this, Di(e - i, "m"), 1, false); else if (!this._changeInProgress) { this._changeInProgress = true; l.updateOffset(this, true); this._changeInProgress = null } return this } else return this._isUTC ? i : ci(this) } function fi(e, t) { if (e != null) { if (typeof e !== "string") e = -e; this.utcOffset(e, t); return this } else return -this.utcOffset() } function mi(e) { return this.utcOffset(0, e) } function pi(e) { if (this._isUTC) { this.utcOffset(0, e); this._isUTC = false; if (e) this.subtract(ci(this), "m") } return this } function yi() { if (this._tzm != null) this.utcOffset(this._tzm, false, true); else if (typeof this._i === "string") { var e = li(Ee, this._i); if (e != null) this.utcOffset(e); else this.utcOffset(0, true) } return this } function vi(e) { if (!this.isValid()) return false; e = e ? Jn(e).utcOffset() : 0; return (this.utcOffset() - e) % 60 === 0 } function gi() { return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() } function Mi() { if (!a(this._isDSTShifted)) return this._isDSTShifted; var e = {}, t; M(e, this); e = Un(e); if (e._a) { t = e._isUTC ? f(e._a) : Jn(e._a); this._isDSTShifted = this.isValid() && oi(e._a, t.toArray()) > 0 } else this._isDSTShifted = false; return this._isDSTShifted } function Li() { return this.isValid() ? !this._isUTC : false } function Si() { return this.isValid() ? this._isUTC : false } function ki() { return this.isValid() ? this._isUTC && this._offset === 0 : false } l.updateOffset = function () { }; var bi = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, wi = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; function Di(e, t) { var n = e, i = null, r, a, s; if (ai(e)) n = { ms: e._milliseconds, d: e._days, M: e._months }; else if (h(e) || !isNaN(+e)) { n = {}; if (t) n[t] = +e; else n.milliseconds = +e } else if (i = bi.exec(e)) { r = i[1] === "-" ? -1 : 1; n = { y: 0, d: de(i[ze]) * r, h: de(i[Ue]) * r, m: de(i[Ve]) * r, s: de(i[Ge]) * r, ms: de(si(i[Je] * 1e3)) * r } } else if (i = wi.exec(e)) { r = i[1] === "-" ? -1 : 1; n = { y: Ti(i[2], r), M: Ti(i[3], r), w: Ti(i[4], r), d: Ti(i[5], r), h: Ti(i[6], r), m: Ti(i[7], r), s: Ti(i[8], r) } } else if (n == null) n = {}; else if (typeof n === "object" && ("from" in n || "to" in n)) { s = Yi(Jn(n.from), Jn(n.to)); n = {}; n.ms = s.milliseconds; n.M = s.months } a = new ri(n); if (ai(e) && u(e, "_locale")) a._locale = e._locale; if (ai(e) && u(e, "_isValid")) a._isValid = e._isValid; return a } function Ti(e, t) { var n = e && parseFloat(e.replace(",", ".")); return (isNaN(n) ? 0 : n) * t } function Ei(e, t) { var n = {}; n.months = t.month() - e.month() + (t.year() - e.year()) * 12; if (e.clone().add(n.months, "M").isAfter(t)) --n.months; n.milliseconds = +t - +e.clone().add(n.months, "M"); return n } function Yi(e, t) { var n; if (!(e.isValid() && t.isValid())) return { milliseconds: 0, months: 0 }; t = hi(t, e); if (e.isBefore(t)) n = Ei(e, t); else { n = Ei(t, e); n.milliseconds = -n.milliseconds; n.months = -n.months } return n } function Pi(r, a) { return function (e, t) { var n, i; if (t !== null && !isNaN(+t)) { T(a, "moment()." + a + "(period, number) is deprecated. Please use moment()." + a + "(number, period). " + "See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."); i = e; e = t; t = i } n = Di(e, t); Ci(this, n, r); return this } } function Ci(e, t, n, i) { var r = t._milliseconds, a = si(t._days), s = si(t._months); if (!e.isValid()) return; i = i == null ? true : i; if (s) ut(e, he(e, "Month") + s * n); if (a) ce(e, "Date", he(e, "Date") + a * n); if (r) e._d.setTime(e._d.valueOf() + r * n); if (i) l.updateOffset(e, a || s) } Di.fn = ri.prototype, Di.invalid = ii; var Ai = Pi(1, "add"), Ri = Pi(-1, "subtract"); function xi(e) { return typeof e === "string" || e instanceof String } function Oi(e) { return S(e) || c(e) || xi(e) || h(e) || Wi(e) || Ii(e) || e === null || e === undefined } function Ii(e) { var t = o(e) && !d(e), n = false, i = ["years", "year", "y", "months", "month", "M", "days", "day", "d", "dates", "date", "D", "hours", "hour", "h", "minutes", "minute", "m", "seconds", "second", "s", "milliseconds", "millisecond", "ms"], r, a; for (r = 0; r < i.length; r += 1) { a = i[r]; n = n || u(e, a) } return t && n } function Wi(t) { var e = s(t), n = false; if (e) n = t.filter(function (e) { return !h(e) && xi(t) }).length === 0; return e && n } function Hi(e) { var t = o(e) && !d(e), n = false, i = ["sameDay", "nextDay", "lastDay", "nextWeek", "lastWeek", "sameElse"], r, a; for (r = 0; r < i.length; r += 1) { a = i[r]; n = n || u(e, a) } return t && n } function ji(e, t) { var n = e.diff(t, "days", true); return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse" } function Fi(e, t) { if (arguments.length === 1) if (!arguments[0]) { e = undefined; t = undefined } else if (Oi(arguments[0])) { e = arguments[0]; t = undefined } else if (Hi(arguments[0])) { t = arguments[0]; e = undefined } var n = e || Jn(), i = hi(n, this).startOf("day"), r = l.calendarFormat(this, i) || "sameElse", a = t && (E(t[r]) ? t[r].call(this, n) : t[r]); return this.format(a || this.localeData().calendar(r, this, Jn(n))) } function Bi() { return new L(this) } function Ni(e, t) { var n = S(e) ? e : Jn(e); if (!(this.isValid() && n.isValid())) return false; t = ne(t) || "millisecond"; if (t === "millisecond") return this.valueOf() > n.valueOf(); else return n.valueOf() < this.clone().startOf(t).valueOf() } function zi(e, t) { var n = S(e) ? e : Jn(e); if (!(this.isValid() && n.isValid())) return false; t = ne(t) || "millisecond"; if (t === "millisecond") return this.valueOf() < n.valueOf(); else return this.clone().endOf(t).valueOf() < n.valueOf() } function Ui(e, t, n, i) { var r = S(e) ? e : Jn(e), a = S(t) ? t : Jn(t); if (!(this.isValid() && r.isValid() && a.isValid())) return false; i = i || "()"; return (i[0] === "(" ? this.isAfter(r, n) : !this.isBefore(r, n)) && (i[1] === ")" ? this.isBefore(a, n) : !this.isAfter(a, n)) } function Vi(e, t) { var n = S(e) ? e : Jn(e), i; if (!(this.isValid() && n.isValid())) return false; t = ne(t) || "millisecond"; if (t === "millisecond") return this.valueOf() === n.valueOf(); else { i = n.valueOf(); return this.clone().startOf(t).valueOf() <= i && i <= this.clone().endOf(t).valueOf() } } function Gi(e, t) { return this.isSame(e, t) || this.isAfter(e, t) } function Ji(e, t) { return this.isSame(e, t) || this.isBefore(e, t) } function qi(e, t, n) { var i, r, a; if (!this.isValid()) return NaN; i = hi(e, this); if (!i.isValid()) return NaN; r = (i.utcOffset() - this.utcOffset()) * 6e4; t = ne(t); switch (t) { case "year": a = Ki(this, i) / 12; break; case "month": a = Ki(this, i); break; case "quarter": a = Ki(this, i) / 3; break; case "second": a = (this - i) / 1e3; break; case "minute": a = (this - i) / 6e4; break; case "hour": a = (this - i) / 36e5; break; case "day": a = (this - i - r) / 864e5; break; case "week": a = (this - i - r) / 6048e5; break; default: a = this - i }return n ? a : ue(a) } function Ki(e, t) { if (e.date() < t.date()) return -Ki(t, e); var n = (t.year() - e.year()) * 12 + (t.month() - e.month()), i = e.clone().add(n, "months"), r, a; if (t - i < 0) { r = e.clone().add(n - 1, "months"); a = (t - i) / (i - r) } else { r = e.clone().add(n + 1, "months"); a = (t - i) / (r - i) } return -(n + a) || 0 } function Xi() { return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") } function Zi(e) { if (!this.isValid()) return null; var t = e !== true, n = t ? this.clone().utc() : this; if (n.year() < 0 || n.year() > 9999) return N(n, t ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"); if (E(Date.prototype.toISOString)) if (t) return this.toDate().toISOString(); else return new Date(this.valueOf() + this.utcOffset() * 60 * 1e3).toISOString().replace("Z", N(n, "Z")); return N(n, t ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ") } function $i() { if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)"; var e = "moment", t = "", n, i, r, a; if (!this.isLocal()) { e = this.utcOffset() === 0 ? "moment.utc" : "moment.parseZone"; t = "Z" } n = "[" + e + '("]'; i = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY"; r = "-MM-DD[T]HH:mm:ss.SSS"; a = t + '[")]'; return this.format(n + i + r + a) } function Qi(e) { if (!e) e = this.isUtc() ? l.defaultFormatUtc : l.defaultFormat; var t = N(this, e); return this.localeData().postformat(t) } function er(e, t) { if (this.isValid() && (S(e) && e.isValid() || Jn(e).isValid())) return Di({ to: this, from: e }).locale(this.locale()).humanize(!t); else return this.localeData().invalidDate() } function tr(e) { return this.from(Jn(), e) } function nr(e, t) { if (this.isValid() && (S(e) && e.isValid() || Jn(e).isValid())) return Di({ from: this, to: e }).locale(this.locale()).humanize(!t); else return this.localeData().invalidDate() } function ir(e) { return this.to(Jn(), e) } function rr(e) { var t; if (e === undefined) return this._locale._abbr; else { t = pn(e); if (t != null) this._locale = t; return this } } l.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", l.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; var ar = b("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function (e) { if (e === undefined) return this.localeData(); else return this.locale(e) }); function sr() { return this._locale } var or = 1e3, ur = 60 * or, dr = 60 * ur, lr = (365 * 400 + 97) * 24 * dr; function hr(e, t) { return (e % t + t) % t } function cr(e, t, n) { if (e < 100 && e >= 0) return new Date(e + 400, t, n) - lr; else return new Date(e, t, n).valueOf() } function _r(e, t, n) { if (e < 100 && e >= 0) return Date.UTC(e + 400, t, n) - lr; else return Date.UTC(e, t, n) } function fr(e) { var t, n; e = ne(e); if (e === undefined || e === "millisecond" || !this.isValid()) return this; n = this._isUTC ? _r : cr; switch (e) { case "year": t = n(this.year(), 0, 1); break; case "quarter": t = n(this.year(), this.month() - this.month() % 3, 1); break; case "month": t = n(this.year(), this.month(), 1); break; case "week": t = n(this.year(), this.month(), this.date() - this.weekday()); break; case "isoWeek": t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); break; case "day": case "date": t = n(this.year(), this.month(), this.date()); break; case "hour": t = this._d.valueOf(); t -= hr(t + (this._isUTC ? 0 : this.utcOffset() * ur), dr); break; case "minute": t = this._d.valueOf(); t -= hr(t, ur); break; case "second": t = this._d.valueOf(); t -= hr(t, or); break }this._d.setTime(t); l.updateOffset(this, true); return this } function mr(e) { var t, n; e = ne(e); if (e === undefined || e === "millisecond" || !this.isValid()) return this; n = this._isUTC ? _r : cr; switch (e) { case "year": t = n(this.year() + 1, 0, 1) - 1; break; case "quarter": t = n(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; break; case "month": t = n(this.year(), this.month() + 1, 1) - 1; break; case "week": t = n(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; break; case "isoWeek": t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; break; case "day": case "date": t = n(this.year(), this.month(), this.date() + 1) - 1; break; case "hour": t = this._d.valueOf(); t += dr - hr(t + (this._isUTC ? 0 : this.utcOffset() * ur), dr) - 1; break; case "minute": t = this._d.valueOf(); t += ur - hr(t, ur) - 1; break; case "second": t = this._d.valueOf(); t += or - hr(t, or) - 1; break }this._d.setTime(t); l.updateOffset(this, true); return this } function pr() { return this._d.valueOf() - (this._offset || 0) * 6e4 } function yr() { return Math.floor(this.valueOf() / 1e3) } function vr() { return new Date(this.valueOf()) } function gr() { var e = this; return [e.year(), e.month(), e.date(), e.hour(), e.minute(), e.second(), e.millisecond()] } function Mr() { var e = this; return { years: e.year(), months: e.month(), date: e.date(), hours: e.hours(), minutes: e.minutes(), seconds: e.seconds(), milliseconds: e.milliseconds() } } function Lr() { return this.isValid() ? this.toISOString() : null } function Sr() { return p(this) } function kr() { return _({}, m(this)) } function br() { return m(this).overflow } function wr() { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict } } function Dr(e, t) { var n, i, r, a = this._eras || pn("en")._eras; for (n = 0, i = a.length; n < i; ++n) { switch (typeof a[n].since) { case "string": r = l(a[n].since).startOf("day"); a[n].since = r.valueOf(); break }switch (typeof a[n].until) { case "undefined": a[n].until = +Infinity; break; case "string": r = l(a[n].until).startOf("day").valueOf(); a[n].until = r.valueOf(); break } } return a } function Tr(e, t, n) { var i, r, a = this.eras(), s, o, u; e = e.toUpperCase(); for (i = 0, r = a.length; i < r; ++i) { s = a[i].name.toUpperCase(); o = a[i].abbr.toUpperCase(); u = a[i].narrow.toUpperCase(); if (n) switch (t) { case "N": case "NN": case "NNN": if (o === e) return a[i]; break; case "NNNN": if (s === e) return a[i]; break; case "NNNNN": if (u === e) return a[i]; break } else if ([s, o, u].indexOf(e) >= 0) return a[i] } } function Er(e, t) { var n = e.since <= e.until ? +1 : -1; if (t === undefined) return l(e.since).year(); else return l(e.since).year() + (t - e.offset) * n } function Yr() { var e, t, n, i = this.localeData().eras(); for (e = 0, t = i.length; e < t; ++e) { n = this.clone().startOf("day").valueOf(); if (i[e].since <= n && n <= i[e].until) return i[e].name; if (i[e].until <= n && n <= i[e].since) return i[e].name } return "" } function Pr() { var e, t, n, i = this.localeData().eras(); for (e = 0, t = i.length; e < t; ++e) { n = this.clone().startOf("day").valueOf(); if (i[e].since <= n && n <= i[e].until) return i[e].narrow; if (i[e].until <= n && n <= i[e].since) return i[e].narrow } return "" } function Cr() { var e, t, n, i = this.localeData().eras(); for (e = 0, t = i.length; e < t; ++e) { n = this.clone().startOf("day").valueOf(); if (i[e].since <= n && n <= i[e].until) return i[e].abbr; if (i[e].until <= n && n <= i[e].since) return i[e].abbr } return "" } function Ar() { var e, t, n, i, r = this.localeData().eras(); for (e = 0, t = r.length; e < t; ++e) { n = r[e].since <= r[e].until ? +1 : -1; i = this.clone().startOf("day").valueOf(); if (r[e].since <= i && i <= r[e].until || r[e].until <= i && i <= r[e].since) return (this.year() - l(r[e].since).year()) * n + r[e].offset } return this.year() } function Rr(e) { if (!u(this, "_erasNameRegex")) Fr.call(this); return e ? this._erasNameRegex : this._erasRegex } function xr(e) { if (!u(this, "_erasAbbrRegex")) Fr.call(this); return e ? this._erasAbbrRegex : this._erasRegex } function Or(e) { if (!u(this, "_erasNarrowRegex")) Fr.call(this); return e ? this._erasNarrowRegex : this._erasRegex } function Ir(e, t) { return t.erasAbbrRegex(e) } function Wr(e, t) { return t.erasNameRegex(e) } function Hr(e, t) { return t.erasNarrowRegex(e) } function jr(e, t) { return t._eraYearOrdinalRegex || De } function Fr() { var e = [], t = [], n = [], i = [], r, a, s = this.eras(); for (r = 0, a = s.length; r < a; ++r) { t.push(Ie(s[r].name)); e.push(Ie(s[r].abbr)); n.push(Ie(s[r].narrow)); i.push(Ie(s[r].name)); i.push(Ie(s[r].abbr)); i.push(Ie(s[r].narrow)) } this._erasRegex = new RegExp("^(" + i.join("|") + ")", "i"); this._erasNameRegex = new RegExp("^(" + t.join("|") + ")", "i"); this._erasAbbrRegex = new RegExp("^(" + e.join("|") + ")", "i"); this._erasNarrowRegex = new RegExp("^(" + n.join("|") + ")", "i") } function Br(e, t) { j(0, [e, e.length], 0, t) } function Nr(e) { return qr.call(this, e, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy) } function zr(e) { return qr.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4) } function Ur() { return St(this.year(), 1, 4) } function Vr() { return St(this.isoWeekYear(), 1, 4) } function Gr() { var e = this.localeData()._week; return St(this.year(), e.dow, e.doy) } function Jr() { var e = this.localeData()._week; return St(this.weekYear(), e.dow, e.doy) } function qr(e, t, n, i, r) { var a; if (e == null) return Lt(this, i, r).year; else { a = St(e, i, r); if (t > a) t = a; return Kr.call(this, e, t, n, i, r) } } function Kr(e, t, n, i, r) { var a = Mt(e, t, n, i, r), s = vt(a.year, 0, a.dayOfYear); this.year(s.getUTCFullYear()); this.month(s.getUTCMonth()); this.date(s.getUTCDate()); return this } function Xr(e) { return e == null ? Math.ceil((this.month() + 1) / 3) : this.month((e - 1) * 3 + this.month() % 3) } j("N", 0, 0, "eraAbbr"), j("NN", 0, 0, "eraAbbr"), j("NNN", 0, 0, "eraAbbr"), j("NNNN", 0, 0, "eraName"), j("NNNNN", 0, 0, "eraNarrow"), j("y", ["y", 1], "yo", "eraYear"), j("y", ["yy", 2], 0, "eraYear"), j("y", ["yyy", 3], 0, "eraYear"), j("y", ["yyyy", 4], 0, "eraYear"), Re("N", Ir), Re("NN", Ir), Re("NNN", Ir), Re("NNNN", Wr), Re("NNNNN", Hr), He(["N", "NN", "NNN", "NNNN", "NNNNN"], function (e, t, n, i) { var r = n._locale.erasParse(e, i, n._strict); if (r) m(n).era = r; else m(n).invalidEra = e }), Re("y", De), Re("yy", De), Re("yyy", De), Re("yyyy", De), Re("yo", jr), He(["y", "yy", "yyy", "yyyy"], Be), He(["yo"], function (e, t, n, i) { var r; if (n._locale._eraYearOrdinalRegex) r = e.match(n._locale._eraYearOrdinalRegex); if (n._locale.eraYearOrdinalParse) t[Be] = n._locale.eraYearOrdinalParse(e, r); else t[Be] = parseInt(e, 10) }), j(0, ["gg", 2], 0, function () { return this.weekYear() % 100 }), j(0, ["GG", 2], 0, function () { return this.isoWeekYear() % 100 }), Br("gggg", "weekYear"), Br("ggggg", "weekYear"), Br("GGGG", "isoWeekYear"), Br("GGGGG", "isoWeekYear"), te("weekYear", "gg"), te("isoWeekYear", "GG"), ae("weekYear", 1), ae("isoWeekYear", 1), Re("G", Te), Re("g", Te), Re("GG", Me, pe), Re("gg", Me, pe), Re("GGGG", be, ve), Re("gggg", be, ve), Re("GGGGG", we, ge), Re("ggggg", we, ge), je(["gggg", "ggggg", "GGGG", "GGGGG"], function (e, t, n, i) { t[i.substr(0, 2)] = de(e) }), je(["gg", "GG"], function (e, t, n, i) { t[i] = l.parseTwoDigitYear(e) }), j("Q", 0, "Qo", "quarter"), te("quarter", "Q"), ae("quarter", 7), Re("Q", me), He("Q", function (e, t) { t[Ne] = (de(e) - 1) * 3 }), j("D", ["DD", 2], "Do", "date"), te("date", "D"), ae("date", 9), Re("D", Me), Re("DD", Me, pe), Re("Do", function (e, t) { return e ? t._dayOfMonthOrdinalParse || t._ordinalParse : t._dayOfMonthOrdinalParseLenient }), He(["D", "DD"], ze), He("Do", function (e, t) { t[ze] = de(e.match(Me)[0]) }); var Zr = le("Date", true); function $r(e) { var t = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; return e == null ? t : this.add(e - t, "d") } j("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), te("dayOfYear", "DDD"), ae("dayOfYear", 4), Re("DDD", ke), Re("DDDD", ye), He(["DDD", "DDDD"], function (e, t, n) { n._dayOfYear = de(e) }), j("m", ["mm", 2], 0, "minute"), te("minute", "m"), ae("minute", 14), Re("m", Me), Re("mm", Me, pe), He(["m", "mm"], Ve); var Qr = le("Minutes", false); j("s", ["ss", 2], 0, "second"), te("second", "s"), ae("second", 15), Re("s", Me), Re("ss", Me, pe), He(["s", "ss"], Ge); var ea = le("Seconds", false), ta, na; for (j("S", 0, 0, function () { return ~~(this.millisecond() / 100) }), j(0, ["SS", 2], 0, function () { return ~~(this.millisecond() / 10) }), j(0, ["SSS", 3], 0, "millisecond"), j(0, ["SSSS", 4], 0, function () { return this.millisecond() * 10 }), j(0, ["SSSSS", 5], 0, function () { return this.millisecond() * 100 }), j(0, ["SSSSSS", 6], 0, function () { return this.millisecond() * 1e3 }), j(0, ["SSSSSSS", 7], 0, function () { return this.millisecond() * 1e4 }), j(0, ["SSSSSSSS", 8], 0, function () { return this.millisecond() * 1e5 }), j(0, ["SSSSSSSSS", 9], 0, function () { return this.millisecond() * 1e6 }), te("millisecond", "ms"), ae("millisecond", 16), Re("S", ke, me), Re("SS", ke, pe), Re("SSS", ke, ye), ta = "SSSS"; ta.length <= 9; ta += "S")Re(ta, De); function ia(e, t) { t[Je] = de(("0." + e) * 1e3) } for (ta = "S"; ta.length <= 9; ta += "S")He(ta, ia); function ra() { return this._isUTC ? "UTC" : "" } function aa() { return this._isUTC ? "Coordinated Universal Time" : "" } na = le("Milliseconds", false), j("z", 0, 0, "zoneAbbr"), j("zz", 0, 0, "zoneName"); var sa = L.prototype; if (sa.add = Ai, sa.calendar = Fi, sa.clone = Bi, sa.diff = qi, sa.endOf = mr, sa.format = Qi, sa.from = er, sa.fromNow = tr, sa.to = nr, sa.toNow = ir, sa.get = _e, sa.invalidAt = br, sa.isAfter = Ni, sa.isBefore = zi, sa.isBetween = Ui, sa.isSame = Vi, sa.isSameOrAfter = Gi, sa.isSameOrBefore = Ji, sa.isValid = Sr, sa.lang = ar, sa.locale = rr, sa.localeData = sr, sa.max = Kn, sa.min = qn, sa.parsingFlags = kr, sa.set = fe, sa.startOf = fr, sa.subtract = Ri, sa.toArray = gr, sa.toObject = Mr, sa.toDate = vr, sa.toISOString = Zi, sa.inspect = $i, typeof Symbol !== "undefined" && Symbol.for != null) sa[Symbol.for("nodejs.util.inspect.custom")] = function () { return "Moment<" + this.format() + ">" }; function oa(e) { return Jn(e * 1e3) } function ua() { return Jn.apply(null, arguments).parseZone() } function da(e) { return e } sa.toJSON = Lr, sa.toString = Xi, sa.unix = yr, sa.valueOf = pr, sa.creationData = wr, sa.eraName = Yr, sa.eraNarrow = Pr, sa.eraAbbr = Cr, sa.eraYear = Ar, sa.year = mt, sa.isLeapYear = pt, sa.weekYear = Nr, sa.isoWeekYear = zr, sa.quarter = sa.quarters = Xr, sa.month = dt, sa.daysInMonth = lt, sa.week = sa.weeks = Tt, sa.isoWeek = sa.isoWeeks = Et, sa.weeksInYear = Gr, sa.weeksInWeekYear = Jr, sa.isoWeeksInYear = Ur, sa.isoWeeksInISOWeekYear = Vr, sa.date = Zr, sa.day = sa.days = zt, sa.weekday = Ut, sa.isoWeekday = Vt, sa.dayOfYear = $r, sa.hour = sa.hours = nn, sa.minute = sa.minutes = Qr, sa.second = sa.seconds = ea, sa.millisecond = sa.milliseconds = na, sa.utcOffset = _i, sa.utc = mi, sa.local = pi, sa.parseZone = yi, sa.hasAlignedHourOffset = vi, sa.isDST = gi, sa.isLocal = Li, sa.isUtcOffset = Si, sa.isUtc = ki, sa.isUTC = ki, sa.zoneAbbr = ra, sa.zoneName = aa, sa.dates = b("dates accessor is deprecated. Use date instead.", Zr), sa.months = b("months accessor is deprecated. Use month instead", dt), sa.years = b("years accessor is deprecated. Use year instead", mt), sa.zone = b("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", fi), sa.isDSTShifted = b("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", Mi); var la = C.prototype; function ha(e, t, n, i) { var r = pn(), a = f().set(i, t); return r[n](a, e) } function ca(e, t, n) { if (h(e)) { t = e; e = undefined } e = e || ""; if (t != null) return ha(e, t, n, "month"); var i, r = []; for (i = 0; i < 12; i++)r[i] = ha(e, i, n, "month"); return r } function _a(e, t, n, i) { if (typeof e === "boolean") { if (h(t)) { n = t; t = undefined } t = t || "" } else { t = e; n = t; e = false; if (h(t)) { n = t; t = undefined } t = t || "" } var r = pn(), a = e ? r._week.dow : 0, s, o = []; if (n != null) return ha(t, (n + a) % 7, i, "day"); for (s = 0; s < 7; s++)o[s] = ha(t, (s + a) % 7, i, "day"); return o } function fa(e, t) { return ca(e, t, "months") } function ma(e, t) { return ca(e, t, "monthsShort") } function pa(e, t, n) { return _a(e, t, n, "weekdays") } function ya(e, t, n) { return _a(e, t, n, "weekdaysShort") } function va(e, t, n) { return _a(e, t, n, "weekdaysMin") } la.calendar = R, la.longDateFormat = V, la.invalidDate = J, la.ordinal = X, la.preparse = da, la.postformat = da, la.relativeTime = $, la.pastFuture = Q, la.set = Y, la.eras = Dr, la.erasParse = Tr, la.erasConvertYear = Er, la.erasAbbrRegex = xr, la.erasNameRegex = Rr, la.erasNarrowRegex = Or, la.months = rt, la.monthsShort = at, la.monthsParse = ot, la.monthsRegex = ct, la.monthsShortRegex = ht, la.week = kt, la.firstDayOfYear = Dt, la.firstDayOfWeek = wt, la.weekdays = Ht, la.weekdaysMin = Ft, la.weekdaysShort = jt, la.weekdaysParse = Nt, la.weekdaysRegex = Gt, la.weekdaysShortRegex = Jt, la.weekdaysMinRegex = qt, la.isPM = en, la.meridiem = rn, _n("en", { eras: [{ since: "0001-01-01", until: +Infinity, offset: 1, name: "Anno Domini", narrow: "AD", abbr: "AD" }, { since: "0000-12-31", until: -Infinity, offset: 1, name: "Before Christ", narrow: "BC", abbr: "BC" }], dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function (e) { var t = e % 10, n = de(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n } }), l.lang = b("moment.lang is deprecated. Use moment.locale instead.", _n), l.langData = b("moment.langData is deprecated. Use moment.localeData instead.", pn); var ga = Math.abs; function Ma() { var e = this._data; this._milliseconds = ga(this._milliseconds); this._days = ga(this._days); this._months = ga(this._months); e.milliseconds = ga(e.milliseconds); e.seconds = ga(e.seconds); e.minutes = ga(e.minutes); e.hours = ga(e.hours); e.months = ga(e.months); e.years = ga(e.years); return this } function La(e, t, n, i) { var r = Di(t, n); e._milliseconds += i * r._milliseconds; e._days += i * r._days; e._months += i * r._months; return e._bubble() } function Sa(e, t) { return La(this, e, t, 1) } function ka(e, t) { return La(this, e, t, -1) } function ba(e) { if (e < 0) return Math.floor(e); else return Math.ceil(e) } function wa() { var e = this._milliseconds, t = this._days, n = this._months, i = this._data, r, a, s, o, u; if (!(e >= 0 && t >= 0 && n >= 0 || e <= 0 && t <= 0 && n <= 0)) { e += ba(Ta(n) + t) * 864e5; t = 0; n = 0 } i.milliseconds = e % 1e3; r = ue(e / 1e3); i.seconds = r % 60; a = ue(r / 60); i.minutes = a % 60; s = ue(a / 60); i.hours = s % 24; t += ue(s / 24); u = ue(Da(t)); n += u; t -= ba(Ta(u)); o = ue(n / 12); n %= 12; i.days = t; i.months = n; i.years = o; return this } function Da(e) { return e * 4800 / 146097 } function Ta(e) { return e * 146097 / 4800 } function Ea(e) { if (!this.isValid()) return NaN; var t, n, i = this._milliseconds; e = ne(e); if (e === "month" || e === "quarter" || e === "year") { t = this._days + i / 864e5; n = this._months + Da(t); switch (e) { case "month": return n; case "quarter": return n / 3; case "year": return n / 12 } } else { t = this._days + Math.round(Ta(this._months)); switch (e) { case "week": return t / 7 + i / 6048e5; case "day": return t + i / 864e5; case "hour": return t * 24 + i / 36e5; case "minute": return t * 1440 + i / 6e4; case "second": return t * 86400 + i / 1e3; case "millisecond": return Math.floor(t * 864e5) + i; default: throw new Error("Unknown unit " + e) } } } function Ya() { if (!this.isValid()) return NaN; return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + de(this._months / 12) * 31536e6 } function Pa(e) { return function () { return this.as(e) } } var Ca = Pa("ms"), Aa = Pa("s"), Ra = Pa("m"), xa = Pa("h"), Oa = Pa("d"), Ia = Pa("w"), Wa = Pa("M"), Ha = Pa("Q"), ja = Pa("y"); function Fa() { return Di(this) } function Ba(e) { e = ne(e); return this.isValid() ? this[e + "s"]() : NaN } function Na(e) { return function () { return this.isValid() ? this._data[e] : NaN } } var za = Na("milliseconds"), Ua = Na("seconds"), Va = Na("minutes"), Ga = Na("hours"), Ja = Na("days"), qa = Na("months"), Ka = Na("years"); function Xa() { return ue(this.days() / 7) } var Za = Math.round, $a = { ss: 44, s: 45, m: 45, h: 22, d: 26, w: null, M: 11 }; function Qa(e, t, n, i, r) { return r.relativeTime(t || 1, !!n, e, i) } function es(e, t, n, i) { var r = Di(e).abs(), a = Za(r.as("s")), s = Za(r.as("m")), o = Za(r.as("h")), u = Za(r.as("d")), d = Za(r.as("M")), l = Za(r.as("w")), h = Za(r.as("y")), c = a <= n.ss && ["s", a] || a < n.s && ["ss", a] || s <= 1 && ["m"] || s < n.m && ["mm", s] || o <= 1 && ["h"] || o < n.h && ["hh", o] || u <= 1 && ["d"] || u < n.d && ["dd", u]; if (n.w != null) c = c || l <= 1 && ["w"] || l < n.w && ["ww", l]; c = c || d <= 1 && ["M"] || d < n.M && ["MM", d] || h <= 1 && ["y"] || ["yy", h]; c[2] = t; c[3] = +e > 0; c[4] = i; return Qa.apply(null, c) } function ts(e) { if (e === undefined) return Za; if (typeof e === "function") { Za = e; return true } return false } function ns(e, t) { if ($a[e] === undefined) return false; if (t === undefined) return $a[e]; $a[e] = t; if (e === "s") $a.ss = t - 1; return true } function is(e, t) { if (!this.isValid()) return this.localeData().invalidDate(); var n = false, i = $a, r, a; if (typeof e === "object") { t = e; e = false } if (typeof e === "boolean") n = e; if (typeof t === "object") { i = Object.assign({}, $a, t); if (t.s != null && t.ss == null) i.ss = t.s - 1 } r = this.localeData(); a = es(this, !n, i, r); if (n) a = r.pastFuture(+this, a); return r.postformat(a) } var rs = Math.abs; function as(e) { return (e > 0) - (e < 0) || +e } function ss() { if (!this.isValid()) return this.localeData().invalidDate(); var e = rs(this._milliseconds) / 1e3, t = rs(this._days), n = rs(this._months), i, r, a, s, o = this.asSeconds(), u, d, l, h; if (!o) return "P0D"; i = ue(e / 60); r = ue(i / 60); e %= 60; i %= 60; a = ue(n / 12); n %= 12; s = e ? e.toFixed(3).replace(/\.?0+$/, "") : ""; u = o < 0 ? "-" : ""; d = as(this._months) !== as(o) ? "-" : ""; l = as(this._days) !== as(o) ? "-" : ""; h = as(this._milliseconds) !== as(o) ? "-" : ""; return u + "P" + (a ? d + a + "Y" : "") + (n ? d + n + "M" : "") + (t ? l + t + "D" : "") + (r || i || e ? "T" : "") + (r ? h + r + "H" : "") + (i ? h + i + "M" : "") + (e ? h + s + "S" : "") } var os = ri.prototype; return os.isValid = ni, os.abs = Ma, os.add = Sa, os.subtract = ka, os.as = Ea, os.asMilliseconds = Ca, os.asSeconds = Aa, os.asMinutes = Ra, os.asHours = xa, os.asDays = Oa, os.asWeeks = Ia, os.asMonths = Wa, os.asQuarters = Ha, os.asYears = ja, os.valueOf = Ya, os._bubble = wa, os.clone = Fa, os.get = Ba, os.milliseconds = za, os.seconds = Ua, os.minutes = Va, os.hours = Ga, os.days = Ja, os.weeks = Xa, os.months = qa, os.years = Ka, os.humanize = is, os.toISOString = ss, os.toString = ss, os.toJSON = ss, os.locale = rr, os.localeData = sr, os.toIsoString = b("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", ss), os.lang = ar, j("X", 0, 0, "unix"), j("x", 0, 0, "valueOf"), Re("x", Te), Re("X", Pe), He("X", function (e, t, n) { n._d = new Date(parseFloat(e) * 1e3) }), He("x", function (e, t, n) { n._d = new Date(de(e)) }),
                    //! moment.js
                    l.version = "2.29.1", e(Jn), l.fn = sa, l.min = Zn, l.max = $n, l.now = Qn, l.utc = f, l.unix = oa, l.months = fa, l.isDate = c, l.locale = _n, l.invalid = y, l.duration = Di, l.isMoment = S, l.weekdays = pa, l.parseZone = ua, l.localeData = pn, l.isDuration = ai, l.monthsShort = ma, l.weekdaysMin = va, l.defineLocale = fn, l.updateLocale = mn, l.locales = yn, l.weekdaysShort = ya, l.normalizeUnits = ne, l.relativeTimeRounding = ts, l.relativeTimeThreshold = ns, l.calendarFormat = ji, l.prototype = sa, l.HTML5_FMT = { DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", DATE: "YYYY-MM-DD", TIME: "HH:mm", TIME_SECONDS: "HH:mm:ss", TIME_MS: "HH:mm:ss.SSS", WEEK: "GGGG-[W]WW", MONTH: "YYYY-MM" }, l
            }()
        }.call(this, ls(283)(e))
    }, function (e, t, n) { "use strict"; t.__esModule = !0, t.default = function (e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } }, function (e, t, n) { "use strict"; t.__esModule = !0; var i, r = n(259), a = (i = r) && i.__esModule ? i : { default: i }; function s(e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), (0, a.default)(e, i.key, i) } } t.default = function (e, t, n) { return t && s(e.prototype, t), n && s(e, n), e } }, function (e, t) { e = e.exports = { version: "2.6.12" }; "number" == typeof __e && (__e = e) }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = a(n(1)), r = a(n(2)), n = a(n(10)); function a(e) { return e && e.__esModule ? e : { default: e } } (0, r.default)(s, null, [{ key: "e", value: function (e, t) { t = "[" + (e = !e || s.FORCE_GLOBAL_TAG ? s.GLOBAL_TAG : e) + "] > " + t; s.ENABLE_CALLBACK && s.emitter.emit("log", "error", t), s.ENABLE_ERROR && (console.error ? console.error(t) : console.warn ? console.warn(t) : console.log(t)) } }, { key: "i", value: function (e, t) { t = "[" + (e = !e || s.FORCE_GLOBAL_TAG ? s.GLOBAL_TAG : e) + "] > " + t; s.ENABLE_CALLBACK && s.emitter.emit("log", "info", t), s.ENABLE_INFO && (console.info ? console.info(t) : console.log(t)) } }, { key: "w", value: function (e, t) { t = "[" + (e = !e || s.FORCE_GLOBAL_TAG ? s.GLOBAL_TAG : e) + "] > " + t; s.ENABLE_CALLBACK && s.emitter.emit("log", "warn", t), s.ENABLE_WARN && (console.warn ? console.warn(t) : console.log(t)) } }, { key: "d", value: function (e, t) { t = "[" + (e = !e || s.FORCE_GLOBAL_TAG ? s.GLOBAL_TAG : e) + "] > " + t; s.ENABLE_CALLBACK && s.emitter.emit("log", "debug", t), s.ENABLE_DEBUG && (console.debug ? console.debug(t) : console.log(t)) } }, { key: "v", value: function (e, t) { t = "[" + (e = !e || s.FORCE_GLOBAL_TAG ? s.GLOBAL_TAG : e) + "] > " + t; s.ENABLE_CALLBACK && s.emitter.emit("log", "verbose", t), s.ENABLE_VERBOSE && console.log(t) } }]), r = s; function s() { (0, i.default)(this, s) } r.GLOBAL_TAG = "flv.js", r.FORCE_GLOBAL_TAG = !1, r.ENABLE_ERROR = !0, r.ENABLE_INFO = !0, r.ENABLE_WARN = !0, r.ENABLE_DEBUG = !0, r.ENABLE_VERBOSE = !0, r.ENABLE_CALLBACK = !1, r.emitter = new n.default, t.default = r }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.NotImplementedException = t.InvalidArgumentException = t.IllegalStateException = t.RuntimeException = void 0; var i = u(n(21)), r = u(n(25)), a = u(n(26)), s = u(n(1)), o = u(n(2)); function u(e) { return e && e.__esModule ? e : { default: e } } n = t.RuntimeException = ((0, o.default)(d, [{ key: "toString", value: function () { return this.name + ": " + this.message } }, { key: "name", get: function () { return "RuntimeException" } }, { key: "message", get: function () { return this._message } }]), d); function d(e) { (0, s.default)(this, d), this._message = e } t.IllegalStateException = ((0, a.default)(l, n), (0, o.default)(l, [{ key: "name", get: function () { return "IllegalStateException" } }]), l); function l(e) { return (0, s.default)(this, l), (0, r.default)(this, (l.__proto__ || (0, i.default)(l)).call(this, e)) } t.InvalidArgumentException = ((0, a.default)(h, n), (0, o.default)(h, [{ key: "name", get: function () { return "InvalidArgumentException" } }]), h); function h(e) { return (0, s.default)(this, h), (0, r.default)(this, (h.__proto__ || (0, i.default)(h)).call(this, e)) } t.NotImplementedException = ((0, a.default)(c, n), (0, o.default)(c, [{ key: "name", get: function () { return "NotImplementedException" } }]), c); function c(e) { return (0, s.default)(this, c), (0, r.default)(this, (c.__proto__ || (0, i.default)(c)).call(this, e)) } }, function (e, t) { e = e.exports = "undefined" != typeof window && window.Math == Math ? window : "undefined" != typeof self && self.Math == Math ? self : Function("return this")(); "number" == typeof __g && (__g = e) }, function (e, t, n) { var i = n(49)("wks"), r = n(35), a = n(6).Symbol, s = "function" == typeof a; (e.exports = function (e) { return i[e] || (i[e] = s && a[e] || (s ? a : r)("Symbol." + e)) }).store = i }, function (e, t, n) { function m(e, t, n) { var i, r, a, s = e & m.F, o = e & m.G, u = e & m.S, d = e & m.P, l = e & m.B, h = e & m.W, c = o ? y : y[t] || (y[t] = {}), _ = c[L], f = o ? p : u ? p[t] : (p[t] || {})[L]; for (i in n = o ? t : n) (r = !s && f && void 0 !== f[i]) && M(c, i) || (a = (r ? f : n)[i], c[i] = o && "function" != typeof f[i] ? n[i] : l && r ? v(a, p) : h && f[i] == a ? function (i) { function e(e, t, n) { if (this instanceof i) { switch (arguments.length) { case 0: return new i; case 1: return new i(e); case 2: return new i(e, t) }return new i(e, t, n) } return i.apply(this, arguments) } return e[L] = i[L], e }(a) : d && "function" == typeof a ? v(Function.call, a) : a, d && ((c.virtual || (c.virtual = {}))[i] = a, e & m.R && _ && !_[i] && g(_, i, a))) } var p = n(6), y = n(3), v = n(22), g = n(17), M = n(18), L = "prototype"; m.F = 1, m.G = 2, m.S = 4, m.P = 8, m.B = 16, m.W = 32, m.U = 64, m.R = 128, e.exports = m }, function (e, t, n) { "use strict"; t.__esModule = !0; var i = s(n(270)), r = s(n(272)), a = "function" == typeof r.default && "symbol" == typeof i.default ? function (e) { return typeof e } : function (e) { return e && "function" == typeof r.default && e.constructor === r.default && e !== r.default.prototype ? "symbol" : typeof e }; function s(e) { return e && e.__esModule ? e : { default: e } } t.default = "function" == typeof r.default && "symbol" === a(i.default) ? function (e) { return void 0 === e ? "undefined" : a(e) } : function (e) { return e && "function" == typeof r.default && e.constructor === r.default && e !== r.default.prototype ? "symbol" : void 0 === e ? "undefined" : a(e) } }, function (e, t, n) { "use strict"; var i = "object" == typeof Reflect ? Reflect : null, u = i && "function" == typeof i.apply ? i.apply : function (e, t, n) { return Function.prototype.apply.call(e, t, n) }; var r = i && "function" == typeof i.ownKeys ? i.ownKeys : Object.getOwnPropertySymbols ? function (e) { return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e)) } : function (e) { return Object.getOwnPropertyNames(e) }, a = Number.isNaN || function (e) { return e != e }; function s() { s.init.call(this) } e.exports = s, e.exports.once = function (o, u) { return new Promise(function (e, t) { function n(e) { o.removeListener(u, i), t(e) } function i() { "function" == typeof o.removeListener && o.removeListener("error", n), e([].slice.call(arguments)) } var r, a, s; p(o, u, i, { once: !0 }), "error" !== u && (a = n, s = { once: !0 }, "function" == typeof (r = o).on && p(r, "error", a, s)) }) }, (s.EventEmitter = s).prototype._events = void 0, s.prototype._eventsCount = 0, s.prototype._maxListeners = void 0; var o = 10; function d(e) { if ("function" != typeof e) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof e) } function l(e) { return void 0 === e._maxListeners ? s.defaultMaxListeners : e._maxListeners } function h(e, t, n, i) { var r, a; return d(n), void 0 === (r = e._events) ? (r = e._events = Object.create(null), e._eventsCount = 0) : (void 0 !== r.newListener && (e.emit("newListener", t, n.listener || n), r = e._events), a = r[t]), void 0 === a ? (a = r[t] = n, ++e._eventsCount) : ("function" == typeof a ? a = r[t] = i ? [n, a] : [a, n] : i ? a.unshift(n) : a.push(n), 0 < (n = l(e)) && a.length > n && !a.warned && (a.warned = !0, (n = new Error("Possible EventEmitter memory leak detected. " + a.length + " " + String(t) + " listeners added. Use emitter.setMaxListeners() to increase limit")).name = "MaxListenersExceededWarning", n.emitter = e, n.type = t, n.count = a.length, n = n, console && console.warn && console.warn(n))), e } function c(e, t, n) { e = { fired: !1, wrapFn: void 0, target: e, type: t, listener: n }, t = function () { if (!this.fired) return this.target.removeListener(this.type, this.wrapFn), this.fired = !0, 0 === arguments.length ? this.listener.call(this.target) : this.listener.apply(this.target, arguments) }.bind(e); return t.listener = n, e.wrapFn = t } function _(e, t, n) { e = e._events; if (void 0 === e) return []; t = e[t]; return void 0 === t ? [] : "function" == typeof t ? n ? [t.listener || t] : [t] : n ? function (e) { for (var t = new Array(e.length), n = 0; n < t.length; ++n)t[n] = e[n].listener || e[n]; return t }(t) : m(t, t.length) } function f(e) { var t = this._events; if (void 0 !== t) { e = t[e]; if ("function" == typeof e) return 1; if (void 0 !== e) return e.length } return 0 } function m(e, t) { for (var n = new Array(t), i = 0; i < t; ++i)n[i] = e[i]; return n } function p(n, i, r, a) { if ("function" == typeof n.on) a.once ? n.once(i, r) : n.on(i, r); else { if ("function" != typeof n.addEventListener) throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof n); n.addEventListener(i, function e(t) { a.once && n.removeEventListener(i, e), r(t) }) } } Object.defineProperty(s, "defaultMaxListeners", { enumerable: !0, get: function () { return o }, set: function (e) { if ("number" != typeof e || e < 0 || a(e)) throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + e + "."); o = e } }), s.init = function () { void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0 }, s.prototype.setMaxListeners = function (e) { if ("number" != typeof e || e < 0 || a(e)) throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + e + "."); return this._maxListeners = e, this }, s.prototype.getMaxListeners = function () { return l(this) }, s.prototype.emit = function (e) { for (var t = [], n = 1; n < arguments.length; n++)t.push(arguments[n]); var i, r = "error" === e, a = this._events; if (void 0 !== a) r = r && void 0 === a.error; else if (!r) return !1; if (r) { if ((i = 0 < t.length ? t[0] : i) instanceof Error) throw i; r = new Error("Unhandled error." + (i ? " (" + i.message + ")" : "")); throw r.context = i, r } e = a[e]; if (void 0 === e) return !1; if ("function" == typeof e) u(e, this, t); else for (var s = e.length, o = m(e, s), n = 0; n < s; ++n)u(o[n], this, t); return !0 }, s.prototype.on = s.prototype.addListener = function (e, t) { return h(this, e, t, !1) }, s.prototype.prependListener = function (e, t) { return h(this, e, t, !0) }, s.prototype.once = function (e, t) { return d(t), this.on(e, c(this, e, t)), this }, s.prototype.prependOnceListener = function (e, t) { return d(t), this.prependListener(e, c(this, e, t)), this }, s.prototype.removeListener = function (e, t) { var n, i, r, a, s; if (d(t), void 0 === (i = this._events)) return this; if (void 0 === (n = i[e])) return this; if (n === t || n.listener === t) 0 == --this._eventsCount ? this._events = Object.create(null) : (delete i[e], i.removeListener && this.emit("removeListener", e, n.listener || t)); else if ("function" != typeof n) { for (r = -1, a = n.length - 1; 0 <= a; a--)if (n[a] === t || n[a].listener === t) { s = n[a].listener, r = a; break } if (r < 0) return this; 0 === r ? n.shift() : function (e, t) { for (; t + 1 < e.length; t++)e[t] = e[t + 1]; e.pop() }(n, r), 1 === n.length && (i[e] = n[0]), void 0 !== i.removeListener && this.emit("removeListener", e, s || t) } return this }, s.prototype.off = s.prototype.removeListener, s.prototype.removeAllListeners = function (e) { var t, n = this._events; if (void 0 === n) return this; if (void 0 === n.removeListener) return 0 === arguments.length ? (this._events = Object.create(null), this._eventsCount = 0) : void 0 !== n[e] && (0 == --this._eventsCount ? this._events = Object.create(null) : delete n[e]), this; if (0 === arguments.length) { for (var i, r = Object.keys(n), a = 0; a < r.length; ++a)"removeListener" !== (i = r[a]) && this.removeAllListeners(i); return this.removeAllListeners("removeListener"), this._events = Object.create(null), this._eventsCount = 0, this } if ("function" == typeof (t = n[e])) this.removeListener(e, t); else if (void 0 !== t) for (a = t.length - 1; 0 <= a; a--)this.removeListener(e, t[a]); return this }, s.prototype.listeners = function (e) { return _(this, e, !0) }, s.prototype.rawListeners = function (e) { return _(this, e, !1) }, s.listenerCount = function (e, t) { return "function" == typeof e.listenerCount ? e.listenerCount(t) : f.call(e, t) }, s.prototype.listenerCount = f, s.prototype.eventNames = function () { return 0 < this._eventsCount ? r(this._events) : [] } }, function (e, t, n) { e.exports = { default: n(236), __esModule: !0 } }, function (e, t, n) { var i = n(13), r = n(69), a = n(45), s = Object.defineProperty; t.f = n(14) ? Object.defineProperty : function (e, t, n) { if (i(e), t = a(t, !0), i(n), r) try { return s(e, t, n) } catch (e) { } if ("get" in n || "set" in n) throw TypeError("Accessors not supported!"); return "value" in n && (e[t] = n.value), e } }, function (e, t, n) { var i = n(16); e.exports = function (e) { if (!i(e)) throw TypeError(e + " is not an object!"); return e } }, function (e, t, n) { e.exports = !n(23)(function () { return 7 != Object.defineProperty({}, "a", { get: function () { return 7 } }).a }) }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.BaseLoader = t.LoaderErrors = t.LoaderStatus = void 0; var i = s(n(1)), r = s(n(2)), a = n(5); function s(e) { return e && e.__esModule ? e : { default: e } } var o = t.LoaderStatus = { kIdle: 0, kConnecting: 1, kBuffering: 2, kError: 3, kComplete: 4 }; t.LoaderErrors = { OK: "OK", EXCEPTION: "Exception", HTTP_STATUS_CODE_INVALID: "HttpStatusCodeInvalid", CONNECTING_TIMEOUT: "ConnectingTimeout", EARLY_EOF: "EarlyEof", UNRECOVERABLE_EARLY_EOF: "UnrecoverableEarlyEof" }, t.BaseLoader = ((0, r.default)(u, [{ key: "destroy", value: function () { this._status = o.kIdle, this._onContentLengthKnown = null, this._onURLRedirect = null, this._onDataArrival = null, this._onError = null, this._onComplete = null } }, { key: "isWorking", value: function () { return this._status === o.kConnecting || this._status === o.kBuffering } }, { key: "open", value: function (e, t) { throw new a.NotImplementedException("Unimplemented abstract function!") } }, { key: "abort", value: function () { throw new a.NotImplementedException("Unimplemented abstract function!") } }, { key: "type", get: function () { return this._type } }, { key: "status", get: function () { return this._status } }, { key: "needStashBuffer", get: function () { return this._needStash } }, { key: "onContentLengthKnown", get: function () { return this._onContentLengthKnown }, set: function (e) { this._onContentLengthKnown = e } }, { key: "onURLRedirect", get: function () { return this._onURLRedirect }, set: function (e) { this._onURLRedirect = e } }, { key: "onDataArrival", get: function () { return this._onDataArrival }, set: function (e) { this._onDataArrival = e } }, { key: "onError", get: function () { return this._onError }, set: function (e) { this._onError = e } }, { key: "onComplete", get: function () { return this._onComplete }, set: function (e) { this._onComplete = e } }]), u); function u(e) { (0, i.default)(this, u), this._type = e || "undefined", this._status = o.kIdle, this._needStash = !1, this._onContentLengthKnown = null, this._onURLRedirect = null, this._onDataArrival = null, this._onError = null, this._onComplete = null } }, function (e, t) { e.exports = function (e) { return "object" == typeof e ? null !== e : "function" == typeof e } }, function (e, t, n) { var i = n(12), r = n(28); e.exports = n(14) ? function (e, t, n) { return i.f(e, t, r(1, n)) } : function (e, t, n) { return e[t] = n, e } }, function (e, t) { var n = {}.hasOwnProperty; e.exports = function (e, t) { return n.call(e, t) } }, function (e, t, n) { var i = n(72), r = n(43); e.exports = function (e) { return i(r(e)) } }, function (e, t, n) { e.exports = { default: n(292), __esModule: !0 } }, function (e, t, n) { e.exports = { default: n(302), __esModule: !0 } }, function (e, t, n) { var a = n(34); e.exports = function (i, r, e) { if (a(i), void 0 === r) return i; switch (e) { case 1: return function (e) { return i.call(r, e) }; case 2: return function (e, t) { return i.call(r, e, t) }; case 3: return function (e, t, n) { return i.call(r, e, t, n) } }return function () { return i.apply(r, arguments) } } }, function (e, t) { e.exports = function (e) { try { return !!e() } catch (e) { return !0 } } }, function (e, t, n) { var i = n(43); e.exports = function (e) { return Object(i(e)) } }, function (e, t, n) { "use strict"; t.__esModule = !0; var i, r = n(9), a = (i = r) && i.__esModule ? i : { default: i }; t.default = function (e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" !== (void 0 === t ? "undefined" : (0, a.default)(t)) && "function" != typeof t ? e : t } }, function (e, t, n) { "use strict"; t.__esModule = !0; var i = s(n(38)), r = s(n(304)), a = s(n(9)); function s(e) { return e && e.__esModule ? e : { default: e } } t.default = function (e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + (void 0 === t ? "undefined" : (0, a.default)(t))); e.prototype = (0, r.default)(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (i.default ? (0, i.default)(e, t) : e.__proto__ = t) } }, function (e, t) { e.exports = !0 }, function (e, t) { e.exports = function (e, t) { return { enumerable: !(1 & e), configurable: !(2 & e), writable: !(4 & e), value: t } } }, function (e, t) { e.exports = {} }, function (e, t, n) { var i = n(71), r = n(50); e.exports = Object.keys || function (e) { return i(e, r) } }, function (e, t) { var n = {}.toString; e.exports = function (e) { return n.call(e).slice(8, -1) } }, function (e, t, n) { "use strict"; t.__esModule = !0; var a = i(n(21)), s = i(n(308)); function i(e) { return e && e.__esModule ? e : { default: e } } t.default = function e(t, n, i) { null === t && (t = Function.prototype); var r = (0, s.default)(t, n); if (void 0 !== r) { if ("value" in r) return r.value; r = r.get; return void 0 !== r ? r.call(i) : void 0 } t = (0, a.default)(t); if (null !== t) return e(t, n, i) } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i, r = n(20), a = (i = r) && i.__esModule ? i : { default: i }; var s = {}; !function () { var e, t = self.navigator.userAgent.toLowerCase(), n = /(edge)\/([\w.]+)/.exec(t) || /(opr)[\/]([\w.]+)/.exec(t) || /(chrome)[ \/]([\w.]+)/.exec(t) || /(iemobile)[\/]([\w.]+)/.exec(t) || /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(t) || /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(t) || /(webkit)[ \/]([\w.]+)/.exec(t) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(t) || /(msie) ([\w.]+)/.exec(t) || 0 <= t.indexOf("trident") && /(rv)(?::| )([\w.]+)/.exec(t) || t.indexOf("compatible") < 0 && /(firefox)[ \/]([\w.]+)/.exec(t) || [], i = /(ipad)/.exec(t) || /(ipod)/.exec(t) || /(windows phone)/.exec(t) || /(iphone)/.exec(t) || /(kindle)/.exec(t) || /(android)/.exec(t) || /(windows)/.exec(t) || /(mac)/.exec(t) || /(linux)/.exec(t) || /(cros)/.exec(t) || [], t = { browser: n[5] || n[3] || n[1] || "", version: n[2] || n[4] || "0", majorVersion: n[4] || n[2] || "0", platform: i[0] || "" }, n = {}; for (e in t.browser && (n[t.browser] = !0, i = t.majorVersion.split("."), n.version = { major: parseInt(t.majorVersion, 10), string: t.version }, 1 < i.length && (n.version.minor = parseInt(i[1], 10)), 2 < i.length && (n.version.build = parseInt(i[2], 10))), t.platform && (n[t.platform] = !0), (n.chrome || n.opr || n.safari) && (n.webkit = !0), (n.rv || n.iemobile) && (n.rv && delete n.rv, t.browser = "msie", n.msie = !0), n.edge && (delete n.edge, t.browser = "msedge", n.msedge = !0), n.opr && (t.browser = "opera", n.opera = !0), n.safari && n.android && (n[t.browser = "android"] = !0), n.name = t.browser, n.platform = t.platform, s) s.hasOwnProperty(e) && delete s[e]; (0, a.default)(s, n) }(), t.default = s }, function (e, t) { e.exports = function (e) { if ("function" != typeof e) throw TypeError(e + " is not a function!"); return e } }, function (e, t) { var n = 0, i = Math.random(); e.exports = function (e) { return "Symbol(".concat(void 0 === e ? "" : e, ")_", (++n + i).toString(36)) } }, function (e, t, n) { var i = n(12).f, r = n(18), a = n(7)("toStringTag"); e.exports = function (e, t, n) { e && !r(e = n ? e : e.prototype, a) && i(e, a, { configurable: !0, value: t }) } }, function (e, t) { t.f = {}.propertyIsEnumerable }, function (e, t, n) { e.exports = { default: n(295), __esModule: !0 } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); t.default = { ERROR: "error", LOADING_COMPLETE: "loading_complete", RECOVERED_EARLY_EOF: "recovered_early_eof", MEDIA_INFO: "media_info", METADATA_ARRIVED: "metadata_arrived", SCRIPTDATA_ARRIVED: "scriptdata_arrived", STATISTICS_INFO: "statistics_info", VIDEO_RESOLUTION_CHANGED: "video_resolution_changed", MEDIA_SOURCE_ENDED: "media_source_ended", MEDIA_SOURCE_CLOSE: "media_source_close", VIDEO_FROZEN: "video_decoded_frame_frozen", MS_BUFFER_FULL: "media_source_buffer_full", LOADED_META_DATA: "loaded_meta_data", MEDIA_SOURCE_ADD_ERROR: "media_source_add_error" } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); t.default = { IO_ERROR: "io_error", DEMUX_ERROR: "demux_error", INIT_SEGMENT: "init_segment", MEDIA_SEGMENT: "media_segment", LOADING_COMPLETE: "loading_complete", RECOVERED_EARLY_EOF: "recovered_early_eof", MEDIA_INFO: "media_info", METADATA_ARRIVED: "metadata_arrived", SCRIPTDATA_ARRIVED: "scriptdata_arrived", STATISTICS_INFO: "statistics_info", RECOMMEND_SEEKPOINT: "recommend_seekpoint", VIDEO_RESOLUTION_CHANGED: "video_resolution_changed", PARSEDDATA_ARRIVED: "parseddata_arrived" } }, function (e, t, n) { "use strict"; var i = n(237)(!0); n(68)(String, "String", function (e) { this._t = String(e), this._i = 0 }, function () { var e = this._t, t = this._i; return t >= e.length ? { value: void 0, done: !0 } : (t = i(e, t), this._i += t.length, { value: t, done: !1 }) }) }, function (e, t) { var n = Math.ceil, i = Math.floor; e.exports = function (e) { return isNaN(e = +e) ? 0 : (0 < e ? i : n)(e) } }, function (e, t) { e.exports = function (e) { if (null == e) throw TypeError("Can't call method on  " + e); return e } }, function (e, t, n) { var i = n(16), r = n(6).document, a = i(r) && i(r.createElement); e.exports = function (e) { return a ? r.createElement(e) : {} } }, function (e, t, n) { var r = n(16); e.exports = function (e, t) { if (!r(e)) return e; var n, i; if (t && "function" == typeof (n = e.toString) && !r(i = n.call(e))) return i; if ("function" == typeof (n = e.valueOf) && !r(i = n.call(e))) return i; if (!t && "function" == typeof (n = e.toString) && !r(i = n.call(e))) return i; throw TypeError("Can't convert object to primitive value") } }, function (e, t, n) { function i() { } var r = n(13), a = n(239), s = n(50), o = n(48)("IE_PROTO"), u = "prototype", d = function () { var e = n(44)("iframe"), t = s.length; for (e.style.display = "none", n(73).appendChild(e), e.src = "javascript:", (e = e.contentWindow.document).open(), e.write("<script>document.F=Object<\/script>"), e.close(), d = e.F; t--;)delete d[u][s[t]]; return d() }; e.exports = Object.create || function (e, t) { var n; return null !== e ? (i[u] = r(e), n = new i, i[u] = null, n[o] = e) : n = d(), void 0 === t ? n : a(n, t) } }, function (e, t, n) { var i = n(42), r = Math.min; e.exports = function (e) { return 0 < e ? r(i(e), 9007199254740991) : 0 } }, function (e, t, n) { var i = n(49)("keys"), r = n(35); e.exports = function (e) { return i[e] || (i[e] = r(e)) } }, function (e, t, n) { var i = n(3), r = n(6), a = "__core-js_shared__", s = r[a] || (r[a] = {}); (e.exports = function (e, t) { return s[e] || (s[e] = void 0 !== t ? t : {}) })("versions", []).push({ version: i.version, mode: n(27) ? "pure" : "global", copyright: "© 2020 Denis Pushkarev (zloirock.ru)" }) }, function (e, t) { e.exports = "constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",") }, function (e, t, n) { "use strict"; var r = n(34); function i(e) { var n, i; this.promise = new e(function (e, t) { if (void 0 !== n || void 0 !== i) throw TypeError("Bad Promise constructor"); n = e, i = t }), this.resolve = r(n), this.reject = r(i) } e.exports.f = function (e) { return new i(e) } }, function (e, t, n) { var r = n(8), a = n(3), s = n(23); e.exports = function (e, t) { var n = (a.Object || {})[e] || Object[e], i = {}; i[e] = t(n), r(r.S + r.F * s(function () { n(1) }), "Object", i) } }, function (e, t, n) { e.exports = n(257) }, function (e, t, n) { "use strict"; t.__esModule = !0; var i, r = n(11), u = (i = r) && i.__esModule ? i : { default: i }; t.default = function (e) { return function () { var o = e.apply(this, arguments); return new u.default(function (a, s) { return function t(e, n) { try { var i = o[e](n), r = i.value } catch (e) { return void s(e) } if (!i.done) return u.default.resolve(r).then(function (e) { t("next", e) }, function (e) { t("throw", e) }); a(r) }("next") }) } } }, function (Qt, en, e) {
        var tn;
        /*!
         * jQuery JavaScript Library v3.6.0
         * https://jquery.com/
         *
         * Includes Sizzle.js
         * https://sizzlejs.com/
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license
         * https://jquery.org/license
         *
         * Date: 2021-03-02T17:08Z
         */
        !function (e, t) { "use strict"; "object" == typeof Qt.exports ? Qt.exports = e.document ? t(e, !0) : function (e) { if (!e.document) throw new Error("jQuery requires a window with a document"); return t(e) } : t(e) }("undefined" != typeof window ? window : this, function (S, e) {
            "use strict"; function m(e) { return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item } function p(e) { return null != e && e === e.window } var t = [], n = Object.getPrototypeOf, o = t.slice, y = t.flat ? function (e) { return t.flat.call(e) } : function (e) { return t.concat.apply([], e) }, u = t.push, r = t.indexOf, i = {}, a = i.toString, v = i.hasOwnProperty, s = v.toString, d = s.call(Object), g = {}, k = S.document, l = { type: !0, src: !0, nonce: !0, noModule: !0 }; function M(e, t, n) { var i, r, a = (n = n || k).createElement("script"); if (a.text = e, t) for (i in l) (r = t[i] || t.getAttribute && t.getAttribute(i)) && a.setAttribute(i, r); n.head.appendChild(a).parentNode.removeChild(a) } function f(e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? i[a.call(e)] || "object" : typeof e } var b = function (e, t) { return new b.fn.init(e, t) }; function h(e) { var t = !!e && "length" in e && e.length, n = f(e); return !m(e) && !p(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e) } b.fn = b.prototype = { jquery: "3.6.0", constructor: b, length: 0, toArray: function () { return o.call(this) }, get: function (e) { return null == e ? o.call(this) : e < 0 ? this[e + this.length] : this[e] }, pushStack: function (e) { e = b.merge(this.constructor(), e); return e.prevObject = this, e }, each: function (e) { return b.each(this, e) }, map: function (n) { return this.pushStack(b.map(this, function (e, t) { return n.call(e, t, e) })) }, slice: function () { return this.pushStack(o.apply(this, arguments)) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, even: function () { return this.pushStack(b.grep(this, function (e, t) { return (t + 1) % 2 })) }, odd: function () { return this.pushStack(b.grep(this, function (e, t) { return t % 2 })) }, eq: function (e) { var t = this.length, e = +e + (e < 0 ? t : 0); return this.pushStack(0 <= e && e < t ? [this[e]] : []) }, end: function () { return this.prevObject || this.constructor() }, push: u, sort: t.sort, splice: t.splice }, b.extend = b.fn.extend = function () { var e, t, n, i, r, a = arguments[0] || {}, s = 1, o = arguments.length, u = !1; for ("boolean" == typeof a && (u = a, a = arguments[s] || {}, s++), "object" == typeof a || m(a) || (a = {}), s === o && (a = this, s--); s < o; s++)if (null != (e = arguments[s])) for (t in e) n = e[t], "__proto__" !== t && a !== n && (u && n && (b.isPlainObject(n) || (i = Array.isArray(n))) ? (r = a[t], r = i && !Array.isArray(r) ? [] : i || b.isPlainObject(r) ? r : {}, i = !1, a[t] = b.extend(u, r, n)) : void 0 !== n && (a[t] = n)); return a }, b.extend({ expando: "jQuery" + ("3.6.0" + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (e) { throw new Error(e) }, noop: function () { }, isPlainObject: function (e) { return !(!e || "[object Object]" !== a.call(e)) && (!(e = n(e)) || "function" == typeof (e = v.call(e, "constructor") && e.constructor) && s.call(e) === d) }, isEmptyObject: function (e) { for (var t in e) return !1; return !0 }, globalEval: function (e, t, n) { M(e, { nonce: t && t.nonce }, n) }, each: function (e, t) { var n, i = 0; if (h(e)) for (n = e.length; i < n && !1 !== t.call(e[i], i, e[i]); i++); else for (i in e) if (!1 === t.call(e[i], i, e[i])) break; return e }, makeArray: function (e, t) { t = t || []; return null != e && (h(Object(e)) ? b.merge(t, "string" == typeof e ? [e] : e) : u.call(t, e)), t }, inArray: function (e, t, n) { return null == t ? -1 : r.call(t, e, n) }, merge: function (e, t) { for (var n = +t.length, i = 0, r = e.length; i < n; i++)e[r++] = t[i]; return e.length = r, e }, grep: function (e, t, n) { for (var i = [], r = 0, a = e.length, s = !n; r < a; r++)!t(e[r], r) != s && i.push(e[r]); return i }, map: function (e, t, n) { var i, r, a = 0, s = []; if (h(e)) for (i = e.length; a < i; a++)null != (r = t(e[a], a, n)) && s.push(r); else for (a in e) null != (r = t(e[a], a, n)) && s.push(r); return y(s) }, guid: 1, support: g }), "function" == typeof Symbol && (b.fn[Symbol.iterator] = t[Symbol.iterator]), b.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) { i["[object " + t + "]"] = t.toLowerCase() }); var c =
                /*!
                 * Sizzle CSS Selector Engine v2.3.6
                 * https://sizzlejs.com/
                 *
                 * Copyright JS Foundation and other contributors
                 * Released under the MIT license
                 * https://js.foundation/
                 *
                 * Date: 2021-02-16
                 */
                function (n) { function h(e, t) { return e = "0x" + e.slice(1) - 65536, t || (e < 0 ? String.fromCharCode(65536 + e) : String.fromCharCode(e >> 10 | 55296, 1023 & e | 56320)) } function c(e, t) { return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e } function i() { S() } var e, _, M, a, r, f, m, p, L, u, d, S, k, s, b, y, o, l, v, w = "sizzle" + +new Date, g = n.document, D = 0, T = 0, E = ue(), Y = ue(), P = ue(), C = ue(), A = function (e, t) { return e === t && (d = !0), 0 }, R = {}.hasOwnProperty, t = [], x = t.pop, O = t.push, I = t.push, W = t.slice, H = function (e, t) { for (var n = 0, i = e.length; n < i; n++)if (e[n] === t) return n; return -1 }, j = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", F = "[\\x20\\t\\r\\n\\f]", B = "(?:\\\\[\\da-fA-F]{1,6}" + F + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", N = "\\[" + F + "*(" + B + ")(?:" + F + "*([*^$|!~]?=)" + F + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + B + "))|)" + F + "*\\]", z = ":(" + B + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + N + ")*)|.*)\\)|)", U = new RegExp(F + "+", "g"), V = new RegExp("^" + F + "+|((?:^|[^\\\\])(?:\\\\.)*)" + F + "+$", "g"), G = new RegExp("^" + F + "*," + F + "*"), J = new RegExp("^" + F + "*([>+~]|" + F + ")" + F + "*"), q = new RegExp(F + "|>"), K = new RegExp(z), X = new RegExp("^" + B + "$"), Z = { ID: new RegExp("^#(" + B + ")"), CLASS: new RegExp("^\\.(" + B + ")"), TAG: new RegExp("^(" + B + "|[*])"), ATTR: new RegExp("^" + N), PSEUDO: new RegExp("^" + z), CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + F + "*(even|odd|(([+-]|)(\\d*)n|)" + F + "*(?:([+-]|)" + F + "*(\\d+)|))" + F + "*\\)|)", "i"), bool: new RegExp("^(?:" + j + ")$", "i"), needsContext: new RegExp("^" + F + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + F + "*((?:-\\d)?\\d*)" + F + "*\\)|)(?=[^-]|$)", "i") }, $ = /HTML$/i, Q = /^(?:input|select|textarea|button)$/i, ee = /^h\d$/i, te = /^[^{]+\{\s*\[native \w/, ne = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ie = /[+~]/, re = new RegExp("\\\\[\\da-fA-F]{1,6}" + F + "?|\\\\([^\\r\\n\\f])", "g"), ae = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, se = ve(function (e) { return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase() }, { dir: "parentNode", next: "legend" }); try { I.apply(t = W.call(g.childNodes), g.childNodes), t[g.childNodes.length].nodeType } catch (e) { I = { apply: t.length ? function (e, t) { O.apply(e, W.call(t)) } : function (e, t) { for (var n = e.length, i = 0; e[n++] = t[i++];); e.length = n - 1 } } } function oe(t, e, n, i) { var r, a, s, o, u, d, l = e && e.ownerDocument, h = e ? e.nodeType : 9; if (n = n || [], "string" != typeof t || !t || 1 !== h && 9 !== h && 11 !== h) return n; if (!i && (S(e), e = e || k, b)) { if (11 !== h && (o = ne.exec(t))) if (d = o[1]) { if (9 === h) { if (!(a = e.getElementById(d))) return n; if (a.id === d) return n.push(a), n } else if (l && (a = l.getElementById(d)) && v(e, a) && a.id === d) return n.push(a), n } else { if (o[2]) return I.apply(n, e.getElementsByTagName(t)), n; if ((d = o[3]) && _.getElementsByClassName && e.getElementsByClassName) return I.apply(n, e.getElementsByClassName(d)), n } if (_.qsa && !C[t + " "] && (!y || !y.test(t)) && (1 !== h || "object" !== e.nodeName.toLowerCase())) { if (d = t, l = e, 1 === h && (q.test(t) || J.test(t))) { for ((l = ie.test(t) && me(e.parentNode) || e) === e && _.scope || ((s = e.getAttribute("id")) ? s = s.replace(ae, c) : e.setAttribute("id", s = w)), r = (u = f(t)).length; r--;)u[r] = (s ? "#" + s : ":scope") + " " + ye(u[r]); d = u.join(",") } try { return I.apply(n, l.querySelectorAll(d)), n } catch (e) { C(t, !0) } finally { s === w && e.removeAttribute("id") } } } return p(t.replace(V, "$1"), e, n, i) } function ue() { var n = []; function i(e, t) { return n.push(e + " ") > M.cacheLength && delete i[n.shift()], i[e + " "] = t } return i } function de(e) { return e[w] = !0, e } function le(e) { var t = k.createElement("fieldset"); try { return !!e(t) } catch (e) { return !1 } finally { t.parentNode && t.parentNode.removeChild(t) } } function he(e, t) { for (var n = e.split("|"), i = n.length; i--;)M.attrHandle[n[i]] = t } function ce(e, t) { var n = t && e, i = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; if (i) return i; if (n) for (; n = n.nextSibling;)if (n === t) return -1; return e ? 1 : -1 } function _e(t) { return function (e) { return "form" in e ? e.parentNode && !1 === e.disabled ? "label" in e ? "label" in e.parentNode ? e.parentNode.disabled === t : e.disabled === t : e.isDisabled === t || e.isDisabled !== !t && se(e) === t : e.disabled === t : "label" in e && e.disabled === t } } function fe(s) { return de(function (a) { return a = +a, de(function (e, t) { for (var n, i = s([], e.length, a), r = i.length; r--;)e[n = i[r]] && (e[n] = !(t[n] = e[n])) }) }) } function me(e) { return e && void 0 !== e.getElementsByTagName && e } for (e in _ = oe.support = {}, r = oe.isXML = function (e) { var t = e && e.namespaceURI, e = e && (e.ownerDocument || e).documentElement; return !$.test(t || e && e.nodeName || "HTML") }, S = oe.setDocument = function (e) { var t, e = e ? e.ownerDocument || e : g; return e != k && 9 === e.nodeType && e.documentElement && (s = (k = e).documentElement, b = !r(k), g != k && (t = k.defaultView) && t.top !== t && (t.addEventListener ? t.addEventListener("unload", i, !1) : t.attachEvent && t.attachEvent("onunload", i)), _.scope = le(function (e) { return s.appendChild(e).appendChild(k.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length }), _.attributes = le(function (e) { return e.className = "i", !e.getAttribute("className") }), _.getElementsByTagName = le(function (e) { return e.appendChild(k.createComment("")), !e.getElementsByTagName("*").length }), _.getElementsByClassName = te.test(k.getElementsByClassName), _.getById = le(function (e) { return s.appendChild(e).id = w, !k.getElementsByName || !k.getElementsByName(w).length }), _.getById ? (M.filter.ID = function (e) { var t = e.replace(re, h); return function (e) { return e.getAttribute("id") === t } }, M.find.ID = function (e, t) { if (void 0 !== t.getElementById && b) { e = t.getElementById(e); return e ? [e] : [] } }) : (M.filter.ID = function (e) { var t = e.replace(re, h); return function (e) { e = void 0 !== e.getAttributeNode && e.getAttributeNode("id"); return e && e.value === t } }, M.find.ID = function (e, t) { if (void 0 !== t.getElementById && b) { var n, i, r, a = t.getElementById(e); if (a) { if ((n = a.getAttributeNode("id")) && n.value === e) return [a]; for (r = t.getElementsByName(e), i = 0; a = r[i++];)if ((n = a.getAttributeNode("id")) && n.value === e) return [a] } return [] } }), M.find.TAG = _.getElementsByTagName ? function (e, t) { return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : _.qsa ? t.querySelectorAll(e) : void 0 } : function (e, t) { var n, i = [], r = 0, a = t.getElementsByTagName(e); if ("*" !== e) return a; for (; n = a[r++];)1 === n.nodeType && i.push(n); return i }, M.find.CLASS = _.getElementsByClassName && function (e, t) { if (void 0 !== t.getElementsByClassName && b) return t.getElementsByClassName(e) }, o = [], y = [], (_.qsa = te.test(k.querySelectorAll)) && (le(function (e) { var t; s.appendChild(e).innerHTML = "<a id='" + w + "'></a><select id='" + w + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && y.push("[*^$]=" + F + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || y.push("\\[" + F + "*(?:value|" + j + ")"), e.querySelectorAll("[id~=" + w + "-]").length || y.push("~="), (t = k.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || y.push("\\[" + F + "*name" + F + "*=" + F + "*(?:''|\"\")"), e.querySelectorAll(":checked").length || y.push(":checked"), e.querySelectorAll("a#" + w + "+*").length || y.push(".#.+[+~]"), e.querySelectorAll("\\\f"), y.push("[\\r\\n\\f]") }), le(function (e) { e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>"; var t = k.createElement("input"); t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && y.push("name" + F + "*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && y.push(":enabled", ":disabled"), s.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && y.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), y.push(",.*:") })), (_.matchesSelector = te.test(l = s.matches || s.webkitMatchesSelector || s.mozMatchesSelector || s.oMatchesSelector || s.msMatchesSelector)) && le(function (e) { _.disconnectedMatch = l.call(e, "*"), l.call(e, "[s!='']:x"), o.push("!=", z) }), y = y.length && new RegExp(y.join("|")), o = o.length && new RegExp(o.join("|")), t = te.test(s.compareDocumentPosition), v = t || te.test(s.contains) ? function (e, t) { var n = 9 === e.nodeType ? e.documentElement : e, t = t && t.parentNode; return e === t || !(!t || 1 !== t.nodeType || !(n.contains ? n.contains(t) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(t))) } : function (e, t) { if (t) for (; t = t.parentNode;)if (t === e) return !0; return !1 }, A = t ? function (e, t) { if (e === t) return d = !0, 0; var n = !e.compareDocumentPosition - !t.compareDocumentPosition; return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !_.sortDetached && t.compareDocumentPosition(e) === n ? e == k || e.ownerDocument == g && v(g, e) ? -1 : t == k || t.ownerDocument == g && v(g, t) ? 1 : u ? H(u, e) - H(u, t) : 0 : 4 & n ? -1 : 1) } : function (e, t) { if (e === t) return d = !0, 0; var n, i = 0, r = e.parentNode, a = t.parentNode, s = [e], o = [t]; if (!r || !a) return e == k ? -1 : t == k ? 1 : r ? -1 : a ? 1 : u ? H(u, e) - H(u, t) : 0; if (r === a) return ce(e, t); for (n = e; n = n.parentNode;)s.unshift(n); for (n = t; n = n.parentNode;)o.unshift(n); for (; s[i] === o[i];)i++; return i ? ce(s[i], o[i]) : s[i] == g ? -1 : o[i] == g ? 1 : 0 }), k }, oe.matches = function (e, t) { return oe(e, null, null, t) }, oe.matchesSelector = function (e, t) { if (S(e), _.matchesSelector && b && !C[t + " "] && (!o || !o.test(t)) && (!y || !y.test(t))) try { var n = l.call(e, t); if (n || _.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n } catch (e) { C(t, !0) } return 0 < oe(t, k, null, [e]).length }, oe.contains = function (e, t) { return (e.ownerDocument || e) != k && S(e), v(e, t) }, oe.attr = function (e, t) { (e.ownerDocument || e) != k && S(e); var n = M.attrHandle[t.toLowerCase()], n = n && R.call(M.attrHandle, t.toLowerCase()) ? n(e, t, !b) : void 0; return void 0 !== n ? n : _.attributes || !b ? e.getAttribute(t) : (n = e.getAttributeNode(t)) && n.specified ? n.value : null }, oe.escape = function (e) { return (e + "").replace(ae, c) }, oe.error = function (e) { throw new Error("Syntax error, unrecognized expression: " + e) }, oe.uniqueSort = function (e) { var t, n = [], i = 0, r = 0; if (d = !_.detectDuplicates, u = !_.sortStable && e.slice(0), e.sort(A), d) { for (; t = e[r++];)t === e[r] && (i = n.push(r)); for (; i--;)e.splice(n[i], 1) } return u = null, e }, a = oe.getText = function (e) { var t, n = "", i = 0, r = e.nodeType; if (r) { if (1 === r || 9 === r || 11 === r) { if ("string" == typeof e.textContent) return e.textContent; for (e = e.firstChild; e; e = e.nextSibling)n += a(e) } else if (3 === r || 4 === r) return e.nodeValue } else for (; t = e[i++];)n += a(t); return n }, (M = oe.selectors = { cacheLength: 50, createPseudo: de, match: Z, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: !0 }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: !0 }, "~": { dir: "previousSibling" } }, preFilter: { ATTR: function (e) { return e[1] = e[1].replace(re, h), e[3] = (e[3] || e[4] || e[5] || "").replace(re, h), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4) }, CHILD: function (e) { return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || oe.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && oe.error(e[0]), e }, PSEUDO: function (e) { var t, n = !e[6] && e[2]; return Z.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && K.test(n) && (t = f(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3)) } }, filter: { TAG: function (e) { var t = e.replace(re, h).toLowerCase(); return "*" === e ? function () { return !0 } : function (e) { return e.nodeName && e.nodeName.toLowerCase() === t } }, CLASS: function (e) { var t = E[e + " "]; return t || (t = new RegExp("(^|" + F + ")" + e + "(" + F + "|$)")) && E(e, function (e) { return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "") }) }, ATTR: function (t, n, i) { return function (e) { e = oe.attr(e, t); return null == e ? "!=" === n : !n || (e += "", "=" === n ? e === i : "!=" === n ? e !== i : "^=" === n ? i && 0 === e.indexOf(i) : "*=" === n ? i && -1 < e.indexOf(i) : "$=" === n ? i && e.slice(-i.length) === i : "~=" === n ? -1 < (" " + e.replace(U, " ") + " ").indexOf(i) : "|=" === n && (e === i || e.slice(0, i.length + 1) === i + "-")) } }, CHILD: function (f, e, t, m, p) { var y = "nth" !== f.slice(0, 3), v = "last" !== f.slice(-4), g = "of-type" === e; return 1 === m && 0 === p ? function (e) { return !!e.parentNode } : function (e, t, n) { var i, r, a, s, o, u, d = y != v ? "nextSibling" : "previousSibling", l = e.parentNode, h = g && e.nodeName.toLowerCase(), c = !n && !g, _ = !1; if (l) { if (y) { for (; d;) { for (s = e; s = s[d];)if (g ? s.nodeName.toLowerCase() === h : 1 === s.nodeType) return !1; u = d = "only" === f && !u && "nextSibling" } return !0 } if (u = [v ? l.firstChild : l.lastChild], v && c) { for (_ = (o = (i = (r = (a = (s = l)[w] || (s[w] = {}))[s.uniqueID] || (a[s.uniqueID] = {}))[f] || [])[0] === D && i[1]) && i[2], s = o && l.childNodes[o]; s = ++o && s && s[d] || (_ = o = 0) || u.pop();)if (1 === s.nodeType && ++_ && s === e) { r[f] = [D, o, _]; break } } else if (!1 === (_ = c ? o = (i = (r = (a = (s = e)[w] || (s[w] = {}))[s.uniqueID] || (a[s.uniqueID] = {}))[f] || [])[0] === D && i[1] : _)) for (; (s = ++o && s && s[d] || (_ = o = 0) || u.pop()) && ((g ? s.nodeName.toLowerCase() !== h : 1 !== s.nodeType) || !++_ || (c && ((r = (a = s[w] || (s[w] = {}))[s.uniqueID] || (a[s.uniqueID] = {}))[f] = [D, _]), s !== e));); return (_ -= p) === m || _ % m == 0 && 0 <= _ / m } } }, PSEUDO: function (e, a) { var t, s = M.pseudos[e] || M.setFilters[e.toLowerCase()] || oe.error("unsupported pseudo: " + e); return s[w] ? s(a) : 1 < s.length ? (t = [e, e, "", a], M.setFilters.hasOwnProperty(e.toLowerCase()) ? de(function (e, t) { for (var n, i = s(e, a), r = i.length; r--;)e[n = H(e, i[r])] = !(t[n] = i[r]) }) : function (e) { return s(e, 0, t) }) : s } }, pseudos: { not: de(function (e) { var i = [], r = [], o = m(e.replace(V, "$1")); return o[w] ? de(function (e, t, n, i) { for (var r, a = o(e, null, i, []), s = e.length; s--;)(r = a[s]) && (e[s] = !(t[s] = r)) }) : function (e, t, n) { return i[0] = e, o(i, null, n, r), i[0] = null, !r.pop() } }), has: de(function (t) { return function (e) { return 0 < oe(t, e).length } }), contains: de(function (t) { return t = t.replace(re, h), function (e) { return -1 < (e.textContent || a(e)).indexOf(t) } }), lang: de(function (n) { return X.test(n || "") || oe.error("unsupported lang: " + n), n = n.replace(re, h).toLowerCase(), function (e) { var t; do { if (t = b ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-") } while ((e = e.parentNode) && 1 === e.nodeType); return !1 } }), target: function (e) { var t = n.location && n.location.hash; return t && t.slice(1) === e.id }, root: function (e) { return e === s }, focus: function (e) { return e === k.activeElement && (!k.hasFocus || k.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) }, enabled: _e(!1), disabled: _e(!0), checked: function (e) { var t = e.nodeName.toLowerCase(); return "input" === t && !!e.checked || "option" === t && !!e.selected }, selected: function (e) { return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected }, empty: function (e) { for (e = e.firstChild; e; e = e.nextSibling)if (e.nodeType < 6) return !1; return !0 }, parent: function (e) { return !M.pseudos.empty(e) }, header: function (e) { return ee.test(e.nodeName) }, input: function (e) { return Q.test(e.nodeName) }, button: function (e) { var t = e.nodeName.toLowerCase(); return "input" === t && "button" === e.type || "button" === t }, text: function (e) { return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (e = e.getAttribute("type")) || "text" === e.toLowerCase()) }, first: fe(function () { return [0] }), last: fe(function (e, t) { return [t - 1] }), eq: fe(function (e, t, n) { return [n < 0 ? n + t : n] }), even: fe(function (e, t) { for (var n = 0; n < t; n += 2)e.push(n); return e }), odd: fe(function (e, t) { for (var n = 1; n < t; n += 2)e.push(n); return e }), lt: fe(function (e, t, n) { for (var i = n < 0 ? n + t : t < n ? t : n; 0 <= --i;)e.push(i); return e }), gt: fe(function (e, t, n) { for (var i = n < 0 ? n + t : n; ++i < t;)e.push(i); return e }) } }).pseudos.nth = M.pseudos.eq, { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) M.pseudos[e] = function (t) { return function (e) { return "input" === e.nodeName.toLowerCase() && e.type === t } }(e); for (e in { submit: !0, reset: !0 }) M.pseudos[e] = function (n) { return function (e) { var t = e.nodeName.toLowerCase(); return ("input" === t || "button" === t) && e.type === n } }(e); function pe() { } function ye(e) { for (var t = 0, n = e.length, i = ""; t < n; t++)i += e[t].value; return i } function ve(s, e, t) { var o = e.dir, u = e.next, d = u || o, l = t && "parentNode" === d, h = T++; return e.first ? function (e, t, n) { for (; e = e[o];)if (1 === e.nodeType || l) return s(e, t, n); return !1 } : function (e, t, n) { var i, r, a = [D, h]; if (n) { for (; e = e[o];)if ((1 === e.nodeType || l) && s(e, t, n)) return !0 } else for (; e = e[o];)if (1 === e.nodeType || l) if (i = (r = e[w] || (e[w] = {}))[e.uniqueID] || (r[e.uniqueID] = {}), u && u === e.nodeName.toLowerCase()) e = e[o] || e; else { if ((r = i[d]) && r[0] === D && r[1] === h) return a[2] = r[2]; if ((i[d] = a)[2] = s(e, t, n)) return !0 } return !1 } } function ge(r) { return 1 < r.length ? function (e, t, n) { for (var i = r.length; i--;)if (!r[i](e, t, n)) return !1; return !0 } : r[0] } function Me(e, t, n, i, r) { for (var a, s = [], o = 0, u = e.length, d = null != t; o < u; o++)(a = e[o]) && (n && !n(a, i, r) || (s.push(a), d && t.push(o))); return s } function Le(_, f, m, p, y, e) { return p && !p[w] && (p = Le(p)), y && !y[w] && (y = Le(y, e)), de(function (e, t, n, i) { var r, a, s, o = [], u = [], d = t.length, l = e || function (e, t, n) { for (var i = 0, r = t.length; i < r; i++)oe(e, t[i], n); return n }(f || "*", n.nodeType ? [n] : n, []), h = !_ || !e && f ? l : Me(l, o, _, n, i), c = m ? y || (e ? _ : d || p) ? [] : t : h; if (m && m(h, c, n, i), p) for (r = Me(c, u), p(r, [], n, i), a = r.length; a--;)(s = r[a]) && (c[u[a]] = !(h[u[a]] = s)); if (e) { if (y || _) { if (y) { for (r = [], a = c.length; a--;)(s = c[a]) && r.push(h[a] = s); y(null, c = [], r, i) } for (a = c.length; a--;)(s = c[a]) && -1 < (r = y ? H(e, s) : o[a]) && (e[r] = !(t[r] = s)) } } else c = Me(c === t ? c.splice(d, c.length) : c), y ? y(null, t, c, i) : I.apply(t, c) }) } function Se(p, y) { function e(e, t, n, i, r) { var a, s, o, u = 0, d = "0", l = e && [], h = [], c = L, _ = e || g && M.find.TAG("*", r), f = D += null == c ? 1 : Math.random() || .1, m = _.length; for (r && (L = t == k || t || r); d !== m && null != (a = _[d]); d++) { if (g && a) { for (s = 0, t || a.ownerDocument == k || (S(a), n = !b); o = p[s++];)if (o(a, t || k, n)) { i.push(a); break } r && (D = f) } v && ((a = !o && a) && u--, e && l.push(a)) } if (u += d, v && d !== u) { for (s = 0; o = y[s++];)o(l, h, t, n); if (e) { if (0 < u) for (; d--;)l[d] || h[d] || (h[d] = x.call(i)); h = Me(h) } I.apply(i, h), r && !e && 0 < h.length && 1 < u + y.length && oe.uniqueSort(i) } return r && (D = f, L = c), l } var v = 0 < y.length, g = 0 < p.length; return v ? de(e) : e } return pe.prototype = M.filters = M.pseudos, M.setFilters = new pe, f = oe.tokenize = function (e, t) { var n, i, r, a, s, o, u, d = Y[e + " "]; if (d) return t ? 0 : d.slice(0); for (s = e, o = [], u = M.preFilter; s;) { for (a in n && !(i = G.exec(s)) || (i && (s = s.slice(i[0].length) || s), o.push(r = [])), n = !1, (i = J.exec(s)) && (n = i.shift(), r.push({ value: n, type: i[0].replace(V, " ") }), s = s.slice(n.length)), M.filter) !(i = Z[a].exec(s)) || u[a] && !(i = u[a](i)) || (n = i.shift(), r.push({ value: n, type: a, matches: i }), s = s.slice(n.length)); if (!n) break } return t ? s.length : s ? oe.error(e) : Y(e, o).slice(0) }, m = oe.compile = function (e, t) { var n, i = [], r = [], a = P[e + " "]; if (!a) { for (n = (t = t || f(e)).length; n--;)((a = function e(t) { for (var i, n, r, a = t.length, s = M.relative[t[0].type], o = s || M.relative[" "], u = s ? 1 : 0, d = ve(function (e) { return e === i }, o, !0), l = ve(function (e) { return -1 < H(i, e) }, o, !0), h = [function (e, t, n) { return n = !s && (n || t !== L) || ((i = t).nodeType ? d : l)(e, t, n), i = null, n }]; u < a; u++)if (n = M.relative[t[u].type]) h = [ve(ge(h), n)]; else { if ((n = M.filter[t[u].type].apply(null, t[u].matches))[w]) { for (r = ++u; r < a && !M.relative[t[r].type]; r++); return Le(1 < u && ge(h), 1 < u && ye(t.slice(0, u - 1).concat({ value: " " === t[u - 2].type ? "*" : "" })).replace(V, "$1"), n, u < r && e(t.slice(u, r)), r < a && e(t = t.slice(r)), r < a && ye(t)) } h.push(n) } return ge(h) }(t[n]))[w] ? i : r).push(a); (a = P(e, Se(r, i))).selector = e } return a }, p = oe.select = function (e, t, n, i) { var r, a, s, o, u, d = "function" == typeof e && e, l = !i && f(e = d.selector || e); if (n = n || [], 1 === l.length) { if (2 < (a = l[0] = l[0].slice(0)).length && "ID" === (s = a[0]).type && 9 === t.nodeType && b && M.relative[a[1].type]) { if (!(t = (M.find.ID(s.matches[0].replace(re, h), t) || [])[0])) return n; d && (t = t.parentNode), e = e.slice(a.shift().value.length) } for (r = Z.needsContext.test(e) ? 0 : a.length; r-- && (s = a[r], !M.relative[o = s.type]);)if ((u = M.find[o]) && (i = u(s.matches[0].replace(re, h), ie.test(a[0].type) && me(t.parentNode) || t))) { if (a.splice(r, 1), !(e = i.length && ye(a))) return I.apply(n, i), n; break } } return (d || m(e, l))(i, t, !b, n, !t || ie.test(e) && me(t.parentNode) || t), n }, _.sortStable = w.split("").sort(A).join("") === w, _.detectDuplicates = !!d, S(), _.sortDetached = le(function (e) { return 1 & e.compareDocumentPosition(k.createElement("fieldset")) }), le(function (e) { return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href") }) || he("type|href|height|width", function (e, t, n) { if (!n) return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) }), _.attributes && le(function (e) { return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value") }) || he("value", function (e, t, n) { if (!n && "input" === e.nodeName.toLowerCase()) return e.defaultValue }), le(function (e) { return null == e.getAttribute("disabled") }) || he(j, function (e, t, n) { if (!n) return !0 === e[t] ? t.toLowerCase() : (t = e.getAttributeNode(t)) && t.specified ? t.value : null }), oe }(S); b.find = c, b.expr = c.selectors, b.expr[":"] = b.expr.pseudos, b.uniqueSort = b.unique = c.uniqueSort, b.text = c.getText, b.isXMLDoc = c.isXML, b.contains = c.contains, b.escapeSelector = c.escape; function _(e, t, n) { for (var i = [], r = void 0 !== n; (e = e[t]) && 9 !== e.nodeType;)if (1 === e.nodeType) { if (r && b(e).is(n)) break; i.push(e) } return i } function L(e, t) { for (var n = []; e; e = e.nextSibling)1 === e.nodeType && e !== t && n.push(e); return n } var w = b.expr.match.needsContext; function D(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() } var T = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; function E(e, n, i) { return m(n) ? b.grep(e, function (e, t) { return !!n.call(e, t, e) !== i }) : n.nodeType ? b.grep(e, function (e) { return e === n !== i }) : "string" != typeof n ? b.grep(e, function (e) { return -1 < r.call(n, e) !== i }) : b.filter(n, e, i) } b.filter = function (e, t, n) { var i = t[0]; return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === i.nodeType ? b.find.matchesSelector(i, e) ? [i] : [] : b.find.matches(e, b.grep(t, function (e) { return 1 === e.nodeType })) }, b.fn.extend({ find: function (e) { var t, n, i = this.length, r = this; if ("string" != typeof e) return this.pushStack(b(e).filter(function () { for (t = 0; t < i; t++)if (b.contains(r[t], this)) return !0 })); for (n = this.pushStack([]), t = 0; t < i; t++)b.find(e, r[t], n); return 1 < i ? b.uniqueSort(n) : n }, filter: function (e) { return this.pushStack(E(this, e || [], !1)) }, not: function (e) { return this.pushStack(E(this, e || [], !0)) }, is: function (e) { return !!E(this, "string" == typeof e && w.test(e) ? b(e) : e || [], !1).length } }); var Y = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; (b.fn.init = function (e, t, n) { if (!e) return this; if (n = n || P, "string" != typeof e) return e.nodeType ? (this[0] = e, this.length = 1, this) : m(e) ? void 0 !== n.ready ? n.ready(e) : e(b) : b.makeArray(e, this); if (!(i = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : Y.exec(e)) || !i[1] && t) return (!t || t.jquery ? t || n : this.constructor(t)).find(e); if (i[1]) { if (t = t instanceof b ? t[0] : t, b.merge(this, b.parseHTML(i[1], t && t.nodeType ? t.ownerDocument || t : k, !0)), T.test(i[1]) && b.isPlainObject(t)) for (var i in t) m(this[i]) ? this[i](t[i]) : this.attr(i, t[i]); return this } return (e = k.getElementById(i[2])) && (this[0] = e, this.length = 1), this }).prototype = b.fn; var P = b(k), C = /^(?:parents|prev(?:Until|All))/, A = { children: !0, contents: !0, next: !0, prev: !0 }; function R(e, t) { for (; (e = e[t]) && 1 !== e.nodeType;); return e } b.fn.extend({ has: function (e) { var t = b(e, this), n = t.length; return this.filter(function () { for (var e = 0; e < n; e++)if (b.contains(this, t[e])) return !0 }) }, closest: function (e, t) { var n, i = 0, r = this.length, a = [], s = "string" != typeof e && b(e); if (!w.test(e)) for (; i < r; i++)for (n = this[i]; n && n !== t; n = n.parentNode)if (n.nodeType < 11 && (s ? -1 < s.index(n) : 1 === n.nodeType && b.find.matchesSelector(n, e))) { a.push(n); break } return this.pushStack(1 < a.length ? b.uniqueSort(a) : a) }, index: function (e) { return e ? "string" == typeof e ? r.call(b(e), this[0]) : r.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, add: function (e, t) { return this.pushStack(b.uniqueSort(b.merge(this.get(), b(e, t)))) }, addBack: function (e) { return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) } }), b.each({ parent: function (e) { e = e.parentNode; return e && 11 !== e.nodeType ? e : null }, parents: function (e) { return _(e, "parentNode") }, parentsUntil: function (e, t, n) { return _(e, "parentNode", n) }, next: function (e) { return R(e, "nextSibling") }, prev: function (e) { return R(e, "previousSibling") }, nextAll: function (e) { return _(e, "nextSibling") }, prevAll: function (e) { return _(e, "previousSibling") }, nextUntil: function (e, t, n) { return _(e, "nextSibling", n) }, prevUntil: function (e, t, n) { return _(e, "previousSibling", n) }, siblings: function (e) { return L((e.parentNode || {}).firstChild, e) }, children: function (e) { return L(e.firstChild) }, contents: function (e) { return null != e.contentDocument && n(e.contentDocument) ? e.contentDocument : (D(e, "template") && (e = e.content || e), b.merge([], e.childNodes)) } }, function (i, r) { b.fn[i] = function (e, t) { var n = b.map(this, r, e); return (t = "Until" !== i.slice(-5) ? e : t) && "string" == typeof t && (n = b.filter(t, n)), 1 < this.length && (A[i] || b.uniqueSort(n), C.test(i) && n.reverse()), this.pushStack(n) } }); var x = /[^\x20\t\r\n\f]+/g; function O(e) { return e } function I(e) { throw e } function W(e, t, n, i) { var r; try { e && m(r = e.promise) ? r.call(e).done(t).fail(n) : e && m(r = e.then) ? r.call(e, t, n) : t.apply(void 0, [e].slice(i)) } catch (e) { n.apply(void 0, [e]) } } b.Callbacks = function (i) { var e, n; i = "string" == typeof i ? (e = i, n = {}, b.each(e.match(x) || [], function (e, t) { n[t] = !0 }), n) : b.extend({}, i); function r() { for (o = o || i.once, s = a = !0; d.length; l = -1)for (t = d.shift(); ++l < u.length;)!1 === u[l].apply(t[0], t[1]) && i.stopOnFalse && (l = u.length, t = !1); i.memory || (t = !1), a = !1, o && (u = t ? [] : "") } var a, t, s, o, u = [], d = [], l = -1, h = { add: function () { return u && (t && !a && (l = u.length - 1, d.push(t)), function n(e) { b.each(e, function (e, t) { m(t) ? i.unique && h.has(t) || u.push(t) : t && t.length && "string" !== f(t) && n(t) }) }(arguments), t && !a && r()), this }, remove: function () { return b.each(arguments, function (e, t) { for (var n; -1 < (n = b.inArray(t, u, n));)u.splice(n, 1), n <= l && l-- }), this }, has: function (e) { return e ? -1 < b.inArray(e, u) : 0 < u.length }, empty: function () { return u = u && [], this }, disable: function () { return o = d = [], u = t = "", this }, disabled: function () { return !u }, lock: function () { return o = d = [], t || a || (u = t = ""), this }, locked: function () { return !!o }, fireWith: function (e, t) { return o || (t = [e, (t = t || []).slice ? t.slice() : t], d.push(t), a || r()), this }, fire: function () { return h.fireWith(this, arguments), this }, fired: function () { return !!s } }; return h }, b.extend({ Deferred: function (e) { var a = [["notify", "progress", b.Callbacks("memory"), b.Callbacks("memory"), 2], ["resolve", "done", b.Callbacks("once memory"), b.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", b.Callbacks("once memory"), b.Callbacks("once memory"), 1, "rejected"]], r = "pending", s = { state: function () { return r }, always: function () { return o.done(arguments).fail(arguments), this }, catch: function (e) { return s.then(null, e) }, pipe: function () { var r = arguments; return b.Deferred(function (i) { b.each(a, function (e, t) { var n = m(r[t[4]]) && r[t[4]]; o[t[1]](function () { var e = n && n.apply(this, arguments); e && m(e.promise) ? e.promise().progress(i.notify).done(i.resolve).fail(i.reject) : i[t[0] + "With"](this, n ? [e] : arguments) }) }), r = null }).promise() }, then: function (t, n, i) { var u = 0; function d(r, a, s, o) { return function () { function e() { var e, t; if (!(r < u)) { if ((e = s.apply(n, i)) === a.promise()) throw new TypeError("Thenable self-resolution"); t = e && ("object" == typeof e || "function" == typeof e) && e.then, m(t) ? o ? t.call(e, d(u, a, O, o), d(u, a, I, o)) : (u++, t.call(e, d(u, a, O, o), d(u, a, I, o), d(u, a, O, a.notifyWith))) : (s !== O && (n = void 0, i = [e]), (o || a.resolveWith)(n, i)) } } var n = this, i = arguments, t = o ? e : function () { try { e() } catch (e) { b.Deferred.exceptionHook && b.Deferred.exceptionHook(e, t.stackTrace), u <= r + 1 && (s !== I && (n = void 0, i = [e]), a.rejectWith(n, i)) } }; r ? t() : (b.Deferred.getStackHook && (t.stackTrace = b.Deferred.getStackHook()), S.setTimeout(t)) } } return b.Deferred(function (e) { a[0][3].add(d(0, e, m(i) ? i : O, e.notifyWith)), a[1][3].add(d(0, e, m(t) ? t : O)), a[2][3].add(d(0, e, m(n) ? n : I)) }).promise() }, promise: function (e) { return null != e ? b.extend(e, s) : s } }, o = {}; return b.each(a, function (e, t) { var n = t[2], i = t[5]; s[t[1]] = n.add, i && n.add(function () { r = i }, a[3 - e][2].disable, a[3 - e][3].disable, a[0][2].lock, a[0][3].lock), n.add(t[3].fire), o[t[0]] = function () { return o[t[0] + "With"](this === o ? void 0 : this, arguments), this }, o[t[0] + "With"] = n.fireWith }), s.promise(o), e && e.call(o, o), o }, when: function (e) { function t(t) { return function (e) { r[t] = this, a[t] = 1 < arguments.length ? o.call(arguments) : e, --n || s.resolveWith(r, a) } } var n = arguments.length, i = n, r = Array(i), a = o.call(arguments), s = b.Deferred(); if (n <= 1 && (W(e, s.done(t(i)).resolve, s.reject, !n), "pending" === s.state() || m(a[i] && a[i].then))) return s.then(); for (; i--;)W(a[i], t(i), s.reject); return s.promise() } }); var H = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; b.Deferred.exceptionHook = function (e, t) { S.console && S.console.warn && e && H.test(e.name) && S.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t) }, b.readyException = function (e) { S.setTimeout(function () { throw e }) }; var j = b.Deferred(); function F() { k.removeEventListener("DOMContentLoaded", F), S.removeEventListener("load", F), b.ready() } b.fn.ready = function (e) { return j.then(e).catch(function (e) { b.readyException(e) }), this }, b.extend({ isReady: !1, readyWait: 1, ready: function (e) { (!0 === e ? --b.readyWait : b.isReady) || (b.isReady = !0) !== e && 0 < --b.readyWait || j.resolveWith(k, [b]) } }), b.ready.then = j.then, "complete" === k.readyState || "loading" !== k.readyState && !k.documentElement.doScroll ? S.setTimeout(b.ready) : (k.addEventListener("DOMContentLoaded", F), S.addEventListener("load", F)); function B(e, t, n, i, r, a, s) { var o = 0, u = e.length, d = null == n; if ("object" === f(n)) for (o in r = !0, n) B(e, t, o, n[o], !0, a, s); else if (void 0 !== i && (r = !0, m(i) || (s = !0), t = d ? s ? (t.call(e, i), null) : (d = t, function (e, t, n) { return d.call(b(e), n) }) : t)) for (; o < u; o++)t(e[o], n, s ? i : i.call(e[o], o, t(e[o], n))); return r ? e : d ? t.call(e) : u ? t(e[0], n) : a } var N = /^-ms-/, z = /-([a-z])/g; function U(e, t) { return t.toUpperCase() } function V(e) { return e.replace(N, "ms-").replace(z, U) } function G(e) { return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType } function J() { this.expando = b.expando + J.uid++ } J.uid = 1, J.prototype = { cache: function (e) { var t = e[this.expando]; return t || (t = {}, G(e) && (e.nodeType ? e[this.expando] = t : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), t }, set: function (e, t, n) { var i, r = this.cache(e); if ("string" == typeof t) r[V(t)] = n; else for (i in t) r[V(i)] = t[i]; return r }, get: function (e, t) { return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][V(t)] }, access: function (e, t, n) { return void 0 === t || t && "string" == typeof t && void 0 === n ? this.get(e, t) : (this.set(e, t, n), void 0 !== n ? n : t) }, remove: function (e, t) { var n, i = e[this.expando]; if (void 0 !== i) { if (void 0 !== t) { n = (t = Array.isArray(t) ? t.map(V) : (t = V(t)) in i ? [t] : t.match(x) || []).length; for (; n--;)delete i[t[n]] } void 0 !== t && !b.isEmptyObject(i) || (e.nodeType ? e[this.expando] = void 0 : delete e[this.expando]) } }, hasData: function (e) { e = e[this.expando]; return void 0 !== e && !b.isEmptyObject(e) } }; var q = new J, K = new J, X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, Z = /[A-Z]/g; function $(e, t, n) { var i, r; if (void 0 === n && 1 === e.nodeType) if (i = "data-" + t.replace(Z, "-$&").toLowerCase(), "string" == typeof (n = e.getAttribute(i))) { try { n = "true" === (r = n) || "false" !== r && ("null" === r ? null : r === +r + "" ? +r : X.test(r) ? JSON.parse(r) : r) } catch (e) { } K.set(e, t, n) } else n = void 0; return n } b.extend({ hasData: function (e) { return K.hasData(e) || q.hasData(e) }, data: function (e, t, n) { return K.access(e, t, n) }, removeData: function (e, t) { K.remove(e, t) }, _data: function (e, t, n) { return q.access(e, t, n) }, _removeData: function (e, t) { q.remove(e, t) } }), b.fn.extend({ data: function (n, e) { var t, i, r, a = this[0], s = a && a.attributes; if (void 0 !== n) return "object" == typeof n ? this.each(function () { K.set(this, n) }) : B(this, function (e) { var t; return a && void 0 === e ? void 0 !== (t = K.get(a, n)) || void 0 !== (t = $(a, n)) ? t : void 0 : void this.each(function () { K.set(this, n, e) }) }, null, e, 1 < arguments.length, null, !0); if (this.length && (r = K.get(a), 1 === a.nodeType && !q.get(a, "hasDataAttrs"))) { for (t = s.length; t--;)s[t] && 0 === (i = s[t].name).indexOf("data-") && (i = V(i.slice(5)), $(a, i, r[i])); q.set(a, "hasDataAttrs", !0) } return r }, removeData: function (e) { return this.each(function () { K.remove(this, e) }) } }), b.extend({ queue: function (e, t, n) { var i; if (e) return i = q.get(e, t = (t || "fx") + "queue"), n && (!i || Array.isArray(n) ? i = q.access(e, t, b.makeArray(n)) : i.push(n)), i || [] }, dequeue: function (e, t) { t = t || "fx"; var n = b.queue(e, t), i = n.length, r = n.shift(), a = b._queueHooks(e, t); "inprogress" === r && (r = n.shift(), i--), r && ("fx" === t && n.unshift("inprogress"), delete a.stop, r.call(e, function () { b.dequeue(e, t) }, a)), !i && a && a.empty.fire() }, _queueHooks: function (e, t) { var n = t + "queueHooks"; return q.get(e, n) || q.access(e, n, { empty: b.Callbacks("once memory").add(function () { q.remove(e, [t + "queue", n]) }) }) } }), b.fn.extend({ queue: function (t, n) { var e = 2; return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? b.queue(this[0], t) : void 0 === n ? this : this.each(function () { var e = b.queue(this, t, n); b._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && b.dequeue(this, t) }) }, dequeue: function (e) { return this.each(function () { b.dequeue(this, e) }) }, clearQueue: function (e) { return this.queue(e || "fx", []) }, promise: function (e, t) { function n() { --r || a.resolveWith(s, [s]) } var i, r = 1, a = b.Deferred(), s = this, o = this.length; for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; o--;)(i = q.get(s[o], e + "queueHooks")) && i.empty && (r++, i.empty.add(n)); return n(), a.promise(t) } }); var Q = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, ee = new RegExp("^(?:([+-])=|)(" + Q + ")([a-z%]*)$", "i"), te = ["Top", "Right", "Bottom", "Left"], ne = k.documentElement, ie = function (e) { return b.contains(e.ownerDocument, e) }, re = { composed: !0 }; ne.getRootNode && (ie = function (e) { return b.contains(e.ownerDocument, e) || e.getRootNode(re) === e.ownerDocument }); function ae(e, t) { return "none" === (e = t || e).style.display || "" === e.style.display && ie(e) && "none" === b.css(e, "display") } function se(e, t, n, i) { var r, a, s = 20, o = i ? function () { return i.cur() } : function () { return b.css(e, t, "") }, u = o(), d = n && n[3] || (b.cssNumber[t] ? "" : "px"), l = e.nodeType && (b.cssNumber[t] || "px" !== d && +u) && ee.exec(b.css(e, t)); if (l && l[3] !== d) { for (d = d || l[3], l = +(u /= 2) || 1; s--;)b.style(e, t, l + d), (1 - a) * (1 - (a = o() / u || .5)) <= 0 && (s = 0), l /= a; b.style(e, t, (l *= 2) + d), n = n || [] } return n && (l = +l || +u || 0, r = n[1] ? l + (n[1] + 1) * n[2] : +n[2], i && (i.unit = d, i.start = l, i.end = r)), r } var oe = {}; function ue(e, t) { for (var n, i, r, a, s, o = [], u = 0, d = e.length; u < d; u++)(i = e[u]).style && (n = i.style.display, t ? ("none" === n && (o[u] = q.get(i, "display") || null, o[u] || (i.style.display = "")), "" === i.style.display && ae(i) && (o[u] = (s = a = void 0, a = (r = i).ownerDocument, s = r.nodeName, (r = oe[s]) || (a = a.body.appendChild(a.createElement(s)), r = b.css(a, "display"), a.parentNode.removeChild(a), oe[s] = r = "none" === r ? "block" : r)))) : "none" !== n && (o[u] = "none", q.set(i, "display", n))); for (u = 0; u < d; u++)null != o[u] && (e[u].style.display = o[u]); return e } b.fn.extend({ show: function () { return ue(this, !0) }, hide: function () { return ue(this) }, toggle: function (e) { return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () { ae(this) ? b(this).show() : b(this).hide() }) } }); var de = /^(?:checkbox|radio)$/i, le = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, he = /^$|^module$|\/(?:java|ecma)script/i; Jt = k.createDocumentFragment().appendChild(k.createElement("div")), (c = k.createElement("input")).setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), Jt.appendChild(c), g.checkClone = Jt.cloneNode(!0).cloneNode(!0).lastChild.checked, Jt.innerHTML = "<textarea>x</textarea>", g.noCloneChecked = !!Jt.cloneNode(!0).lastChild.defaultValue, Jt.innerHTML = "<option></option>", g.option = !!Jt.lastChild; var ce = { thead: [1, "<table>", "</table>"], col: [2, "<table><colgroup>", "</colgroup></table>"], tr: [2, "<table><tbody>", "</tbody></table>"], td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], _default: [0, "", ""] }; function _e(e, t) { var n = void 0 !== e.getElementsByTagName ? e.getElementsByTagName(t || "*") : void 0 !== e.querySelectorAll ? e.querySelectorAll(t || "*") : []; return void 0 === t || t && D(e, t) ? b.merge([e], n) : n } function fe(e, t) { for (var n = 0, i = e.length; n < i; n++)q.set(e[n], "globalEval", !t || q.get(t[n], "globalEval")) } ce.tbody = ce.tfoot = ce.colgroup = ce.caption = ce.thead, ce.th = ce.td, g.option || (ce.optgroup = ce.option = [1, "<select multiple='multiple'>", "</select>"]); var me = /<|&#?\w+;/; function pe(e, t, n, i, r) { for (var a, s, o, u, d, l = t.createDocumentFragment(), h = [], c = 0, _ = e.length; c < _; c++)if ((a = e[c]) || 0 === a) if ("object" === f(a)) b.merge(h, a.nodeType ? [a] : a); else if (me.test(a)) { for (s = s || l.appendChild(t.createElement("div")), o = (le.exec(a) || ["", ""])[1].toLowerCase(), o = ce[o] || ce._default, s.innerHTML = o[1] + b.htmlPrefilter(a) + o[2], d = o[0]; d--;)s = s.lastChild; b.merge(h, s.childNodes), (s = l.firstChild).textContent = "" } else h.push(t.createTextNode(a)); for (l.textContent = "", c = 0; a = h[c++];)if (i && -1 < b.inArray(a, i)) r && r.push(a); else if (u = ie(a), s = _e(l.appendChild(a), "script"), u && fe(s), n) for (d = 0; a = s[d++];)he.test(a.type || "") && n.push(a); return l } var ye = /^([^.]*)(?:\.(.+)|)/; function ve() { return !0 } function ge() { return !1 } function Me(e, t) { return e === function () { try { return k.activeElement } catch (e) { } }() == ("focus" === t) } function Le(e, t, n, i, r, a) { var s, o; if ("object" == typeof t) { for (o in "string" != typeof n && (i = i || n, n = void 0), t) Le(e, o, n, i, t[o], a); return e } if (null == i && null == r ? (r = n, i = n = void 0) : null == r && ("string" == typeof n ? (r = i, i = void 0) : (r = i, i = n, n = void 0)), !1 === r) r = ge; else if (!r) return e; return 1 === a && (s = r, (r = function (e) { return b().off(e), s.apply(this, arguments) }).guid = s.guid || (s.guid = b.guid++)), e.each(function () { b.event.add(this, t, r, i, n) }) } function Se(e, r, a) { a ? (q.set(e, r, !1), b.event.add(e, r, { namespace: !1, handler: function (e) { var t, n, i = q.get(this, r); if (1 & e.isTrigger && this[r]) { if (i.length) (b.event.special[r] || {}).delegateType && e.stopPropagation(); else if (i = o.call(arguments), q.set(this, r, i), t = a(this, r), this[r](), i !== (n = q.get(this, r)) || t ? q.set(this, r, !1) : n = {}, i !== n) return e.stopImmediatePropagation(), e.preventDefault(), n && n.value } else i.length && (q.set(this, r, { value: b.event.trigger(b.extend(i[0], b.Event.prototype), i.slice(1), this) }), e.stopImmediatePropagation()) } })) : void 0 === q.get(e, r) && b.event.add(e, r, ve) } b.event = { global: {}, add: function (t, e, n, i, r) { var a, s, o, u, d, l, h, c, _, f = q.get(t); if (G(t)) for (n.handler && (n = (a = n).handler, r = a.selector), r && b.find.matchesSelector(ne, r), n.guid || (n.guid = b.guid++), (o = f.events) || (o = f.events = Object.create(null)), (s = f.handle) || (s = f.handle = function (e) { return void 0 !== b && b.event.triggered !== e.type ? b.event.dispatch.apply(t, arguments) : void 0 }), u = (e = (e || "").match(x) || [""]).length; u--;)h = _ = (d = ye.exec(e[u]) || [])[1], c = (d[2] || "").split(".").sort(), h && (l = b.event.special[h] || {}, h = (r ? l.delegateType : l.bindType) || h, l = b.event.special[h] || {}, d = b.extend({ type: h, origType: _, data: i, handler: n, guid: n.guid, selector: r, needsContext: r && b.expr.match.needsContext.test(r), namespace: c.join(".") }, a), (_ = o[h]) || ((_ = o[h] = []).delegateCount = 0, l.setup && !1 !== l.setup.call(t, i, c, s) || t.addEventListener && t.addEventListener(h, s)), l.add && (l.add.call(t, d), d.handler.guid || (d.handler.guid = n.guid)), r ? _.splice(_.delegateCount++, 0, d) : _.push(d), b.event.global[h] = !0) }, remove: function (e, t, n, i, r) { var a, s, o, u, d, l, h, c, _, f, m, p = q.hasData(e) && q.get(e); if (p && (u = p.events)) { for (d = (t = (t || "").match(x) || [""]).length; d--;)if (_ = m = (o = ye.exec(t[d]) || [])[1], f = (o[2] || "").split(".").sort(), _) { for (h = b.event.special[_] || {}, c = u[_ = (i ? h.delegateType : h.bindType) || _] || [], o = o[2] && new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)"), s = a = c.length; a--;)l = c[a], !r && m !== l.origType || n && n.guid !== l.guid || o && !o.test(l.namespace) || i && i !== l.selector && ("**" !== i || !l.selector) || (c.splice(a, 1), l.selector && c.delegateCount--, h.remove && h.remove.call(e, l)); s && !c.length && (h.teardown && !1 !== h.teardown.call(e, f, p.handle) || b.removeEvent(e, _, p.handle), delete u[_]) } else for (_ in u) b.event.remove(e, _ + t[d], n, i, !0); b.isEmptyObject(u) && q.remove(e, "handle events") } }, dispatch: function (e) { var t, n, i, r, a, s = new Array(arguments.length), o = b.event.fix(e), u = (q.get(this, "events") || Object.create(null))[o.type] || [], e = b.event.special[o.type] || {}; for (s[0] = o, t = 1; t < arguments.length; t++)s[t] = arguments[t]; if (o.delegateTarget = this, !e.preDispatch || !1 !== e.preDispatch.call(this, o)) { for (a = b.event.handlers.call(this, o, u), t = 0; (i = a[t++]) && !o.isPropagationStopped();)for (o.currentTarget = i.elem, n = 0; (r = i.handlers[n++]) && !o.isImmediatePropagationStopped();)o.rnamespace && !1 !== r.namespace && !o.rnamespace.test(r.namespace) || (o.handleObj = r, o.data = r.data, void 0 !== (r = ((b.event.special[r.origType] || {}).handle || r.handler).apply(i.elem, s)) && !1 === (o.result = r) && (o.preventDefault(), o.stopPropagation())); return e.postDispatch && e.postDispatch.call(this, o), o.result } }, handlers: function (e, t) { var n, i, r, a, s, o = [], u = t.delegateCount, d = e.target; if (u && d.nodeType && !("click" === e.type && 1 <= e.button)) for (; d !== this; d = d.parentNode || this)if (1 === d.nodeType && ("click" !== e.type || !0 !== d.disabled)) { for (a = [], s = {}, n = 0; n < u; n++)void 0 === s[r = (i = t[n]).selector + " "] && (s[r] = i.needsContext ? -1 < b(r, this).index(d) : b.find(r, this, null, [d]).length), s[r] && a.push(i); a.length && o.push({ elem: d, handlers: a }) } return d = this, u < t.length && o.push({ elem: d, handlers: t.slice(u) }), o }, addProp: function (t, e) { Object.defineProperty(b.Event.prototype, t, { enumerable: !0, configurable: !0, get: m(e) ? function () { if (this.originalEvent) return e(this.originalEvent) } : function () { if (this.originalEvent) return this.originalEvent[t] }, set: function (e) { Object.defineProperty(this, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) } }) }, fix: function (e) { return e[b.expando] ? e : new b.Event(e) }, special: { load: { noBubble: !0 }, click: { setup: function (e) { e = this || e; return de.test(e.type) && e.click && D(e, "input") && Se(e, "click", ve), !1 }, trigger: function (e) { e = this || e; return de.test(e.type) && e.click && D(e, "input") && Se(e, "click"), !0 }, _default: function (e) { e = e.target; return de.test(e.type) && e.click && D(e, "input") && q.get(e, "click") || D(e, "a") } }, beforeunload: { postDispatch: function (e) { void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result) } } } }, b.removeEvent = function (e, t, n) { e.removeEventListener && e.removeEventListener(t, n) }, b.Event = function (e, t) { if (!(this instanceof b.Event)) return new b.Event(e, t); e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? ve : ge, this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target, this.currentTarget = e.currentTarget, this.relatedTarget = e.relatedTarget) : this.type = e, t && b.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[b.expando] = !0 }, b.Event.prototype = { constructor: b.Event, isDefaultPrevented: ge, isPropagationStopped: ge, isImmediatePropagationStopped: ge, isSimulated: !1, preventDefault: function () { var e = this.originalEvent; this.isDefaultPrevented = ve, e && !this.isSimulated && e.preventDefault() }, stopPropagation: function () { var e = this.originalEvent; this.isPropagationStopped = ve, e && !this.isSimulated && e.stopPropagation() }, stopImmediatePropagation: function () { var e = this.originalEvent; this.isImmediatePropagationStopped = ve, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation() } }, b.each({ altKey: !0, bubbles: !0, cancelable: !0, changedTouches: !0, ctrlKey: !0, detail: !0, eventPhase: !0, metaKey: !0, pageX: !0, pageY: !0, shiftKey: !0, view: !0, char: !0, code: !0, charCode: !0, key: !0, keyCode: !0, button: !0, buttons: !0, clientX: !0, clientY: !0, offsetX: !0, offsetY: !0, pointerId: !0, pointerType: !0, screenX: !0, screenY: !0, targetTouches: !0, toElement: !0, touches: !0, which: !0 }, b.event.addProp), b.each({ focus: "focusin", blur: "focusout" }, function (e, t) { b.event.special[e] = { setup: function () { return Se(this, e, Me), !1 }, trigger: function () { return Se(this, e), !0 }, _default: function () { return !0 }, delegateType: t } }), b.each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function (e, r) { b.event.special[e] = { delegateType: r, bindType: r, handle: function (e) { var t, n = e.relatedTarget, i = e.handleObj; return n && (n === this || b.contains(this, n)) || (e.type = i.origType, t = i.handler.apply(this, arguments), e.type = r), t } } }), b.fn.extend({ on: function (e, t, n, i) { return Le(this, e, t, n, i) }, one: function (e, t, n, i) { return Le(this, e, t, n, i, 1) }, off: function (e, t, n) { var i, r; if (e && e.preventDefault && e.handleObj) return i = e.handleObj, b(e.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this; if ("object" != typeof e) return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = ge), this.each(function () { b.event.remove(this, e, n, t) }); for (r in e) this.off(r, t, e[r]); return this } }); var ke = /<script|<style|<link/i, be = /checked\s*(?:[^=]|=\s*.checked.)/i, we = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; function De(e, t) { return D(e, "table") && D(11 !== t.nodeType ? t : t.firstChild, "tr") && b(e).children("tbody")[0] || e } function Te(e) { return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e } function Ee(e) { return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e } function Ye(e, t) { var n, i, r, a; if (1 === t.nodeType) { if (q.hasData(e) && (a = q.get(e).events)) for (r in q.remove(t, "handle events"), a) for (n = 0, i = a[r].length; n < i; n++)b.event.add(t, r, a[r][n]); K.hasData(e) && (e = K.access(e), e = b.extend({}, e), K.set(t, e)) } } function Pe(n, i, r, a) { i = y(i); var e, t, s, o, u, d, l = 0, h = n.length, c = h - 1, _ = i[0], f = m(_); if (f || 1 < h && "string" == typeof _ && !g.checkClone && be.test(_)) return n.each(function (e) { var t = n.eq(e); f && (i[0] = _.call(this, e, t.html())), Pe(t, i, r, a) }); if (h && (t = (e = pe(i, n[0].ownerDocument, !1, n, a)).firstChild, 1 === e.childNodes.length && (e = t), t || a)) { for (o = (s = b.map(_e(e, "script"), Te)).length; l < h; l++)u = e, l !== c && (u = b.clone(u, !0, !0), o && b.merge(s, _e(u, "script"))), r.call(n[l], u, l); if (o) for (d = s[s.length - 1].ownerDocument, b.map(s, Ee), l = 0; l < o; l++)u = s[l], he.test(u.type || "") && !q.access(u, "globalEval") && b.contains(d, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? b._evalUrl && !u.noModule && b._evalUrl(u.src, { nonce: u.nonce || u.getAttribute("nonce") }, d) : M(u.textContent.replace(we, ""), u, d)) } return n } function Ce(e, t, n) { for (var i, r = t ? b.filter(t, e) : e, a = 0; null != (i = r[a]); a++)n || 1 !== i.nodeType || b.cleanData(_e(i)), i.parentNode && (n && ie(i) && fe(_e(i, "script")), i.parentNode.removeChild(i)); return e } b.extend({ htmlPrefilter: function (e) { return e }, clone: function (e, t, n) { var i, r, a, s, o, u, d, l = e.cloneNode(!0), h = ie(e); if (!(g.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || b.isXMLDoc(e))) for (s = _e(l), i = 0, r = (a = _e(e)).length; i < r; i++)o = a[i], u = s[i], d = void 0, "input" === (d = u.nodeName.toLowerCase()) && de.test(o.type) ? u.checked = o.checked : "input" !== d && "textarea" !== d || (u.defaultValue = o.defaultValue); if (t) if (n) for (a = a || _e(e), s = s || _e(l), i = 0, r = a.length; i < r; i++)Ye(a[i], s[i]); else Ye(e, l); return 0 < (s = _e(l, "script")).length && fe(s, !h && _e(e, "script")), l }, cleanData: function (e) { for (var t, n, i, r = b.event.special, a = 0; void 0 !== (n = e[a]); a++)if (G(n)) { if (t = n[q.expando]) { if (t.events) for (i in t.events) r[i] ? b.event.remove(n, i) : b.removeEvent(n, i, t.handle); n[q.expando] = void 0 } n[K.expando] && (n[K.expando] = void 0) } } }), b.fn.extend({ detach: function (e) { return Ce(this, e, !0) }, remove: function (e) { return Ce(this, e) }, text: function (e) { return B(this, function (e) { return void 0 === e ? b.text(this) : this.empty().each(function () { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = e) }) }, null, e, arguments.length) }, append: function () { return Pe(this, arguments, function (e) { 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || De(this, e).appendChild(e) }) }, prepend: function () { return Pe(this, arguments, function (e) { var t; 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (t = De(this, e)).insertBefore(e, t.firstChild) }) }, before: function () { return Pe(this, arguments, function (e) { this.parentNode && this.parentNode.insertBefore(e, this) }) }, after: function () { return Pe(this, arguments, function (e) { this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) }) }, empty: function () { for (var e, t = 0; null != (e = this[t]); t++)1 === e.nodeType && (b.cleanData(_e(e, !1)), e.textContent = ""); return this }, clone: function (e, t) { return e = null != e && e, t = null == t ? e : t, this.map(function () { return b.clone(this, e, t) }) }, html: function (e) { return B(this, function (e) { var t = this[0] || {}, n = 0, i = this.length; if (void 0 === e && 1 === t.nodeType) return t.innerHTML; if ("string" == typeof e && !ke.test(e) && !ce[(le.exec(e) || ["", ""])[1].toLowerCase()]) { e = b.htmlPrefilter(e); try { for (; n < i; n++)1 === (t = this[n] || {}).nodeType && (b.cleanData(_e(t, !1)), t.innerHTML = e); t = 0 } catch (e) { } } t && this.empty().append(e) }, null, e, arguments.length) }, replaceWith: function () { var n = []; return Pe(this, arguments, function (e) { var t = this.parentNode; b.inArray(this, n) < 0 && (b.cleanData(_e(this)), t && t.replaceChild(e, this)) }, n) } }), b.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function (e, s) { b.fn[e] = function (e) { for (var t, n = [], i = b(e), r = i.length - 1, a = 0; a <= r; a++)t = a === r ? this : this.clone(!0), b(i[a])[s](t), u.apply(n, t.get()); return this.pushStack(n) } }); function Ae(e) { var t = e.ownerDocument.defaultView; return (t = !t || !t.opener ? S : t).getComputedStyle(e) } function Re(e, t, n) { var i, r = {}; for (i in t) r[i] = e.style[i], e.style[i] = t[i]; for (i in n = n.call(e), t) e.style[i] = r[i]; return n } var xe, Oe, Ie, We, He, je, Fe, Be, Ne = new RegExp("^(" + Q + ")(?!px)[a-z%]+$", "i"), ze = new RegExp(te.join("|"), "i"); function Ue() { var e; Be && (Fe.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", Be.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", ne.appendChild(Fe).appendChild(Be), e = S.getComputedStyle(Be), xe = "1%" !== e.top, je = 12 === Ve(e.marginLeft), Be.style.right = "60%", We = 36 === Ve(e.right), Oe = 36 === Ve(e.width), Be.style.position = "absolute", Ie = 12 === Ve(Be.offsetWidth / 3), ne.removeChild(Fe), Be = null) } function Ve(e) { return Math.round(parseFloat(e)) } function Ge(e, t, n) { var i, r, a = e.style; return (n = n || Ae(e)) && ("" !== (r = n.getPropertyValue(t) || n[t]) || ie(e) || (r = b.style(e, t)), !g.pixelBoxStyles() && Ne.test(r) && ze.test(t) && (i = a.width, e = a.minWidth, t = a.maxWidth, a.minWidth = a.maxWidth = a.width = r, r = n.width, a.width = i, a.minWidth = e, a.maxWidth = t)), void 0 !== r ? r + "" : r } function Je(e, t) { return { get: function () { if (!e()) return (this.get = t).apply(this, arguments); delete this.get } } } Fe = k.createElement("div"), (Be = k.createElement("div")).style && (Be.style.backgroundClip = "content-box", Be.cloneNode(!0).style.backgroundClip = "", g.clearCloneStyle = "content-box" === Be.style.backgroundClip, b.extend(g, { boxSizingReliable: function () { return Ue(), Oe }, pixelBoxStyles: function () { return Ue(), We }, pixelPosition: function () { return Ue(), xe }, reliableMarginLeft: function () { return Ue(), je }, scrollboxSize: function () { return Ue(), Ie }, reliableTrDimensions: function () { var e, t, n; return null == He && (e = k.createElement("table"), t = k.createElement("tr"), n = k.createElement("div"), e.style.cssText = "position:absolute;left:-11111px;border-collapse:separate", t.style.cssText = "border:1px solid", t.style.height = "1px", n.style.height = "9px", n.style.display = "block", ne.appendChild(e).appendChild(t).appendChild(n), n = S.getComputedStyle(t), He = parseInt(n.height, 10) + parseInt(n.borderTopWidth, 10) + parseInt(n.borderBottomWidth, 10) === t.offsetHeight, ne.removeChild(e)), He } })); var qe = ["Webkit", "Moz", "ms"], Ke = k.createElement("div").style, Xe = {}; function Ze(e) { var t = b.cssProps[e] || Xe[e]; return t || (e in Ke ? e : Xe[e] = function (e) { for (var t = e[0].toUpperCase() + e.slice(1), n = qe.length; n--;)if ((e = qe[n] + t) in Ke) return e }(e) || e) } var $e = /^(none|table(?!-c[ea]).+)/, Qe = /^--/, et = { position: "absolute", visibility: "hidden", display: "block" }, tt = { letterSpacing: "0", fontWeight: "400" }; function nt(e, t, n) { var i = ee.exec(t); return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : t } function it(e, t, n, i, r, a) { var s = "width" === t ? 1 : 0, o = 0, u = 0; if (n === (i ? "border" : "content")) return 0; for (; s < 4; s += 2)"margin" === n && (u += b.css(e, n + te[s], !0, r)), i ? ("content" === n && (u -= b.css(e, "padding" + te[s], !0, r)), "margin" !== n && (u -= b.css(e, "border" + te[s] + "Width", !0, r))) : (u += b.css(e, "padding" + te[s], !0, r), "padding" !== n ? u += b.css(e, "border" + te[s] + "Width", !0, r) : o += b.css(e, "border" + te[s] + "Width", !0, r)); return !i && 0 <= a && (u += Math.max(0, Math.ceil(e["offset" + t[0].toUpperCase() + t.slice(1)] - a - u - o - .5)) || 0), u } function rt(e, t, n) { var i = Ae(e), r = (!g.boxSizingReliable() || n) && "border-box" === b.css(e, "boxSizing", !1, i), a = r, s = Ge(e, t, i), o = "offset" + t[0].toUpperCase() + t.slice(1); if (Ne.test(s)) { if (!n) return s; s = "auto" } return (!g.boxSizingReliable() && r || !g.reliableTrDimensions() && D(e, "tr") || "auto" === s || !parseFloat(s) && "inline" === b.css(e, "display", !1, i)) && e.getClientRects().length && (r = "border-box" === b.css(e, "boxSizing", !1, i), (a = o in e) && (s = e[o])), (s = parseFloat(s) || 0) + it(e, t, n || (r ? "border" : "content"), a, i, s) + "px" } function at(e, t, n, i, r) { return new at.prototype.init(e, t, n, i, r) } b.extend({ cssHooks: { opacity: { get: function (e, t) { if (t) { e = Ge(e, "opacity"); return "" === e ? "1" : e } } } }, cssNumber: { animationIterationCount: !0, columnCount: !0, fillOpacity: !0, flexGrow: !0, flexShrink: !0, fontWeight: !0, gridArea: !0, gridColumn: !0, gridColumnEnd: !0, gridColumnStart: !0, gridRow: !0, gridRowEnd: !0, gridRowStart: !0, lineHeight: !0, opacity: !0, order: !0, orphans: !0, widows: !0, zIndex: !0, zoom: !0 }, cssProps: {}, style: function (e, t, n, i) { if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { var r, a, s, o = V(t), u = Qe.test(t), d = e.style; if (u || (t = Ze(o)), s = b.cssHooks[t] || b.cssHooks[o], void 0 === n) return s && "get" in s && void 0 !== (r = s.get(e, !1, i)) ? r : d[t]; "string" === (a = typeof n) && (r = ee.exec(n)) && r[1] && (n = se(e, t, r), a = "number"), null != n && n == n && ("number" !== a || u || (n += r && r[3] || (b.cssNumber[o] ? "" : "px")), g.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (d[t] = "inherit"), s && "set" in s && void 0 === (n = s.set(e, n, i)) || (u ? d.setProperty(t, n) : d[t] = n)) } }, css: function (e, t, n, i) { var r, a = V(t); return Qe.test(t) || (t = Ze(a)), "normal" === (r = void 0 === (r = (a = b.cssHooks[t] || b.cssHooks[a]) && "get" in a ? a.get(e, !0, n) : r) ? Ge(e, t, i) : r) && t in tt && (r = tt[t]), "" === n || n ? (t = parseFloat(r), !0 === n || isFinite(t) ? t || 0 : r) : r } }), b.each(["height", "width"], function (e, o) { b.cssHooks[o] = { get: function (e, t, n) { if (t) return !$e.test(b.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? rt(e, o, n) : Re(e, et, function () { return rt(e, o, n) }) }, set: function (e, t, n) { var i, r = Ae(e), a = !g.scrollboxSize() && "absolute" === r.position, s = (a || n) && "border-box" === b.css(e, "boxSizing", !1, r), n = n ? it(e, o, n, s, r) : 0; return s && a && (n -= Math.ceil(e["offset" + o[0].toUpperCase() + o.slice(1)] - parseFloat(r[o]) - it(e, o, "border", !1, r) - .5)), n && (i = ee.exec(t)) && "px" !== (i[3] || "px") && (e.style[o] = t, t = b.css(e, o)), nt(0, t, n) } } }), b.cssHooks.marginLeft = Je(g.reliableMarginLeft, function (e, t) { if (t) return (parseFloat(Ge(e, "marginLeft")) || e.getBoundingClientRect().left - Re(e, { marginLeft: 0 }, function () { return e.getBoundingClientRect().left })) + "px" }), b.each({ margin: "", padding: "", border: "Width" }, function (r, a) { b.cssHooks[r + a] = { expand: function (e) { for (var t = 0, n = {}, i = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++)n[r + te[t] + a] = i[t] || i[t - 2] || i[0]; return n } }, "margin" !== r && (b.cssHooks[r + a].set = nt) }), b.fn.extend({ css: function (e, t) { return B(this, function (e, t, n) { var i, r, a = {}, s = 0; if (Array.isArray(t)) { for (i = Ae(e), r = t.length; s < r; s++)a[t[s]] = b.css(e, t[s], !1, i); return a } return void 0 !== n ? b.style(e, t, n) : b.css(e, t) }, e, t, 1 < arguments.length) } }), ((b.Tween = at).prototype = { constructor: at, init: function (e, t, n, i, r, a) { this.elem = e, this.prop = n, this.easing = r || b.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = i, this.unit = a || (b.cssNumber[n] ? "" : "px") }, cur: function () { var e = at.propHooks[this.prop]; return (e && e.get ? e : at.propHooks._default).get(this) }, run: function (e) { var t, n = at.propHooks[this.prop]; return this.options.duration ? this.pos = t = b.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), (n && n.set ? n : at.propHooks._default).set(this), this } }).init.prototype = at.prototype, (at.propHooks = { _default: { get: function (e) { return 1 !== e.elem.nodeType || null != e.elem[e.prop] && null == e.elem.style[e.prop] ? e.elem[e.prop] : (e = b.css(e.elem, e.prop, "")) && "auto" !== e ? e : 0 }, set: function (e) { b.fx.step[e.prop] ? b.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !b.cssHooks[e.prop] && null == e.elem.style[Ze(e.prop)] ? e.elem[e.prop] = e.now : b.style(e.elem, e.prop, e.now + e.unit) } } }).scrollTop = at.propHooks.scrollLeft = { set: function (e) { e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now) } }, b.easing = { linear: function (e) { return e }, swing: function (e) { return .5 - Math.cos(e * Math.PI) / 2 }, _default: "swing" }, b.fx = at.prototype.init, b.fx.step = {}; var st, ot, ut = /^(?:toggle|show|hide)$/, dt = /queueHooks$/; function lt() { ot && (!1 === k.hidden && S.requestAnimationFrame ? S.requestAnimationFrame(lt) : S.setTimeout(lt, b.fx.interval), b.fx.tick()) } function ht() { return S.setTimeout(function () { st = void 0 }), st = Date.now() } function ct(e, t) { var n, i = 0, r = { height: e }; for (t = t ? 1 : 0; i < 4; i += 2 - t)r["margin" + (n = te[i])] = r["padding" + n] = e; return t && (r.opacity = r.width = e), r } function _t(e, t, n) { for (var i, r = (ft.tweeners[t] || []).concat(ft.tweeners["*"]), a = 0, s = r.length; a < s; a++)if (i = r[a].call(n, t, e)) return i } function ft(r, e, t) { var n, a, i = 0, s = ft.prefilters.length, o = b.Deferred().always(function () { delete u.elem }), u = function () { if (a) return !1; for (var e = st || ht(), e = Math.max(0, d.startTime + d.duration - e), t = 1 - (e / d.duration || 0), n = 0, i = d.tweens.length; n < i; n++)d.tweens[n].run(t); return o.notifyWith(r, [d, t, e]), t < 1 && i ? e : (i || o.notifyWith(r, [d, 1, 0]), o.resolveWith(r, [d]), !1) }, d = o.promise({ elem: r, props: b.extend({}, e), opts: b.extend(!0, { specialEasing: {}, easing: b.easing._default }, t), originalProperties: e, originalOptions: t, startTime: st || ht(), duration: t.duration, tweens: [], createTween: function (e, t) { e = b.Tween(r, d.opts, e, t, d.opts.specialEasing[e] || d.opts.easing); return d.tweens.push(e), e }, stop: function (e) { var t = 0, n = e ? d.tweens.length : 0; if (a) return this; for (a = !0; t < n; t++)d.tweens[t].run(1); return e ? (o.notifyWith(r, [d, 1, 0]), o.resolveWith(r, [d, e])) : o.rejectWith(r, [d, e]), this } }), l = d.props; for (!function (e, t) { var n, i, r, a, s; for (n in e) if (r = t[i = V(n)], a = e[n], Array.isArray(a) && (r = a[1], a = e[n] = a[0]), n !== i && (e[i] = a, delete e[n]), (s = b.cssHooks[i]) && "expand" in s) for (n in a = s.expand(a), delete e[i], a) n in e || (e[n] = a[n], t[n] = r); else t[i] = r }(l, d.opts.specialEasing); i < s; i++)if (n = ft.prefilters[i].call(d, r, l, d.opts)) return m(n.stop) && (b._queueHooks(d.elem, d.opts.queue).stop = n.stop.bind(n)), n; return b.map(l, _t, d), m(d.opts.start) && d.opts.start.call(r, d), d.progress(d.opts.progress).done(d.opts.done, d.opts.complete).fail(d.opts.fail).always(d.opts.always), b.fx.timer(b.extend(u, { elem: r, anim: d, queue: d.opts.queue })), d } b.Animation = b.extend(ft, { tweeners: { "*": [function (e, t) { var n = this.createTween(e, t); return se(n.elem, e, ee.exec(t), n), n }] }, tweener: function (e, t) { for (var n, i = 0, r = (e = m(e) ? (t = e, ["*"]) : e.match(x)).length; i < r; i++)n = e[i], ft.tweeners[n] = ft.tweeners[n] || [], ft.tweeners[n].unshift(t) }, prefilters: [function (e, t, n) { var i, r, a, s, o, u, d, l = "width" in t || "height" in t, h = this, c = {}, _ = e.style, f = e.nodeType && ae(e), m = q.get(e, "fxshow"); for (i in n.queue || (null == (s = b._queueHooks(e, "fx")).unqueued && (s.unqueued = 0, o = s.empty.fire, s.empty.fire = function () { s.unqueued || o() }), s.unqueued++, h.always(function () { h.always(function () { s.unqueued--, b.queue(e, "fx").length || s.empty.fire() }) })), t) if (r = t[i], ut.test(r)) { if (delete t[i], a = a || "toggle" === r, r === (f ? "hide" : "show")) { if ("show" !== r || !m || void 0 === m[i]) continue; f = !0 } c[i] = m && m[i] || b.style(e, i) } if ((u = !b.isEmptyObject(t)) || !b.isEmptyObject(c)) for (i in l && 1 === e.nodeType && (n.overflow = [_.overflow, _.overflowX, _.overflowY], null == (d = m && m.display) && (d = q.get(e, "display")), "none" === (l = b.css(e, "display")) && (d ? l = d : (ue([e], !0), d = e.style.display || d, l = b.css(e, "display"), ue([e]))), ("inline" === l || "inline-block" === l && null != d) && "none" === b.css(e, "float") && (u || (h.done(function () { _.display = d }), null == d && (l = _.display, d = "none" === l ? "" : l)), _.display = "inline-block")), n.overflow && (_.overflow = "hidden", h.always(function () { _.overflow = n.overflow[0], _.overflowX = n.overflow[1], _.overflowY = n.overflow[2] })), u = !1, c) u || (m ? "hidden" in m && (f = m.hidden) : m = q.access(e, "fxshow", { display: d }), a && (m.hidden = !f), f && ue([e], !0), h.done(function () { for (i in f || ue([e]), q.remove(e, "fxshow"), c) b.style(e, i, c[i]) })), u = _t(f ? m[i] : 0, i, h), i in m || (m[i] = u.start, f && (u.end = u.start, u.start = 0)) }], prefilter: function (e, t) { t ? ft.prefilters.unshift(e) : ft.prefilters.push(e) } }), b.speed = function (e, t, n) { var i = e && "object" == typeof e ? b.extend({}, e) : { complete: n || !n && t || m(e) && e, duration: e, easing: n && t || t && !m(t) && t }; return b.fx.off ? i.duration = 0 : "number" != typeof i.duration && (i.duration in b.fx.speeds ? i.duration = b.fx.speeds[i.duration] : i.duration = b.fx.speeds._default), null != i.queue && !0 !== i.queue || (i.queue = "fx"), i.old = i.complete, i.complete = function () { m(i.old) && i.old.call(this), i.queue && b.dequeue(this, i.queue) }, i }, b.fn.extend({ fadeTo: function (e, t, n, i) { return this.filter(ae).css("opacity", 0).show().end().animate({ opacity: t }, e, n, i) }, animate: function (t, e, n, i) { var r = b.isEmptyObject(t), a = b.speed(e, n, i), i = function () { var e = ft(this, b.extend({}, t), a); (r || q.get(this, "finish")) && e.stop(!0) }; return i.finish = i, r || !1 === a.queue ? this.each(i) : this.queue(a.queue, i) }, stop: function (r, e, a) { function s(e) { var t = e.stop; delete e.stop, t(a) } return "string" != typeof r && (a = e, e = r, r = void 0), e && this.queue(r || "fx", []), this.each(function () { var e = !0, t = null != r && r + "queueHooks", n = b.timers, i = q.get(this); if (t) i[t] && i[t].stop && s(i[t]); else for (t in i) i[t] && i[t].stop && dt.test(t) && s(i[t]); for (t = n.length; t--;)n[t].elem !== this || null != r && n[t].queue !== r || (n[t].anim.stop(a), e = !1, n.splice(t, 1)); !e && a || b.dequeue(this, r) }) }, finish: function (s) { return !1 !== s && (s = s || "fx"), this.each(function () { var e, t = q.get(this), n = t[s + "queue"], i = t[s + "queueHooks"], r = b.timers, a = n ? n.length : 0; for (t.finish = !0, b.queue(this, s, []), i && i.stop && i.stop.call(this, !0), e = r.length; e--;)r[e].elem === this && r[e].queue === s && (r[e].anim.stop(!0), r.splice(e, 1)); for (e = 0; e < a; e++)n[e] && n[e].finish && n[e].finish.call(this); delete t.finish }) } }), b.each(["toggle", "show", "hide"], function (e, i) { var r = b.fn[i]; b.fn[i] = function (e, t, n) { return null == e || "boolean" == typeof e ? r.apply(this, arguments) : this.animate(ct(i, !0), e, t, n) } }), b.each({ slideDown: ct("show"), slideUp: ct("hide"), slideToggle: ct("toggle"), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function (e, i) { b.fn[e] = function (e, t, n) { return this.animate(i, e, t, n) } }), b.timers = [], b.fx.tick = function () { var e, t = 0, n = b.timers; for (st = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1); n.length || b.fx.stop(), st = void 0 }, b.fx.timer = function (e) { b.timers.push(e), b.fx.start() }, b.fx.interval = 13, b.fx.start = function () { ot || (ot = !0, lt()) }, b.fx.stop = function () { ot = null }, b.fx.speeds = { slow: 600, fast: 200, _default: 400 }, b.fn.delay = function (i, e) { return i = b.fx && b.fx.speeds[i] || i, this.queue(e = e || "fx", function (e, t) { var n = S.setTimeout(e, i); t.stop = function () { S.clearTimeout(n) } }) }, Jt = k.createElement("input"), Q = k.createElement("select").appendChild(k.createElement("option")), Jt.type = "checkbox", g.checkOn = "" !== Jt.value, g.optSelected = Q.selected, (Jt = k.createElement("input")).value = "t", Jt.type = "radio", g.radioValue = "t" === Jt.value; var mt, pt = b.expr.attrHandle; b.fn.extend({ attr: function (e, t) { return B(this, b.attr, e, t, 1 < arguments.length) }, removeAttr: function (e) { return this.each(function () { b.removeAttr(this, e) }) } }), b.extend({ attr: function (e, t, n) { var i, r, a = e.nodeType; if (3 !== a && 8 !== a && 2 !== a) return void 0 === e.getAttribute ? b.prop(e, t, n) : (1 === a && b.isXMLDoc(e) || (r = b.attrHooks[t.toLowerCase()] || (b.expr.match.bool.test(t) ? mt : void 0)), void 0 !== n ? null === n ? void b.removeAttr(e, t) : r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : (e.setAttribute(t, n + ""), n) : !(r && "get" in r && null !== (i = r.get(e, t))) && null == (i = b.find.attr(e, t)) ? void 0 : i) }, attrHooks: { type: { set: function (e, t) { if (!g.radioValue && "radio" === t && D(e, "input")) { var n = e.value; return e.setAttribute("type", t), n && (e.value = n), t } } } }, removeAttr: function (e, t) { var n, i = 0, r = t && t.match(x); if (r && 1 === e.nodeType) for (; n = r[i++];)e.removeAttribute(n) } }), mt = { set: function (e, t, n) { return !1 === t ? b.removeAttr(e, n) : e.setAttribute(n, n), n } }, b.each(b.expr.match.bool.source.match(/\w+/g), function (e, t) { var s = pt[t] || b.find.attr; pt[t] = function (e, t, n) { var i, r, a = t.toLowerCase(); return n || (r = pt[a], pt[a] = i, i = null != s(e, t, n) ? a : null, pt[a] = r), i } }); var yt = /^(?:input|select|textarea|button)$/i, vt = /^(?:a|area)$/i; function gt(e) { return (e.match(x) || []).join(" ") } function Mt(e) { return e.getAttribute && e.getAttribute("class") || "" } function Lt(e) { return Array.isArray(e) ? e : "string" == typeof e && e.match(x) || [] } b.fn.extend({ prop: function (e, t) { return B(this, b.prop, e, t, 1 < arguments.length) }, removeProp: function (e) { return this.each(function () { delete this[b.propFix[e] || e] }) } }), b.extend({ prop: function (e, t, n) { var i, r, a = e.nodeType; if (3 !== a && 8 !== a && 2 !== a) return 1 === a && b.isXMLDoc(e) || (t = b.propFix[t] || t, r = b.propHooks[t]), void 0 !== n ? r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : e[t] = n : r && "get" in r && null !== (i = r.get(e, t)) ? i : e[t] }, propHooks: { tabIndex: { get: function (e) { var t = b.find.attr(e, "tabindex"); return t ? parseInt(t, 10) : yt.test(e.nodeName) || vt.test(e.nodeName) && e.href ? 0 : -1 } } }, propFix: { for: "htmlFor", class: "className" } }), g.optSelected || (b.propHooks.selected = { get: function (e) { e = e.parentNode; return e && e.parentNode && e.parentNode.selectedIndex, null }, set: function (e) { e = e.parentNode; e && (e.selectedIndex, e.parentNode && e.parentNode.selectedIndex) } }), b.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { b.propFix[this.toLowerCase()] = this }), b.fn.extend({ addClass: function (t) { var e, n, i, r, a, s, o = 0; if (m(t)) return this.each(function (e) { b(this).addClass(t.call(this, e, Mt(this))) }); if ((e = Lt(t)).length) for (; n = this[o++];)if (s = Mt(n), i = 1 === n.nodeType && " " + gt(s) + " ") { for (a = 0; r = e[a++];)i.indexOf(" " + r + " ") < 0 && (i += r + " "); s !== (s = gt(i)) && n.setAttribute("class", s) } return this }, removeClass: function (t) { var e, n, i, r, a, s, o = 0; if (m(t)) return this.each(function (e) { b(this).removeClass(t.call(this, e, Mt(this))) }); if (!arguments.length) return this.attr("class", ""); if ((e = Lt(t)).length) for (; n = this[o++];)if (s = Mt(n), i = 1 === n.nodeType && " " + gt(s) + " ") { for (a = 0; r = e[a++];)for (; -1 < i.indexOf(" " + r + " ");)i = i.replace(" " + r + " ", " "); s !== (s = gt(i)) && n.setAttribute("class", s) } return this }, toggleClass: function (r, t) { var a = typeof r, s = "string" == a || Array.isArray(r); return "boolean" == typeof t && s ? t ? this.addClass(r) : this.removeClass(r) : m(r) ? this.each(function (e) { b(this).toggleClass(r.call(this, e, Mt(this), t), t) }) : this.each(function () { var e, t, n, i; if (s) for (t = 0, n = b(this), i = Lt(r); e = i[t++];)n.hasClass(e) ? n.removeClass(e) : n.addClass(e); else void 0 !== r && "boolean" != a || ((e = Mt(this)) && q.set(this, "__className__", e), this.setAttribute && this.setAttribute("class", !e && !1 !== r && q.get(this, "__className__") || "")) }) }, hasClass: function (e) { for (var t, n = 0, i = " " + e + " "; t = this[n++];)if (1 === t.nodeType && -1 < (" " + gt(Mt(t)) + " ").indexOf(i)) return !0; return !1 } }); var St = /\r/g; b.fn.extend({ val: function (t) { var n, e, i, r = this[0]; return arguments.length ? (i = m(t), this.each(function (e) { 1 === this.nodeType && (null == (e = i ? t.call(this, e, b(this).val()) : t) ? e = "" : "number" == typeof e ? e += "" : Array.isArray(e) && (e = b.map(e, function (e) { return null == e ? "" : e + "" })), (n = b.valHooks[this.type] || b.valHooks[this.nodeName.toLowerCase()]) && "set" in n && void 0 !== n.set(this, e, "value") || (this.value = e)) })) : r ? (n = b.valHooks[r.type] || b.valHooks[r.nodeName.toLowerCase()]) && "get" in n && void 0 !== (e = n.get(r, "value")) ? e : "string" == typeof (e = r.value) ? e.replace(St, "") : null == e ? "" : e : void 0 } }), b.extend({ valHooks: { option: { get: function (e) { var t = b.find.attr(e, "value"); return null != t ? t : gt(b.text(e)) } }, select: { get: function (e) { for (var t, n = e.options, i = e.selectedIndex, r = "select-one" === e.type, a = r ? null : [], s = r ? i + 1 : n.length, o = i < 0 ? s : r ? i : 0; o < s; o++)if (((t = n[o]).selected || o === i) && !t.disabled && (!t.parentNode.disabled || !D(t.parentNode, "optgroup"))) { if (t = b(t).val(), r) return t; a.push(t) } return a }, set: function (e, t) { for (var n, i, r = e.options, a = b.makeArray(t), s = r.length; s--;)((i = r[s]).selected = -1 < b.inArray(b.valHooks.option.get(i), a)) && (n = !0); return n || (e.selectedIndex = -1), a } } } }), b.each(["radio", "checkbox"], function () { b.valHooks[this] = { set: function (e, t) { if (Array.isArray(t)) return e.checked = -1 < b.inArray(b(e).val(), t) } }, g.checkOn || (b.valHooks[this].get = function (e) { return null === e.getAttribute("value") ? "on" : e.value }) }), g.focusin = "onfocusin" in S; function kt(e) { e.stopPropagation() } var bt = /^(?:focusinfocus|focusoutblur)$/; b.extend(b.event, { trigger: function (e, t, n, i) { var r, a, s, o, u, d, l, h = [n || k], c = v.call(e, "type") ? e.type : e, _ = v.call(e, "namespace") ? e.namespace.split(".") : [], f = l = a = n = n || k; if (3 !== n.nodeType && 8 !== n.nodeType && !bt.test(c + b.event.triggered) && (-1 < c.indexOf(".") && (c = (_ = c.split(".")).shift(), _.sort()), o = c.indexOf(":") < 0 && "on" + c, (e = e[b.expando] ? e : new b.Event(c, "object" == typeof e && e)).isTrigger = i ? 2 : 3, e.namespace = _.join("."), e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + _.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : b.makeArray(t, [e]), d = b.event.special[c] || {}, i || !d.trigger || !1 !== d.trigger.apply(n, t))) { if (!i && !d.noBubble && !p(n)) { for (s = d.delegateType || c, bt.test(s + c) || (f = f.parentNode); f; f = f.parentNode)h.push(f), a = f; a === (n.ownerDocument || k) && h.push(a.defaultView || a.parentWindow || S) } for (r = 0; (f = h[r++]) && !e.isPropagationStopped();)l = f, e.type = 1 < r ? s : d.bindType || c, (u = (q.get(f, "events") || Object.create(null))[e.type] && q.get(f, "handle")) && u.apply(f, t), (u = o && f[o]) && u.apply && G(f) && (e.result = u.apply(f, t), !1 === e.result && e.preventDefault()); return e.type = c, i || e.isDefaultPrevented() || d._default && !1 !== d._default.apply(h.pop(), t) || !G(n) || o && m(n[c]) && !p(n) && ((a = n[o]) && (n[o] = null), b.event.triggered = c, e.isPropagationStopped() && l.addEventListener(c, kt), n[c](), e.isPropagationStopped() && l.removeEventListener(c, kt), b.event.triggered = void 0, a && (n[o] = a)), e.result } }, simulate: function (e, t, n) { e = b.extend(new b.Event, n, { type: e, isSimulated: !0 }); b.event.trigger(e, null, t) } }), b.fn.extend({ trigger: function (e, t) { return this.each(function () { b.event.trigger(e, t, this) }) }, triggerHandler: function (e, t) { var n = this[0]; if (n) return b.event.trigger(e, t, n, !0) } }), g.focusin || b.each({ focus: "focusin", blur: "focusout" }, function (n, i) { function r(e) { b.event.simulate(i, e.target, b.event.fix(e)) } b.event.special[i] = { setup: function () { var e = this.ownerDocument || this.document || this, t = q.access(e, i); t || e.addEventListener(n, r, !0), q.access(e, i, (t || 0) + 1) }, teardown: function () { var e = this.ownerDocument || this.document || this, t = q.access(e, i) - 1; t ? q.access(e, i, t) : (e.removeEventListener(n, r, !0), q.remove(e, i)) } } }); var wt = S.location, Dt = { guid: Date.now() }, Tt = /\?/; b.parseXML = function (e) { var t, n; if (!e || "string" != typeof e) return null; try { t = (new S.DOMParser).parseFromString(e, "text/xml") } catch (e) { } return n = t && t.getElementsByTagName("parsererror")[0], t && !n || b.error("Invalid XML: " + (n ? b.map(n.childNodes, function (e) { return e.textContent }).join("\n") : e)), t }; var Et = /\[\]$/, Yt = /\r?\n/g, Pt = /^(?:submit|button|image|reset|file)$/i, Ct = /^(?:input|select|textarea|keygen)/i; b.param = function (e, t) { function n(e, t) { t = m(t) ? t() : t, r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == t ? "" : t) } var i, r = []; if (null == e) return ""; if (Array.isArray(e) || e.jquery && !b.isPlainObject(e)) b.each(e, function () { n(this.name, this.value) }); else for (i in e) !function n(i, e, r, a) { if (Array.isArray(e)) b.each(e, function (e, t) { r || Et.test(i) ? a(i, t) : n(i + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, a) }); else if (r || "object" !== f(e)) a(i, e); else for (var t in e) n(i + "[" + t + "]", e[t], r, a) }(i, e[i], t, n); return r.join("&") }, b.fn.extend({ serialize: function () { return b.param(this.serializeArray()) }, serializeArray: function () { return this.map(function () { var e = b.prop(this, "elements"); return e ? b.makeArray(e) : this }).filter(function () { var e = this.type; return this.name && !b(this).is(":disabled") && Ct.test(this.nodeName) && !Pt.test(e) && (this.checked || !de.test(e)) }).map(function (e, t) { var n = b(this).val(); return null == n ? null : Array.isArray(n) ? b.map(n, function (e) { return { name: t.name, value: e.replace(Yt, "\r\n") } }) : { name: t.name, value: n.replace(Yt, "\r\n") } }).get() } }); var At = /%20/g, Rt = /#.*$/, xt = /([?&])_=[^&]*/, Ot = /^(.*?):[ \t]*([^\r\n]*)$/gm, It = /^(?:GET|HEAD)$/, Wt = /^\/\//, Ht = {}, jt = {}, Ft = "*/".concat("*"), Bt = k.createElement("a"); function Nt(a) { return function (e, t) { "string" != typeof e && (t = e, e = "*"); var n, i = 0, r = e.toLowerCase().match(x) || []; if (m(t)) for (; n = r[i++];)"+" === n[0] ? (n = n.slice(1) || "*", (a[n] = a[n] || []).unshift(t)) : (a[n] = a[n] || []).push(t) } } function zt(t, i, r, a) { var s = {}, o = t === jt; function u(e) { var n; return s[e] = !0, b.each(t[e] || [], function (e, t) { t = t(i, r, a); return "string" != typeof t || o || s[t] ? o ? !(n = t) : void 0 : (i.dataTypes.unshift(t), u(t), !1) }), n } return u(i.dataTypes[0]) || !s["*"] && u("*") } function Ut(e, t) { var n, i, r = b.ajaxSettings.flatOptions || {}; for (n in t) void 0 !== t[n] && ((r[n] ? e : i = i || {})[n] = t[n]); return i && b.extend(!0, e, i), e } Bt.href = wt.href, b.extend({ active: 0, lastModified: {}, etag: {}, ajaxSettings: { url: wt.href, type: "GET", isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(wt.protocol), global: !0, processData: !0, async: !0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts: { "*": Ft, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, converters: { "* text": String, "text html": !0, "text json": JSON.parse, "text xml": b.parseXML }, flatOptions: { url: !0, context: !0 } }, ajaxSetup: function (e, t) { return t ? Ut(Ut(e, b.ajaxSettings), t) : Ut(b.ajaxSettings, e) }, ajaxPrefilter: Nt(Ht), ajaxTransport: Nt(jt), ajax: function (e, t) { "object" == typeof e && (t = e, e = void 0); var u, d, l, n, h, c, _, i, r, f = b.ajaxSetup({}, t = t || {}), m = f.context || f, p = f.context && (m.nodeType || m.jquery) ? b(m) : b.event, y = b.Deferred(), v = b.Callbacks("once memory"), g = f.statusCode || {}, a = {}, s = {}, o = "canceled", M = { readyState: 0, getResponseHeader: function (e) { var t; if (c) { if (!n) for (n = {}; t = Ot.exec(l);)n[t[1].toLowerCase() + " "] = (n[t[1].toLowerCase() + " "] || []).concat(t[2]); t = n[e.toLowerCase() + " "] } return null == t ? null : t.join(", ") }, getAllResponseHeaders: function () { return c ? l : null }, setRequestHeader: function (e, t) { return null == c && (e = s[e.toLowerCase()] = s[e.toLowerCase()] || e, a[e] = t), this }, overrideMimeType: function (e) { return null == c && (f.mimeType = e), this }, statusCode: function (e) { if (e) if (c) M.always(e[M.status]); else for (var t in e) g[t] = [g[t], e[t]]; return this }, abort: function (e) { e = e || o; return u && u.abort(e), L(0, e), this } }; if (y.promise(M), f.url = ((e || f.url || wt.href) + "").replace(Wt, wt.protocol + "//"), f.type = t.method || t.type || f.method || f.type, f.dataTypes = (f.dataType || "*").toLowerCase().match(x) || [""], null == f.crossDomain) { r = k.createElement("a"); try { r.href = f.url, r.href = r.href, f.crossDomain = Bt.protocol + "//" + Bt.host != r.protocol + "//" + r.host } catch (e) { f.crossDomain = !0 } } if (f.data && f.processData && "string" != typeof f.data && (f.data = b.param(f.data, f.traditional)), zt(Ht, f, t, M), c) return M; for (i in (_ = b.event && f.global) && 0 == b.active++ && b.event.trigger("ajaxStart"), f.type = f.type.toUpperCase(), f.hasContent = !It.test(f.type), d = f.url.replace(Rt, ""), f.hasContent ? f.data && f.processData && 0 === (f.contentType || "").indexOf("application/x-www-form-urlencoded") && (f.data = f.data.replace(At, "+")) : (r = f.url.slice(d.length), f.data && (f.processData || "string" == typeof f.data) && (d += (Tt.test(d) ? "&" : "?") + f.data, delete f.data), !1 === f.cache && (d = d.replace(xt, "$1"), r = (Tt.test(d) ? "&" : "?") + "_=" + Dt.guid++ + r), f.url = d + r), f.ifModified && (b.lastModified[d] && M.setRequestHeader("If-Modified-Since", b.lastModified[d]), b.etag[d] && M.setRequestHeader("If-None-Match", b.etag[d])), (f.data && f.hasContent && !1 !== f.contentType || t.contentType) && M.setRequestHeader("Content-Type", f.contentType), M.setRequestHeader("Accept", f.dataTypes[0] && f.accepts[f.dataTypes[0]] ? f.accepts[f.dataTypes[0]] + ("*" !== f.dataTypes[0] ? ", " + Ft + "; q=0.01" : "") : f.accepts["*"]), f.headers) M.setRequestHeader(i, f.headers[i]); if (f.beforeSend && (!1 === f.beforeSend.call(m, M, f) || c)) return M.abort(); if (o = "abort", v.add(f.complete), M.done(f.success), M.fail(f.error), u = zt(jt, f, t, M)) { if (M.readyState = 1, _ && p.trigger("ajaxSend", [M, f]), c) return M; f.async && 0 < f.timeout && (h = S.setTimeout(function () { M.abort("timeout") }, f.timeout)); try { c = !1, u.send(a, L) } catch (e) { if (c) throw e; L(-1, e) } } else L(-1, "No Transport"); function L(e, t, n, i) { var r, a, s, o = t; c || (c = !0, h && S.clearTimeout(h), u = void 0, l = i || "", M.readyState = 0 < e ? 4 : 0, i = 200 <= e && e < 300 || 304 === e, n && (s = function (e, t, n) { for (var i, r, a, s, o = e.contents, u = e.dataTypes; "*" === u[0];)u.shift(), void 0 === i && (i = e.mimeType || t.getResponseHeader("Content-Type")); if (i) for (r in o) if (o[r] && o[r].test(i)) { u.unshift(r); break } if (u[0] in n) a = u[0]; else { for (r in n) { if (!u[0] || e.converters[r + " " + u[0]]) { a = r; break } s = s || r } a = a || s } if (a) return a !== u[0] && u.unshift(a), n[a] }(f, M, n)), !i && -1 < b.inArray("script", f.dataTypes) && b.inArray("json", f.dataTypes) < 0 && (f.converters["text script"] = function () { }), s = function (e, t, n, i) { var r, a, s, o, u, d = {}, l = e.dataTypes.slice(); if (l[1]) for (s in e.converters) d[s.toLowerCase()] = e.converters[s]; for (a = l.shift(); a;)if (e.responseFields[a] && (n[e.responseFields[a]] = t), !u && i && e.dataFilter && (t = e.dataFilter(t, e.dataType)), u = a, a = l.shift()) if ("*" === a) a = u; else if ("*" !== u && u !== a) { if (!(s = d[u + " " + a] || d["* " + a])) for (r in d) if ((o = r.split(" "))[1] === a && (s = d[u + " " + o[0]] || d["* " + o[0]])) { !0 === s ? s = d[r] : !0 !== d[r] && (a = o[0], l.unshift(o[1])); break } if (!0 !== s) if (s && e.throws) t = s(t); else try { t = s(t) } catch (e) { return { state: "parsererror", error: s ? e : "No conversion from " + u + " to " + a } } } return { state: "success", data: t } }(f, s, M, i), i ? (f.ifModified && ((n = M.getResponseHeader("Last-Modified")) && (b.lastModified[d] = n), (n = M.getResponseHeader("etag")) && (b.etag[d] = n)), 204 === e || "HEAD" === f.type ? o = "nocontent" : 304 === e ? o = "notmodified" : (o = s.state, r = s.data, i = !(a = s.error))) : (a = o, !e && o || (o = "error", e < 0 && (e = 0))), M.status = e, M.statusText = (t || o) + "", i ? y.resolveWith(m, [r, o, M]) : y.rejectWith(m, [M, o, a]), M.statusCode(g), g = void 0, _ && p.trigger(i ? "ajaxSuccess" : "ajaxError", [M, f, i ? r : a]), v.fireWith(m, [M, o]), _ && (p.trigger("ajaxComplete", [M, f]), --b.active || b.event.trigger("ajaxStop"))) } return M }, getJSON: function (e, t, n) { return b.get(e, t, n, "json") }, getScript: function (e, t) { return b.get(e, void 0, t, "script") } }), b.each(["get", "post"], function (e, r) { b[r] = function (e, t, n, i) { return m(t) && (i = i || n, n = t, t = void 0), b.ajax(b.extend({ url: e, type: r, dataType: i, data: t, success: n }, b.isPlainObject(e) && e)) } }), b.ajaxPrefilter(function (e) { for (var t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "") }), b._evalUrl = function (e, t, n) { return b.ajax({ url: e, type: "GET", dataType: "script", cache: !0, async: !1, global: !1, converters: { "text script": function () { } }, dataFilter: function (e) { b.globalEval(e, t, n) } }) }, b.fn.extend({ wrapAll: function (e) { return this[0] && (m(e) && (e = e.call(this[0])), e = b(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && e.insertBefore(this[0]), e.map(function () { for (var e = this; e.firstElementChild;)e = e.firstElementChild; return e }).append(this)), this }, wrapInner: function (n) { return m(n) ? this.each(function (e) { b(this).wrapInner(n.call(this, e)) }) : this.each(function () { var e = b(this), t = e.contents(); t.length ? t.wrapAll(n) : e.append(n) }) }, wrap: function (t) { var n = m(t); return this.each(function (e) { b(this).wrapAll(n ? t.call(this, e) : t) }) }, unwrap: function (e) { return this.parent(e).not("body").each(function () { b(this).replaceWith(this.childNodes) }), this } }), b.expr.pseudos.hidden = function (e) { return !b.expr.pseudos.visible(e) }, b.expr.pseudos.visible = function (e) { return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) }, b.ajaxSettings.xhr = function () { try { return new S.XMLHttpRequest } catch (e) { } }; var Vt = { 0: 200, 1223: 204 }, Gt = b.ajaxSettings.xhr(); g.cors = !!Gt && "withCredentials" in Gt, g.ajax = Gt = !!Gt, b.ajaxTransport(function (r) { var a, s; if (g.cors || Gt && !r.crossDomain) return { send: function (e, t) { var n, i = r.xhr(); if (i.open(r.type, r.url, r.async, r.username, r.password), r.xhrFields) for (n in r.xhrFields) i[n] = r.xhrFields[n]; for (n in r.mimeType && i.overrideMimeType && i.overrideMimeType(r.mimeType), r.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e) i.setRequestHeader(n, e[n]); a = function (e) { return function () { a && (a = s = i.onload = i.onerror = i.onabort = i.ontimeout = i.onreadystatechange = null, "abort" === e ? i.abort() : "error" === e ? "number" != typeof i.status ? t(0, "error") : t(i.status, i.statusText) : t(Vt[i.status] || i.status, i.statusText, "text" !== (i.responseType || "text") || "string" != typeof i.responseText ? { binary: i.response } : { text: i.responseText }, i.getAllResponseHeaders())) } }, i.onload = a(), s = i.onerror = i.ontimeout = a("error"), void 0 !== i.onabort ? i.onabort = s : i.onreadystatechange = function () { 4 === i.readyState && S.setTimeout(function () { a && s() }) }, a = a("abort"); try { i.send(r.hasContent && r.data || null) } catch (e) { if (a) throw e } }, abort: function () { a && a() } } }), b.ajaxPrefilter(function (e) { e.crossDomain && (e.contents.script = !1) }), b.ajaxSetup({ accepts: { script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function (e) { return b.globalEval(e), e } } }), b.ajaxPrefilter("script", function (e) { void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET") }), b.ajaxTransport("script", function (n) { var i, r; if (n.crossDomain || n.scriptAttrs) return { send: function (e, t) { i = b("<script>").attr(n.scriptAttrs || {}).prop({ charset: n.scriptCharset, src: n.url }).on("load error", r = function (e) { i.remove(), r = null, e && t("error" === e.type ? 404 : 200, e.type) }), k.head.appendChild(i[0]) }, abort: function () { r && r() } } }); var Jt, qt = [], Kt = /(=)\?(?=&|$)|\?\?/; b.ajaxSetup({ jsonp: "callback", jsonpCallback: function () { var e = qt.pop() || b.expando + "_" + Dt.guid++; return this[e] = !0, e } }), b.ajaxPrefilter("json jsonp", function (e, t, n) { var i, r, a, s = !1 !== e.jsonp && (Kt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Kt.test(e.data) && "data"); if (s || "jsonp" === e.dataTypes[0]) return i = e.jsonpCallback = m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, s ? e[s] = e[s].replace(Kt, "$1" + i) : !1 !== e.jsonp && (e.url += (Tt.test(e.url) ? "&" : "?") + e.jsonp + "=" + i), e.converters["script json"] = function () { return a || b.error(i + " was not called"), a[0] }, e.dataTypes[0] = "json", r = S[i], S[i] = function () { a = arguments }, n.always(function () { void 0 === r ? b(S).removeProp(i) : S[i] = r, e[i] && (e.jsonpCallback = t.jsonpCallback, qt.push(i)), a && m(r) && r(a[0]), a = r = void 0 }), "script" }), g.createHTMLDocument = ((Jt = k.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Jt.childNodes.length), b.parseHTML = function (e, t, n) { return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (g.createHTMLDocument ? ((i = (t = k.implementation.createHTMLDocument("")).createElement("base")).href = k.location.href, t.head.appendChild(i)) : t = k), i = !n && [], (n = T.exec(e)) ? [t.createElement(n[1])] : (n = pe([e], t, i), i && i.length && b(i).remove(), b.merge([], n.childNodes))); var i }, b.fn.load = function (e, t, n) { var i, r, a, s = this, o = e.indexOf(" "); return -1 < o && (i = gt(e.slice(o)), e = e.slice(0, o)), m(t) ? (n = t, t = void 0) : t && "object" == typeof t && (r = "POST"), 0 < s.length && b.ajax({ url: e, type: r || "GET", dataType: "html", data: t }).done(function (e) { a = arguments, s.html(i ? b("<div>").append(b.parseHTML(e)).find(i) : e) }).always(n && function (e, t) { s.each(function () { n.apply(this, a || [e.responseText, t, e]) }) }), this }, b.expr.pseudos.animated = function (t) { return b.grep(b.timers, function (e) { return t === e.elem }).length }, b.offset = { setOffset: function (e, t, n) { var i, r, a, s, o = b.css(e, "position"), u = b(e), d = {}; "static" === o && (e.style.position = "relative"), a = u.offset(), i = b.css(e, "top"), s = b.css(e, "left"), s = ("absolute" === o || "fixed" === o) && -1 < (i + s).indexOf("auto") ? (r = (o = u.position()).top, o.left) : (r = parseFloat(i) || 0, parseFloat(s) || 0), null != (t = m(t) ? t.call(e, n, b.extend({}, a)) : t).top && (d.top = t.top - a.top + r), null != t.left && (d.left = t.left - a.left + s), "using" in t ? t.using.call(e, d) : u.css(d) } }, b.fn.extend({ offset: function (t) { if (arguments.length) return void 0 === t ? this : this.each(function (e) { b.offset.setOffset(this, t, e) }); var e, n = this[0]; return n ? n.getClientRects().length ? (e = n.getBoundingClientRect(), n = n.ownerDocument.defaultView, { top: e.top + n.pageYOffset, left: e.left + n.pageXOffset }) : { top: 0, left: 0 } : void 0 }, position: function () { if (this[0]) { var e, t, n, i = this[0], r = { top: 0, left: 0 }; if ("fixed" === b.css(i, "position")) t = i.getBoundingClientRect(); else { for (t = this.offset(), n = i.ownerDocument, e = i.offsetParent || n.documentElement; e && (e === n.body || e === n.documentElement) && "static" === b.css(e, "position");)e = e.parentNode; e && e !== i && 1 === e.nodeType && ((r = b(e).offset()).top += b.css(e, "borderTopWidth", !0), r.left += b.css(e, "borderLeftWidth", !0)) } return { top: t.top - r.top - b.css(i, "marginTop", !0), left: t.left - r.left - b.css(i, "marginLeft", !0) } } }, offsetParent: function () { return this.map(function () { for (var e = this.offsetParent; e && "static" === b.css(e, "position");)e = e.offsetParent; return e || ne }) } }), b.each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function (t, r) { var a = "pageYOffset" === r; b.fn[t] = function (e) { return B(this, function (e, t, n) { var i; return p(e) ? i = e : 9 === e.nodeType && (i = e.defaultView), void 0 === n ? i ? i[r] : e[t] : void (i ? i.scrollTo(a ? i.pageXOffset : n, a ? n : i.pageYOffset) : e[t] = n) }, t, e, arguments.length) } }), b.each(["top", "left"], function (e, n) { b.cssHooks[n] = Je(g.pixelPosition, function (e, t) { if (t) return t = Ge(e, n), Ne.test(t) ? b(e).position()[n] + "px" : t }) }), b.each({ Height: "height", Width: "width" }, function (s, o) { b.each({ padding: "inner" + s, content: o, "": "outer" + s }, function (i, a) { b.fn[a] = function (e, t) { var n = arguments.length && (i || "boolean" != typeof e), r = i || (!0 === e || !0 === t ? "margin" : "border"); return B(this, function (e, t, n) { var i; return p(e) ? 0 === a.indexOf("outer") ? e["inner" + s] : e.document.documentElement["client" + s] : 9 === e.nodeType ? (i = e.documentElement, Math.max(e.body["scroll" + s], i["scroll" + s], e.body["offset" + s], i["offset" + s], i["client" + s])) : void 0 === n ? b.css(e, t, r) : b.style(e, t, n, r) }, o, n ? e : void 0, n) } }) }), b.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) { b.fn[t] = function (e) { return this.on(t, e) } }), b.fn.extend({ bind: function (e, t, n) { return this.on(e, null, t, n) }, unbind: function (e, t) { return this.off(e, null, t) }, delegate: function (e, t, n, i) { return this.on(t, e, n, i) }, undelegate: function (e, t, n) { return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n) }, hover: function (e, t) { return this.mouseenter(e).mouseleave(t || e) } }), b.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "), function (e, n) { b.fn[n] = function (e, t) { return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n) } }); var Xt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; b.proxy = function (e, t) { var n, i; if ("string" == typeof t && (i = e[t], t = e, e = i), m(e)) return n = o.call(arguments, 2), (i = function () { return e.apply(t || this, n.concat(o.call(arguments))) }).guid = e.guid = e.guid || b.guid++, i }, b.holdReady = function (e) { e ? b.readyWait++ : b.ready(!0) }, b.isArray = Array.isArray, b.parseJSON = JSON.parse, b.nodeName = D, b.isFunction = m, b.isWindow = p, b.camelCase = V, b.type = f, b.now = Date.now, b.isNumeric = function (e) { var t = b.type(e); return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e)) }, b.trim = function (e) { return null == e ? "" : (e + "").replace(Xt, "") }, void 0 === (tn = function () { return b }.apply(en, [])) || (Qt.exports = tn); var Zt = S.jQuery, $t = S.$; return b.noConflict = function (e) { return S.$ === b && (S.$ = $t), e && S.jQuery === b && (S.jQuery = Zt), b }, void 0 === e && (S.jQuery = S.$ = b), b
        })
    }, function (e, t, n) { e.exports = { default: n(267), __esModule: !0 } }, function (e, t, n) { t.f = n(7) }, function (e, t, n) { var i = n(6), r = n(3), a = n(27), s = n(57), o = n(12).f; e.exports = function (e) { var t = r.Symbol || (r.Symbol = !a && i.Symbol || {}); "_" == e.charAt(0) || e in t || o(t, e, { value: s.f(e) }) } }, function (e, t) { t.f = Object.getOwnPropertySymbols }, function (e, t, n) { var i = n(37), r = n(28), a = n(19), s = n(45), o = n(18), u = n(69), d = Object.getOwnPropertyDescriptor; t.f = n(14) ? d : function (e, t) { if (e = a(e), t = s(t, !0), u) try { return d(e, t) } catch (e) { } if (o(e, t)) return r(!i.f.call(e, t), e[t]) } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = "0x12f9", r = i + "0", r = (t.ERR_COM_PARAM = r + "0001", t.ERR_COM_NOT_PLAYING = r + "0002", t.ERR_COM_NOT_PLAYBACK = r + "0003", t.ERR_COM_IS_MSE = r + "0004", t.ERR_COM_IS_JSDECODER = r + "0005", t.ERR_COM_LOAD_JSDECODER_ERROR = r + "0006", t.ERR_COM_URL_ERROR = r + "0008", t.ERR_COM_RECV_STREAM_TIMEOUT = r + "0009", t.ERR_COM_SETORGET_VOLUME_ERROR = r + "0010", t.ERR_COM_SETVOLUME_ERROR = r + "0011", t.ERR_COM_OPENSOUND_ERROR = r + "0012", i + "1"), r = (t.ERR_STREAM_WS_ERROR = r + "0000", t.ERR_STREAM_OPEN_FAILED = r + "0010", t.ERR_STREAM_INTERRUPT = r + "0011", t.ERR_STREAM_CMD_FAILED = r + "0012", t.ERR_STREAM_SOUND_NOTHAS = r + "0014", t.ERR_STREAM_WS_UNFIND = r + "0015", t.ERR_STREAM_WS_UNCONNECT = r + "0016", t.ERR_STREAM_INTEL_UNSUPPORT = r + "0017", t.ERR_STREAM_TIMEOUT = r + "0018", t.ERR_STREAM_WSS_ERROR = r + "0019", t.ERR_PLAYBACK_FRAMEFORWARD = r + "0020", t.ERR_PLAYBACK_MAX_RATE = r + "0021", t.ERR_PLAYBACK_MIN_RATE = r + "0022", t.ERR_STREAM_WS_TIMEOUT = r + "0023", t.ERR_STREAM_TRANS = r + "0024", t.ERR_STREAM_PLAYBACK_END = r + "0025", t.ERR_STREAM_VIDEO_CODING = r + "0026", t.ERR_STREAM_CONNECT_CLOSED = r + "0027", t.ERR_STREAM_BUFER_ERROR = r + "0028", t.ERR_STREAM_DATA_ERROR = r + "0029", t.ERR_STREAM_LOCK_ERROR = r + "0030", t.ERR_STREAM_MSE_DATA_FULL = r + "0031", t.ERR_STREAM_CODEC_UNSUPPORTED = r + "0032", t.ERR_STREAM_JSDECODER_CODEC_UNSUPPORTED = r + "0033", i + "2"); t.ERR_PLAY_FILESYS_UNSUPPORT = r + "0000", t.ERR_PLAY_FILESYS_QUOTA = r + "0010", t.ERR_PLAY_FILESYS_REQUEST = r + "0011", t.ERR_PLAY_FILESYS_GETFILE = r + "0012", t.ERR_PLAY_FILESYS_CREATE = r + "0013", t.ERR_PLAY_FILESYS_WRITE = r + "0014", t.ERR_PLAY_FILESYS_ALREADY_WRITING = r + "0015", t.ERR_PLAY_FILESYS_NOT_WRITING = r + "0016", t.ERR_PLAY_FILESYS_NOT_SUPPORT_DSTTYPE = r + "0017", t.ERR_PLAY_FILESYS_FILENAME_ISNULL = r + "0018", t.ERR_CAPTURE_RAM = "0x12f930010", t.ERR_CAPTURE_NO_PREPARED = "0x12f930011", t.ERR_JSDECODER = i + "400", t.ERR_TALK = i + "500", t.ERR_TALK_GETUSERMEDIA_UNDEFINE = "0x12f950000", t.ERR_TALK_UNSUPPORT_AUDIOTYPE = "0x12f950001" }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = r(n(1)); function r(e) { return e && e.__esModule ? e : { default: e } } (0, r(n(2)).default)(a, [{ key: "reset", value: function () { this._firstCheckpoint = this._lastCheckpoint = 0, this._totalBytes = this._intervalBytes = 0, this._lastSecondBytes = 0 } }, { key: "addBytes", value: function (e) { 0 === this._firstCheckpoint ? (this._firstCheckpoint = this._now(), this._lastCheckpoint = this._firstCheckpoint, this._intervalBytes += e, this._totalBytes += e) : this._now() - this._lastCheckpoint < 1e3 ? (this._intervalBytes += e, this._totalBytes += e) : (this._lastSecondBytes = this._intervalBytes, this._intervalBytes = e, this._totalBytes += e, this._lastCheckpoint = this._now()) } }, { key: "currentKBps", get: function () { this.addBytes(0); var e = (this._now() - this._lastCheckpoint) / 1e3; return this._intervalBytes / (e = 0 == e ? 1 : e) / 1024 } }, { key: "lastSecondKBps", get: function () { return this.addBytes(0), 0 !== this._lastSecondBytes ? this._lastSecondBytes / 1024 : 500 <= this._now() - this._lastCheckpoint ? this.currentKBps : 0 } }, { key: "averageKBps", get: function () { var e = (this._now() - this._firstCheckpoint) / 1e3; return this._totalBytes / e / 1024 } }]), n = a; function a() { (0, i.default)(this, a), this._firstCheckpoint = 0, this._lastCheckpoint = 0, this._intervalBytes = 0, this._totalBytes = 0, this._lastSecondBytes = 0, self.performance && self.performance.now ? this._now = self.performance.now.bind(self.performance) : this._now = Date.now } t.default = n }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.defaultConfig = void 0; var i, r = n(20), a = (i = r) && i.__esModule ? i : { default: i }; t.createDefaultConfig = function () { return (0, a.default)({}, s) }; var s = t.defaultConfig = { enableWorker: !1, enableStashBuffer: !1, stashInitialSize: void 0, isLive: !1, lazyLoad: !0, lazyLoadMaxDuration: 180, lazyLoadRecoverDuration: 30, deferLoadAfterSourceOpen: !0, autoCleanupMaxBackwardDuration: 180, autoCleanupMinBackwardDuration: 120, statisticsInfoReportInterval: 600, fixAudioTimestampGap: !0, accurateSeek: !1, seekType: "range", seekParamStart: "bstart", seekParamEnd: "bend", rangeLoadZeroStart: !1, customSeekHandler: void 0, reuseRedirectedURL: !1, headers: void 0, customLoader: void 0, videoStateMonitorInterval: 1e3, enableDurationMonitor: !1, lowLatencyThreshold: 1.5, highLatencyThreshold: 10, decreaseDurationStep: .4, enableVideoFrozenMonitor: !1, frozenTimesThreshold: 5, enableConstVideoViewSize: !1, constVideoViewWidth: 1920, constVideoViewHeight: 1080, latencyDetectInterval: 6e4, latencyDetectThreshold: 2, latencyDetectAdjustStep: .1, enableAudioGain: !0, audioGainLevel: 2 } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = o(n(1)), r = o(n(2)), a = o(n(10)), s = o(n(4)); function o(e) { return e && e.__esModule ? e : { default: e } } (0, r.default)(u, null, [{ key: "getConfig", value: function () { return { globalTag: s.default.GLOBAL_TAG, forceGlobalTag: s.default.FORCE_GLOBAL_TAG, enableVerbose: s.default.ENABLE_VERBOSE, enableDebug: s.default.ENABLE_DEBUG, enableInfo: s.default.ENABLE_INFO, enableWarn: s.default.ENABLE_WARN, enableError: s.default.ENABLE_ERROR, enableCallback: s.default.ENABLE_CALLBACK } } }, { key: "applyConfig", value: function (e) { s.default.GLOBAL_TAG = e.globalTag, s.default.FORCE_GLOBAL_TAG = e.forceGlobalTag, s.default.ENABLE_VERBOSE = e.enableVerbose, s.default.ENABLE_DEBUG = e.enableDebug, s.default.ENABLE_INFO = e.enableInfo, s.default.ENABLE_WARN = e.enableWarn, s.default.ENABLE_ERROR = e.enableError, s.default.ENABLE_CALLBACK = e.enableCallback } }, { key: "_notifyChange", value: function () { var e, t = u.emitter; 0 < t.listenerCount("change") && (e = u.getConfig(), t.emit("change", e)) } }, { key: "registerListener", value: function (e) { u.emitter.addListener("change", e) } }, { key: "removeListener", value: function (e) { u.emitter.removeListener("change", e) } }, { key: "addLogListener", value: function (e) { s.default.emitter.addListener("log", e), 0 < s.default.emitter.listenerCount("log") && (s.default.ENABLE_CALLBACK = !0, u._notifyChange()) } }, { key: "removeLogListener", value: function (e) { s.default.emitter.removeListener("log", e), 0 === s.default.emitter.listenerCount("log") && (s.default.ENABLE_CALLBACK = !1, u._notifyChange()) } }, { key: "forceGlobalTag", get: function () { return s.default.FORCE_GLOBAL_TAG }, set: function (e) { s.default.FORCE_GLOBAL_TAG = e, u._notifyChange() } }, { key: "globalTag", get: function () { return s.default.GLOBAL_TAG }, set: function (e) { s.default.GLOBAL_TAG = e, u._notifyChange() } }, { key: "enableAll", get: function () { return s.default.ENABLE_VERBOSE && s.default.ENABLE_DEBUG && s.default.ENABLE_INFO && s.default.ENABLE_WARN && s.default.ENABLE_ERROR }, set: function (e) { s.default.ENABLE_VERBOSE = e, s.default.ENABLE_DEBUG = e, s.default.ENABLE_INFO = e, s.default.ENABLE_WARN = e, s.default.ENABLE_ERROR = e, u._notifyChange() } }, { key: "enableDebug", get: function () { return s.default.ENABLE_DEBUG }, set: function (e) { s.default.ENABLE_DEBUG = e, u._notifyChange() } }, { key: "enableVerbose", get: function () { return s.default.ENABLE_VERBOSE }, set: function (e) { s.default.ENABLE_VERBOSE = e, u._notifyChange() } }, { key: "enableInfo", get: function () { return s.default.ENABLE_INFO }, set: function (e) { s.default.ENABLE_INFO = e, u._notifyChange() } }, { key: "enableWarn", get: function () { return s.default.ENABLE_WARN }, set: function (e) { s.default.ENABLE_WARN = e, u._notifyChange() } }, { key: "enableError", get: function () { return s.default.ENABLE_ERROR }, set: function (e) { s.default.ENABLE_ERROR = e, u._notifyChange() } }]), r = u; function u() { (0, i.default)(this, u) } r.emitter = new a.default, t.default = r }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = r(n(1)); function r(e) { return e && e.__esModule ? e : { default: e } } (0, r(n(2)).default)(a, [{ key: "isComplete", value: function () { var e = !1 === this.hasAudio || !0 === this.hasAudio && null != this.audioCodec && null != this.audioSampleRate && null != this.audioChannelCount, t = !1 === this.hasVideo || !0 === this.hasVideo && null != this.videoCodec && null != this.width && null != this.height && null != this.fps && null != this.profile && null != this.level && null != this.refFrames && null != this.chromaFormat && null != this.sarNum && null != this.sarDen; return null != this.mimeType && null != this.duration && null != this.metadata && null != this.hasKeyframesIndex && e && t } }, { key: "isSeekable", value: function () { return !0 === this.hasKeyframesIndex } }, { key: "getNearestKeyframe", value: function (e) { if (null == this.keyframesIndex) return null; var t = this.keyframesIndex, e = this._search(t.times, e); return { index: e, milliseconds: t.times[e], fileposition: t.filepositions[e] } } }, { key: "_search", value: function (e, t) { var n, i = 0, r = e.length - 1, a = 0, s = r; for (t < e[0] && (i = 0, a = s + 1); a <= s;) { if ((n = a + Math.floor((s - a) / 2)) === r || t >= e[n] && t < e[n + 1]) { i = n; break } e[n] < t ? a = n + 1 : s = n - 1 } return i } }]), n = a; function a() { (0, i.default)(this, a), this.mimeType = null, this.duration = null, this.hasAudio = null, this.hasVideo = null, this.audioCodec = null, this.videoCodec = null, this.audioDataRate = null, this.videoDataRate = null, this.audioSampleRate = null, this.audioChannelCount = null, this.width = null, this.height = null, this.fps = null, this.profile = null, this.level = null, this.refFrames = null, this.chromaFormat = null, this.sarNum = null, this.sarDen = null, this.metadata = null, this.segments = null, this.segmentCount = null, this.hasKeyframesIndex = null, this.keyframesIndex = null } t.default = n }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); t.default = { OK: "OK", FORMAT_ERROR: "FormatError", FORMAT_UNSUPPORTED: "FormatUnsupported", CODEC_UNSUPPORTED: "CodecUnsupported" } }, function (e, t) { }, function (e, t, n) { "use strict"; function v() { return this } var g = n(27), M = n(8), L = n(70), S = n(17), k = n(29), b = n(238), w = n(36), D = n(74), T = n(7)("iterator"), E = !([].keys && "next" in [].keys()), Y = "values"; e.exports = function (e, t, n, i, r, a, s) { b(n, t, i); function o(e) { if (!E && e in f) return f[e]; switch (e) { case "keys": case Y: return function () { return new n(this, e) } }return function () { return new n(this, e) } } var u, d, l, h = t + " Iterator", c = r == Y, _ = !1, f = e.prototype, m = f[T] || f["@@iterator"] || r && f[r], p = m || o(r), y = r ? c ? o("entries") : p : void 0, i = "Array" == t && f.entries || m; if (i && (l = D(i.call(new e))) !== Object.prototype && l.next && (w(l, h, !0), g || "function" == typeof l[T] || S(l, T, v)), c && m && m.name !== Y && (_ = !0, p = function () { return m.call(this) }), g && !s || !E && !_ && f[T] || S(f, T, p), k[t] = p, k[h] = v, r) if (u = { values: c ? p : o(Y), keys: a ? p : o("keys"), entries: y }, s) for (d in u) d in f || L(f, d, u[d]); else M(M.P + M.F * (E || _), t, u); return u } }, function (e, t, n) { e.exports = !n(14) && !n(23)(function () { return 7 != Object.defineProperty(n(44)("div"), "a", { get: function () { return 7 } }).a }) }, function (e, t, n) { e.exports = n(17) }, function (e, t, n) { var s = n(18), o = n(19), u = n(240)(!1), d = n(48)("IE_PROTO"); e.exports = function (e, t) { var n, i = o(e), r = 0, a = []; for (n in i) n != d && s(i, n) && a.push(n); for (; t.length > r;)s(i, n = t[r++]) && (~u(a, n) || a.push(n)); return a } }, function (e, t, n) { var i = n(31); e.exports = Object("z").propertyIsEnumerable(0) ? Object : function (e) { return "String" == i(e) ? e.split("") : Object(e) } }, function (e, t, n) { n = n(6).document; e.exports = n && n.documentElement }, function (e, t, n) { var i = n(18), r = n(24), a = n(48)("IE_PROTO"), s = Object.prototype; e.exports = Object.getPrototypeOf || function (e) { return e = r(e), i(e, a) ? e[a] : "function" == typeof e.constructor && e instanceof e.constructor ? e.constructor.prototype : e instanceof Object ? s : null } }, function (e, t, n) { n(242); for (var i = n(6), r = n(17), a = n(29), s = n(7)("toStringTag"), o = "CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","), u = 0; u < o.length; u++) { var d = o[u], l = i[d], l = l && l.prototype; l && !l[s] && r(l, s, d), a[d] = a.Array } }, function (e, t, n) { var i = n(31), r = n(7)("toStringTag"), a = "Arguments" == i(function () { return arguments }()); e.exports = function (e) { var t; return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof (e = function (e, t) { try { return e[t] } catch (e) { } }(t = Object(e), r)) ? e : a ? i(t) : "Object" == (e = i(t)) && "function" == typeof t.callee ? "Arguments" : e } }, function (e, t, n) { var r = n(13); e.exports = function (t, e, n, i) { try { return i ? e(r(n)[0], n[1]) : e(n) } catch (e) { n = t.return; throw void 0 !== n && r(n.call(t)), e } } }, function (e, t, n) { var i = n(29), r = n(7)("iterator"), a = Array.prototype; e.exports = function (e) { return void 0 !== e && (i.Array === e || a[r] === e) } }, function (e, t, n) { var i = n(76), r = n(7)("iterator"), a = n(29); e.exports = n(3).getIteratorMethod = function (e) { if (null != e) return e[r] || e["@@iterator"] || a[i(e)] } }, function (e, t, n) { var i = n(13), r = n(34), a = n(7)("species"); e.exports = function (e, t) { var n, e = i(e).constructor; return void 0 === e || null == (n = i(e)[a]) ? t : r(n) } }, function (e, t, n) { function i() { var e, t = +this; y.hasOwnProperty(t) && (e = y[t], delete y[t], e()) } function r(e) { i.call(e.data) } var a, s = n(22), o = n(248), u = n(73), d = n(44), l = n(6), h = l.process, c = l.setImmediate, _ = l.clearImmediate, f = l.MessageChannel, m = l.Dispatch, p = 0, y = {}, v = "onreadystatechange"; c && _ || (c = function (e) { for (var t = [], n = 1; n < arguments.length;)t.push(arguments[n++]); return y[++p] = function () { o("function" == typeof e ? e : Function(e), t) }, a(p), p }, _ = function (e) { delete y[e] }, "process" == n(31)(h) ? a = function (e) { h.nextTick(s(i, e, 1)) } : m && m.now ? a = function (e) { m.now(s(i, e, 1)) } : f ? (f = (n = new f).port2, n.port1.onmessage = r, a = s(f.postMessage, f, 1)) : l.addEventListener && "function" == typeof postMessage && !l.importScripts ? (a = function (e) { l.postMessage(e + "", "*") }, l.addEventListener("message", r, !1)) : a = v in d("script") ? function (e) { u.appendChild(d("script"))[v] = function () { u.removeChild(this), i.call(e) } } : function (e) { setTimeout(s(i, e, 1), 0) }), e.exports = { set: c, clear: _ } }, function (e, t) { e.exports = function (e) { try { return { e: !1, v: e() } } catch (e) { return { e: !0, v: e } } } }, function (e, t, n) { var i = n(13), r = n(16), a = n(51); e.exports = function (e, t) { if (i(e), r(t) && t.constructor === e) return t; e = a.f(e); return (0, e.resolve)(t), e.promise } }, function (e, t, n) { var a = n(7)("iterator"), s = !1; try { var i = [7][a](); i.return = function () { s = !0 }, Array.from(i, function () { throw 2 }) } catch (e) { } e.exports = function (e, t) { if (!t && !s) return !1; var n = !1; try { var i = [7], r = i[a](); r.next = function () { return { done: n = !0 } }, i[a] = function () { return r }, e(i) } catch (e) { } return n } }, function (e, t, n) { e.exports = { default: n(255), __esModule: !0 } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.oTool = void 0; var i = r(n(1)); function r(e) { return e && e.__esModule ? e : { default: e } } (0, r(n(2)).default)(a, [{ key: "$", value: function (e) { var t = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, n = /^(?:\s*(<[\w\W]+>)[^>]*|.([\w-]*))$/; if (t.test(e)) { t = t.exec(e); return document.getElementById(t[2]) } if (n.test(e)) { for (var i = n.exec(e), r = document.getElementsByTagName("*"), a = [], s = 0, o = r.length; s < o; s++)r[s].className.match(new RegExp("(\\s|^)" + i[2] + "(\\s|$)")) && a.push(r[s]); return a } } }, { key: "dateFormat", value: function (e, t) { var n, i = { "M+": e.getMonth() + 1, "d+": e.getDate(), "h+": e.getHours(), "m+": e.getMinutes(), "s+": e.getSeconds(), "q+": Math.floor((e.getMonth() + 3) / 3), S: e.getMilliseconds() }; for (n in /(y+)/.test(t) && (t = t.replace(RegExp.$1, (e.getFullYear() + "").substr(4 - RegExp.$1.length))), i) new RegExp("(" + n + ")").test(t) && (t = t.replace(RegExp.$1, 1 === RegExp.$1.length ? i[n] : ("00" + i[n]).substr(("" + i[n]).length))); return t } }, { key: "downloadFile", value: function (e, t) { var n = e; e instanceof Blob || e instanceof File || (n = new Blob([e])); e = window.URL.createObjectURL(n), n = window.document.createElement("a"); n.href = e, n.download = t; t = document.createEvent("MouseEvents"); t.initEvent("click", !0, !0), n.dispatchEvent(t) } }, { key: "createxmlDoc", value: function () { for (var t, e = ["MSXML2.DOMDocument", "MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0", "MSXML2.DOMDocument.3.0", "Microsoft.XmlDom"], n = 0, i = e.length; n < i; n++)try { t = new ActiveXObject(e[n]); break } catch (e) { t = document.implementation.createDocument("", "", null); break } return t.async = "false", t } }, { key: "parseXmlFromStr", value: function (e) { if (null === e || "" === e) return null; var t = this.createxmlDoc(); return "Netscape" === navigator.appName || "Opera" === navigator.appName ? t = (new DOMParser).parseFromString(e, "text/xml") : t.loadXML(e), t } }, { key: "encode", value: function (e) { var t, n, i, r, a, s, o = "", u = 0; for (e = this._utf8_encode(e); u < e.length;)i = (s = e.charCodeAt(u++)) >> 2, r = (3 & s) << 4 | (t = e.charCodeAt(u++)) >> 4, a = (15 & t) << 2 | (n = e.charCodeAt(u++)) >> 6, s = 63 & n, isNaN(t) ? a = s = 64 : isNaN(n) && (s = 64), o = o + this._keyStr.charAt(i) + this._keyStr.charAt(r) + this._keyStr.charAt(a) + this._keyStr.charAt(s); return o } }, { key: "decode", value: function (e) { var t, n, i, r, a, s, o = "", u = 0; for (e = e.replace(/[^A-Za-z0-9+/=]/g, ""); u < e.length;)i = this._keyStr.indexOf(e.charAt(u++)), t = (15 & (r = this._keyStr.indexOf(e.charAt(u++)))) << 4 | (a = this._keyStr.indexOf(e.charAt(u++))) >> 2, n = (3 & a) << 6 | (s = this._keyStr.indexOf(e.charAt(u++))), o += String.fromCharCode(i << 2 | r >> 4), 64 !== a && (o += String.fromCharCode(t)), 64 !== s && (o += String.fromCharCode(n)); return o = this._utf8_decode(o) } }, { key: "_utf8_encode", value: function (e) { e = e.replace(/\r\n/g, "\n"); for (var t = "", n = 0; n < e.length; n++) { var i = e.charCodeAt(n); i < 128 ? t += String.fromCharCode(i) : (127 < i && i < 2048 ? t += String.fromCharCode(i >> 6 | 192) : (t += String.fromCharCode(i >> 12 | 224), t += String.fromCharCode(i >> 6 & 63 | 128)), t += String.fromCharCode(63 & i | 128)) } return t } }, { key: "_utf8_decode", value: function (e) { for (var t, n = "", i = 0, r = 0, a = 0; i < e.length;)(r = e.charCodeAt(i)) < 128 ? (n += String.fromCharCode(r), i++) : 191 < r && r < 224 ? (a = e.charCodeAt(i + 1), n += String.fromCharCode((31 & r) << 6 | 63 & a), i += 2) : (a = e.charCodeAt(i + 1), t = e.charCodeAt(i + 2), n += String.fromCharCode((15 & r) << 12 | (63 & a) << 6 | 63 & t), i += 3); return n } }, { key: "isFirefox", value: function () { var e = !1, t = navigator.userAgent.toLowerCase(), n = ""; return t.match(/firefox\/([\d.]+)/) && (n = t.match(/firefox\/([\d.]+)/)[1], -1 < parseInt(n.split(".")[0], 10) && (e = !0)), e } }, { key: "isSafari", value: function () { var e = !1, t = navigator.userAgent.toLowerCase(), n = ""; return t.match(/version\/([\d.]+).safari./) && (n = t.match(/version\/([\d.]+).safari./)[1], -1 < parseInt(n.split(".")[0], 10) && (e = !0)), e } }, { key: "isEdge", value: function () { return -1 < navigator.userAgent.toLowerCase().indexOf("edge") } }, { key: "dataURLtoBlob", value: function (e) { for (var t = e.split(","), e = t[0].match(/:(.*?);/)[1], n = atob(t[1]), i = n.length, r = new Uint8Array(i); i--;)r[i] = n.charCodeAt(i); return new Blob([r], { type: e }) } }, { key: "intToHexString", value: function (e) { e = e.toString(16); return e = 1 === e.length ? "0" + e : e } }, { key: "throttle", value: function (n) { function i() { l = u.noStart ? 0 : +new Date, d = null, s = n.apply(r, a), d || (r = a = null) } var r, a, s, o = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 16, u = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : { noStart: !1, noEnd: !1 }, d = null, l = 0; return function () { var e = +new Date; !l && u.noStart && (l = e); var t = o - (e - l); return r = this, a = arguments, t <= 0 || o < t ? (clearTimeout(d), d = null, l = e, s = n.apply(r, a), d || (r = a = null)) : d || u.noEnd || (d = setTimeout(i, t)), s } } }]), n = a; function a() { (0, i.default)(this, a), this._keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" } t.oTool = new n }, function (e, t, n) { var i = n(263), r = n(264), n = r; n.v1 = i, n.v4 = r, e.exports = n }, function (e, t) { var n, i, r = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || "undefined" != typeof msCrypto && "function" == typeof window.msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto); r ? (n = new Uint8Array(16), e.exports = function () { return r(n), n }) : (i = new Array(16), e.exports = function () { for (var e, t = 0; t < 16; t++)0 == (3 & t) && (e = 4294967296 * Math.random()), i[t] = e >>> ((3 & t) << 3) & 255; return i }) }, function (e, t) { for (var i = [], n = 0; n < 256; ++n)i[n] = (n + 256).toString(16).substr(1); e.exports = function (e, t) { var n = t || 0; return [(t = i)[e[n++]], t[e[n++]], t[e[n++]], t[e[n++]], "-", t[e[n++]], t[e[n++]], "-", t[e[n++]], t[e[n++]], "-", t[e[n++]], t[e[n++]], "-", t[e[n++]], t[e[n++]], t[e[n++]], t[e[n++]], t[e[n++]], t[e[+n]]].join("") } }, function (e, t, n) { var i = n(71), r = n(50).concat("length", "prototype"); t.f = Object.getOwnPropertyNames || function (e) { return i(e, r) } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = s(n(1)), r = s(n(2)), a = s(n(0)); function s(e) { return e && e.__esModule ? e : { default: e } } (0, r.default)(o, [{ key: "D", value: function () { var e; this._config.openDebug && (e = console).debug.apply(e, ["[" + this.TAG + "] %c" + (0, a.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c", "color: blue", "color: black"].concat(Array.prototype.slice.call(arguments))) } }, { key: "I", value: function () { var e; (e = console).info.apply(e, ["[" + this.TAG + "] %c" + (0, a.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c", "color: blue", "color: black"].concat(Array.prototype.slice.call(arguments))) } }, { key: "W", value: function () { var e; (e = console).warn.apply(e, ["[" + this.TAG + "] %c" + (0, a.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c", "color: blue", "color: black"].concat(Array.prototype.slice.call(arguments))) } }, { key: "E", value: function () { var e; (e = console).error.apply(e, ["[" + this.TAG + "] %c" + (0, a.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c", "color: blue", "color: black"].concat(Array.prototype.slice.call(arguments))) } }]), r = o; function o(e) { (0, i.default)(this, o), this._bus = e, this.TAG = e.TAG || "Debug", this._config = e._config || e.options || {} } t.default = r }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("af", { months: "Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"), monthsShort: "Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"), weekdays: "Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"), weekdaysShort: "Son_Maa_Din_Woe_Don_Vry_Sat".split("_"), weekdaysMin: "So_Ma_Di_Wo_Do_Vr_Sa".split("_"), meridiemParse: /vm|nm/i, isPM: function (e) { return /^nm$/i.test(e) }, meridiem: function (e, t, n) { if (e < 12) return n ? "vm" : "VM"; else return n ? "nm" : "NM" }, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Vandag om] LT", nextDay: "[Môre om] LT", nextWeek: "dddd [om] LT", lastDay: "[Gister om] LT", lastWeek: "[Laas] dddd [om] LT", sameElse: "L" }, relativeTime: { future: "oor %s", past: "%s gelede", s: "'n paar sekondes", ss: "%d sekondes", m: "'n minuut", mm: "%d minute", h: "'n uur", hh: "%d ure", d: "'n dag", dd: "%d dae", M: "'n maand", MM: "%d maande", y: "'n jaar", yy: "%d jaar" }, dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, ordinal: function (e) { return e + (e === 1 || e === 8 || e >= 20 ? "ste" : "de") }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "١", 2: "٢", 3: "٣", 4: "٤", 5: "٥", 6: "٦", 7: "٧", 8: "٨", 9: "٩", 0: "٠" }, n = { "١": "1", "٢": "2", "٣": "3", "٤": "4", "٥": "5", "٦": "6", "٧": "7", "٨": "8", "٩": "9", "٠": "0" }, o = function (e) { return e === 0 ? 0 : e === 1 ? 1 : e === 2 ? 2 : e % 100 >= 3 && e % 100 <= 10 ? 3 : e % 100 >= 11 ? 4 : 5 }, u = { s: ["أقل من ثانية", "ثانية واحدة", ["ثانيتان", "ثانيتين"], "%d ثوان", "%d ثانية", "%d ثانية"], m: ["أقل من دقيقة", "دقيقة واحدة", ["دقيقتان", "دقيقتين"], "%d دقائق", "%d دقيقة", "%d دقيقة"], h: ["أقل من ساعة", "ساعة واحدة", ["ساعتان", "ساعتين"], "%d ساعات", "%d ساعة", "%d ساعة"], d: ["أقل من يوم", "يوم واحد", ["يومان", "يومين"], "%d أيام", "%d يومًا", "%d يوم"], M: ["أقل من شهر", "شهر واحد", ["شهران", "شهرين"], "%d أشهر", "%d شهرا", "%d شهر"], y: ["أقل من عام", "عام واحد", ["عامان", "عامين"], "%d أعوام", "%d عامًا", "%d عام"] }, i = function (s) { return function (e, t, n, i) { var r = o(e), a = u[s][o(e)]; if (r === 2) a = a[t ? 0 : 1]; return a.replace(/%d/i, e) } }, r = ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], a; e.defineLocale("ar", { months: r, monthsShort: r, weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"), weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"), weekdaysMin: "ح_ن_ث_ر_خ_ج_س".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "D/‏M/‏YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, meridiemParse: /ص|م/, isPM: function (e) { return "م" === e }, meridiem: function (e, t, n) { if (e < 12) return "ص"; else return "م" }, calendar: { sameDay: "[اليوم عند الساعة] LT", nextDay: "[غدًا عند الساعة] LT", nextWeek: "dddd [عند الساعة] LT", lastDay: "[أمس عند الساعة] LT", lastWeek: "dddd [عند الساعة] LT", sameElse: "L" }, relativeTime: { future: "بعد %s", past: "منذ %s", s: i("s"), ss: i("s"), m: i("m"), mm: i("m"), h: i("h"), hh: i("h"), d: i("d"), dd: i("d"), M: i("M"), MM: i("M"), y: i("y"), yy: i("y") }, preparse: function (e) { return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (e) { return n[e] }).replace(/،/g, ",") }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }).replace(/,/g, "،") }, week: { dow: 6, doy: 12 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var o = function (e) { return e === 0 ? 0 : e === 1 ? 1 : e === 2 ? 2 : e % 100 >= 3 && e % 100 <= 10 ? 3 : e % 100 >= 11 ? 4 : 5 }, u = { s: ["أقل من ثانية", "ثانية واحدة", ["ثانيتان", "ثانيتين"], "%d ثوان", "%d ثانية", "%d ثانية"], m: ["أقل من دقيقة", "دقيقة واحدة", ["دقيقتان", "دقيقتين"], "%d دقائق", "%d دقيقة", "%d دقيقة"], h: ["أقل من ساعة", "ساعة واحدة", ["ساعتان", "ساعتين"], "%d ساعات", "%d ساعة", "%d ساعة"], d: ["أقل من يوم", "يوم واحد", ["يومان", "يومين"], "%d أيام", "%d يومًا", "%d يوم"], M: ["أقل من شهر", "شهر واحد", ["شهران", "شهرين"], "%d أشهر", "%d شهرا", "%d شهر"], y: ["أقل من عام", "عام واحد", ["عامان", "عامين"], "%d أعوام", "%d عامًا", "%d عام"] }, t = function (s) { return function (e, t, n, i) { var r = o(e), a = u[s][o(e)]; if (r === 2) a = a[t ? 0 : 1]; return a.replace(/%d/i, e) } }, n = ["جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], i; e.defineLocale("ar-dz", { months: n, monthsShort: n, weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"), weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"), weekdaysMin: "ح_ن_ث_ر_خ_ج_س".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "D/‏M/‏YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, meridiemParse: /ص|م/, isPM: function (e) { return "م" === e }, meridiem: function (e, t, n) { if (e < 12) return "ص"; else return "م" }, calendar: { sameDay: "[اليوم عند الساعة] LT", nextDay: "[غدًا عند الساعة] LT", nextWeek: "dddd [عند الساعة] LT", lastDay: "[أمس عند الساعة] LT", lastWeek: "dddd [عند الساعة] LT", sameElse: "L" }, relativeTime: { future: "بعد %s", past: "منذ %s", s: t("s"), ss: t("s"), m: t("m"), mm: t("m"), h: t("h"), hh: t("h"), d: t("d"), dd: t("d"), M: t("M"), MM: t("M"), y: t("y"), yy: t("y") }, postformat: function (e) { return e.replace(/,/g, "،") }, week: { dow: 0, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ar-kw", { months: "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"), monthsShort: "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"), weekdays: "الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"), weekdaysShort: "احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"), weekdaysMin: "ح_ن_ث_ر_خ_ج_س".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[اليوم على الساعة] LT", nextDay: "[غدا على الساعة] LT", nextWeek: "dddd [على الساعة] LT", lastDay: "[أمس على الساعة] LT", lastWeek: "dddd [على الساعة] LT", sameElse: "L" }, relativeTime: { future: "في %s", past: "منذ %s", s: "ثوان", ss: "%d ثانية", m: "دقيقة", mm: "%d دقائق", h: "ساعة", hh: "%d ساعات", d: "يوم", dd: "%d أيام", M: "شهر", MM: "%d أشهر", y: "سنة", yy: "%d سنوات" }, week: { dow: 0, doy: 12 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7: "7", 8: "8", 9: "9", 0: "0" }, o = function (e) { return e === 0 ? 0 : e === 1 ? 1 : e === 2 ? 2 : e % 100 >= 3 && e % 100 <= 10 ? 3 : e % 100 >= 11 ? 4 : 5 }, u = { s: ["أقل من ثانية", "ثانية واحدة", ["ثانيتان", "ثانيتين"], "%d ثوان", "%d ثانية", "%d ثانية"], m: ["أقل من دقيقة", "دقيقة واحدة", ["دقيقتان", "دقيقتين"], "%d دقائق", "%d دقيقة", "%d دقيقة"], h: ["أقل من ساعة", "ساعة واحدة", ["ساعتان", "ساعتين"], "%d ساعات", "%d ساعة", "%d ساعة"], d: ["أقل من يوم", "يوم واحد", ["يومان", "يومين"], "%d أيام", "%d يومًا", "%d يوم"], M: ["أقل من شهر", "شهر واحد", ["شهران", "شهرين"], "%d أشهر", "%d شهرا", "%d شهر"], y: ["أقل من عام", "عام واحد", ["عامان", "عامين"], "%d أعوام", "%d عامًا", "%d عام"] }, n = function (s) { return function (e, t, n, i) { var r = o(e), a = u[s][o(e)]; if (r === 2) a = a[t ? 0 : 1]; return a.replace(/%d/i, e) } }, i = ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"], r; e.defineLocale("ar-ly", { months: i, monthsShort: i, weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"), weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"), weekdaysMin: "ح_ن_ث_ر_خ_ج_س".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "D/‏M/‏YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, meridiemParse: /ص|م/, isPM: function (e) { return "م" === e }, meridiem: function (e, t, n) { if (e < 12) return "ص"; else return "م" }, calendar: { sameDay: "[اليوم عند الساعة] LT", nextDay: "[غدًا عند الساعة] LT", nextWeek: "dddd [عند الساعة] LT", lastDay: "[أمس عند الساعة] LT", lastWeek: "dddd [عند الساعة] LT", sameElse: "L" }, relativeTime: { future: "بعد %s", past: "منذ %s", s: n("s"), ss: n("s"), m: n("m"), mm: n("m"), h: n("h"), hh: n("h"), d: n("d"), dd: n("d"), M: n("M"), MM: n("M"), y: n("y"), yy: n("y") }, preparse: function (e) { return e.replace(/،/g, ",") }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }).replace(/,/g, "،") }, week: { dow: 6, doy: 12 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ar-ma", { months: "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"), monthsShort: "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"), weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"), weekdaysShort: "احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"), weekdaysMin: "ح_ن_ث_ر_خ_ج_س".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[اليوم على الساعة] LT", nextDay: "[غدا على الساعة] LT", nextWeek: "dddd [على الساعة] LT", lastDay: "[أمس على الساعة] LT", lastWeek: "dddd [على الساعة] LT", sameElse: "L" }, relativeTime: { future: "في %s", past: "منذ %s", s: "ثوان", ss: "%d ثانية", m: "دقيقة", mm: "%d دقائق", h: "ساعة", hh: "%d ساعات", d: "يوم", dd: "%d أيام", M: "شهر", MM: "%d أشهر", y: "سنة", yy: "%d سنوات" }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "١", 2: "٢", 3: "٣", 4: "٤", 5: "٥", 6: "٦", 7: "٧", 8: "٨", 9: "٩", 0: "٠" }, n = { "١": "1", "٢": "2", "٣": "3", "٤": "4", "٥": "5", "٦": "6", "٧": "7", "٨": "8", "٩": "9", "٠": "0" }, i; e.defineLocale("ar-sa", { months: "يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"), monthsShort: "يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"), weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"), weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"), weekdaysMin: "ح_ن_ث_ر_خ_ج_س".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, meridiemParse: /ص|م/, isPM: function (e) { return "م" === e }, meridiem: function (e, t, n) { if (e < 12) return "ص"; else return "م" }, calendar: { sameDay: "[اليوم على الساعة] LT", nextDay: "[غدا على الساعة] LT", nextWeek: "dddd [على الساعة] LT", lastDay: "[أمس على الساعة] LT", lastWeek: "dddd [على الساعة] LT", sameElse: "L" }, relativeTime: { future: "في %s", past: "منذ %s", s: "ثوان", ss: "%d ثانية", m: "دقيقة", mm: "%d دقائق", h: "ساعة", hh: "%d ساعات", d: "يوم", dd: "%d أيام", M: "شهر", MM: "%d أشهر", y: "سنة", yy: "%d سنوات" }, preparse: function (e) { return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (e) { return n[e] }).replace(/،/g, ",") }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }).replace(/,/g, "،") }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ar-tn", { months: "جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"), monthsShort: "جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"), weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"), weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"), weekdaysMin: "ح_ن_ث_ر_خ_ج_س".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[اليوم على الساعة] LT", nextDay: "[غدا على الساعة] LT", nextWeek: "dddd [على الساعة] LT", lastDay: "[أمس على الساعة] LT", lastWeek: "dddd [على الساعة] LT", sameElse: "L" }, relativeTime: { future: "في %s", past: "منذ %s", s: "ثوان", ss: "%d ثانية", m: "دقيقة", mm: "%d دقائق", h: "ساعة", hh: "%d ساعات", d: "يوم", dd: "%d أيام", M: "شهر", MM: "%d أشهر", y: "سنة", yy: "%d سنوات" }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var r = { 1: "-inci", 5: "-inci", 8: "-inci", 70: "-inci", 80: "-inci", 2: "-nci", 7: "-nci", 20: "-nci", 50: "-nci", 3: "-üncü", 4: "-üncü", 100: "-üncü", 6: "-ncı", 9: "-uncu", 10: "-uncu", 30: "-uncu", 60: "-ıncı", 90: "-ıncı" }, t; e.defineLocale("az", { months: "yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"), monthsShort: "yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"), weekdays: "Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"), weekdaysShort: "Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"), weekdaysMin: "Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[bugün saat] LT", nextDay: "[sabah saat] LT", nextWeek: "[gələn həftə] dddd [saat] LT", lastDay: "[dünən] LT", lastWeek: "[keçən həftə] dddd [saat] LT", sameElse: "L" }, relativeTime: { future: "%s sonra", past: "%s əvvəl", s: "bir neçə saniyə", ss: "%d saniyə", m: "bir dəqiqə", mm: "%d dəqiqə", h: "bir saat", hh: "%d saat", d: "bir gün", dd: "%d gün", M: "bir ay", MM: "%d ay", y: "bir il", yy: "%d il" }, meridiemParse: /gecə|səhər|gündüz|axşam/, isPM: function (e) { return /^(gündüz|axşam)$/.test(e) }, meridiem: function (e, t, n) { if (e < 4) return "gecə"; else if (e < 12) return "səhər"; else if (e < 17) return "gündüz"; else return "axşam" }, dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, ordinal: function (e) { if (e === 0) return e + "-ıncı"; var t = e % 10, n = e % 100 - t, i = e >= 100 ? 100 : null; return e + (r[t] || r[n] || r[i]) }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function r(e, t) { var n = e.split("_"); return t % 10 === 1 && t % 100 !== 11 ? n[0] : t % 10 >= 2 && t % 10 <= 4 && (t % 100 < 10 || t % 100 >= 20) ? n[1] : n[2] } function t(e, t, n) { var i = { ss: t ? "секунда_секунды_секунд" : "секунду_секунды_секунд", mm: t ? "хвіліна_хвіліны_хвілін" : "хвіліну_хвіліны_хвілін", hh: t ? "гадзіна_гадзіны_гадзін" : "гадзіну_гадзіны_гадзін", dd: "дзень_дні_дзён", MM: "месяц_месяцы_месяцаў", yy: "год_гады_гадоў" }; if (n === "m") return t ? "хвіліна" : "хвіліну"; else if (n === "h") return t ? "гадзіна" : "гадзіну"; else return e + " " + r(i[n], +e) } var n; e.defineLocale("be", { months: { format: "студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"), standalone: "студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_") }, monthsShort: "студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"), weekdays: { format: "нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"), standalone: "нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"), isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/ }, weekdaysShort: "нд_пн_ат_ср_чц_пт_сб".split("_"), weekdaysMin: "нд_пн_ат_ср_чц_пт_сб".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY г.", LLL: "D MMMM YYYY г., HH:mm", LLLL: "dddd, D MMMM YYYY г., HH:mm" }, calendar: { sameDay: "[Сёння ў] LT", nextDay: "[Заўтра ў] LT", lastDay: "[Учора ў] LT", nextWeek: function () { return "[У] dddd [ў] LT" }, lastWeek: function () { switch (this.day()) { case 0: case 3: case 5: case 6: return "[У мінулую] dddd [ў] LT"; case 1: case 2: case 4: return "[У мінулы] dddd [ў] LT" } }, sameElse: "L" }, relativeTime: { future: "праз %s", past: "%s таму", s: "некалькі секунд", m: t, mm: t, h: t, hh: t, d: "дзень", dd: t, M: "месяц", MM: t, y: "год", yy: t }, meridiemParse: /ночы|раніцы|дня|вечара/, isPM: function (e) { return /^(дня|вечара)$/.test(e) }, meridiem: function (e, t, n) { if (e < 4) return "ночы"; else if (e < 12) return "раніцы"; else if (e < 17) return "дня"; else return "вечара" }, dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, ordinal: function (e, t) { switch (t) { case "M": case "d": case "DDD": case "w": case "W": return (e % 10 === 2 || e % 10 === 3) && e % 100 !== 12 && e % 100 !== 13 ? e + "-і" : e + "-ы"; case "D": return e + "-га"; default: return e } }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("bg", { months: "януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"), monthsShort: "яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"), weekdays: "неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"), weekdaysShort: "нед_пон_вто_сря_чет_пет_съб".split("_"), weekdaysMin: "нд_пн_вт_ср_чт_пт_сб".split("_"), longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "D.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY H:mm", LLLL: "dddd, D MMMM YYYY H:mm" }, calendar: { sameDay: "[Днес в] LT", nextDay: "[Утре в] LT", nextWeek: "dddd [в] LT", lastDay: "[Вчера в] LT", lastWeek: function () { switch (this.day()) { case 0: case 3: case 6: return "[Миналата] dddd [в] LT"; case 1: case 2: case 4: case 5: return "[Миналия] dddd [в] LT" } }, sameElse: "L" }, relativeTime: { future: "след %s", past: "преди %s", s: "няколко секунди", ss: "%d секунди", m: "минута", mm: "%d минути", h: "час", hh: "%d часа", d: "ден", dd: "%d дена", w: "седмица", ww: "%d седмици", M: "месец", MM: "%d месеца", y: "година", yy: "%d години" }, dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, ordinal: function (e) { var t = e % 10, n = e % 100; if (e === 0) return e + "-ев"; else if (n === 0) return e + "-ен"; else if (n > 10 && n < 20) return e + "-ти"; else if (t === 1) return e + "-ви"; else if (t === 2) return e + "-ри"; else if (t === 7 || t === 8) return e + "-ми"; else return e + "-ти" }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("bm", { months: "Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"), monthsShort: "Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"), weekdays: "Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"), weekdaysShort: "Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"), weekdaysMin: "Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "MMMM [tile] D [san] YYYY", LLL: "MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm", LLLL: "dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm" }, calendar: { sameDay: "[Bi lɛrɛ] LT", nextDay: "[Sini lɛrɛ] LT", nextWeek: "dddd [don lɛrɛ] LT", lastDay: "[Kunu lɛrɛ] LT", lastWeek: "dddd [tɛmɛnen lɛrɛ] LT", sameElse: "L" }, relativeTime: { future: "%s kɔnɔ", past: "a bɛ %s bɔ", s: "sanga dama dama", ss: "sekondi %d", m: "miniti kelen", mm: "miniti %d", h: "lɛrɛ kelen", hh: "lɛrɛ %d", d: "tile kelen", dd: "tile %d", M: "kalo kelen", MM: "kalo %d", y: "san kelen", yy: "san %d" }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "১", 2: "২", 3: "৩", 4: "৪", 5: "৫", 6: "৬", 7: "৭", 8: "৮", 9: "৯", 0: "০" }, n = { "১": "1", "২": "2", "৩": "3", "৪": "4", "৫": "5", "৬": "6", "৭": "7", "৮": "8", "৯": "9", "০": "0" }, i; e.defineLocale("bn", { months: "জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"), monthsShort: "জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"), weekdays: "রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"), weekdaysShort: "রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"), weekdaysMin: "রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"), longDateFormat: { LT: "A h:mm সময়", LTS: "A h:mm:ss সময়", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm সময়", LLLL: "dddd, D MMMM YYYY, A h:mm সময়" }, calendar: { sameDay: "[আজ] LT", nextDay: "[আগামীকাল] LT", nextWeek: "dddd, LT", lastDay: "[গতকাল] LT", lastWeek: "[গত] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s পরে", past: "%s আগে", s: "কয়েক সেকেন্ড", ss: "%d সেকেন্ড", m: "এক মিনিট", mm: "%d মিনিট", h: "এক ঘন্টা", hh: "%d ঘন্টা", d: "এক দিন", dd: "%d দিন", M: "এক মাস", MM: "%d মাস", y: "এক বছর", yy: "%d বছর" }, preparse: function (e) { return e.replace(/[১২৩৪৫৬৭৮৯০]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "রাত" && e >= 4 || t === "দুপুর" && e < 5 || t === "বিকাল") return e + 12; else return e }, meridiem: function (e, t, n) { if (e < 4) return "রাত"; else if (e < 10) return "সকাল"; else if (e < 17) return "দুপুর"; else if (e < 20) return "বিকাল"; else return "রাত" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "১", 2: "২", 3: "৩", 4: "৪", 5: "৫", 6: "৬", 7: "৭", 8: "৮", 9: "৯", 0: "০" }, n = { "১": "1", "২": "2", "৩": "3", "৪": "4", "৫": "5", "৬": "6", "৭": "7", "৮": "8", "৯": "9", "০": "0" }, i; e.defineLocale("bn-bd", { months: "জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"), monthsShort: "জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"), weekdays: "রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"), weekdaysShort: "রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"), weekdaysMin: "রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"), longDateFormat: { LT: "A h:mm সময়", LTS: "A h:mm:ss সময়", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm সময়", LLLL: "dddd, D MMMM YYYY, A h:mm সময়" }, calendar: { sameDay: "[আজ] LT", nextDay: "[আগামীকাল] LT", nextWeek: "dddd, LT", lastDay: "[গতকাল] LT", lastWeek: "[গত] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s পরে", past: "%s আগে", s: "কয়েক সেকেন্ড", ss: "%d সেকেন্ড", m: "এক মিনিট", mm: "%d মিনিট", h: "এক ঘন্টা", hh: "%d ঘন্টা", d: "এক দিন", dd: "%d দিন", M: "এক মাস", MM: "%d মাস", y: "এক বছর", yy: "%d বছর" }, preparse: function (e) { return e.replace(/[১২৩৪৫৬৭৮৯০]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "রাত") return e < 4 ? e : e + 12; else if (t === "ভোর") return e; else if (t === "সকাল") return e; else if (t === "দুপুর") return e >= 3 ? e : e + 12; else if (t === "বিকাল") return e + 12; else if (t === "সন্ধ্যা") return e + 12 }, meridiem: function (e, t, n) { if (e < 4) return "রাত"; else if (e < 6) return "ভোর"; else if (e < 12) return "সকাল"; else if (e < 15) return "দুপুর"; else if (e < 18) return "বিকাল"; else if (e < 20) return "সন্ধ্যা"; else return "রাত" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "༡", 2: "༢", 3: "༣", 4: "༤", 5: "༥", 6: "༦", 7: "༧", 8: "༨", 9: "༩", 0: "༠" }, n = { "༡": "1", "༢": "2", "༣": "3", "༤": "4", "༥": "5", "༦": "6", "༧": "7", "༨": "8", "༩": "9", "༠": "0" }, i; e.defineLocale("bo", { months: "ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"), monthsShort: "ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12".split("_"), monthsShortRegex: /^(ཟླ་\d{1,2})/, monthsParseExact: true, weekdays: "གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"), weekdaysShort: "ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"), weekdaysMin: "ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན".split("_"), longDateFormat: { LT: "A h:mm", LTS: "A h:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm", LLLL: "dddd, D MMMM YYYY, A h:mm" }, calendar: { sameDay: "[དི་རིང] LT", nextDay: "[སང་ཉིན] LT", nextWeek: "[བདུན་ཕྲག་རྗེས་མ], LT", lastDay: "[ཁ་སང] LT", lastWeek: "[བདུན་ཕྲག་མཐའ་མ] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s ལ་", past: "%s སྔན་ལ", s: "ལམ་སང", ss: "%d སྐར་ཆ།", m: "སྐར་མ་གཅིག", mm: "%d སྐར་མ", h: "ཆུ་ཚོད་གཅིག", hh: "%d ཆུ་ཚོད", d: "ཉིན་གཅིག", dd: "%d ཉིན་", M: "ཟླ་བ་གཅིག", MM: "%d ཟླ་བ", y: "ལོ་གཅིག", yy: "%d ལོ" }, preparse: function (e) { return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "མཚན་མོ" && e >= 4 || t === "ཉིན་གུང" && e < 5 || t === "དགོང་དག") return e + 12; else return e }, meridiem: function (e, t, n) { if (e < 4) return "མཚན་མོ"; else if (e < 10) return "ཞོགས་ཀས"; else if (e < 17) return "ཉིན་གུང"; else if (e < 20) return "དགོང་དག"; else return "མཚན་མོ" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n) { var i = { mm: "munutenn", MM: "miz", dd: "devezh" }; return e + " " + r(i[n], e) } function n(e) { switch (i(e)) { case 1: case 3: case 4: case 5: case 9: return e + " bloaz"; default: return e + " vloaz" } } function i(e) { if (e > 9) return i(e % 10); return e } function r(e, t) { if (t === 2) return a(e); return e } function a(e) { var t = { m: "v", b: "v", d: "z" }; if (t[e.charAt(0)] === undefined) return e; return t[e.charAt(0)] + e.substring(1) } var s = [/^gen/i, /^c[ʼ\']hwe/i, /^meu/i, /^ebr/i, /^mae/i, /^(mez|eve)/i, /^gou/i, /^eos/i, /^gwe/i, /^her/i, /^du/i, /^ker/i], o = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, u = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i, d = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i, l = [/^sul/i, /^lun/i, /^meurzh/i, /^merc[ʼ\']her/i, /^yaou/i, /^gwener/i, /^sadorn/i], h = [/^Sul/i, /^Lun/i, /^Meu/i, /^Mer/i, /^Yao/i, /^Gwe/i, /^Sad/i], c = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i], _; e.defineLocale("br", { months: "Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"), monthsShort: "Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"), weekdays: "Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"), weekdaysShort: "Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"), weekdaysMin: "Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"), weekdaysParse: c, fullWeekdaysParse: l, shortWeekdaysParse: h, minWeekdaysParse: c, monthsRegex: o, monthsShortRegex: o, monthsStrictRegex: u, monthsShortStrictRegex: d, monthsParse: s, longMonthsParse: s, shortMonthsParse: s, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D [a viz] MMMM YYYY", LLL: "D [a viz] MMMM YYYY HH:mm", LLLL: "dddd, D [a viz] MMMM YYYY HH:mm" }, calendar: { sameDay: "[Hiziv da] LT", nextDay: "[Warcʼhoazh da] LT", nextWeek: "dddd [da] LT", lastDay: "[Decʼh da] LT", lastWeek: "dddd [paset da] LT", sameElse: "L" }, relativeTime: { future: "a-benn %s", past: "%s ʼzo", s: "un nebeud segondennoù", ss: "%d eilenn", m: "ur vunutenn", mm: t, h: "un eur", hh: "%d eur", d: "un devezh", dd: t, M: "ur miz", MM: t, y: "ur bloaz", yy: n }, dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/, ordinal: function (e) { var t = e === 1 ? "añ" : "vet"; return e + t }, week: { dow: 1, doy: 4 }, meridiemParse: /a.m.|g.m./, isPM: function (e) { return e === "g.m." }, meridiem: function (e, t, n) { return e < 12 ? "a.m." : "g.m." } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n) { var i = e + " "; switch (n) { case "ss": if (e === 1) i += "sekunda"; else if (e === 2 || e === 3 || e === 4) i += "sekunde"; else i += "sekundi"; return i; case "m": return t ? "jedna minuta" : "jedne minute"; case "mm": if (e === 1) i += "minuta"; else if (e === 2 || e === 3 || e === 4) i += "minute"; else i += "minuta"; return i; case "h": return t ? "jedan sat" : "jednog sata"; case "hh": if (e === 1) i += "sat"; else if (e === 2 || e === 3 || e === 4) i += "sata"; else i += "sati"; return i; case "dd": if (e === 1) i += "dan"; else i += "dana"; return i; case "MM": if (e === 1) i += "mjesec"; else if (e === 2 || e === 3 || e === 4) i += "mjeseca"; else i += "mjeseci"; return i; case "yy": if (e === 1) i += "godina"; else if (e === 2 || e === 3 || e === 4) i += "godine"; else i += "godina"; return i } } var n; e.defineLocale("bs", { months: "januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"), monthsShort: "jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"), monthsParseExact: true, weekdays: "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"), weekdaysShort: "ned._pon._uto._sri._čet._pet._sub.".split("_"), weekdaysMin: "ne_po_ut_sr_če_pe_su".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY H:mm", LLLL: "dddd, D. MMMM YYYY H:mm" }, calendar: { sameDay: "[danas u] LT", nextDay: "[sutra u] LT", nextWeek: function () { switch (this.day()) { case 0: return "[u] [nedjelju] [u] LT"; case 3: return "[u] [srijedu] [u] LT"; case 6: return "[u] [subotu] [u] LT"; case 1: case 2: case 4: case 5: return "[u] dddd [u] LT" } }, lastDay: "[jučer u] LT", lastWeek: function () { switch (this.day()) { case 0: case 3: return "[prošlu] dddd [u] LT"; case 6: return "[prošle] [subote] [u] LT"; case 1: case 2: case 4: case 5: return "[prošli] dddd [u] LT" } }, sameElse: "L" }, relativeTime: { future: "za %s", past: "prije %s", s: "par sekundi", ss: t, m: t, mm: t, h: t, hh: t, d: "dan", dd: t, M: "mjesec", MM: t, y: "godinu", yy: t }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ca", { months: { standalone: "gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"), format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"), isFormat: /D[oD]?(\s)+MMMM/ }, monthsShort: "gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"), monthsParseExact: true, weekdays: "diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"), weekdaysShort: "dg._dl._dt._dc._dj._dv._ds.".split("_"), weekdaysMin: "dg_dl_dt_dc_dj_dv_ds".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM [de] YYYY", ll: "D MMM YYYY", LLL: "D MMMM [de] YYYY [a les] H:mm", lll: "D MMM YYYY, H:mm", LLLL: "dddd D MMMM [de] YYYY [a les] H:mm", llll: "ddd D MMM YYYY, H:mm" }, calendar: { sameDay: function () { return "[avui a " + (this.hours() !== 1 ? "les" : "la") + "] LT" }, nextDay: function () { return "[demà a " + (this.hours() !== 1 ? "les" : "la") + "] LT" }, nextWeek: function () { return "dddd [a " + (this.hours() !== 1 ? "les" : "la") + "] LT" }, lastDay: function () { return "[ahir a " + (this.hours() !== 1 ? "les" : "la") + "] LT" }, lastWeek: function () { return "[el] dddd [passat a " + (this.hours() !== 1 ? "les" : "la") + "] LT" }, sameElse: "L" }, relativeTime: { future: "d'aquí %s", past: "fa %s", s: "uns segons", ss: "%d segons", m: "un minut", mm: "%d minuts", h: "una hora", hh: "%d hores", d: "un dia", dd: "%d dies", M: "un mes", MM: "%d mesos", y: "un any", yy: "%d anys" }, dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, ordinal: function (e, t) { var n = e === 1 ? "r" : e === 2 ? "n" : e === 3 ? "r" : e === 4 ? "t" : "è"; if (t === "w" || t === "W") n = "a"; return e + n }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = "leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"), n = "led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"), i = [/^led/i, /^úno/i, /^bře/i, /^dub/i, /^kvě/i, /^(čvn|červen$|června)/i, /^(čvc|červenec|července)/i, /^srp/i, /^zář/i, /^říj/i, /^lis/i, /^pro/i], r = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, a; function s(e) { return e > 1 && e < 5 && ~~(e / 10) !== 1 } function o(e, t, n, i) { var r = e + " "; switch (n) { case "s": return t || i ? "pár sekund" : "pár sekundami"; case "ss": if (t || i) return r + (s(e) ? "sekundy" : "sekund"); else return r + "sekundami"; case "m": return t ? "minuta" : i ? "minutu" : "minutou"; case "mm": if (t || i) return r + (s(e) ? "minuty" : "minut"); else return r + "minutami"; case "h": return t ? "hodina" : i ? "hodinu" : "hodinou"; case "hh": if (t || i) return r + (s(e) ? "hodiny" : "hodin"); else return r + "hodinami"; case "d": return t || i ? "den" : "dnem"; case "dd": if (t || i) return r + (s(e) ? "dny" : "dní"); else return r + "dny"; case "M": return t || i ? "měsíc" : "měsícem"; case "MM": if (t || i) return r + (s(e) ? "měsíce" : "měsíců"); else return r + "měsíci"; case "y": return t || i ? "rok" : "rokem"; case "yy": if (t || i) return r + (s(e) ? "roky" : "let"); else return r + "lety" } } e.defineLocale("cs", { months: t, monthsShort: n, monthsRegex: r, monthsShortRegex: r, monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, monthsParse: i, longMonthsParse: i, shortMonthsParse: i, weekdays: "neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"), weekdaysShort: "ne_po_út_st_čt_pá_so".split("_"), weekdaysMin: "ne_po_út_st_čt_pá_so".split("_"), longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY H:mm", LLLL: "dddd D. MMMM YYYY H:mm", l: "D. M. YYYY" }, calendar: { sameDay: "[dnes v] LT", nextDay: "[zítra v] LT", nextWeek: function () { switch (this.day()) { case 0: return "[v neděli v] LT"; case 1: case 2: return "[v] dddd [v] LT"; case 3: return "[ve středu v] LT"; case 4: return "[ve čtvrtek v] LT"; case 5: return "[v pátek v] LT"; case 6: return "[v sobotu v] LT" } }, lastDay: "[včera v] LT", lastWeek: function () { switch (this.day()) { case 0: return "[minulou neděli v] LT"; case 1: case 2: return "[minulé] dddd [v] LT"; case 3: return "[minulou středu v] LT"; case 4: case 5: return "[minulý] dddd [v] LT"; case 6: return "[minulou sobotu v] LT" } }, sameElse: "L" }, relativeTime: { future: "za %s", past: "před %s", s: o, ss: o, m: o, mm: o, h: o, hh: o, d: o, dd: o, M: o, MM: o, y: o, yy: o }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("cv", { months: "кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"), monthsShort: "кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"), weekdays: "вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"), weekdaysShort: "выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"), weekdaysMin: "вр_тн_ыт_юн_кҫ_эр_шм".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD-MM-YYYY", LL: "YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]", LLL: "YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm", LLLL: "dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm" }, calendar: { sameDay: "[Паян] LT [сехетре]", nextDay: "[Ыран] LT [сехетре]", lastDay: "[Ӗнер] LT [сехетре]", nextWeek: "[Ҫитес] dddd LT [сехетре]", lastWeek: "[Иртнӗ] dddd LT [сехетре]", sameElse: "L" }, relativeTime: { future: function (e) { var t = /сехет$/i.exec(e) ? "рен" : /ҫул$/i.exec(e) ? "тан" : "ран"; return e + t }, past: "%s каялла", s: "пӗр-ик ҫеккунт", ss: "%d ҫеккунт", m: "пӗр минут", mm: "%d минут", h: "пӗр сехет", hh: "%d сехет", d: "пӗр кун", dd: "%d кун", M: "пӗр уйӑх", MM: "%d уйӑх", y: "пӗр ҫул", yy: "%d ҫул" }, dayOfMonthOrdinalParse: /\d{1,2}-мӗш/, ordinal: "%d-мӗш", week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("cy", { months: "Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"), monthsShort: "Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"), weekdays: "Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"), weekdaysShort: "Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"), weekdaysMin: "Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Heddiw am] LT", nextDay: "[Yfory am] LT", nextWeek: "dddd [am] LT", lastDay: "[Ddoe am] LT", lastWeek: "dddd [diwethaf am] LT", sameElse: "L" }, relativeTime: { future: "mewn %s", past: "%s yn ôl", s: "ychydig eiliadau", ss: "%d eiliad", m: "munud", mm: "%d munud", h: "awr", hh: "%d awr", d: "diwrnod", dd: "%d diwrnod", M: "mis", MM: "%d mis", y: "blwyddyn", yy: "%d flynedd" }, dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, ordinal: function (e) { var t = e, n = "", i = ["", "af", "il", "ydd", "ydd", "ed", "ed", "ed", "fed", "fed", "fed", "eg", "fed", "eg", "eg", "fed", "eg", "eg", "fed", "eg", "fed"]; if (t > 20) if (t === 40 || t === 50 || t === 60 || t === 80 || t === 100) n = "fed"; else n = "ain"; else if (t > 0) n = i[t]; return e + n }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("da", { months: "januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"), monthsShort: "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"), weekdays: "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"), weekdaysShort: "søn_man_tir_ons_tor_fre_lør".split("_"), weekdaysMin: "sø_ma_ti_on_to_fr_lø".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY HH:mm", LLLL: "dddd [d.] D. MMMM YYYY [kl.] HH:mm" }, calendar: { sameDay: "[i dag kl.] LT", nextDay: "[i morgen kl.] LT", nextWeek: "på dddd [kl.] LT", lastDay: "[i går kl.] LT", lastWeek: "[i] dddd[s kl.] LT", sameElse: "L" }, relativeTime: { future: "om %s", past: "%s siden", s: "få sekunder", ss: "%d sekunder", m: "et minut", mm: "%d minutter", h: "en time", hh: "%d timer", d: "en dag", dd: "%d dage", M: "en måned", MM: "%d måneder", y: "et år", yy: "%d år" }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n, i) { var r = { m: ["eine Minute", "einer Minute"], h: ["eine Stunde", "einer Stunde"], d: ["ein Tag", "einem Tag"], dd: [e + " Tage", e + " Tagen"], w: ["eine Woche", "einer Woche"], M: ["ein Monat", "einem Monat"], MM: [e + " Monate", e + " Monaten"], y: ["ein Jahr", "einem Jahr"], yy: [e + " Jahre", e + " Jahren"] }; return t ? r[n][0] : r[n][1] } var n; e.defineLocale("de", { months: "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"), monthsShort: "Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"), monthsParseExact: true, weekdays: "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"), weekdaysShort: "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"), weekdaysMin: "So_Mo_Di_Mi_Do_Fr_Sa".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY HH:mm", LLLL: "dddd, D. MMMM YYYY HH:mm" }, calendar: { sameDay: "[heute um] LT [Uhr]", sameElse: "L", nextDay: "[morgen um] LT [Uhr]", nextWeek: "dddd [um] LT [Uhr]", lastDay: "[gestern um] LT [Uhr]", lastWeek: "[letzten] dddd [um] LT [Uhr]" }, relativeTime: { future: "in %s", past: "vor %s", s: "ein paar Sekunden", ss: "%d Sekunden", m: t, mm: "%d Minuten", h: t, hh: "%d Stunden", d: t, dd: t, w: t, ww: "%d Wochen", M: t, MM: t, y: t, yy: t }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n, i) { var r = { m: ["eine Minute", "einer Minute"], h: ["eine Stunde", "einer Stunde"], d: ["ein Tag", "einem Tag"], dd: [e + " Tage", e + " Tagen"], w: ["eine Woche", "einer Woche"], M: ["ein Monat", "einem Monat"], MM: [e + " Monate", e + " Monaten"], y: ["ein Jahr", "einem Jahr"], yy: [e + " Jahre", e + " Jahren"] }; return t ? r[n][0] : r[n][1] } var n; e.defineLocale("de-at", { months: "Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"), monthsShort: "Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"), monthsParseExact: true, weekdays: "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"), weekdaysShort: "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"), weekdaysMin: "So_Mo_Di_Mi_Do_Fr_Sa".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY HH:mm", LLLL: "dddd, D. MMMM YYYY HH:mm" }, calendar: { sameDay: "[heute um] LT [Uhr]", sameElse: "L", nextDay: "[morgen um] LT [Uhr]", nextWeek: "dddd [um] LT [Uhr]", lastDay: "[gestern um] LT [Uhr]", lastWeek: "[letzten] dddd [um] LT [Uhr]" }, relativeTime: { future: "in %s", past: "vor %s", s: "ein paar Sekunden", ss: "%d Sekunden", m: t, mm: "%d Minuten", h: t, hh: "%d Stunden", d: t, dd: t, w: t, ww: "%d Wochen", M: t, MM: t, y: t, yy: t }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n, i) { var r = { m: ["eine Minute", "einer Minute"], h: ["eine Stunde", "einer Stunde"], d: ["ein Tag", "einem Tag"], dd: [e + " Tage", e + " Tagen"], w: ["eine Woche", "einer Woche"], M: ["ein Monat", "einem Monat"], MM: [e + " Monate", e + " Monaten"], y: ["ein Jahr", "einem Jahr"], yy: [e + " Jahre", e + " Jahren"] }; return t ? r[n][0] : r[n][1] } var n; e.defineLocale("de-ch", { months: "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"), monthsShort: "Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"), monthsParseExact: true, weekdays: "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"), weekdaysShort: "So_Mo_Di_Mi_Do_Fr_Sa".split("_"), weekdaysMin: "So_Mo_Di_Mi_Do_Fr_Sa".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY HH:mm", LLLL: "dddd, D. MMMM YYYY HH:mm" }, calendar: { sameDay: "[heute um] LT [Uhr]", sameElse: "L", nextDay: "[morgen um] LT [Uhr]", nextWeek: "dddd [um] LT [Uhr]", lastDay: "[gestern um] LT [Uhr]", lastWeek: "[letzten] dddd [um] LT [Uhr]" }, relativeTime: { future: "in %s", past: "vor %s", s: "ein paar Sekunden", ss: "%d Sekunden", m: t, mm: "%d Minuten", h: t, hh: "%d Stunden", d: t, dd: t, w: t, ww: "%d Wochen", M: t, MM: t, y: t, yy: t }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = ["ޖެނުއަރީ", "ފެބްރުއަރީ", "މާރިޗު", "އޭޕްރީލު", "މޭ", "ޖޫން", "ޖުލައި", "އޯގަސްޓު", "ސެޕްޓެމްބަރު", "އޮކްޓޯބަރު", "ނޮވެމްބަރު", "ޑިސެމްބަރު"], n = ["އާދިއްތަ", "ހޯމަ", "އަންގާރަ", "ބުދަ", "ބުރާސްފަތި", "ހުކުރު", "ހޮނިހިރު"], i; e.defineLocale("dv", { months: t, monthsShort: t, weekdays: n, weekdaysShort: n, weekdaysMin: "އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "D/M/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, meridiemParse: /މކ|މފ/, isPM: function (e) { return "މފ" === e }, meridiem: function (e, t, n) { if (e < 12) return "މކ"; else return "މފ" }, calendar: { sameDay: "[މިއަދު] LT", nextDay: "[މާދަމާ] LT", nextWeek: "dddd LT", lastDay: "[އިއްޔެ] LT", lastWeek: "[ފާއިތުވި] dddd LT", sameElse: "L" }, relativeTime: { future: "ތެރޭގައި %s", past: "ކުރިން %s", s: "ސިކުންތުކޮޅެއް", ss: "d% ސިކުންތު", m: "މިނިޓެއް", mm: "މިނިޓު %d", h: "ގަޑިއިރެއް", hh: "ގަޑިއިރު %d", d: "ދުވަހެއް", dd: "ދުވަސް %d", M: "މަހެއް", MM: "މަސް %d", y: "އަހަރެއް", yy: "އަހަރު %d" }, preparse: function (e) { return e.replace(/،/g, ",") }, postformat: function (e) { return e.replace(/,/g, "،") }, week: { dow: 7, doy: 12 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function r(e) { return typeof Function !== "undefined" && e instanceof Function || Object.prototype.toString.call(e) === "[object Function]" } var t; e.defineLocale("el", { monthsNominativeEl: "Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"), monthsGenitiveEl: "Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"), months: function (e, t) { if (!e) return this._monthsNominativeEl; else if (typeof t === "string" && /D/.test(t.substring(0, t.indexOf("MMMM")))) return this._monthsGenitiveEl[e.month()]; else return this._monthsNominativeEl[e.month()] }, monthsShort: "Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"), weekdays: "Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"), weekdaysShort: "Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"), weekdaysMin: "Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"), meridiem: function (e, t, n) { if (e > 11) return n ? "μμ" : "ΜΜ"; else return n ? "πμ" : "ΠΜ" }, isPM: function (e) { return (e + "").toLowerCase()[0] === "μ" }, meridiemParse: /[ΠΜ]\.?Μ?\.?/i, longDateFormat: { LT: "h:mm A", LTS: "h:mm:ss A", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY h:mm A", LLLL: "dddd, D MMMM YYYY h:mm A" }, calendarEl: { sameDay: "[Σήμερα {}] LT", nextDay: "[Αύριο {}] LT", nextWeek: "dddd [{}] LT", lastDay: "[Χθες {}] LT", lastWeek: function () { switch (this.day()) { case 6: return "[το προηγούμενο] dddd [{}] LT"; default: return "[την προηγούμενη] dddd [{}] LT" } }, sameElse: "L" }, calendar: function (e, t) { var n = this._calendarEl[e], i = t && t.hours(); if (r(n)) n = n.apply(t); return n.replace("{}", i % 12 === 1 ? "στη" : "στις") }, relativeTime: { future: "σε %s", past: "%s πριν", s: "λίγα δευτερόλεπτα", ss: "%d δευτερόλεπτα", m: "ένα λεπτό", mm: "%d λεπτά", h: "μία ώρα", hh: "%d ώρες", d: "μία μέρα", dd: "%d μέρες", M: "ένας μήνας", MM: "%d μήνες", y: "ένας χρόνος", yy: "%d χρόνια" }, dayOfMonthOrdinalParse: /\d{1,2}η/, ordinal: "%dη", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("en-au", { months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), longDateFormat: { LT: "h:mm A", LTS: "h:mm:ss A", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY h:mm A", LLLL: "dddd, D MMMM YYYY h:mm A" }, calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n }, week: { dow: 0, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("en-ca", { months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), longDateFormat: { LT: "h:mm A", LTS: "h:mm:ss A", L: "YYYY-MM-DD", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("en-gb", { months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("en-ie", { months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("en-il", { months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("en-in", { months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), longDateFormat: { LT: "h:mm A", LTS: "h:mm:ss A", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY h:mm A", LLLL: "dddd, D MMMM YYYY h:mm A" }, calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("en-nz", { months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), longDateFormat: { LT: "h:mm A", LTS: "h:mm:ss A", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY h:mm A", LLLL: "dddd, D MMMM YYYY h:mm A" }, calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("en-sg", { months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, relativeTime: { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("eo", { months: "januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"), monthsShort: "jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"), weekdays: "dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"), weekdaysShort: "dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"), weekdaysMin: "di_lu_ma_me_ĵa_ve_sa".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY-MM-DD", LL: "[la] D[-an de] MMMM, YYYY", LLL: "[la] D[-an de] MMMM, YYYY HH:mm", LLLL: "dddd[n], [la] D[-an de] MMMM, YYYY HH:mm", llll: "ddd, [la] D[-an de] MMM, YYYY HH:mm" }, meridiemParse: /[ap]\.t\.m/i, isPM: function (e) { return e.charAt(0).toLowerCase() === "p" }, meridiem: function (e, t, n) { if (e > 11) return n ? "p.t.m." : "P.T.M."; else return n ? "a.t.m." : "A.T.M." }, calendar: { sameDay: "[Hodiaŭ je] LT", nextDay: "[Morgaŭ je] LT", nextWeek: "dddd[n je] LT", lastDay: "[Hieraŭ je] LT", lastWeek: "[pasintan] dddd[n je] LT", sameElse: "L" }, relativeTime: { future: "post %s", past: "antaŭ %s", s: "kelkaj sekundoj", ss: "%d sekundoj", m: "unu minuto", mm: "%d minutoj", h: "unu horo", hh: "%d horoj", d: "unu tago", dd: "%d tagoj", M: "unu monato", MM: "%d monatoj", y: "unu jaro", yy: "%d jaroj" }, dayOfMonthOrdinalParse: /\d{1,2}a/, ordinal: "%da", week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var n = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"), i = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"), t = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, a; e.defineLocale("es", { months: "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"), monthsShort: function (e, t) { if (!e) return n; else if (/-MMM-/.test(t)) return i[e.month()]; else return n[e.month()] }, monthsRegex: r, monthsShortRegex: r, monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsParse: t, longMonthsParse: t, shortMonthsParse: t, weekdays: "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"), weekdaysShort: "dom._lun._mar._mié._jue._vie._sáb.".split("_"), weekdaysMin: "do_lu_ma_mi_ju_vi_sá".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD/MM/YYYY", LL: "D [de] MMMM [de] YYYY", LLL: "D [de] MMMM [de] YYYY H:mm", LLLL: "dddd, D [de] MMMM [de] YYYY H:mm" }, calendar: { sameDay: function () { return "[hoy a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, nextDay: function () { return "[mañana a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, nextWeek: function () { return "dddd [a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, lastDay: function () { return "[ayer a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, lastWeek: function () { return "[el] dddd [pasado a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, sameElse: "L" }, relativeTime: { future: "en %s", past: "hace %s", s: "unos segundos", ss: "%d segundos", m: "un minuto", mm: "%d minutos", h: "una hora", hh: "%d horas", d: "un día", dd: "%d días", w: "una semana", ww: "%d semanas", M: "un mes", MM: "%d meses", y: "un año", yy: "%d años" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 }, invalidDate: "Fecha inválida" })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var n = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"), i = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"), t = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, a; e.defineLocale("es-do", { months: "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"), monthsShort: function (e, t) { if (!e) return n; else if (/-MMM-/.test(t)) return i[e.month()]; else return n[e.month()] }, monthsRegex: r, monthsShortRegex: r, monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsParse: t, longMonthsParse: t, shortMonthsParse: t, weekdays: "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"), weekdaysShort: "dom._lun._mar._mié._jue._vie._sáb.".split("_"), weekdaysMin: "do_lu_ma_mi_ju_vi_sá".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "h:mm A", LTS: "h:mm:ss A", L: "DD/MM/YYYY", LL: "D [de] MMMM [de] YYYY", LLL: "D [de] MMMM [de] YYYY h:mm A", LLLL: "dddd, D [de] MMMM [de] YYYY h:mm A" }, calendar: { sameDay: function () { return "[hoy a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, nextDay: function () { return "[mañana a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, nextWeek: function () { return "dddd [a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, lastDay: function () { return "[ayer a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, lastWeek: function () { return "[el] dddd [pasado a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, sameElse: "L" }, relativeTime: { future: "en %s", past: "hace %s", s: "unos segundos", ss: "%d segundos", m: "un minuto", mm: "%d minutos", h: "una hora", hh: "%d horas", d: "un día", dd: "%d días", w: "una semana", ww: "%d semanas", M: "un mes", MM: "%d meses", y: "un año", yy: "%d años" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var n = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"), i = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"), t = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, a; e.defineLocale("es-mx", { months: "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"), monthsShort: function (e, t) { if (!e) return n; else if (/-MMM-/.test(t)) return i[e.month()]; else return n[e.month()] }, monthsRegex: r, monthsShortRegex: r, monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsParse: t, longMonthsParse: t, shortMonthsParse: t, weekdays: "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"), weekdaysShort: "dom._lun._mar._mié._jue._vie._sáb.".split("_"), weekdaysMin: "do_lu_ma_mi_ju_vi_sá".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD/MM/YYYY", LL: "D [de] MMMM [de] YYYY", LLL: "D [de] MMMM [de] YYYY H:mm", LLLL: "dddd, D [de] MMMM [de] YYYY H:mm" }, calendar: { sameDay: function () { return "[hoy a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, nextDay: function () { return "[mañana a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, nextWeek: function () { return "dddd [a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, lastDay: function () { return "[ayer a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, lastWeek: function () { return "[el] dddd [pasado a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, sameElse: "L" }, relativeTime: { future: "en %s", past: "hace %s", s: "unos segundos", ss: "%d segundos", m: "un minuto", mm: "%d minutos", h: "una hora", hh: "%d horas", d: "un día", dd: "%d días", w: "una semana", ww: "%d semanas", M: "un mes", MM: "%d meses", y: "un año", yy: "%d años" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 0, doy: 4 }, invalidDate: "Fecha inválida" })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var n = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"), i = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"), t = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, a; e.defineLocale("es-us", { months: "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"), monthsShort: function (e, t) { if (!e) return n; else if (/-MMM-/.test(t)) return i[e.month()]; else return n[e.month()] }, monthsRegex: r, monthsShortRegex: r, monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, monthsParse: t, longMonthsParse: t, shortMonthsParse: t, weekdays: "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"), weekdaysShort: "dom._lun._mar._mié._jue._vie._sáb.".split("_"), weekdaysMin: "do_lu_ma_mi_ju_vi_sá".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "h:mm A", LTS: "h:mm:ss A", L: "MM/DD/YYYY", LL: "D [de] MMMM [de] YYYY", LLL: "D [de] MMMM [de] YYYY h:mm A", LLLL: "dddd, D [de] MMMM [de] YYYY h:mm A" }, calendar: { sameDay: function () { return "[hoy a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, nextDay: function () { return "[mañana a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, nextWeek: function () { return "dddd [a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, lastDay: function () { return "[ayer a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, lastWeek: function () { return "[el] dddd [pasado a la" + (this.hours() !== 1 ? "s" : "") + "] LT" }, sameElse: "L" }, relativeTime: { future: "en %s", past: "hace %s", s: "unos segundos", ss: "%d segundos", m: "un minuto", mm: "%d minutos", h: "una hora", hh: "%d horas", d: "un día", dd: "%d días", w: "una semana", ww: "%d semanas", M: "un mes", MM: "%d meses", y: "un año", yy: "%d años" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n, i) { var r = { s: ["mõne sekundi", "mõni sekund", "paar sekundit"], ss: [e + "sekundi", e + "sekundit"], m: ["ühe minuti", "üks minut"], mm: [e + " minuti", e + " minutit"], h: ["ühe tunni", "tund aega", "üks tund"], hh: [e + " tunni", e + " tundi"], d: ["ühe päeva", "üks päev"], M: ["kuu aja", "kuu aega", "üks kuu"], MM: [e + " kuu", e + " kuud"], y: ["ühe aasta", "aasta", "üks aasta"], yy: [e + " aasta", e + " aastat"] }; if (t) return r[n][2] ? r[n][2] : r[n][1]; return i ? r[n][0] : r[n][1] } var n; e.defineLocale("et", { months: "jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"), monthsShort: "jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"), weekdays: "pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"), weekdaysShort: "P_E_T_K_N_R_L".split("_"), weekdaysMin: "P_E_T_K_N_R_L".split("_"), longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY H:mm", LLLL: "dddd, D. MMMM YYYY H:mm" }, calendar: { sameDay: "[Täna,] LT", nextDay: "[Homme,] LT", nextWeek: "[Järgmine] dddd LT", lastDay: "[Eile,] LT", lastWeek: "[Eelmine] dddd LT", sameElse: "L" }, relativeTime: { future: "%s pärast", past: "%s tagasi", s: t, ss: t, m: t, mm: t, h: t, hh: t, d: t, dd: "%d päeva", M: t, MM: t, y: t, yy: t }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("eu", { months: "urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"), monthsShort: "urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"), monthsParseExact: true, weekdays: "igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"), weekdaysShort: "ig._al._ar._az._og._ol._lr.".split("_"), weekdaysMin: "ig_al_ar_az_og_ol_lr".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY-MM-DD", LL: "YYYY[ko] MMMM[ren] D[a]", LLL: "YYYY[ko] MMMM[ren] D[a] HH:mm", LLLL: "dddd, YYYY[ko] MMMM[ren] D[a] HH:mm", l: "YYYY-M-D", ll: "YYYY[ko] MMM D[a]", lll: "YYYY[ko] MMM D[a] HH:mm", llll: "ddd, YYYY[ko] MMM D[a] HH:mm" }, calendar: { sameDay: "[gaur] LT[etan]", nextDay: "[bihar] LT[etan]", nextWeek: "dddd LT[etan]", lastDay: "[atzo] LT[etan]", lastWeek: "[aurreko] dddd LT[etan]", sameElse: "L" }, relativeTime: { future: "%s barru", past: "duela %s", s: "segundo batzuk", ss: "%d segundo", m: "minutu bat", mm: "%d minutu", h: "ordu bat", hh: "%d ordu", d: "egun bat", dd: "%d egun", M: "hilabete bat", MM: "%d hilabete", y: "urte bat", yy: "%d urte" }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "۱", 2: "۲", 3: "۳", 4: "۴", 5: "۵", 6: "۶", 7: "۷", 8: "۸", 9: "۹", 0: "۰" }, n = { "۱": "1", "۲": "2", "۳": "3", "۴": "4", "۵": "5", "۶": "6", "۷": "7", "۸": "8", "۹": "9", "۰": "0" }, i; e.defineLocale("fa", { months: "ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"), monthsShort: "ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"), weekdays: "یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"), weekdaysShort: "یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"), weekdaysMin: "ی_د_س_چ_پ_ج_ش".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, meridiemParse: /قبل از ظهر|بعد از ظهر/, isPM: function (e) { return /بعد از ظهر/.test(e) }, meridiem: function (e, t, n) { if (e < 12) return "قبل از ظهر"; else return "بعد از ظهر" }, calendar: { sameDay: "[امروز ساعت] LT", nextDay: "[فردا ساعت] LT", nextWeek: "dddd [ساعت] LT", lastDay: "[دیروز ساعت] LT", lastWeek: "dddd [پیش] [ساعت] LT", sameElse: "L" }, relativeTime: { future: "در %s", past: "%s پیش", s: "چند ثانیه", ss: "%d ثانیه", m: "یک دقیقه", mm: "%d دقیقه", h: "یک ساعت", hh: "%d ساعت", d: "یک روز", dd: "%d روز", M: "یک ماه", MM: "%d ماه", y: "یک سال", yy: "%d سال" }, preparse: function (e) { return e.replace(/[۰-۹]/g, function (e) { return n[e] }).replace(/،/g, ",") }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }).replace(/,/g, "،") }, dayOfMonthOrdinalParse: /\d{1,2}م/, ordinal: "%dم", week: { dow: 6, doy: 12 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var n = "nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "), i = ["nolla", "yhden", "kahden", "kolmen", "neljän", "viiden", "kuuden", n[7], n[8], n[9]], t; function r(e, t, n, i) { var r = ""; switch (n) { case "s": return i ? "muutaman sekunnin" : "muutama sekunti"; case "ss": r = i ? "sekunnin" : "sekuntia"; break; case "m": return i ? "minuutin" : "minuutti"; case "mm": r = i ? "minuutin" : "minuuttia"; break; case "h": return i ? "tunnin" : "tunti"; case "hh": r = i ? "tunnin" : "tuntia"; break; case "d": return i ? "päivän" : "päivä"; case "dd": r = i ? "päivän" : "päivää"; break; case "M": return i ? "kuukauden" : "kuukausi"; case "MM": r = i ? "kuukauden" : "kuukautta"; break; case "y": return i ? "vuoden" : "vuosi"; case "yy": r = i ? "vuoden" : "vuotta"; break }r = a(e, i) + " " + r; return r } function a(e, t) { return e < 10 ? t ? i[e] : n[e] : e } e.defineLocale("fi", { months: "tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"), monthsShort: "tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"), weekdays: "sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"), weekdaysShort: "su_ma_ti_ke_to_pe_la".split("_"), weekdaysMin: "su_ma_ti_ke_to_pe_la".split("_"), longDateFormat: { LT: "HH.mm", LTS: "HH.mm.ss", L: "DD.MM.YYYY", LL: "Do MMMM[ta] YYYY", LLL: "Do MMMM[ta] YYYY, [klo] HH.mm", LLLL: "dddd, Do MMMM[ta] YYYY, [klo] HH.mm", l: "D.M.YYYY", ll: "Do MMM YYYY", lll: "Do MMM YYYY, [klo] HH.mm", llll: "ddd, Do MMM YYYY, [klo] HH.mm" }, calendar: { sameDay: "[tänään] [klo] LT", nextDay: "[huomenna] [klo] LT", nextWeek: "dddd [klo] LT", lastDay: "[eilen] [klo] LT", lastWeek: "[viime] dddd[na] [klo] LT", sameElse: "L" }, relativeTime: { future: "%s päästä", past: "%s sitten", s: r, ss: r, m: r, mm: r, h: r, hh: r, d: r, dd: r, M: r, MM: r, y: r, yy: r }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("fil", { months: "Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"), monthsShort: "Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"), weekdays: "Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"), weekdaysShort: "Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"), weekdaysMin: "Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "MM/D/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY HH:mm", LLLL: "dddd, MMMM DD, YYYY HH:mm" }, calendar: { sameDay: "LT [ngayong araw]", nextDay: "[Bukas ng] LT", nextWeek: "LT [sa susunod na] dddd", lastDay: "LT [kahapon]", lastWeek: "LT [noong nakaraang] dddd", sameElse: "L" }, relativeTime: { future: "sa loob ng %s", past: "%s ang nakalipas", s: "ilang segundo", ss: "%d segundo", m: "isang minuto", mm: "%d minuto", h: "isang oras", hh: "%d oras", d: "isang araw", dd: "%d araw", M: "isang buwan", MM: "%d buwan", y: "isang taon", yy: "%d taon" }, dayOfMonthOrdinalParse: /\d{1,2}/, ordinal: function (e) { return e }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("fo", { months: "januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"), monthsShort: "jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"), weekdays: "sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"), weekdaysShort: "sun_mán_týs_mik_hós_frí_ley".split("_"), weekdaysMin: "su_má_tý_mi_hó_fr_le".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D. MMMM, YYYY HH:mm" }, calendar: { sameDay: "[Í dag kl.] LT", nextDay: "[Í morgin kl.] LT", nextWeek: "dddd [kl.] LT", lastDay: "[Í gjár kl.] LT", lastWeek: "[síðstu] dddd [kl] LT", sameElse: "L" }, relativeTime: { future: "um %s", past: "%s síðani", s: "fá sekund", ss: "%d sekundir", m: "ein minuttur", mm: "%d minuttir", h: "ein tími", hh: "%d tímar", d: "ein dagur", dd: "%d dagar", M: "ein mánaður", MM: "%d mánaðir", y: "eitt ár", yy: "%d ár" }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, n = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, i = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, r = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i], a; e.defineLocale("fr", { months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"), monthsShort: "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"), monthsRegex: i, monthsShortRegex: i, monthsStrictRegex: t, monthsShortStrictRegex: n, monthsParse: r, longMonthsParse: r, shortMonthsParse: r, weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"), weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"), weekdaysMin: "di_lu_ma_me_je_ve_sa".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Aujourd’hui à] LT", nextDay: "[Demain à] LT", nextWeek: "dddd [à] LT", lastDay: "[Hier à] LT", lastWeek: "dddd [dernier à] LT", sameElse: "L" }, relativeTime: { future: "dans %s", past: "il y a %s", s: "quelques secondes", ss: "%d secondes", m: "une minute", mm: "%d minutes", h: "une heure", hh: "%d heures", d: "un jour", dd: "%d jours", w: "une semaine", ww: "%d semaines", M: "un mois", MM: "%d mois", y: "un an", yy: "%d ans" }, dayOfMonthOrdinalParse: /\d{1,2}(er|)/, ordinal: function (e, t) { switch (t) { case "D": return e + (e === 1 ? "er" : ""); default: case "M": case "Q": case "DDD": case "d": return e + (e === 1 ? "er" : "e"); case "w": case "W": return e + (e === 1 ? "re" : "e") } }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("fr-ca", { months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"), monthsShort: "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"), monthsParseExact: true, weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"), weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"), weekdaysMin: "di_lu_ma_me_je_ve_sa".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY-MM-DD", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Aujourd’hui à] LT", nextDay: "[Demain à] LT", nextWeek: "dddd [à] LT", lastDay: "[Hier à] LT", lastWeek: "dddd [dernier à] LT", sameElse: "L" }, relativeTime: { future: "dans %s", past: "il y a %s", s: "quelques secondes", ss: "%d secondes", m: "une minute", mm: "%d minutes", h: "une heure", hh: "%d heures", d: "un jour", dd: "%d jours", M: "un mois", MM: "%d mois", y: "un an", yy: "%d ans" }, dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, ordinal: function (e, t) { switch (t) { default: case "M": case "Q": case "D": case "DDD": case "d": return e + (e === 1 ? "er" : "e"); case "w": case "W": return e + (e === 1 ? "re" : "e") } } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("fr-ch", { months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"), monthsShort: "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"), monthsParseExact: true, weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"), weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"), weekdaysMin: "di_lu_ma_me_je_ve_sa".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Aujourd’hui à] LT", nextDay: "[Demain à] LT", nextWeek: "dddd [à] LT", lastDay: "[Hier à] LT", lastWeek: "dddd [dernier à] LT", sameElse: "L" }, relativeTime: { future: "dans %s", past: "il y a %s", s: "quelques secondes", ss: "%d secondes", m: "une minute", mm: "%d minutes", h: "une heure", hh: "%d heures", d: "un jour", dd: "%d jours", M: "un mois", MM: "%d mois", y: "un an", yy: "%d ans" }, dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, ordinal: function (e, t) { switch (t) { default: case "M": case "Q": case "D": case "DDD": case "d": return e + (e === 1 ? "er" : "e"); case "w": case "W": return e + (e === 1 ? "re" : "e") } }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var n = "jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"), i = "jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"), t; e.defineLocale("fy", { months: "jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"), monthsShort: function (e, t) { if (!e) return n; else if (/-MMM-/.test(t)) return i[e.month()]; else return n[e.month()] }, monthsParseExact: true, weekdays: "snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"), weekdaysShort: "si._mo._ti._wo._to._fr._so.".split("_"), weekdaysMin: "Si_Mo_Ti_Wo_To_Fr_So".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD-MM-YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[hjoed om] LT", nextDay: "[moarn om] LT", nextWeek: "dddd [om] LT", lastDay: "[juster om] LT", lastWeek: "[ôfrûne] dddd [om] LT", sameElse: "L" }, relativeTime: { future: "oer %s", past: "%s lyn", s: "in pear sekonden", ss: "%d sekonden", m: "ien minút", mm: "%d minuten", h: "ien oere", hh: "%d oeren", d: "ien dei", dd: "%d dagen", M: "ien moanne", MM: "%d moannen", y: "ien jier", yy: "%d jierren" }, dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, ordinal: function (e) { return e + (e === 1 || e === 8 || e >= 20 ? "ste" : "de") }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t, n, i, r, a, s; e.defineLocale("ga", { months: ["Eanáir", "Feabhra", "Márta", "Aibreán", "Bealtaine", "Meitheamh", "Iúil", "Lúnasa", "Meán Fómhair", "Deireadh Fómhair", "Samhain", "Nollaig"], monthsShort: ["Ean", "Feabh", "Márt", "Aib", "Beal", "Meith", "Iúil", "Lún", "M.F.", "D.F.", "Samh", "Noll"], monthsParseExact: true, weekdays: ["Dé Domhnaigh", "Dé Luain", "Dé Máirt", "Dé Céadaoin", "Déardaoin", "Dé hAoine", "Dé Sathairn"], weekdaysShort: ["Domh", "Luan", "Máirt", "Céad", "Déar", "Aoine", "Sath"], weekdaysMin: ["Do", "Lu", "Má", "Cé", "Dé", "A", "Sa"], longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Inniu ag] LT", nextDay: "[Amárach ag] LT", nextWeek: "dddd [ag] LT", lastDay: "[Inné ag] LT", lastWeek: "dddd [seo caite] [ag] LT", sameElse: "L" }, relativeTime: { future: "i %s", past: "%s ó shin", s: "cúpla soicind", ss: "%d soicind", m: "nóiméad", mm: "%d nóiméad", h: "uair an chloig", hh: "%d uair an chloig", d: "lá", dd: "%d lá", M: "mí", MM: "%d míonna", y: "bliain", yy: "%d bliain" }, dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, ordinal: function (e) { var t = e === 1 ? "d" : e % 10 === 2 ? "na" : "mh"; return e + t }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t, n, i, r, a, s; e.defineLocale("gd", { months: ["Am Faoilleach", "An Gearran", "Am Màrt", "An Giblean", "An Cèitean", "An t-Ògmhios", "An t-Iuchar", "An Lùnastal", "An t-Sultain", "An Dàmhair", "An t-Samhain", "An Dùbhlachd"], monthsShort: ["Faoi", "Gear", "Màrt", "Gibl", "Cèit", "Ògmh", "Iuch", "Lùn", "Sult", "Dàmh", "Samh", "Dùbh"], monthsParseExact: true, weekdays: ["Didòmhnaich", "Diluain", "Dimàirt", "Diciadain", "Diardaoin", "Dihaoine", "Disathairne"], weekdaysShort: ["Did", "Dil", "Dim", "Dic", "Dia", "Dih", "Dis"], weekdaysMin: ["Dò", "Lu", "Mà", "Ci", "Ar", "Ha", "Sa"], longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[An-diugh aig] LT", nextDay: "[A-màireach aig] LT", nextWeek: "dddd [aig] LT", lastDay: "[An-dè aig] LT", lastWeek: "dddd [seo chaidh] [aig] LT", sameElse: "L" }, relativeTime: { future: "ann an %s", past: "bho chionn %s", s: "beagan diogan", ss: "%d diogan", m: "mionaid", mm: "%d mionaidean", h: "uair", hh: "%d uairean", d: "latha", dd: "%d latha", M: "mìos", MM: "%d mìosan", y: "bliadhna", yy: "%d bliadhna" }, dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/, ordinal: function (e) { var t = e === 1 ? "d" : e % 10 === 2 ? "na" : "mh"; return e + t }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("gl", { months: "xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"), monthsShort: "xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"), monthsParseExact: true, weekdays: "domingo_luns_martes_mércores_xoves_venres_sábado".split("_"), weekdaysShort: "dom._lun._mar._mér._xov._ven._sáb.".split("_"), weekdaysMin: "do_lu_ma_mé_xo_ve_sá".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD/MM/YYYY", LL: "D [de] MMMM [de] YYYY", LLL: "D [de] MMMM [de] YYYY H:mm", LLLL: "dddd, D [de] MMMM [de] YYYY H:mm" }, calendar: { sameDay: function () { return "[hoxe " + (this.hours() !== 1 ? "ás" : "á") + "] LT" }, nextDay: function () { return "[mañá " + (this.hours() !== 1 ? "ás" : "á") + "] LT" }, nextWeek: function () { return "dddd [" + (this.hours() !== 1 ? "ás" : "a") + "] LT" }, lastDay: function () { return "[onte " + (this.hours() !== 1 ? "á" : "a") + "] LT" }, lastWeek: function () { return "[o] dddd [pasado " + (this.hours() !== 1 ? "ás" : "a") + "] LT" }, sameElse: "L" }, relativeTime: { future: function (e) { if (e.indexOf("un") === 0) return "n" + e; return "en " + e }, past: "hai %s", s: "uns segundos", ss: "%d segundos", m: "un minuto", mm: "%d minutos", h: "unha hora", hh: "%d horas", d: "un día", dd: "%d días", M: "un mes", MM: "%d meses", y: "un ano", yy: "%d anos" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n, i) { var r = { s: ["थोडया सॅकंडांनी", "थोडे सॅकंड"], ss: [e + " सॅकंडांनी", e + " सॅकंड"], m: ["एका मिणटान", "एक मिनूट"], mm: [e + " मिणटांनी", e + " मिणटां"], h: ["एका वरान", "एक वर"], hh: [e + " वरांनी", e + " वरां"], d: ["एका दिसान", "एक दीस"], dd: [e + " दिसांनी", e + " दीस"], M: ["एका म्हयन्यान", "एक म्हयनो"], MM: [e + " म्हयन्यानी", e + " म्हयने"], y: ["एका वर्सान", "एक वर्स"], yy: [e + " वर्सांनी", e + " वर्सां"] }; return i ? r[n][0] : r[n][1] } var n; e.defineLocale("gom-deva", { months: { standalone: "जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"), format: "जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या".split("_"), isFormat: /MMMM(\s)+D[oD]?/ }, monthsShort: "जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"), monthsParseExact: true, weekdays: "आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार".split("_"), weekdaysShort: "आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.".split("_"), weekdaysMin: "आ_सो_मं_बु_ब्रे_सु_शे".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "A h:mm [वाजतां]", LTS: "A h:mm:ss [वाजतां]", L: "DD-MM-YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY A h:mm [वाजतां]", LLLL: "dddd, MMMM Do, YYYY, A h:mm [वाजतां]", llll: "ddd, D MMM YYYY, A h:mm [वाजतां]" }, calendar: { sameDay: "[आयज] LT", nextDay: "[फाल्यां] LT", nextWeek: "[फुडलो] dddd[,] LT", lastDay: "[काल] LT", lastWeek: "[फाटलो] dddd[,] LT", sameElse: "L" }, relativeTime: { future: "%s", past: "%s आदीं", s: t, ss: t, m: t, mm: t, h: t, hh: t, d: t, dd: t, M: t, MM: t, y: t, yy: t }, dayOfMonthOrdinalParse: /\d{1,2}(वेर)/, ordinal: function (e, t) { switch (t) { case "D": return e + "वेर"; default: case "M": case "Q": case "DDD": case "d": case "w": case "W": return e } }, week: { dow: 0, doy: 3 }, meridiemParse: /राती|सकाळीं|दनपारां|सांजे/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "राती") return e < 4 ? e : e + 12; else if (t === "सकाळीं") return e; else if (t === "दनपारां") return e > 12 ? e : e + 12; else if (t === "सांजे") return e + 12 }, meridiem: function (e, t, n) { if (e < 4) return "राती"; else if (e < 12) return "सकाळीं"; else if (e < 16) return "दनपारां"; else if (e < 20) return "सांजे"; else return "राती" } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n, i) { var r = { s: ["thoddea sekondamni", "thodde sekond"], ss: [e + " sekondamni", e + " sekond"], m: ["eka mintan", "ek minut"], mm: [e + " mintamni", e + " mintam"], h: ["eka voran", "ek vor"], hh: [e + " voramni", e + " voram"], d: ["eka disan", "ek dis"], dd: [e + " disamni", e + " dis"], M: ["eka mhoinean", "ek mhoino"], MM: [e + " mhoineamni", e + " mhoine"], y: ["eka vorsan", "ek voros"], yy: [e + " vorsamni", e + " vorsam"] }; return i ? r[n][0] : r[n][1] } var n; e.defineLocale("gom-latn", { months: { standalone: "Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"), format: "Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"), isFormat: /MMMM(\s)+D[oD]?/ }, monthsShort: "Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"), monthsParseExact: true, weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"), weekdaysShort: "Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"), weekdaysMin: "Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "A h:mm [vazta]", LTS: "A h:mm:ss [vazta]", L: "DD-MM-YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY A h:mm [vazta]", LLLL: "dddd, MMMM Do, YYYY, A h:mm [vazta]", llll: "ddd, D MMM YYYY, A h:mm [vazta]" }, calendar: { sameDay: "[Aiz] LT", nextDay: "[Faleam] LT", nextWeek: "[Fuddlo] dddd[,] LT", lastDay: "[Kal] LT", lastWeek: "[Fattlo] dddd[,] LT", sameElse: "L" }, relativeTime: { future: "%s", past: "%s adim", s: t, ss: t, m: t, mm: t, h: t, hh: t, d: t, dd: t, M: t, MM: t, y: t, yy: t }, dayOfMonthOrdinalParse: /\d{1,2}(er)/, ordinal: function (e, t) { switch (t) { case "D": return e + "er"; default: case "M": case "Q": case "DDD": case "d": case "w": case "W": return e } }, week: { dow: 0, doy: 3 }, meridiemParse: /rati|sokallim|donparam|sanje/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "rati") return e < 4 ? e : e + 12; else if (t === "sokallim") return e; else if (t === "donparam") return e > 12 ? e : e + 12; else if (t === "sanje") return e + 12 }, meridiem: function (e, t, n) { if (e < 4) return "rati"; else if (e < 12) return "sokallim"; else if (e < 16) return "donparam"; else if (e < 20) return "sanje"; else return "rati" } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "૧", 2: "૨", 3: "૩", 4: "૪", 5: "૫", 6: "૬", 7: "૭", 8: "૮", 9: "૯", 0: "૦" }, n = { "૧": "1", "૨": "2", "૩": "3", "૪": "4", "૫": "5", "૬": "6", "૭": "7", "૮": "8", "૯": "9", "૦": "0" }, i; e.defineLocale("gu", { months: "જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"), monthsShort: "જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"), monthsParseExact: true, weekdays: "રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"), weekdaysShort: "રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"), weekdaysMin: "ર_સો_મં_બુ_ગુ_શુ_શ".split("_"), longDateFormat: { LT: "A h:mm વાગ્યે", LTS: "A h:mm:ss વાગ્યે", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm વાગ્યે", LLLL: "dddd, D MMMM YYYY, A h:mm વાગ્યે" }, calendar: { sameDay: "[આજ] LT", nextDay: "[કાલે] LT", nextWeek: "dddd, LT", lastDay: "[ગઇકાલે] LT", lastWeek: "[પાછલા] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s મા", past: "%s પહેલા", s: "અમુક પળો", ss: "%d સેકંડ", m: "એક મિનિટ", mm: "%d મિનિટ", h: "એક કલાક", hh: "%d કલાક", d: "એક દિવસ", dd: "%d દિવસ", M: "એક મહિનો", MM: "%d મહિનો", y: "એક વર્ષ", yy: "%d વર્ષ" }, preparse: function (e) { return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, meridiemParse: /રાત|બપોર|સવાર|સાંજ/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "રાત") return e < 4 ? e : e + 12; else if (t === "સવાર") return e; else if (t === "બપોર") return e >= 10 ? e : e + 12; else if (t === "સાંજ") return e + 12 }, meridiem: function (e, t, n) { if (e < 4) return "રાત"; else if (e < 10) return "સવાર"; else if (e < 17) return "બપોર"; else if (e < 20) return "સાંજ"; else return "રાત" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("he", { months: "ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"), monthsShort: "ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"), weekdays: "ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"), weekdaysShort: "א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"), weekdaysMin: "א_ב_ג_ד_ה_ו_ש".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D [ב]MMMM YYYY", LLL: "D [ב]MMMM YYYY HH:mm", LLLL: "dddd, D [ב]MMMM YYYY HH:mm", l: "D/M/YYYY", ll: "D MMM YYYY", lll: "D MMM YYYY HH:mm", llll: "ddd, D MMM YYYY HH:mm" }, calendar: { sameDay: "[היום ב־]LT", nextDay: "[מחר ב־]LT", nextWeek: "dddd [בשעה] LT", lastDay: "[אתמול ב־]LT", lastWeek: "[ביום] dddd [האחרון בשעה] LT", sameElse: "L" }, relativeTime: { future: "בעוד %s", past: "לפני %s", s: "מספר שניות", ss: "%d שניות", m: "דקה", mm: "%d דקות", h: "שעה", hh: function (e) { if (e === 2) return "שעתיים"; return e + " שעות" }, d: "יום", dd: function (e) { if (e === 2) return "יומיים"; return e + " ימים" }, M: "חודש", MM: function (e) { if (e === 2) return "חודשיים"; return e + " חודשים" }, y: "שנה", yy: function (e) { if (e === 2) return "שנתיים"; else if (e % 10 === 0 && e !== 10) return e + " שנה"; return e + " שנים" } }, meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, isPM: function (e) { return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(e) }, meridiem: function (e, t, n) { if (e < 5) return "לפנות בוקר"; else if (e < 10) return "בבוקר"; else if (e < 12) return n ? 'לפנה"צ' : "לפני הצהריים"; else if (e < 18) return n ? 'אחה"צ' : "אחרי הצהריים"; else return "בערב" } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "१", 2: "२", 3: "३", 4: "४", 5: "५", 6: "६", 7: "७", 8: "८", 9: "९", 0: "०" }, n = { "१": "1", "२": "2", "३": "3", "४": "4", "५": "5", "६": "6", "७": "7", "८": "8", "९": "9", "०": "0" }, i = [/^जन/i, /^फ़र|फर/i, /^मार्च/i, /^अप्रै/i, /^मई/i, /^जून/i, /^जुल/i, /^अग/i, /^सितं|सित/i, /^अक्टू/i, /^नव|नवं/i, /^दिसं|दिस/i], r = [/^जन/i, /^फ़र/i, /^मार्च/i, /^अप्रै/i, /^मई/i, /^जून/i, /^जुल/i, /^अग/i, /^सित/i, /^अक्टू/i, /^नव/i, /^दिस/i], a; e.defineLocale("hi", { months: { format: "जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"), standalone: "जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर".split("_") }, monthsShort: "जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"), weekdays: "रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"), weekdaysShort: "रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"), weekdaysMin: "र_सो_मं_बु_गु_शु_श".split("_"), longDateFormat: { LT: "A h:mm बजे", LTS: "A h:mm:ss बजे", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm बजे", LLLL: "dddd, D MMMM YYYY, A h:mm बजे" }, monthsParse: i, longMonthsParse: i, shortMonthsParse: r, monthsRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, monthsShortRegex: /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i, monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i, monthsShortStrictRegex: /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i, calendar: { sameDay: "[आज] LT", nextDay: "[कल] LT", nextWeek: "dddd, LT", lastDay: "[कल] LT", lastWeek: "[पिछले] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s में", past: "%s पहले", s: "कुछ ही क्षण", ss: "%d सेकंड", m: "एक मिनट", mm: "%d मिनट", h: "एक घंटा", hh: "%d घंटे", d: "एक दिन", dd: "%d दिन", M: "एक महीने", MM: "%d महीने", y: "एक वर्ष", yy: "%d वर्ष" }, preparse: function (e) { return e.replace(/[१२३४५६७८९०]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, meridiemParse: /रात|सुबह|दोपहर|शाम/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "रात") return e < 4 ? e : e + 12; else if (t === "सुबह") return e; else if (t === "दोपहर") return e >= 10 ? e : e + 12; else if (t === "शाम") return e + 12 }, meridiem: function (e, t, n) { if (e < 4) return "रात"; else if (e < 10) return "सुबह"; else if (e < 17) return "दोपहर"; else if (e < 20) return "शाम"; else return "रात" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n) { var i = e + " "; switch (n) { case "ss": if (e === 1) i += "sekunda"; else if (e === 2 || e === 3 || e === 4) i += "sekunde"; else i += "sekundi"; return i; case "m": return t ? "jedna minuta" : "jedne minute"; case "mm": if (e === 1) i += "minuta"; else if (e === 2 || e === 3 || e === 4) i += "minute"; else i += "minuta"; return i; case "h": return t ? "jedan sat" : "jednog sata"; case "hh": if (e === 1) i += "sat"; else if (e === 2 || e === 3 || e === 4) i += "sata"; else i += "sati"; return i; case "dd": if (e === 1) i += "dan"; else i += "dana"; return i; case "MM": if (e === 1) i += "mjesec"; else if (e === 2 || e === 3 || e === 4) i += "mjeseca"; else i += "mjeseci"; return i; case "yy": if (e === 1) i += "godina"; else if (e === 2 || e === 3 || e === 4) i += "godine"; else i += "godina"; return i } } var n; e.defineLocale("hr", { months: { format: "siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"), standalone: "siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_") }, monthsShort: "sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"), monthsParseExact: true, weekdays: "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"), weekdaysShort: "ned._pon._uto._sri._čet._pet._sub.".split("_"), weekdaysMin: "ne_po_ut_sr_če_pe_su".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD.MM.YYYY", LL: "Do MMMM YYYY", LLL: "Do MMMM YYYY H:mm", LLLL: "dddd, Do MMMM YYYY H:mm" }, calendar: { sameDay: "[danas u] LT", nextDay: "[sutra u] LT", nextWeek: function () { switch (this.day()) { case 0: return "[u] [nedjelju] [u] LT"; case 3: return "[u] [srijedu] [u] LT"; case 6: return "[u] [subotu] [u] LT"; case 1: case 2: case 4: case 5: return "[u] dddd [u] LT" } }, lastDay: "[jučer u] LT", lastWeek: function () { switch (this.day()) { case 0: return "[prošlu] [nedjelju] [u] LT"; case 3: return "[prošlu] [srijedu] [u] LT"; case 6: return "[prošle] [subote] [u] LT"; case 1: case 2: case 4: case 5: return "[prošli] dddd [u] LT" } }, sameElse: "L" }, relativeTime: { future: "za %s", past: "prije %s", s: "par sekundi", ss: t, m: t, mm: t, h: t, hh: t, d: "dan", dd: t, M: "mjesec", MM: t, y: "godinu", yy: t }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = "vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" "), n; function i(e, t, n, i) { var r = e; switch (n) { case "s": return i || t ? "néhány másodperc" : "néhány másodperce"; case "ss": return r + (i || t) ? " másodperc" : " másodperce"; case "m": return "egy" + (i || t ? " perc" : " perce"); case "mm": return r + (i || t ? " perc" : " perce"); case "h": return "egy" + (i || t ? " óra" : " órája"); case "hh": return r + (i || t ? " óra" : " órája"); case "d": return "egy" + (i || t ? " nap" : " napja"); case "dd": return r + (i || t ? " nap" : " napja"); case "M": return "egy" + (i || t ? " hónap" : " hónapja"); case "MM": return r + (i || t ? " hónap" : " hónapja"); case "y": return "egy" + (i || t ? " év" : " éve"); case "yy": return r + (i || t ? " év" : " éve") }return "" } function r(e) { return (e ? "" : "[múlt] ") + "[" + t[this.day()] + "] LT[-kor]" } e.defineLocale("hu", { months: "január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"), monthsShort: "jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.".split("_"), monthsParseExact: true, weekdays: "vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"), weekdaysShort: "vas_hét_kedd_sze_csüt_pén_szo".split("_"), weekdaysMin: "v_h_k_sze_cs_p_szo".split("_"), longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "YYYY.MM.DD.", LL: "YYYY. MMMM D.", LLL: "YYYY. MMMM D. H:mm", LLLL: "YYYY. MMMM D., dddd H:mm" }, meridiemParse: /de|du/i, isPM: function (e) { return e.charAt(1).toLowerCase() === "u" }, meridiem: function (e, t, n) { if (e < 12) return n === true ? "de" : "DE"; else return n === true ? "du" : "DU" }, calendar: { sameDay: "[ma] LT[-kor]", nextDay: "[holnap] LT[-kor]", nextWeek: function () { return r.call(this, true) }, lastDay: "[tegnap] LT[-kor]", lastWeek: function () { return r.call(this, false) }, sameElse: "L" }, relativeTime: { future: "%s múlva", past: "%s", s: i, ss: i, m: i, mm: i, h: i, hh: i, d: i, dd: i, M: i, MM: i, y: i, yy: i }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("hy-am", { months: { format: "հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"), standalone: "հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_") }, monthsShort: "հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"), weekdays: "կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"), weekdaysShort: "կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"), weekdaysMin: "կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY թ.", LLL: "D MMMM YYYY թ., HH:mm", LLLL: "dddd, D MMMM YYYY թ., HH:mm" }, calendar: { sameDay: "[այսօր] LT", nextDay: "[վաղը] LT", lastDay: "[երեկ] LT", nextWeek: function () { return "dddd [օրը ժամը] LT" }, lastWeek: function () { return "[անցած] dddd [օրը ժամը] LT" }, sameElse: "L" }, relativeTime: { future: "%s հետո", past: "%s առաջ", s: "մի քանի վայրկյան", ss: "%d վայրկյան", m: "րոպե", mm: "%d րոպե", h: "ժամ", hh: "%d ժամ", d: "օր", dd: "%d օր", M: "ամիս", MM: "%d ամիս", y: "տարի", yy: "%d տարի" }, meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, isPM: function (e) { return /^(ցերեկվա|երեկոյան)$/.test(e) }, meridiem: function (e) { if (e < 4) return "գիշերվա"; else if (e < 12) return "առավոտվա"; else if (e < 17) return "ցերեկվա"; else return "երեկոյան" }, dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, ordinal: function (e, t) { switch (t) { case "DDD": case "w": case "W": case "DDDo": if (e === 1) return e + "-ին"; return e + "-րդ"; default: return e } }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("id", { months: "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"), monthsShort: "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"), weekdays: "Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"), weekdaysShort: "Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"), weekdaysMin: "Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"), longDateFormat: { LT: "HH.mm", LTS: "HH.mm.ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY [pukul] HH.mm", LLLL: "dddd, D MMMM YYYY [pukul] HH.mm" }, meridiemParse: /pagi|siang|sore|malam/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "pagi") return e; else if (t === "siang") return e >= 11 ? e : e + 12; else if (t === "sore" || t === "malam") return e + 12 }, meridiem: function (e, t, n) { if (e < 11) return "pagi"; else if (e < 15) return "siang"; else if (e < 19) return "sore"; else return "malam" }, calendar: { sameDay: "[Hari ini pukul] LT", nextDay: "[Besok pukul] LT", nextWeek: "dddd [pukul] LT", lastDay: "[Kemarin pukul] LT", lastWeek: "dddd [lalu pukul] LT", sameElse: "L" }, relativeTime: { future: "dalam %s", past: "%s yang lalu", s: "beberapa detik", ss: "%d detik", m: "semenit", mm: "%d menit", h: "sejam", hh: "%d jam", d: "sehari", dd: "%d hari", M: "sebulan", MM: "%d bulan", y: "setahun", yy: "%d tahun" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function a(e) { if (e % 100 === 11) return true; else if (e % 10 === 1) return false; return true } function t(e, t, n, i) { var r = e + " "; switch (n) { case "s": return t || i ? "nokkrar sekúndur" : "nokkrum sekúndum"; case "ss": if (a(e)) return r + (t || i ? "sekúndur" : "sekúndum"); return r + "sekúnda"; case "m": return t ? "mínúta" : "mínútu"; case "mm": if (a(e)) return r + (t || i ? "mínútur" : "mínútum"); else if (t) return r + "mínúta"; return r + "mínútu"; case "hh": if (a(e)) return r + (t || i ? "klukkustundir" : "klukkustundum"); return r + "klukkustund"; case "d": if (t) return "dagur"; return i ? "dag" : "degi"; case "dd": if (a(e)) { if (t) return r + "dagar"; return r + (i ? "daga" : "dögum") } else if (t) return r + "dagur"; return r + (i ? "dag" : "degi"); case "M": if (t) return "mánuður"; return i ? "mánuð" : "mánuði"; case "MM": if (a(e)) { if (t) return r + "mánuðir"; return r + (i ? "mánuði" : "mánuðum") } else if (t) return r + "mánuður"; return r + (i ? "mánuð" : "mánuði"); case "y": return t || i ? "ár" : "ári"; case "yy": if (a(e)) return r + (t || i ? "ár" : "árum"); return r + (t || i ? "ár" : "ári") } } var n; e.defineLocale("is", { months: "janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"), monthsShort: "jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"), weekdays: "sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"), weekdaysShort: "sun_mán_þri_mið_fim_fös_lau".split("_"), weekdaysMin: "Su_Má_Þr_Mi_Fi_Fö_La".split("_"), longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY [kl.] H:mm", LLLL: "dddd, D. MMMM YYYY [kl.] H:mm" }, calendar: { sameDay: "[í dag kl.] LT", nextDay: "[á morgun kl.] LT", nextWeek: "dddd [kl.] LT", lastDay: "[í gær kl.] LT", lastWeek: "[síðasta] dddd [kl.] LT", sameElse: "L" }, relativeTime: { future: "eftir %s", past: "fyrir %s síðan", s: t, ss: t, m: t, mm: t, h: "klukkustund", hh: t, d: t, dd: t, M: t, MM: t, y: t, yy: t }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("it", { months: "gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"), monthsShort: "gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"), weekdays: "domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"), weekdaysShort: "dom_lun_mar_mer_gio_ven_sab".split("_"), weekdaysMin: "do_lu_ma_me_gi_ve_sa".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: function () { return "[Oggi a" + (this.hours() > 1 ? "lle " : this.hours() === 0 ? " " : "ll'") + "]LT" }, nextDay: function () { return "[Domani a" + (this.hours() > 1 ? "lle " : this.hours() === 0 ? " " : "ll'") + "]LT" }, nextWeek: function () { return "dddd [a" + (this.hours() > 1 ? "lle " : this.hours() === 0 ? " " : "ll'") + "]LT" }, lastDay: function () { return "[Ieri a" + (this.hours() > 1 ? "lle " : this.hours() === 0 ? " " : "ll'") + "]LT" }, lastWeek: function () { switch (this.day()) { case 0: return "[La scorsa] dddd [a" + (this.hours() > 1 ? "lle " : this.hours() === 0 ? " " : "ll'") + "]LT"; default: return "[Lo scorso] dddd [a" + (this.hours() > 1 ? "lle " : this.hours() === 0 ? " " : "ll'") + "]LT" } }, sameElse: "L" }, relativeTime: { future: "tra %s", past: "%s fa", s: "alcuni secondi", ss: "%d secondi", m: "un minuto", mm: "%d minuti", h: "un'ora", hh: "%d ore", d: "un giorno", dd: "%d giorni", w: "una settimana", ww: "%d settimane", M: "un mese", MM: "%d mesi", y: "un anno", yy: "%d anni" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("it-ch", { months: "gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"), monthsShort: "gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"), weekdays: "domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"), weekdaysShort: "dom_lun_mar_mer_gio_ven_sab".split("_"), weekdaysMin: "do_lu_ma_me_gi_ve_sa".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Oggi alle] LT", nextDay: "[Domani alle] LT", nextWeek: "dddd [alle] LT", lastDay: "[Ieri alle] LT", lastWeek: function () { switch (this.day()) { case 0: return "[la scorsa] dddd [alle] LT"; default: return "[lo scorso] dddd [alle] LT" } }, sameElse: "L" }, relativeTime: { future: function (e) { return (/^[0-9].+$/.test(e) ? "tra" : "in") + " " + e }, past: "%s fa", s: "alcuni secondi", ss: "%d secondi", m: "un minuto", mm: "%d minuti", h: "un'ora", hh: "%d ore", d: "un giorno", dd: "%d giorni", M: "un mese", MM: "%d mesi", y: "un anno", yy: "%d anni" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ja", { eras: [{ since: "2019-05-01", offset: 1, name: "令和", narrow: "㋿", abbr: "R" }, { since: "1989-01-08", until: "2019-04-30", offset: 1, name: "平成", narrow: "㍻", abbr: "H" }, { since: "1926-12-25", until: "1989-01-07", offset: 1, name: "昭和", narrow: "㍼", abbr: "S" }, { since: "1912-07-30", until: "1926-12-24", offset: 1, name: "大正", narrow: "㍽", abbr: "T" }, { since: "1873-01-01", until: "1912-07-29", offset: 6, name: "明治", narrow: "㍾", abbr: "M" }, { since: "0001-01-01", until: "1873-12-31", offset: 1, name: "西暦", narrow: "AD", abbr: "AD" }, { since: "0000-12-31", until: -Infinity, offset: 1, name: "紀元前", narrow: "BC", abbr: "BC" }], eraYearOrdinalRegex: /(元|\d+)年/, eraYearOrdinalParse: function (e, t) { return t[1] === "元" ? 1 : parseInt(t[1] || e, 10) }, months: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), weekdays: "日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"), weekdaysShort: "日_月_火_水_木_金_土".split("_"), weekdaysMin: "日_月_火_水_木_金_土".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY/MM/DD", LL: "YYYY年M月D日", LLL: "YYYY年M月D日 HH:mm", LLLL: "YYYY年M月D日 dddd HH:mm", l: "YYYY/MM/DD", ll: "YYYY年M月D日", lll: "YYYY年M月D日 HH:mm", llll: "YYYY年M月D日(ddd) HH:mm" }, meridiemParse: /午前|午後/i, isPM: function (e) { return e === "午後" }, meridiem: function (e, t, n) { if (e < 12) return "午前"; else return "午後" }, calendar: { sameDay: "[今日] LT", nextDay: "[明日] LT", nextWeek: function (e) { if (e.week() !== this.week()) return "[来週]dddd LT"; else return "dddd LT" }, lastDay: "[昨日] LT", lastWeek: function (e) { if (this.week() !== e.week()) return "[先週]dddd LT"; else return "dddd LT" }, sameElse: "L" }, dayOfMonthOrdinalParse: /\d{1,2}日/, ordinal: function (e, t) { switch (t) { case "y": return e === 1 ? "元年" : e + "年"; case "d": case "D": case "DDD": return e + "日"; default: return e } }, relativeTime: { future: "%s後", past: "%s前", s: "数秒", ss: "%d秒", m: "1分", mm: "%d分", h: "1時間", hh: "%d時間", d: "1日", dd: "%d日", M: "1ヶ月", MM: "%dヶ月", y: "1年", yy: "%d年" } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("jv", { months: "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"), monthsShort: "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"), weekdays: "Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"), weekdaysShort: "Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"), weekdaysMin: "Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"), longDateFormat: { LT: "HH.mm", LTS: "HH.mm.ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY [pukul] HH.mm", LLLL: "dddd, D MMMM YYYY [pukul] HH.mm" }, meridiemParse: /enjing|siyang|sonten|ndalu/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "enjing") return e; else if (t === "siyang") return e >= 11 ? e : e + 12; else if (t === "sonten" || t === "ndalu") return e + 12 }, meridiem: function (e, t, n) { if (e < 11) return "enjing"; else if (e < 15) return "siyang"; else if (e < 19) return "sonten"; else return "ndalu" }, calendar: { sameDay: "[Dinten puniko pukul] LT", nextDay: "[Mbenjang pukul] LT", nextWeek: "dddd [pukul] LT", lastDay: "[Kala wingi pukul] LT", lastWeek: "dddd [kepengker pukul] LT", sameElse: "L" }, relativeTime: { future: "wonten ing %s", past: "%s ingkang kepengker", s: "sawetawis detik", ss: "%d detik", m: "setunggal menit", mm: "%d menit", h: "setunggal jam", hh: "%d jam", d: "sedinten", dd: "%d dinten", M: "sewulan", MM: "%d wulan", y: "setaun", yy: "%d taun" }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ka", { months: "იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"), monthsShort: "იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"), weekdays: { standalone: "კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"), format: "კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"), isFormat: /(წინა|შემდეგ)/ }, weekdaysShort: "კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"), weekdaysMin: "კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[დღეს] LT[-ზე]", nextDay: "[ხვალ] LT[-ზე]", lastDay: "[გუშინ] LT[-ზე]", nextWeek: "[შემდეგ] dddd LT[-ზე]", lastWeek: "[წინა] dddd LT-ზე", sameElse: "L" }, relativeTime: { future: function (e) { return e.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (e, t, n) { return n === "ი" ? t + "ში" : t + n + "ში" }) }, past: function (e) { if (/(წამი|წუთი|საათი|დღე|თვე)/.test(e)) return e.replace(/(ი|ე)$/, "ის წინ"); if (/წელი/.test(e)) return e.replace(/წელი$/, "წლის წინ"); return e }, s: "რამდენიმე წამი", ss: "%d წამი", m: "წუთი", mm: "%d წუთი", h: "საათი", hh: "%d საათი", d: "დღე", dd: "%d დღე", M: "თვე", MM: "%d თვე", y: "წელი", yy: "%d წელი" }, dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, ordinal: function (e) { if (e === 0) return e; if (e === 1) return e + "-ლი"; if (e < 20 || e <= 100 && e % 20 === 0 || e % 100 === 0) return "მე-" + e; return e + "-ე" }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var i = { 0: "-ші", 1: "-ші", 2: "-ші", 3: "-ші", 4: "-ші", 5: "-ші", 6: "-шы", 7: "-ші", 8: "-ші", 9: "-шы", 10: "-шы", 20: "-шы", 30: "-шы", 40: "-шы", 50: "-ші", 60: "-шы", 70: "-ші", 80: "-ші", 90: "-шы", 100: "-ші" }, t; e.defineLocale("kk", { months: "қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"), monthsShort: "қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"), weekdays: "жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"), weekdaysShort: "жек_дүй_сей_сәр_бей_жұм_сен".split("_"), weekdaysMin: "жк_дй_сй_ср_бй_жм_сн".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Бүгін сағат] LT", nextDay: "[Ертең сағат] LT", nextWeek: "dddd [сағат] LT", lastDay: "[Кеше сағат] LT", lastWeek: "[Өткен аптаның] dddd [сағат] LT", sameElse: "L" }, relativeTime: { future: "%s ішінде", past: "%s бұрын", s: "бірнеше секунд", ss: "%d секунд", m: "бір минут", mm: "%d минут", h: "бір сағат", hh: "%d сағат", d: "бір күн", dd: "%d күн", M: "бір ай", MM: "%d ай", y: "бір жыл", yy: "%d жыл" }, dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/, ordinal: function (e) { var t = e % 10, n = e >= 100 ? 100 : null; return e + (i[e] || i[t] || i[n]) }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "១", 2: "២", 3: "៣", 4: "៤", 5: "៥", 6: "៦", 7: "៧", 8: "៨", 9: "៩", 0: "០" }, n = { "១": "1", "២": "2", "៣": "3", "៤": "4", "៥": "5", "៦": "6", "៧": "7", "៨": "8", "៩": "9", "០": "0" }, i; e.defineLocale("km", { months: "មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"), monthsShort: "មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"), weekdays: "អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"), weekdaysShort: "អា_ច_អ_ព_ព្រ_សុ_ស".split("_"), weekdaysMin: "អា_ច_អ_ព_ព្រ_សុ_ស".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, meridiemParse: /ព្រឹក|ល្ងាច/, isPM: function (e) { return e === "ល្ងាច" }, meridiem: function (e, t, n) { if (e < 12) return "ព្រឹក"; else return "ល្ងាច" }, calendar: { sameDay: "[ថ្ងៃនេះ ម៉ោង] LT", nextDay: "[ស្អែក ម៉ោង] LT", nextWeek: "dddd [ម៉ោង] LT", lastDay: "[ម្សិលមិញ ម៉ោង] LT", lastWeek: "dddd [សប្តាហ៍មុន] [ម៉ោង] LT", sameElse: "L" }, relativeTime: { future: "%sទៀត", past: "%sមុន", s: "ប៉ុន្មានវិនាទី", ss: "%d វិនាទី", m: "មួយនាទី", mm: "%d នាទី", h: "មួយម៉ោង", hh: "%d ម៉ោង", d: "មួយថ្ងៃ", dd: "%d ថ្ងៃ", M: "មួយខែ", MM: "%d ខែ", y: "មួយឆ្នាំ", yy: "%d ឆ្នាំ" }, dayOfMonthOrdinalParse: /ទី\d{1,2}/, ordinal: "ទី%d", preparse: function (e) { return e.replace(/[១២៣៤៥៦៧៨៩០]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "೧", 2: "೨", 3: "೩", 4: "೪", 5: "೫", 6: "೬", 7: "೭", 8: "೮", 9: "೯", 0: "೦" }, n = { "೧": "1", "೨": "2", "೩": "3", "೪": "4", "೫": "5", "೬": "6", "೭": "7", "೮": "8", "೯": "9", "೦": "0" }, i; e.defineLocale("kn", { months: "ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"), monthsShort: "ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"), monthsParseExact: true, weekdays: "ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"), weekdaysShort: "ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"), weekdaysMin: "ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"), longDateFormat: { LT: "A h:mm", LTS: "A h:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm", LLLL: "dddd, D MMMM YYYY, A h:mm" }, calendar: { sameDay: "[ಇಂದು] LT", nextDay: "[ನಾಳೆ] LT", nextWeek: "dddd, LT", lastDay: "[ನಿನ್ನೆ] LT", lastWeek: "[ಕೊನೆಯ] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s ನಂತರ", past: "%s ಹಿಂದೆ", s: "ಕೆಲವು ಕ್ಷಣಗಳು", ss: "%d ಸೆಕೆಂಡುಗಳು", m: "ಒಂದು ನಿಮಿಷ", mm: "%d ನಿಮಿಷ", h: "ಒಂದು ಗಂಟೆ", hh: "%d ಗಂಟೆ", d: "ಒಂದು ದಿನ", dd: "%d ದಿನ", M: "ಒಂದು ತಿಂಗಳು", MM: "%d ತಿಂಗಳು", y: "ಒಂದು ವರ್ಷ", yy: "%d ವರ್ಷ" }, preparse: function (e) { return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "ರಾತ್ರಿ") return e < 4 ? e : e + 12; else if (t === "ಬೆಳಿಗ್ಗೆ") return e; else if (t === "ಮಧ್ಯಾಹ್ನ") return e >= 10 ? e : e + 12; else if (t === "ಸಂಜೆ") return e + 12 }, meridiem: function (e, t, n) { if (e < 4) return "ರಾತ್ರಿ"; else if (e < 10) return "ಬೆಳಿಗ್ಗೆ"; else if (e < 17) return "ಮಧ್ಯಾಹ್ನ"; else if (e < 20) return "ಸಂಜೆ"; else return "ರಾತ್ರಿ" }, dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/, ordinal: function (e) { return e + "ನೇ" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ko", { months: "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"), monthsShort: "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"), weekdays: "일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"), weekdaysShort: "일_월_화_수_목_금_토".split("_"), weekdaysMin: "일_월_화_수_목_금_토".split("_"), longDateFormat: { LT: "A h:mm", LTS: "A h:mm:ss", L: "YYYY.MM.DD.", LL: "YYYY년 MMMM D일", LLL: "YYYY년 MMMM D일 A h:mm", LLLL: "YYYY년 MMMM D일 dddd A h:mm", l: "YYYY.MM.DD.", ll: "YYYY년 MMMM D일", lll: "YYYY년 MMMM D일 A h:mm", llll: "YYYY년 MMMM D일 dddd A h:mm" }, calendar: { sameDay: "오늘 LT", nextDay: "내일 LT", nextWeek: "dddd LT", lastDay: "어제 LT", lastWeek: "지난주 dddd LT", sameElse: "L" }, relativeTime: { future: "%s 후", past: "%s 전", s: "몇 초", ss: "%d초", m: "1분", mm: "%d분", h: "한 시간", hh: "%d시간", d: "하루", dd: "%d일", M: "한 달", MM: "%d달", y: "일 년", yy: "%d년" }, dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, ordinal: function (e, t) { switch (t) { case "d": case "D": case "DDD": return e + "일"; case "M": return e + "월"; case "w": case "W": return e + "주"; default: return e } }, meridiemParse: /오전|오후/, isPM: function (e) { return e === "오후" }, meridiem: function (e, t, n) { return e < 12 ? "오전" : "오후" } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "١", 2: "٢", 3: "٣", 4: "٤", 5: "٥", 6: "٦", 7: "٧", 8: "٨", 9: "٩", 0: "٠" }, n = { "١": "1", "٢": "2", "٣": "3", "٤": "4", "٥": "5", "٦": "6", "٧": "7", "٨": "8", "٩": "9", "٠": "0" }, i = ["کانونی دووەم", "شوبات", "ئازار", "نیسان", "ئایار", "حوزەیران", "تەمموز", "ئاب", "ئەیلوول", "تشرینی یەكەم", "تشرینی دووەم", "كانونی یەکەم"], r; e.defineLocale("ku", { months: i, monthsShort: i, weekdays: "یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"), weekdaysShort: "یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"), weekdaysMin: "ی_د_س_چ_پ_ه_ش".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, meridiemParse: /ئێواره‌|به‌یانی/, isPM: function (e) { return /ئێواره‌/.test(e) }, meridiem: function (e, t, n) { if (e < 12) return "به‌یانی"; else return "ئێواره‌" }, calendar: { sameDay: "[ئه‌مرۆ كاتژمێر] LT", nextDay: "[به‌یانی كاتژمێر] LT", nextWeek: "dddd [كاتژمێر] LT", lastDay: "[دوێنێ كاتژمێر] LT", lastWeek: "dddd [كاتژمێر] LT", sameElse: "L" }, relativeTime: { future: "له‌ %s", past: "%s", s: "چه‌ند چركه‌یه‌ك", ss: "چركه‌ %d", m: "یه‌ك خوله‌ك", mm: "%d خوله‌ك", h: "یه‌ك كاتژمێر", hh: "%d كاتژمێر", d: "یه‌ك ڕۆژ", dd: "%d ڕۆژ", M: "یه‌ك مانگ", MM: "%d مانگ", y: "یه‌ك ساڵ", yy: "%d ساڵ" }, preparse: function (e) { return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (e) { return n[e] }).replace(/،/g, ",") }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }).replace(/,/g, "،") }, week: { dow: 6, doy: 12 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var i = { 0: "-чү", 1: "-чи", 2: "-чи", 3: "-чү", 4: "-чү", 5: "-чи", 6: "-чы", 7: "-чи", 8: "-чи", 9: "-чу", 10: "-чу", 20: "-чы", 30: "-чу", 40: "-чы", 50: "-чү", 60: "-чы", 70: "-чи", 80: "-чи", 90: "-чу", 100: "-чү" }, t; e.defineLocale("ky", { months: "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"), monthsShort: "янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"), weekdays: "Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"), weekdaysShort: "Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"), weekdaysMin: "Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Бүгүн саат] LT", nextDay: "[Эртең саат] LT", nextWeek: "dddd [саат] LT", lastDay: "[Кечээ саат] LT", lastWeek: "[Өткөн аптанын] dddd [күнү] [саат] LT", sameElse: "L" }, relativeTime: { future: "%s ичинде", past: "%s мурун", s: "бирнече секунд", ss: "%d секунд", m: "бир мүнөт", mm: "%d мүнөт", h: "бир саат", hh: "%d саат", d: "бир күн", dd: "%d күн", M: "бир ай", MM: "%d ай", y: "бир жыл", yy: "%d жыл" }, dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/, ordinal: function (e) { var t = e % 10, n = e >= 100 ? 100 : null; return e + (i[e] || i[t] || i[n]) }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n, i) { var r = { m: ["eng Minutt", "enger Minutt"], h: ["eng Stonn", "enger Stonn"], d: ["een Dag", "engem Dag"], M: ["ee Mount", "engem Mount"], y: ["ee Joer", "engem Joer"] }; return t ? r[n][0] : r[n][1] } function n(e) { var t = e.substr(0, e.indexOf(" ")); if (r(t)) return "a " + e; return "an " + e } function i(e) { var t = e.substr(0, e.indexOf(" ")); if (r(t)) return "viru " + e; return "virun " + e } function r(e) { e = parseInt(e, 10); if (isNaN(e)) return false; if (e < 0) return true; else if (e < 10) { if (4 <= e && e <= 7) return true; return false } else if (e < 100) { var t = e % 10, n = e / 10; if (t === 0) return r(n); return r(t) } else if (e < 1e4) { while (e >= 10) e = e / 10; return r(e) } else { e = e / 1e3; return r(e) } } var a; e.defineLocale("lb", { months: "Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"), monthsShort: "Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"), monthsParseExact: true, weekdays: "Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"), weekdaysShort: "So._Mé._Dë._Më._Do._Fr._Sa.".split("_"), weekdaysMin: "So_Mé_Dë_Më_Do_Fr_Sa".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm [Auer]", LTS: "H:mm:ss [Auer]", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY H:mm [Auer]", LLLL: "dddd, D. MMMM YYYY H:mm [Auer]" }, calendar: { sameDay: "[Haut um] LT", sameElse: "L", nextDay: "[Muer um] LT", nextWeek: "dddd [um] LT", lastDay: "[Gëschter um] LT", lastWeek: function () { switch (this.day()) { case 2: case 4: return "[Leschten] dddd [um] LT"; default: return "[Leschte] dddd [um] LT" } } }, relativeTime: { future: n, past: i, s: "e puer Sekonnen", ss: "%d Sekonnen", m: t, mm: "%d Minutten", h: t, hh: "%d Stonnen", d: t, dd: "%d Deeg", M: t, MM: "%d Méint", y: t, yy: "%d Joer" }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("lo", { months: "ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"), monthsShort: "ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"), weekdays: "ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"), weekdaysShort: "ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"), weekdaysMin: "ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "ວັນdddd D MMMM YYYY HH:mm" }, meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/, isPM: function (e) { return e === "ຕອນແລງ" }, meridiem: function (e, t, n) { if (e < 12) return "ຕອນເຊົ້າ"; else return "ຕອນແລງ" }, calendar: { sameDay: "[ມື້ນີ້ເວລາ] LT", nextDay: "[ມື້ອື່ນເວລາ] LT", nextWeek: "[ວັນ]dddd[ໜ້າເວລາ] LT", lastDay: "[ມື້ວານນີ້ເວລາ] LT", lastWeek: "[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT", sameElse: "L" }, relativeTime: { future: "ອີກ %s", past: "%sຜ່ານມາ", s: "ບໍ່ເທົ່າໃດວິນາທີ", ss: "%d ວິນາທີ", m: "1 ນາທີ", mm: "%d ນາທີ", h: "1 ຊົ່ວໂມງ", hh: "%d ຊົ່ວໂມງ", d: "1 ມື້", dd: "%d ມື້", M: "1 ເດືອນ", MM: "%d ເດືອນ", y: "1 ປີ", yy: "%d ປີ" }, dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/, ordinal: function (e) { return "ທີ່" + e } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { ss: "sekundė_sekundžių_sekundes", m: "minutė_minutės_minutę", mm: "minutės_minučių_minutes", h: "valanda_valandos_valandą", hh: "valandos_valandų_valandas", d: "diena_dienos_dieną", dd: "dienos_dienų_dienas", M: "mėnuo_mėnesio_mėnesį", MM: "mėnesiai_mėnesių_mėnesius", y: "metai_metų_metus", yy: "metai_metų_metus" }, n; function i(e, t, n, i) { if (t) return "kelios sekundės"; else return i ? "kelių sekundžių" : "kelias sekundes" } function a(e, t, n, i) { return t ? o(n)[0] : i ? o(n)[1] : o(n)[2] } function s(e) { return e % 10 === 0 || e > 10 && e < 20 } function o(e) { return t[e].split("_") } function r(e, t, n, i) { var r = e + " "; if (e === 1) return r + a(e, t, n[0], i); else if (t) return r + (s(e) ? o(n)[1] : o(n)[0]); else if (i) return r + o(n)[1]; else return r + (s(e) ? o(n)[1] : o(n)[2]) } e.defineLocale("lt", { months: { format: "sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"), standalone: "sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"), isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/ }, monthsShort: "sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"), weekdays: { format: "sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"), standalone: "sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"), isFormat: /dddd HH:mm/ }, weekdaysShort: "Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"), weekdaysMin: "S_P_A_T_K_Pn_Š".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY-MM-DD", LL: "YYYY [m.] MMMM D [d.]", LLL: "YYYY [m.] MMMM D [d.], HH:mm [val.]", LLLL: "YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]", l: "YYYY-MM-DD", ll: "YYYY [m.] MMMM D [d.]", lll: "YYYY [m.] MMMM D [d.], HH:mm [val.]", llll: "YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]" }, calendar: { sameDay: "[Šiandien] LT", nextDay: "[Rytoj] LT", nextWeek: "dddd LT", lastDay: "[Vakar] LT", lastWeek: "[Praėjusį] dddd LT", sameElse: "L" }, relativeTime: { future: "po %s", past: "prieš %s", s: i, ss: r, m: a, mm: r, h: a, hh: r, d: a, dd: r, M: a, MM: r, y: a, yy: r }, dayOfMonthOrdinalParse: /\d{1,2}-oji/, ordinal: function (e) { return e + "-oji" }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var i = { ss: "sekundes_sekundēm_sekunde_sekundes".split("_"), m: "minūtes_minūtēm_minūte_minūtes".split("_"), mm: "minūtes_minūtēm_minūte_minūtes".split("_"), h: "stundas_stundām_stunda_stundas".split("_"), hh: "stundas_stundām_stunda_stundas".split("_"), d: "dienas_dienām_diena_dienas".split("_"), dd: "dienas_dienām_diena_dienas".split("_"), M: "mēneša_mēnešiem_mēnesis_mēneši".split("_"), MM: "mēneša_mēnešiem_mēnesis_mēneši".split("_"), y: "gada_gadiem_gads_gadi".split("_"), yy: "gada_gadiem_gads_gadi".split("_") }, t; function r(e, t, n) { if (n) return t % 10 === 1 && t % 100 !== 11 ? e[2] : e[3]; else return t % 10 === 1 && t % 100 !== 11 ? e[0] : e[1] } function n(e, t, n) { return e + " " + r(i[n], e, t) } function a(e, t, n) { return r(i[n], e, t) } function s(e, t) { return t ? "dažas sekundes" : "dažām sekundēm" } e.defineLocale("lv", { months: "janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"), monthsShort: "jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"), weekdays: "svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"), weekdaysShort: "Sv_P_O_T_C_Pk_S".split("_"), weekdaysMin: "Sv_P_O_T_C_Pk_S".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY.", LL: "YYYY. [gada] D. MMMM", LLL: "YYYY. [gada] D. MMMM, HH:mm", LLLL: "YYYY. [gada] D. MMMM, dddd, HH:mm" }, calendar: { sameDay: "[Šodien pulksten] LT", nextDay: "[Rīt pulksten] LT", nextWeek: "dddd [pulksten] LT", lastDay: "[Vakar pulksten] LT", lastWeek: "[Pagājušā] dddd [pulksten] LT", sameElse: "L" }, relativeTime: { future: "pēc %s", past: "pirms %s", s: s, ss: n, m: a, mm: n, h: a, hh: n, d: a, dd: n, M: a, MM: n, y: a, yy: n }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var r = { words: { ss: ["sekund", "sekunda", "sekundi"], m: ["jedan minut", "jednog minuta"], mm: ["minut", "minuta", "minuta"], h: ["jedan sat", "jednog sata"], hh: ["sat", "sata", "sati"], dd: ["dan", "dana", "dana"], MM: ["mjesec", "mjeseca", "mjeseci"], yy: ["godina", "godine", "godina"] }, correctGrammaticalCase: function (e, t) { return e === 1 ? t[0] : e >= 2 && e <= 4 ? t[1] : t[2] }, translate: function (e, t, n) { var i = r.words[n]; if (n.length === 1) return t ? i[0] : i[1]; else return e + " " + r.correctGrammaticalCase(e, i) } }, t; e.defineLocale("me", { months: "januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"), monthsShort: "jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"), monthsParseExact: true, weekdays: "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"), weekdaysShort: "ned._pon._uto._sri._čet._pet._sub.".split("_"), weekdaysMin: "ne_po_ut_sr_če_pe_su".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY H:mm", LLLL: "dddd, D. MMMM YYYY H:mm" }, calendar: { sameDay: "[danas u] LT", nextDay: "[sjutra u] LT", nextWeek: function () { switch (this.day()) { case 0: return "[u] [nedjelju] [u] LT"; case 3: return "[u] [srijedu] [u] LT"; case 6: return "[u] [subotu] [u] LT"; case 1: case 2: case 4: case 5: return "[u] dddd [u] LT" } }, lastDay: "[juče u] LT", lastWeek: function () { var e = ["[prošle] [nedjelje] [u] LT", "[prošlog] [ponedjeljka] [u] LT", "[prošlog] [utorka] [u] LT", "[prošle] [srijede] [u] LT", "[prošlog] [četvrtka] [u] LT", "[prošlog] [petka] [u] LT", "[prošle] [subote] [u] LT"]; return e[this.day()] }, sameElse: "L" }, relativeTime: { future: "za %s", past: "prije %s", s: "nekoliko sekundi", ss: r.translate, m: r.translate, mm: r.translate, h: r.translate, hh: r.translate, d: "dan", dd: r.translate, M: "mjesec", MM: r.translate, y: "godinu", yy: r.translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("mi", { months: "Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"), monthsShort: "Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"), monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i, monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i, weekdays: "Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"), weekdaysShort: "Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"), weekdaysMin: "Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY [i] HH:mm", LLLL: "dddd, D MMMM YYYY [i] HH:mm" }, calendar: { sameDay: "[i teie mahana, i] LT", nextDay: "[apopo i] LT", nextWeek: "dddd [i] LT", lastDay: "[inanahi i] LT", lastWeek: "dddd [whakamutunga i] LT", sameElse: "L" }, relativeTime: { future: "i roto i %s", past: "%s i mua", s: "te hēkona ruarua", ss: "%d hēkona", m: "he meneti", mm: "%d meneti", h: "te haora", hh: "%d haora", d: "he ra", dd: "%d ra", M: "he marama", MM: "%d marama", y: "he tau", yy: "%d tau" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("mk", { months: "јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"), monthsShort: "јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"), weekdays: "недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"), weekdaysShort: "нед_пон_вто_сре_чет_пет_саб".split("_"), weekdaysMin: "нe_пo_вт_ср_че_пе_сa".split("_"), longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "D.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY H:mm", LLLL: "dddd, D MMMM YYYY H:mm" }, calendar: { sameDay: "[Денес во] LT", nextDay: "[Утре во] LT", nextWeek: "[Во] dddd [во] LT", lastDay: "[Вчера во] LT", lastWeek: function () { switch (this.day()) { case 0: case 3: case 6: return "[Изминатата] dddd [во] LT"; case 1: case 2: case 4: case 5: return "[Изминатиот] dddd [во] LT" } }, sameElse: "L" }, relativeTime: { future: "за %s", past: "пред %s", s: "неколку секунди", ss: "%d секунди", m: "една минута", mm: "%d минути", h: "еден час", hh: "%d часа", d: "еден ден", dd: "%d дена", M: "еден месец", MM: "%d месеци", y: "една година", yy: "%d години" }, dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, ordinal: function (e) { var t = e % 10, n = e % 100; if (e === 0) return e + "-ев"; else if (n === 0) return e + "-ен"; else if (n > 10 && n < 20) return e + "-ти"; else if (t === 1) return e + "-ви"; else if (t === 2) return e + "-ри"; else if (t === 7 || t === 8) return e + "-ми"; else return e + "-ти" }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ml", { months: "ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"), monthsShort: "ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"), monthsParseExact: true, weekdays: "ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"), weekdaysShort: "ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"), weekdaysMin: "ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"), longDateFormat: { LT: "A h:mm -നു", LTS: "A h:mm:ss -നു", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm -നു", LLLL: "dddd, D MMMM YYYY, A h:mm -നു" }, calendar: { sameDay: "[ഇന്ന്] LT", nextDay: "[നാളെ] LT", nextWeek: "dddd, LT", lastDay: "[ഇന്നലെ] LT", lastWeek: "[കഴിഞ്ഞ] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s കഴിഞ്ഞ്", past: "%s മുൻപ്", s: "അൽപ നിമിഷങ്ങൾ", ss: "%d സെക്കൻഡ്", m: "ഒരു മിനിറ്റ്", mm: "%d മിനിറ്റ്", h: "ഒരു മണിക്കൂർ", hh: "%d മണിക്കൂർ", d: "ഒരു ദിവസം", dd: "%d ദിവസം", M: "ഒരു മാസം", MM: "%d മാസം", y: "ഒരു വർഷം", yy: "%d വർഷം" }, meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "രാത്രി" && e >= 4 || t === "ഉച്ച കഴിഞ്ഞ്" || t === "വൈകുന്നേരം") return e + 12; else return e }, meridiem: function (e, t, n) { if (e < 4) return "രാത്രി"; else if (e < 12) return "രാവിലെ"; else if (e < 17) return "ഉച്ച കഴിഞ്ഞ്"; else if (e < 20) return "വൈകുന്നേരം"; else return "രാത്രി" } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n, i) { switch (n) { case "s": return t ? "хэдхэн секунд" : "хэдхэн секундын"; case "ss": return e + (t ? " секунд" : " секундын"); case "m": case "mm": return e + (t ? " минут" : " минутын"); case "h": case "hh": return e + (t ? " цаг" : " цагийн"); case "d": case "dd": return e + (t ? " өдөр" : " өдрийн"); case "M": case "MM": return e + (t ? " сар" : " сарын"); case "y": case "yy": return e + (t ? " жил" : " жилийн"); default: return e } } var n; e.defineLocale("mn", { months: "Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"), monthsShort: "1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"), monthsParseExact: true, weekdays: "Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"), weekdaysShort: "Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"), weekdaysMin: "Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY-MM-DD", LL: "YYYY оны MMMMын D", LLL: "YYYY оны MMMMын D HH:mm", LLLL: "dddd, YYYY оны MMMMын D HH:mm" }, meridiemParse: /ҮӨ|ҮХ/i, isPM: function (e) { return e === "ҮХ" }, meridiem: function (e, t, n) { if (e < 12) return "ҮӨ"; else return "ҮХ" }, calendar: { sameDay: "[Өнөөдөр] LT", nextDay: "[Маргааш] LT", nextWeek: "[Ирэх] dddd LT", lastDay: "[Өчигдөр] LT", lastWeek: "[Өнгөрсөн] dddd LT", sameElse: "L" }, relativeTime: { future: "%s дараа", past: "%s өмнө", s: t, ss: t, m: t, mm: t, h: t, hh: t, d: t, dd: t, M: t, MM: t, y: t, yy: t }, dayOfMonthOrdinalParse: /\d{1,2} өдөр/, ordinal: function (e, t) { switch (t) { case "d": case "D": case "DDD": return e + " өдөр"; default: return e } } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "१", 2: "२", 3: "३", 4: "४", 5: "५", 6: "६", 7: "७", 8: "८", 9: "९", 0: "०" }, n = { "१": "1", "२": "2", "३": "3", "४": "4", "५": "5", "६": "6", "७": "7", "८": "8", "९": "9", "०": "0" }, i; function r(e, t, n, i) { var r = ""; if (t) switch (n) { case "s": r = "काही सेकंद"; break; case "ss": r = "%d सेकंद"; break; case "m": r = "एक मिनिट"; break; case "mm": r = "%d मिनिटे"; break; case "h": r = "एक तास"; break; case "hh": r = "%d तास"; break; case "d": r = "एक दिवस"; break; case "dd": r = "%d दिवस"; break; case "M": r = "एक महिना"; break; case "MM": r = "%d महिने"; break; case "y": r = "एक वर्ष"; break; case "yy": r = "%d वर्षे"; break } else switch (n) { case "s": r = "काही सेकंदां"; break; case "ss": r = "%d सेकंदां"; break; case "m": r = "एका मिनिटा"; break; case "mm": r = "%d मिनिटां"; break; case "h": r = "एका तासा"; break; case "hh": r = "%d तासां"; break; case "d": r = "एका दिवसा"; break; case "dd": r = "%d दिवसां"; break; case "M": r = "एका महिन्या"; break; case "MM": r = "%d महिन्यां"; break; case "y": r = "एका वर्षा"; break; case "yy": r = "%d वर्षां"; break }return r.replace(/%d/i, e) } e.defineLocale("mr", { months: "जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"), monthsShort: "जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"), monthsParseExact: true, weekdays: "रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"), weekdaysShort: "रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"), weekdaysMin: "र_सो_मं_बु_गु_शु_श".split("_"), longDateFormat: { LT: "A h:mm वाजता", LTS: "A h:mm:ss वाजता", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm वाजता", LLLL: "dddd, D MMMM YYYY, A h:mm वाजता" }, calendar: { sameDay: "[आज] LT", nextDay: "[उद्या] LT", nextWeek: "dddd, LT", lastDay: "[काल] LT", lastWeek: "[मागील] dddd, LT", sameElse: "L" }, relativeTime: { future: "%sमध्ये", past: "%sपूर्वी", s: r, ss: r, m: r, mm: r, h: r, hh: r, d: r, dd: r, M: r, MM: r, y: r, yy: r }, preparse: function (e) { return e.replace(/[१२३४५६७८९०]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "पहाटे" || t === "सकाळी") return e; else if (t === "दुपारी" || t === "सायंकाळी" || t === "रात्री") return e >= 12 ? e : e + 12 }, meridiem: function (e, t, n) { if (e >= 0 && e < 6) return "पहाटे"; else if (e < 12) return "सकाळी"; else if (e < 17) return "दुपारी"; else if (e < 20) return "सायंकाळी"; else return "रात्री" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ms", { months: "Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"), monthsShort: "Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"), weekdays: "Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"), weekdaysShort: "Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"), weekdaysMin: "Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"), longDateFormat: { LT: "HH.mm", LTS: "HH.mm.ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY [pukul] HH.mm", LLLL: "dddd, D MMMM YYYY [pukul] HH.mm" }, meridiemParse: /pagi|tengahari|petang|malam/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "pagi") return e; else if (t === "tengahari") return e >= 11 ? e : e + 12; else if (t === "petang" || t === "malam") return e + 12 }, meridiem: function (e, t, n) { if (e < 11) return "pagi"; else if (e < 15) return "tengahari"; else if (e < 19) return "petang"; else return "malam" }, calendar: { sameDay: "[Hari ini pukul] LT", nextDay: "[Esok pukul] LT", nextWeek: "dddd [pukul] LT", lastDay: "[Kelmarin pukul] LT", lastWeek: "dddd [lepas pukul] LT", sameElse: "L" }, relativeTime: { future: "dalam %s", past: "%s yang lepas", s: "beberapa saat", ss: "%d saat", m: "seminit", mm: "%d minit", h: "sejam", hh: "%d jam", d: "sehari", dd: "%d hari", M: "sebulan", MM: "%d bulan", y: "setahun", yy: "%d tahun" }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ms-my", { months: "Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"), monthsShort: "Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"), weekdays: "Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"), weekdaysShort: "Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"), weekdaysMin: "Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"), longDateFormat: { LT: "HH.mm", LTS: "HH.mm.ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY [pukul] HH.mm", LLLL: "dddd, D MMMM YYYY [pukul] HH.mm" }, meridiemParse: /pagi|tengahari|petang|malam/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "pagi") return e; else if (t === "tengahari") return e >= 11 ? e : e + 12; else if (t === "petang" || t === "malam") return e + 12 }, meridiem: function (e, t, n) { if (e < 11) return "pagi"; else if (e < 15) return "tengahari"; else if (e < 19) return "petang"; else return "malam" }, calendar: { sameDay: "[Hari ini pukul] LT", nextDay: "[Esok pukul] LT", nextWeek: "dddd [pukul] LT", lastDay: "[Kelmarin pukul] LT", lastWeek: "dddd [lepas pukul] LT", sameElse: "L" }, relativeTime: { future: "dalam %s", past: "%s yang lepas", s: "beberapa saat", ss: "%d saat", m: "seminit", mm: "%d minit", h: "sejam", hh: "%d jam", d: "sehari", dd: "%d hari", M: "sebulan", MM: "%d bulan", y: "setahun", yy: "%d tahun" }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("mt", { months: "Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"), monthsShort: "Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"), weekdays: "Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"), weekdaysShort: "Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"), weekdaysMin: "Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Illum fil-]LT", nextDay: "[Għada fil-]LT", nextWeek: "dddd [fil-]LT", lastDay: "[Il-bieraħ fil-]LT", lastWeek: "dddd [li għadda] [fil-]LT", sameElse: "L" }, relativeTime: { future: "f’ %s", past: "%s ilu", s: "ftit sekondi", ss: "%d sekondi", m: "minuta", mm: "%d minuti", h: "siegħa", hh: "%d siegħat", d: "ġurnata", dd: "%d ġranet", M: "xahar", MM: "%d xhur", y: "sena", yy: "%d sni" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "၁", 2: "၂", 3: "၃", 4: "၄", 5: "၅", 6: "၆", 7: "၇", 8: "၈", 9: "၉", 0: "၀" }, n = { "၁": "1", "၂": "2", "၃": "3", "၄": "4", "၅": "5", "၆": "6", "၇": "7", "၈": "8", "၉": "9", "၀": "0" }, i; e.defineLocale("my", { months: "ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"), monthsShort: "ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"), weekdays: "တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"), weekdaysShort: "နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"), weekdaysMin: "နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[ယနေ.] LT [မှာ]", nextDay: "[မနက်ဖြန်] LT [မှာ]", nextWeek: "dddd LT [မှာ]", lastDay: "[မနေ.က] LT [မှာ]", lastWeek: "[ပြီးခဲ့သော] dddd LT [မှာ]", sameElse: "L" }, relativeTime: { future: "လာမည့် %s မှာ", past: "လွန်ခဲ့သော %s က", s: "စက္ကန်.အနည်းငယ်", ss: "%d စက္ကန့်", m: "တစ်မိနစ်", mm: "%d မိနစ်", h: "တစ်နာရီ", hh: "%d နာရီ", d: "တစ်ရက်", dd: "%d ရက်", M: "တစ်လ", MM: "%d လ", y: "တစ်နှစ်", yy: "%d နှစ်" }, preparse: function (e) { return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("nb", { months: "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"), monthsShort: "jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"), monthsParseExact: true, weekdays: "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"), weekdaysShort: "sø._ma._ti._on._to._fr._lø.".split("_"), weekdaysMin: "sø_ma_ti_on_to_fr_lø".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY [kl.] HH:mm", LLLL: "dddd D. MMMM YYYY [kl.] HH:mm" }, calendar: { sameDay: "[i dag kl.] LT", nextDay: "[i morgen kl.] LT", nextWeek: "dddd [kl.] LT", lastDay: "[i går kl.] LT", lastWeek: "[forrige] dddd [kl.] LT", sameElse: "L" }, relativeTime: { future: "om %s", past: "%s siden", s: "noen sekunder", ss: "%d sekunder", m: "ett minutt", mm: "%d minutter", h: "en time", hh: "%d timer", d: "en dag", dd: "%d dager", w: "en uke", ww: "%d uker", M: "en måned", MM: "%d måneder", y: "ett år", yy: "%d år" }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "१", 2: "२", 3: "३", 4: "४", 5: "५", 6: "६", 7: "७", 8: "८", 9: "९", 0: "०" }, n = { "१": "1", "२": "2", "३": "3", "४": "4", "५": "5", "६": "6", "७": "7", "८": "8", "९": "9", "०": "0" }, i; e.defineLocale("ne", { months: "जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"), monthsShort: "जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"), monthsParseExact: true, weekdays: "आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"), weekdaysShort: "आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"), weekdaysMin: "आ._सो._मं._बु._बि._शु._श.".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "Aको h:mm बजे", LTS: "Aको h:mm:ss बजे", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, Aको h:mm बजे", LLLL: "dddd, D MMMM YYYY, Aको h:mm बजे" }, preparse: function (e) { return e.replace(/[१२३४५६७८९०]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, meridiemParse: /राति|बिहान|दिउँसो|साँझ/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "राति") return e < 4 ? e : e + 12; else if (t === "बिहान") return e; else if (t === "दिउँसो") return e >= 10 ? e : e + 12; else if (t === "साँझ") return e + 12 }, meridiem: function (e, t, n) { if (e < 3) return "राति"; else if (e < 12) return "बिहान"; else if (e < 16) return "दिउँसो"; else if (e < 20) return "साँझ"; else return "राति" }, calendar: { sameDay: "[आज] LT", nextDay: "[भोलि] LT", nextWeek: "[आउँदो] dddd[,] LT", lastDay: "[हिजो] LT", lastWeek: "[गएको] dddd[,] LT", sameElse: "L" }, relativeTime: { future: "%sमा", past: "%s अगाडि", s: "केही क्षण", ss: "%d सेकेण्ड", m: "एक मिनेट", mm: "%d मिनेट", h: "एक घण्टा", hh: "%d घण्टा", d: "एक दिन", dd: "%d दिन", M: "एक महिना", MM: "%d महिना", y: "एक बर्ष", yy: "%d बर्ष" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var n = "jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"), i = "jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"), t = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i], r = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, a; e.defineLocale("nl", { months: "januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"), monthsShort: function (e, t) { if (!e) return n; else if (/-MMM-/.test(t)) return i[e.month()]; else return n[e.month()] }, monthsRegex: r, monthsShortRegex: r, monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, monthsParse: t, longMonthsParse: t, shortMonthsParse: t, weekdays: "zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"), weekdaysShort: "zo._ma._di._wo._do._vr._za.".split("_"), weekdaysMin: "zo_ma_di_wo_do_vr_za".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD-MM-YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[vandaag om] LT", nextDay: "[morgen om] LT", nextWeek: "dddd [om] LT", lastDay: "[gisteren om] LT", lastWeek: "[afgelopen] dddd [om] LT", sameElse: "L" }, relativeTime: { future: "over %s", past: "%s geleden", s: "een paar seconden", ss: "%d seconden", m: "één minuut", mm: "%d minuten", h: "één uur", hh: "%d uur", d: "één dag", dd: "%d dagen", w: "één week", ww: "%d weken", M: "één maand", MM: "%d maanden", y: "één jaar", yy: "%d jaar" }, dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, ordinal: function (e) { return e + (e === 1 || e === 8 || e >= 20 ? "ste" : "de") }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var n = "jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"), i = "jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"), t = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i], r = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, a; e.defineLocale("nl-be", { months: "januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"), monthsShort: function (e, t) { if (!e) return n; else if (/-MMM-/.test(t)) return i[e.month()]; else return n[e.month()] }, monthsRegex: r, monthsShortRegex: r, monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, monthsParse: t, longMonthsParse: t, shortMonthsParse: t, weekdays: "zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"), weekdaysShort: "zo._ma._di._wo._do._vr._za.".split("_"), weekdaysMin: "zo_ma_di_wo_do_vr_za".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[vandaag om] LT", nextDay: "[morgen om] LT", nextWeek: "dddd [om] LT", lastDay: "[gisteren om] LT", lastWeek: "[afgelopen] dddd [om] LT", sameElse: "L" }, relativeTime: { future: "over %s", past: "%s geleden", s: "een paar seconden", ss: "%d seconden", m: "één minuut", mm: "%d minuten", h: "één uur", hh: "%d uur", d: "één dag", dd: "%d dagen", M: "één maand", MM: "%d maanden", y: "één jaar", yy: "%d jaar" }, dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, ordinal: function (e) { return e + (e === 1 || e === 8 || e >= 20 ? "ste" : "de") }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("nn", { months: "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"), monthsShort: "jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"), monthsParseExact: true, weekdays: "sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"), weekdaysShort: "su._må._ty._on._to._fr._lau.".split("_"), weekdaysMin: "su_må_ty_on_to_fr_la".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY [kl.] H:mm", LLLL: "dddd D. MMMM YYYY [kl.] HH:mm" }, calendar: { sameDay: "[I dag klokka] LT", nextDay: "[I morgon klokka] LT", nextWeek: "dddd [klokka] LT", lastDay: "[I går klokka] LT", lastWeek: "[Føregåande] dddd [klokka] LT", sameElse: "L" }, relativeTime: { future: "om %s", past: "%s sidan", s: "nokre sekund", ss: "%d sekund", m: "eit minutt", mm: "%d minutt", h: "ein time", hh: "%d timar", d: "ein dag", dd: "%d dagar", w: "ei veke", ww: "%d veker", M: "ein månad", MM: "%d månader", y: "eit år", yy: "%d år" }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("oc-lnc", { months: { standalone: "genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"), format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"), isFormat: /D[oD]?(\s)+MMMM/ }, monthsShort: "gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"), monthsParseExact: true, weekdays: "dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"), weekdaysShort: "dg._dl._dm._dc._dj._dv._ds.".split("_"), weekdaysMin: "dg_dl_dm_dc_dj_dv_ds".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM [de] YYYY", ll: "D MMM YYYY", LLL: "D MMMM [de] YYYY [a] H:mm", lll: "D MMM YYYY, H:mm", LLLL: "dddd D MMMM [de] YYYY [a] H:mm", llll: "ddd D MMM YYYY, H:mm" }, calendar: { sameDay: "[uèi a] LT", nextDay: "[deman a] LT", nextWeek: "dddd [a] LT", lastDay: "[ièr a] LT", lastWeek: "dddd [passat a] LT", sameElse: "L" }, relativeTime: { future: "d'aquí %s", past: "fa %s", s: "unas segondas", ss: "%d segondas", m: "una minuta", mm: "%d minutas", h: "una ora", hh: "%d oras", d: "un jorn", dd: "%d jorns", M: "un mes", MM: "%d meses", y: "un an", yy: "%d ans" }, dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, ordinal: function (e, t) { var n = e === 1 ? "r" : e === 2 ? "n" : e === 3 ? "r" : e === 4 ? "t" : "è"; if (t === "w" || t === "W") n = "a"; return e + n }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "੧", 2: "੨", 3: "੩", 4: "੪", 5: "੫", 6: "੬", 7: "੭", 8: "੮", 9: "੯", 0: "੦" }, n = { "੧": "1", "੨": "2", "੩": "3", "੪": "4", "੫": "5", "੬": "6", "੭": "7", "੮": "8", "੯": "9", "੦": "0" }, i; e.defineLocale("pa-in", { months: "ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"), monthsShort: "ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"), weekdays: "ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"), weekdaysShort: "ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"), weekdaysMin: "ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"), longDateFormat: { LT: "A h:mm ਵਜੇ", LTS: "A h:mm:ss ਵਜੇ", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm ਵਜੇ", LLLL: "dddd, D MMMM YYYY, A h:mm ਵਜੇ" }, calendar: { sameDay: "[ਅਜ] LT", nextDay: "[ਕਲ] LT", nextWeek: "[ਅਗਲਾ] dddd, LT", lastDay: "[ਕਲ] LT", lastWeek: "[ਪਿਛਲੇ] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s ਵਿੱਚ", past: "%s ਪਿਛਲੇ", s: "ਕੁਝ ਸਕਿੰਟ", ss: "%d ਸਕਿੰਟ", m: "ਇਕ ਮਿੰਟ", mm: "%d ਮਿੰਟ", h: "ਇੱਕ ਘੰਟਾ", hh: "%d ਘੰਟੇ", d: "ਇੱਕ ਦਿਨ", dd: "%d ਦਿਨ", M: "ਇੱਕ ਮਹੀਨਾ", MM: "%d ਮਹੀਨੇ", y: "ਇੱਕ ਸਾਲ", yy: "%d ਸਾਲ" }, preparse: function (e) { return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "ਰਾਤ") return e < 4 ? e : e + 12; else if (t === "ਸਵੇਰ") return e; else if (t === "ਦੁਪਹਿਰ") return e >= 10 ? e : e + 12; else if (t === "ਸ਼ਾਮ") return e + 12 }, meridiem: function (e, t, n) { if (e < 4) return "ਰਾਤ"; else if (e < 10) return "ਸਵੇਰ"; else if (e < 17) return "ਦੁਪਹਿਰ"; else if (e < 20) return "ਸ਼ਾਮ"; else return "ਰਾਤ" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var n = "styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"), i = "stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"), t = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i], r; function a(e) { return e % 10 < 5 && e % 10 > 1 && ~~(e / 10) % 10 !== 1 } function s(e, t, n) { var i = e + " "; switch (n) { case "ss": return i + (a(e) ? "sekundy" : "sekund"); case "m": return t ? "minuta" : "minutę"; case "mm": return i + (a(e) ? "minuty" : "minut"); case "h": return t ? "godzina" : "godzinę"; case "hh": return i + (a(e) ? "godziny" : "godzin"); case "ww": return i + (a(e) ? "tygodnie" : "tygodni"); case "MM": return i + (a(e) ? "miesiące" : "miesięcy"); case "yy": return i + (a(e) ? "lata" : "lat") } } e.defineLocale("pl", { months: function (e, t) { if (!e) return n; else if (/D MMMM/.test(t)) return i[e.month()]; else return n[e.month()] }, monthsShort: "sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"), monthsParse: t, longMonthsParse: t, shortMonthsParse: t, weekdays: "niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"), weekdaysShort: "ndz_pon_wt_śr_czw_pt_sob".split("_"), weekdaysMin: "Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Dziś o] LT", nextDay: "[Jutro o] LT", nextWeek: function () { switch (this.day()) { case 0: return "[W niedzielę o] LT"; case 2: return "[We wtorek o] LT"; case 3: return "[W środę o] LT"; case 6: return "[W sobotę o] LT"; default: return "[W] dddd [o] LT" } }, lastDay: "[Wczoraj o] LT", lastWeek: function () { switch (this.day()) { case 0: return "[W zeszłą niedzielę o] LT"; case 3: return "[W zeszłą środę o] LT"; case 6: return "[W zeszłą sobotę o] LT"; default: return "[W zeszły] dddd [o] LT" } }, sameElse: "L" }, relativeTime: { future: "za %s", past: "%s temu", s: "kilka sekund", ss: s, m: s, mm: s, h: s, hh: s, d: "1 dzień", dd: "%d dni", w: "tydzień", ww: s, M: "miesiąc", MM: s, y: "rok", yy: s }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("pt", { months: "janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"), monthsShort: "jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"), weekdays: "Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"), weekdaysShort: "Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"), weekdaysMin: "Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D [de] MMMM [de] YYYY", LLL: "D [de] MMMM [de] YYYY HH:mm", LLLL: "dddd, D [de] MMMM [de] YYYY HH:mm" }, calendar: { sameDay: "[Hoje às] LT", nextDay: "[Amanhã às] LT", nextWeek: "dddd [às] LT", lastDay: "[Ontem às] LT", lastWeek: function () { return this.day() === 0 || this.day() === 6 ? "[Último] dddd [às] LT" : "[Última] dddd [às] LT" }, sameElse: "L" }, relativeTime: { future: "em %s", past: "há %s", s: "segundos", ss: "%d segundos", m: "um minuto", mm: "%d minutos", h: "uma hora", hh: "%d horas", d: "um dia", dd: "%d dias", w: "uma semana", ww: "%d semanas", M: "um mês", MM: "%d meses", y: "um ano", yy: "%d anos" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("pt-br", { months: "janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"), monthsShort: "jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"), weekdays: "domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"), weekdaysShort: "dom_seg_ter_qua_qui_sex_sáb".split("_"), weekdaysMin: "do_2ª_3ª_4ª_5ª_6ª_sá".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D [de] MMMM [de] YYYY", LLL: "D [de] MMMM [de] YYYY [às] HH:mm", LLLL: "dddd, D [de] MMMM [de] YYYY [às] HH:mm" }, calendar: { sameDay: "[Hoje às] LT", nextDay: "[Amanhã às] LT", nextWeek: "dddd [às] LT", lastDay: "[Ontem às] LT", lastWeek: function () { return this.day() === 0 || this.day() === 6 ? "[Último] dddd [às] LT" : "[Última] dddd [às] LT" }, sameElse: "L" }, relativeTime: { future: "em %s", past: "há %s", s: "poucos segundos", ss: "%d segundos", m: "um minuto", mm: "%d minutos", h: "uma hora", hh: "%d horas", d: "um dia", dd: "%d dias", M: "um mês", MM: "%d meses", y: "um ano", yy: "%d anos" }, dayOfMonthOrdinalParse: /\d{1,2}º/, ordinal: "%dº", invalidDate: "Data inválida" })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n) { var i = { ss: "secunde", mm: "minute", hh: "ore", dd: "zile", ww: "săptămâni", MM: "luni", yy: "ani" }, r = " "; if (e % 100 >= 20 || e >= 100 && e % 100 === 0) r = " de "; return e + r + i[n] } var n; e.defineLocale("ro", { months: "ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"), monthsShort: "ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"), monthsParseExact: true, weekdays: "duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"), weekdaysShort: "Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"), weekdaysMin: "Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"), longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY H:mm", LLLL: "dddd, D MMMM YYYY H:mm" }, calendar: { sameDay: "[azi la] LT", nextDay: "[mâine la] LT", nextWeek: "dddd [la] LT", lastDay: "[ieri la] LT", lastWeek: "[fosta] dddd [la] LT", sameElse: "L" }, relativeTime: { future: "peste %s", past: "%s în urmă", s: "câteva secunde", ss: t, m: "un minut", mm: t, h: "o oră", hh: t, d: "o zi", dd: t, w: "o săptămână", ww: t, M: "o lună", MM: t, y: "un an", yy: t }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function r(e, t) { var n = e.split("_"); return t % 10 === 1 && t % 100 !== 11 ? n[0] : t % 10 >= 2 && t % 10 <= 4 && (t % 100 < 10 || t % 100 >= 20) ? n[1] : n[2] } function t(e, t, n) { var i = { ss: t ? "секунда_секунды_секунд" : "секунду_секунды_секунд", mm: t ? "минута_минуты_минут" : "минуту_минуты_минут", hh: "час_часа_часов", dd: "день_дня_дней", ww: "неделя_недели_недель", MM: "месяц_месяца_месяцев", yy: "год_года_лет" }; if (n === "m") return t ? "минута" : "минуту"; else return e + " " + r(i[n], +e) } var n = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i], i; e.defineLocale("ru", { months: { format: "января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"), standalone: "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_") }, monthsShort: { format: "янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"), standalone: "янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_") }, weekdays: { standalone: "воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"), format: "воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"), isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/ }, weekdaysShort: "вс_пн_вт_ср_чт_пт_сб".split("_"), weekdaysMin: "вс_пн_вт_ср_чт_пт_сб".split("_"), monthsParse: n, longMonthsParse: n, shortMonthsParse: n, monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY г.", LLL: "D MMMM YYYY г., H:mm", LLLL: "dddd, D MMMM YYYY г., H:mm" }, calendar: { sameDay: "[Сегодня, в] LT", nextDay: "[Завтра, в] LT", lastDay: "[Вчера, в] LT", nextWeek: function (e) { if (e.week() !== this.week()) switch (this.day()) { case 0: return "[В следующее] dddd, [в] LT"; case 1: case 2: case 4: return "[В следующий] dddd, [в] LT"; case 3: case 5: case 6: return "[В следующую] dddd, [в] LT" } else if (this.day() === 2) return "[Во] dddd, [в] LT"; else return "[В] dddd, [в] LT" }, lastWeek: function (e) { if (e.week() !== this.week()) switch (this.day()) { case 0: return "[В прошлое] dddd, [в] LT"; case 1: case 2: case 4: return "[В прошлый] dddd, [в] LT"; case 3: case 5: case 6: return "[В прошлую] dddd, [в] LT" } else if (this.day() === 2) return "[Во] dddd, [в] LT"; else return "[В] dddd, [в] LT" }, sameElse: "L" }, relativeTime: { future: "через %s", past: "%s назад", s: "несколько секунд", ss: t, m: t, mm: t, h: "час", hh: t, d: "день", dd: t, w: "неделя", ww: t, M: "месяц", MM: t, y: "год", yy: t }, meridiemParse: /ночи|утра|дня|вечера/i, isPM: function (e) { return /^(дня|вечера)$/.test(e) }, meridiem: function (e, t, n) { if (e < 4) return "ночи"; else if (e < 12) return "утра"; else if (e < 17) return "дня"; else return "вечера" }, dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, ordinal: function (e, t) { switch (t) { case "M": case "d": case "DDD": return e + "-й"; case "D": return e + "-го"; case "w": case "W": return e + "-я"; default: return e } }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = ["جنوري", "فيبروري", "مارچ", "اپريل", "مئي", "جون", "جولاءِ", "آگسٽ", "سيپٽمبر", "آڪٽوبر", "نومبر", "ڊسمبر"], n = ["آچر", "سومر", "اڱارو", "اربع", "خميس", "جمع", "ڇنڇر"], i; e.defineLocale("sd", { months: t, monthsShort: t, weekdays: n, weekdaysShort: n, weekdaysMin: n, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd، D MMMM YYYY HH:mm" }, meridiemParse: /صبح|شام/, isPM: function (e) { return "شام" === e }, meridiem: function (e, t, n) { if (e < 12) return "صبح"; return "شام" }, calendar: { sameDay: "[اڄ] LT", nextDay: "[سڀاڻي] LT", nextWeek: "dddd [اڳين هفتي تي] LT", lastDay: "[ڪالهه] LT", lastWeek: "[گزريل هفتي] dddd [تي] LT", sameElse: "L" }, relativeTime: { future: "%s پوء", past: "%s اڳ", s: "چند سيڪنڊ", ss: "%d سيڪنڊ", m: "هڪ منٽ", mm: "%d منٽ", h: "هڪ ڪلاڪ", hh: "%d ڪلاڪ", d: "هڪ ڏينهن", dd: "%d ڏينهن", M: "هڪ مهينو", MM: "%d مهينا", y: "هڪ سال", yy: "%d سال" }, preparse: function (e) { return e.replace(/،/g, ",") }, postformat: function (e) { return e.replace(/,/g, "،") }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("se", { months: "ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"), monthsShort: "ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"), weekdays: "sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"), weekdaysShort: "sotn_vuos_maŋ_gask_duor_bear_láv".split("_"), weekdaysMin: "s_v_m_g_d_b_L".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "MMMM D. [b.] YYYY", LLL: "MMMM D. [b.] YYYY [ti.] HH:mm", LLLL: "dddd, MMMM D. [b.] YYYY [ti.] HH:mm" }, calendar: { sameDay: "[otne ti] LT", nextDay: "[ihttin ti] LT", nextWeek: "dddd [ti] LT", lastDay: "[ikte ti] LT", lastWeek: "[ovddit] dddd [ti] LT", sameElse: "L" }, relativeTime: { future: "%s geažes", past: "maŋit %s", s: "moadde sekunddat", ss: "%d sekunddat", m: "okta minuhta", mm: "%d minuhtat", h: "okta diimmu", hh: "%d diimmut", d: "okta beaivi", dd: "%d beaivvit", M: "okta mánnu", MM: "%d mánut", y: "okta jahki", yy: "%d jagit" }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("si", { months: "ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"), monthsShort: "ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"), weekdays: "ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"), weekdaysShort: "ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"), weekdaysMin: "ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "a h:mm", LTS: "a h:mm:ss", L: "YYYY/MM/DD", LL: "YYYY MMMM D", LLL: "YYYY MMMM D, a h:mm", LLLL: "YYYY MMMM D [වැනි] dddd, a h:mm:ss" }, calendar: { sameDay: "[අද] LT[ට]", nextDay: "[හෙට] LT[ට]", nextWeek: "dddd LT[ට]", lastDay: "[ඊයේ] LT[ට]", lastWeek: "[පසුගිය] dddd LT[ට]", sameElse: "L" }, relativeTime: { future: "%sකින්", past: "%sකට පෙර", s: "තත්පර කිහිපය", ss: "තත්පර %d", m: "මිනිත්තුව", mm: "මිනිත්තු %d", h: "පැය", hh: "පැය %d", d: "දිනය", dd: "දින %d", M: "මාසය", MM: "මාස %d", y: "වසර", yy: "වසර %d" }, dayOfMonthOrdinalParse: /\d{1,2} වැනි/, ordinal: function (e) { return e + " වැනි" }, meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./, isPM: function (e) { return e === "ප.ව." || e === "පස් වරු" }, meridiem: function (e, t, n) { if (e > 11) return n ? "ප.ව." : "පස් වරු"; else return n ? "පෙ.ව." : "පෙර වරු" } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = "január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"), n = "jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"), i; function a(e) { return e > 1 && e < 5 } function r(e, t, n, i) { var r = e + " "; switch (n) { case "s": return t || i ? "pár sekúnd" : "pár sekundami"; case "ss": if (t || i) return r + (a(e) ? "sekundy" : "sekúnd"); else return r + "sekundami"; case "m": return t ? "minúta" : i ? "minútu" : "minútou"; case "mm": if (t || i) return r + (a(e) ? "minúty" : "minút"); else return r + "minútami"; case "h": return t ? "hodina" : i ? "hodinu" : "hodinou"; case "hh": if (t || i) return r + (a(e) ? "hodiny" : "hodín"); else return r + "hodinami"; case "d": return t || i ? "deň" : "dňom"; case "dd": if (t || i) return r + (a(e) ? "dni" : "dní"); else return r + "dňami"; case "M": return t || i ? "mesiac" : "mesiacom"; case "MM": if (t || i) return r + (a(e) ? "mesiace" : "mesiacov"); else return r + "mesiacmi"; case "y": return t || i ? "rok" : "rokom"; case "yy": if (t || i) return r + (a(e) ? "roky" : "rokov"); else return r + "rokmi" } } e.defineLocale("sk", { months: t, monthsShort: n, weekdays: "nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"), weekdaysShort: "ne_po_ut_st_št_pi_so".split("_"), weekdaysMin: "ne_po_ut_st_št_pi_so".split("_"), longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD.MM.YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY H:mm", LLLL: "dddd D. MMMM YYYY H:mm" }, calendar: { sameDay: "[dnes o] LT", nextDay: "[zajtra o] LT", nextWeek: function () { switch (this.day()) { case 0: return "[v nedeľu o] LT"; case 1: case 2: return "[v] dddd [o] LT"; case 3: return "[v stredu o] LT"; case 4: return "[vo štvrtok o] LT"; case 5: return "[v piatok o] LT"; case 6: return "[v sobotu o] LT" } }, lastDay: "[včera o] LT", lastWeek: function () { switch (this.day()) { case 0: return "[minulú nedeľu o] LT"; case 1: case 2: return "[minulý] dddd [o] LT"; case 3: return "[minulú stredu o] LT"; case 4: case 5: return "[minulý] dddd [o] LT"; case 6: return "[minulú sobotu o] LT" } }, sameElse: "L" }, relativeTime: { future: "za %s", past: "pred %s", s: r, ss: r, m: r, mm: r, h: r, hh: r, d: r, dd: r, M: r, MM: r, y: r, yy: r }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function t(e, t, n, i) { var r = e + " "; switch (n) { case "s": return t || i ? "nekaj sekund" : "nekaj sekundami"; case "ss": if (e === 1) r += t ? "sekundo" : "sekundi"; else if (e === 2) r += t || i ? "sekundi" : "sekundah"; else if (e < 5) r += t || i ? "sekunde" : "sekundah"; else r += "sekund"; return r; case "m": return t ? "ena minuta" : "eno minuto"; case "mm": if (e === 1) r += t ? "minuta" : "minuto"; else if (e === 2) r += t || i ? "minuti" : "minutama"; else if (e < 5) r += t || i ? "minute" : "minutami"; else r += t || i ? "minut" : "minutami"; return r; case "h": return t ? "ena ura" : "eno uro"; case "hh": if (e === 1) r += t ? "ura" : "uro"; else if (e === 2) r += t || i ? "uri" : "urama"; else if (e < 5) r += t || i ? "ure" : "urami"; else r += t || i ? "ur" : "urami"; return r; case "d": return t || i ? "en dan" : "enim dnem"; case "dd": if (e === 1) r += t || i ? "dan" : "dnem"; else if (e === 2) r += t || i ? "dni" : "dnevoma"; else r += t || i ? "dni" : "dnevi"; return r; case "M": return t || i ? "en mesec" : "enim mesecem"; case "MM": if (e === 1) r += t || i ? "mesec" : "mesecem"; else if (e === 2) r += t || i ? "meseca" : "mesecema"; else if (e < 5) r += t || i ? "mesece" : "meseci"; else r += t || i ? "mesecev" : "meseci"; return r; case "y": return t || i ? "eno leto" : "enim letom"; case "yy": if (e === 1) r += t || i ? "leto" : "letom"; else if (e === 2) r += t || i ? "leti" : "letoma"; else if (e < 5) r += t || i ? "leta" : "leti"; else r += t || i ? "let" : "leti"; return r } } var n; e.defineLocale("sl", { months: "januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"), monthsShort: "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"), monthsParseExact: true, weekdays: "nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"), weekdaysShort: "ned._pon._tor._sre._čet._pet._sob.".split("_"), weekdaysMin: "ne_po_to_sr_če_pe_so".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD. MM. YYYY", LL: "D. MMMM YYYY", LLL: "D. MMMM YYYY H:mm", LLLL: "dddd, D. MMMM YYYY H:mm" }, calendar: { sameDay: "[danes ob] LT", nextDay: "[jutri ob] LT", nextWeek: function () { switch (this.day()) { case 0: return "[v] [nedeljo] [ob] LT"; case 3: return "[v] [sredo] [ob] LT"; case 6: return "[v] [soboto] [ob] LT"; case 1: case 2: case 4: case 5: return "[v] dddd [ob] LT" } }, lastDay: "[včeraj ob] LT", lastWeek: function () { switch (this.day()) { case 0: return "[prejšnjo] [nedeljo] [ob] LT"; case 3: return "[prejšnjo] [sredo] [ob] LT"; case 6: return "[prejšnjo] [soboto] [ob] LT"; case 1: case 2: case 4: case 5: return "[prejšnji] dddd [ob] LT" } }, sameElse: "L" }, relativeTime: { future: "čez %s", past: "pred %s", s: t, ss: t, m: t, mm: t, h: t, hh: t, d: t, dd: t, M: t, MM: t, y: t, yy: t }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("sq", { months: "Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"), monthsShort: "Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"), weekdays: "E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"), weekdaysShort: "Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"), weekdaysMin: "D_H_Ma_Më_E_P_Sh".split("_"), weekdaysParseExact: true, meridiemParse: /PD|MD/, isPM: function (e) { return e.charAt(0) === "M" }, meridiem: function (e, t, n) { return e < 12 ? "PD" : "MD" }, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Sot në] LT", nextDay: "[Nesër në] LT", nextWeek: "dddd [në] LT", lastDay: "[Dje në] LT", lastWeek: "dddd [e kaluar në] LT", sameElse: "L" }, relativeTime: { future: "në %s", past: "%s më parë", s: "disa sekonda", ss: "%d sekonda", m: "një minutë", mm: "%d minuta", h: "një orë", hh: "%d orë", d: "një ditë", dd: "%d ditë", M: "një muaj", MM: "%d muaj", y: "një vit", yy: "%d vite" }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var r = { words: { ss: ["sekunda", "sekunde", "sekundi"], m: ["jedan minut", "jedne minute"], mm: ["minut", "minute", "minuta"], h: ["jedan sat", "jednog sata"], hh: ["sat", "sata", "sati"], dd: ["dan", "dana", "dana"], MM: ["mesec", "meseca", "meseci"], yy: ["godina", "godine", "godina"] }, correctGrammaticalCase: function (e, t) { return e === 1 ? t[0] : e >= 2 && e <= 4 ? t[1] : t[2] }, translate: function (e, t, n) { var i = r.words[n]; if (n.length === 1) return t ? i[0] : i[1]; else return e + " " + r.correctGrammaticalCase(e, i) } }, t; e.defineLocale("sr", { months: "januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"), monthsShort: "jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"), monthsParseExact: true, weekdays: "nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"), weekdaysShort: "ned._pon._uto._sre._čet._pet._sub.".split("_"), weekdaysMin: "ne_po_ut_sr_če_pe_su".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "D. M. YYYY.", LL: "D. MMMM YYYY.", LLL: "D. MMMM YYYY. H:mm", LLLL: "dddd, D. MMMM YYYY. H:mm" }, calendar: { sameDay: "[danas u] LT", nextDay: "[sutra u] LT", nextWeek: function () { switch (this.day()) { case 0: return "[u] [nedelju] [u] LT"; case 3: return "[u] [sredu] [u] LT"; case 6: return "[u] [subotu] [u] LT"; case 1: case 2: case 4: case 5: return "[u] dddd [u] LT" } }, lastDay: "[juče u] LT", lastWeek: function () { var e = ["[prošle] [nedelje] [u] LT", "[prošlog] [ponedeljka] [u] LT", "[prošlog] [utorka] [u] LT", "[prošle] [srede] [u] LT", "[prošlog] [četvrtka] [u] LT", "[prošlog] [petka] [u] LT", "[prošle] [subote] [u] LT"]; return e[this.day()] }, sameElse: "L" }, relativeTime: { future: "za %s", past: "pre %s", s: "nekoliko sekundi", ss: r.translate, m: r.translate, mm: r.translate, h: r.translate, hh: r.translate, d: "dan", dd: r.translate, M: "mesec", MM: r.translate, y: "godinu", yy: r.translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var r = { words: { ss: ["секунда", "секунде", "секунди"], m: ["један минут", "једне минуте"], mm: ["минут", "минуте", "минута"], h: ["један сат", "једног сата"], hh: ["сат", "сата", "сати"], dd: ["дан", "дана", "дана"], MM: ["месец", "месеца", "месеци"], yy: ["година", "године", "година"] }, correctGrammaticalCase: function (e, t) { return e === 1 ? t[0] : e >= 2 && e <= 4 ? t[1] : t[2] }, translate: function (e, t, n) { var i = r.words[n]; if (n.length === 1) return t ? i[0] : i[1]; else return e + " " + r.correctGrammaticalCase(e, i) } }, t; e.defineLocale("sr-cyrl", { months: "јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"), monthsShort: "јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"), monthsParseExact: true, weekdays: "недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"), weekdaysShort: "нед._пон._уто._сре._чет._пет._суб.".split("_"), weekdaysMin: "не_по_ут_ср_че_пе_су".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "D. M. YYYY.", LL: "D. MMMM YYYY.", LLL: "D. MMMM YYYY. H:mm", LLLL: "dddd, D. MMMM YYYY. H:mm" }, calendar: { sameDay: "[данас у] LT", nextDay: "[сутра у] LT", nextWeek: function () { switch (this.day()) { case 0: return "[у] [недељу] [у] LT"; case 3: return "[у] [среду] [у] LT"; case 6: return "[у] [суботу] [у] LT"; case 1: case 2: case 4: case 5: return "[у] dddd [у] LT" } }, lastDay: "[јуче у] LT", lastWeek: function () { var e = ["[прошле] [недеље] [у] LT", "[прошлог] [понедељка] [у] LT", "[прошлог] [уторка] [у] LT", "[прошле] [среде] [у] LT", "[прошлог] [четвртка] [у] LT", "[прошлог] [петка] [у] LT", "[прошле] [суботе] [у] LT"]; return e[this.day()] }, sameElse: "L" }, relativeTime: { future: "за %s", past: "пре %s", s: "неколико секунди", ss: r.translate, m: r.translate, mm: r.translate, h: r.translate, hh: r.translate, d: "дан", dd: r.translate, M: "месец", MM: r.translate, y: "годину", yy: r.translate }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ss", { months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"), monthsShort: "Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"), weekdays: "Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"), weekdaysShort: "Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"), weekdaysMin: "Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "h:mm A", LTS: "h:mm:ss A", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY h:mm A", LLLL: "dddd, D MMMM YYYY h:mm A" }, calendar: { sameDay: "[Namuhla nga] LT", nextDay: "[Kusasa nga] LT", nextWeek: "dddd [nga] LT", lastDay: "[Itolo nga] LT", lastWeek: "dddd [leliphelile] [nga] LT", sameElse: "L" }, relativeTime: { future: "nga %s", past: "wenteka nga %s", s: "emizuzwana lomcane", ss: "%d mzuzwana", m: "umzuzu", mm: "%d emizuzu", h: "lihora", hh: "%d emahora", d: "lilanga", dd: "%d emalanga", M: "inyanga", MM: "%d tinyanga", y: "umnyaka", yy: "%d iminyaka" }, meridiemParse: /ekuseni|emini|entsambama|ebusuku/, meridiem: function (e, t, n) { if (e < 11) return "ekuseni"; else if (e < 15) return "emini"; else if (e < 19) return "entsambama"; else return "ebusuku" }, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "ekuseni") return e; else if (t === "emini") return e >= 11 ? e : e + 12; else if (t === "entsambama" || t === "ebusuku") { if (e === 0) return 0; return e + 12 } }, dayOfMonthOrdinalParse: /\d{1,2}/, ordinal: "%d", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("sv", { months: "januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"), monthsShort: "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"), weekdays: "söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"), weekdaysShort: "sön_mån_tis_ons_tor_fre_lör".split("_"), weekdaysMin: "sö_må_ti_on_to_fr_lö".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY-MM-DD", LL: "D MMMM YYYY", LLL: "D MMMM YYYY [kl.] HH:mm", LLLL: "dddd D MMMM YYYY [kl.] HH:mm", lll: "D MMM YYYY HH:mm", llll: "ddd D MMM YYYY HH:mm" }, calendar: { sameDay: "[Idag] LT", nextDay: "[Imorgon] LT", lastDay: "[Igår] LT", nextWeek: "[På] dddd LT", lastWeek: "[I] dddd[s] LT", sameElse: "L" }, relativeTime: { future: "om %s", past: "för %s sedan", s: "några sekunder", ss: "%d sekunder", m: "en minut", mm: "%d minuter", h: "en timme", hh: "%d timmar", d: "en dag", dd: "%d dagar", M: "en månad", MM: "%d månader", y: "ett år", yy: "%d år" }, dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? ":e" : t === 1 ? ":a" : t === 2 ? ":a" : t === 3 ? ":e" : ":e"; return e + n }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("sw", { months: "Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"), monthsShort: "Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"), weekdays: "Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"), weekdaysShort: "Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"), weekdaysMin: "J2_J3_J4_J5_Al_Ij_J1".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "hh:mm A", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[leo saa] LT", nextDay: "[kesho saa] LT", nextWeek: "[wiki ijayo] dddd [saat] LT", lastDay: "[jana] LT", lastWeek: "[wiki iliyopita] dddd [saat] LT", sameElse: "L" }, relativeTime: { future: "%s baadaye", past: "tokea %s", s: "hivi punde", ss: "sekunde %d", m: "dakika moja", mm: "dakika %d", h: "saa limoja", hh: "masaa %d", d: "siku moja", dd: "siku %d", M: "mwezi mmoja", MM: "miezi %d", y: "mwaka mmoja", yy: "miaka %d" }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = { 1: "௧", 2: "௨", 3: "௩", 4: "௪", 5: "௫", 6: "௬", 7: "௭", 8: "௮", 9: "௯", 0: "௦" }, n = { "௧": "1", "௨": "2", "௩": "3", "௪": "4", "௫": "5", "௬": "6", "௭": "7", "௮": "8", "௯": "9", "௦": "0" }, i; e.defineLocale("ta", { months: "ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"), monthsShort: "ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"), weekdays: "ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"), weekdaysShort: "ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"), weekdaysMin: "ஞா_தி_செ_பு_வி_வெ_ச".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, HH:mm", LLLL: "dddd, D MMMM YYYY, HH:mm" }, calendar: { sameDay: "[இன்று] LT", nextDay: "[நாளை] LT", nextWeek: "dddd, LT", lastDay: "[நேற்று] LT", lastWeek: "[கடந்த வாரம்] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s இல்", past: "%s முன்", s: "ஒரு சில விநாடிகள்", ss: "%d விநாடிகள்", m: "ஒரு நிமிடம்", mm: "%d நிமிடங்கள்", h: "ஒரு மணி நேரம்", hh: "%d மணி நேரம்", d: "ஒரு நாள்", dd: "%d நாட்கள்", M: "ஒரு மாதம்", MM: "%d மாதங்கள்", y: "ஒரு வருடம்", yy: "%d ஆண்டுகள்" }, dayOfMonthOrdinalParse: /\d{1,2}வது/, ordinal: function (e) { return e + "வது" }, preparse: function (e) { return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (e) { return n[e] }) }, postformat: function (e) { return e.replace(/\d/g, function (e) { return t[e] }) }, meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, meridiem: function (e, t, n) { if (e < 2) return " யாமம்"; else if (e < 6) return " வைகறை"; else if (e < 10) return " காலை"; else if (e < 14) return " நண்பகல்"; else if (e < 18) return " எற்பாடு"; else if (e < 22) return " மாலை"; else return " யாமம்" }, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "யாமம்") return e < 2 ? e : e + 12; else if (t === "வைகறை" || t === "காலை") return e; else if (t === "நண்பகல்") return e >= 10 ? e : e + 12; else return e + 12 }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("te", { months: "జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"), monthsShort: "జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"), monthsParseExact: true, weekdays: "ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"), weekdaysShort: "ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"), weekdaysMin: "ఆ_సో_మం_బు_గు_శు_శ".split("_"), longDateFormat: { LT: "A h:mm", LTS: "A h:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY, A h:mm", LLLL: "dddd, D MMMM YYYY, A h:mm" }, calendar: { sameDay: "[నేడు] LT", nextDay: "[రేపు] LT", nextWeek: "dddd, LT", lastDay: "[నిన్న] LT", lastWeek: "[గత] dddd, LT", sameElse: "L" }, relativeTime: { future: "%s లో", past: "%s క్రితం", s: "కొన్ని క్షణాలు", ss: "%d సెకన్లు", m: "ఒక నిమిషం", mm: "%d నిమిషాలు", h: "ఒక గంట", hh: "%d గంటలు", d: "ఒక రోజు", dd: "%d రోజులు", M: "ఒక నెల", MM: "%d నెలలు", y: "ఒక సంవత్సరం", yy: "%d సంవత్సరాలు" }, dayOfMonthOrdinalParse: /\d{1,2}వ/, ordinal: "%dవ", meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "రాత్రి") return e < 4 ? e : e + 12; else if (t === "ఉదయం") return e; else if (t === "మధ్యాహ్నం") return e >= 10 ? e : e + 12; else if (t === "సాయంత్రం") return e + 12 }, meridiem: function (e, t, n) { if (e < 4) return "రాత్రి"; else if (e < 10) return "ఉదయం"; else if (e < 17) return "మధ్యాహ్నం"; else if (e < 20) return "సాయంత్రం"; else return "రాత్రి" }, week: { dow: 0, doy: 6 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("tet", { months: "Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"), monthsShort: "Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"), weekdays: "Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"), weekdaysShort: "Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"), weekdaysMin: "Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Ohin iha] LT", nextDay: "[Aban iha] LT", nextWeek: "dddd [iha] LT", lastDay: "[Horiseik iha] LT", lastWeek: "dddd [semana kotuk] [iha] LT", sameElse: "L" }, relativeTime: { future: "iha %s", past: "%s liuba", s: "segundu balun", ss: "segundu %d", m: "minutu ida", mm: "minutu %d", h: "oras ida", hh: "oras %d", d: "loron ida", dd: "loron %d", M: "fulan ida", MM: "fulan %d", y: "tinan ida", yy: "tinan %d" }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var i = { 0: "-ум", 1: "-ум", 2: "-юм", 3: "-юм", 4: "-ум", 5: "-ум", 6: "-ум", 7: "-ум", 8: "-ум", 9: "-ум", 10: "-ум", 12: "-ум", 13: "-ум", 20: "-ум", 30: "-юм", 40: "-ум", 50: "-ум", 60: "-ум", 70: "-ум", 80: "-ум", 90: "-ум", 100: "-ум" }, t; e.defineLocale("tg", { months: { format: "январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри".split("_"), standalone: "январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_") }, monthsShort: "янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"), weekdays: "якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"), weekdaysShort: "яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"), weekdaysMin: "яш_дш_сш_чш_пш_ҷм_шб".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[Имрӯз соати] LT", nextDay: "[Фардо соати] LT", lastDay: "[Дирӯз соати] LT", nextWeek: "dddd[и] [ҳафтаи оянда соати] LT", lastWeek: "dddd[и] [ҳафтаи гузашта соати] LT", sameElse: "L" }, relativeTime: { future: "баъди %s", past: "%s пеш", s: "якчанд сония", m: "як дақиқа", mm: "%d дақиқа", h: "як соат", hh: "%d соат", d: "як рӯз", dd: "%d рӯз", M: "як моҳ", MM: "%d моҳ", y: "як сол", yy: "%d сол" }, meridiemParse: /шаб|субҳ|рӯз|бегоҳ/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "шаб") return e < 4 ? e : e + 12; else if (t === "субҳ") return e; else if (t === "рӯз") return e >= 11 ? e : e + 12; else if (t === "бегоҳ") return e + 12 }, meridiem: function (e, t, n) { if (e < 4) return "шаб"; else if (e < 11) return "субҳ"; else if (e < 16) return "рӯз"; else if (e < 19) return "бегоҳ"; else return "шаб" }, dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/, ordinal: function (e) { var t = e % 10, n = e >= 100 ? 100 : null; return e + (i[e] || i[t] || i[n]) }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("th", { months: "มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"), monthsShort: "ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"), monthsParseExact: true, weekdays: "อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"), weekdaysShort: "อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"), weekdaysMin: "อา._จ._อ._พ._พฤ._ศ._ส.".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "H:mm", LTS: "H:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY เวลา H:mm", LLLL: "วันddddที่ D MMMM YYYY เวลา H:mm" }, meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, isPM: function (e) { return e === "หลังเที่ยง" }, meridiem: function (e, t, n) { if (e < 12) return "ก่อนเที่ยง"; else return "หลังเที่ยง" }, calendar: { sameDay: "[วันนี้ เวลา] LT", nextDay: "[พรุ่งนี้ เวลา] LT", nextWeek: "dddd[หน้า เวลา] LT", lastDay: "[เมื่อวานนี้ เวลา] LT", lastWeek: "[วัน]dddd[ที่แล้ว เวลา] LT", sameElse: "L" }, relativeTime: { future: "อีก %s", past: "%sที่แล้ว", s: "ไม่กี่วินาที", ss: "%d วินาที", m: "1 นาที", mm: "%d นาที", h: "1 ชั่วโมง", hh: "%d ชั่วโมง", d: "1 วัน", dd: "%d วัน", w: "1 สัปดาห์", ww: "%d สัปดาห์", M: "1 เดือน", MM: "%d เดือน", y: "1 ปี", yy: "%d ปี" } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var a = { 1: "'inji", 5: "'inji", 8: "'inji", 70: "'inji", 80: "'inji", 2: "'nji", 7: "'nji", 20: "'nji", 50: "'nji", 3: "'ünji", 4: "'ünji", 100: "'ünji", 6: "'njy", 9: "'unjy", 10: "'unjy", 30: "'unjy", 60: "'ynjy", 90: "'ynjy" }, t; e.defineLocale("tk", { months: "Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"), monthsShort: "Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"), weekdays: "Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"), weekdaysShort: "Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"), weekdaysMin: "Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[bugün sagat] LT", nextDay: "[ertir sagat] LT", nextWeek: "[indiki] dddd [sagat] LT", lastDay: "[düýn] LT", lastWeek: "[geçen] dddd [sagat] LT", sameElse: "L" }, relativeTime: { future: "%s soň", past: "%s öň", s: "birnäçe sekunt", m: "bir minut", mm: "%d minut", h: "bir sagat", hh: "%d sagat", d: "bir gün", dd: "%d gün", M: "bir aý", MM: "%d aý", y: "bir ýyl", yy: "%d ýyl" }, ordinal: function (e, t) { switch (t) { case "d": case "D": case "Do": case "DD": return e; default: if (e === 0) return e + "'unjy"; var n = e % 10, i = e % 100 - n, r = e >= 100 ? 100 : null; return e + (a[n] || a[i] || a[r]) } }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("tl-ph", { months: "Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"), monthsShort: "Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"), weekdays: "Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"), weekdaysShort: "Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"), weekdaysMin: "Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "MM/D/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY HH:mm", LLLL: "dddd, MMMM DD, YYYY HH:mm" }, calendar: { sameDay: "LT [ngayong araw]", nextDay: "[Bukas ng] LT", nextWeek: "LT [sa susunod na] dddd", lastDay: "LT [kahapon]", lastWeek: "LT [noong nakaraang] dddd", sameElse: "L" }, relativeTime: { future: "sa loob ng %s", past: "%s ang nakalipas", s: "ilang segundo", ss: "%d segundo", m: "isang minuto", mm: "%d minuto", h: "isang oras", hh: "%d oras", d: "isang araw", dd: "%d araw", M: "isang buwan", MM: "%d buwan", y: "isang taon", yy: "%d taon" }, dayOfMonthOrdinalParse: /\d{1,2}/, ordinal: function (e) { return e }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var a = "pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_"), t; function n(e) { var t = e; t = e.indexOf("jaj") !== -1 ? t.slice(0, -3) + "leS" : e.indexOf("jar") !== -1 ? t.slice(0, -3) + "waQ" : e.indexOf("DIS") !== -1 ? t.slice(0, -3) + "nem" : t + " pIq"; return t } function i(e) { var t = e; t = e.indexOf("jaj") !== -1 ? t.slice(0, -3) + "Hu’" : e.indexOf("jar") !== -1 ? t.slice(0, -3) + "wen" : e.indexOf("DIS") !== -1 ? t.slice(0, -3) + "ben" : t + " ret"; return t } function r(e, t, n, i) { var r = s(e); switch (n) { case "ss": return r + " lup"; case "mm": return r + " tup"; case "hh": return r + " rep"; case "dd": return r + " jaj"; case "MM": return r + " jar"; case "yy": return r + " DIS" } } function s(e) { var t = Math.floor(e % 1e3 / 100), n = Math.floor(e % 100 / 10), i = e % 10, r = ""; if (t > 0) r += a[t] + "vatlh"; if (n > 0) r += (r !== "" ? " " : "") + a[n] + "maH"; if (i > 0) r += (r !== "" ? " " : "") + a[i]; return r === "" ? "pagh" : r } e.defineLocale("tlh", { months: "tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"), monthsShort: "jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"), monthsParseExact: true, weekdays: "lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"), weekdaysShort: "lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"), weekdaysMin: "lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[DaHjaj] LT", nextDay: "[wa’leS] LT", nextWeek: "LLL", lastDay: "[wa’Hu’] LT", lastWeek: "LLL", sameElse: "L" }, relativeTime: { future: n, past: i, s: "puS lup", ss: r, m: "wa’ tup", mm: r, h: "wa’ rep", hh: r, d: "wa’ jaj", dd: r, M: "wa’ jar", MM: r, y: "wa’ DIS", yy: r }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var a = { 1: "'inci", 5: "'inci", 8: "'inci", 70: "'inci", 80: "'inci", 2: "'nci", 7: "'nci", 20: "'nci", 50: "'nci", 3: "'üncü", 4: "'üncü", 100: "'üncü", 6: "'ncı", 9: "'uncu", 10: "'uncu", 30: "'uncu", 60: "'ıncı", 90: "'ıncı" }, t; e.defineLocale("tr", { months: "Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"), monthsShort: "Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"), weekdays: "Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"), weekdaysShort: "Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"), weekdaysMin: "Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"), meridiem: function (e, t, n) { if (e < 12) return n ? "öö" : "ÖÖ"; else return n ? "ös" : "ÖS" }, meridiemParse: /öö|ÖÖ|ös|ÖS/, isPM: function (e) { return e === "ös" || e === "ÖS" }, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[bugün saat] LT", nextDay: "[yarın saat] LT", nextWeek: "[gelecek] dddd [saat] LT", lastDay: "[dün] LT", lastWeek: "[geçen] dddd [saat] LT", sameElse: "L" }, relativeTime: { future: "%s sonra", past: "%s önce", s: "birkaç saniye", ss: "%d saniye", m: "bir dakika", mm: "%d dakika", h: "bir saat", hh: "%d saat", d: "bir gün", dd: "%d gün", w: "bir hafta", ww: "%d hafta", M: "bir ay", MM: "%d ay", y: "bir yıl", yy: "%d yıl" }, ordinal: function (e, t) { switch (t) { case "d": case "D": case "Do": case "DD": return e; default: if (e === 0) return e + "'ıncı"; var n = e % 10, i = e % 100 - n, r = e >= 100 ? 100 : null; return e + (a[n] || a[i] || a[r]) } }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; function n(e, t, n, i) { var r = { s: ["viensas secunds", "'iensas secunds"], ss: [e + " secunds", "" + e + " secunds"], m: ["'n míut", "'iens míut"], mm: [e + " míuts", "" + e + " míuts"], h: ["'n þora", "'iensa þora"], hh: [e + " þoras", "" + e + " þoras"], d: ["'n ziua", "'iensa ziua"], dd: [e + " ziuas", "" + e + " ziuas"], M: ["'n mes", "'iens mes"], MM: [e + " mesen", "" + e + " mesen"], y: ["'n ar", "'iens ar"], yy: [e + " ars", "" + e + " ars"] }; return i ? r[n][0] : t ? r[n][0] : r[n][1] } e.defineLocale("tzl", { months: "Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"), monthsShort: "Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"), weekdays: "Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"), weekdaysShort: "Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"), weekdaysMin: "Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"), longDateFormat: { LT: "HH.mm", LTS: "HH.mm.ss", L: "DD.MM.YYYY", LL: "D. MMMM [dallas] YYYY", LLL: "D. MMMM [dallas] YYYY HH.mm", LLLL: "dddd, [li] D. MMMM [dallas] YYYY HH.mm" }, meridiemParse: /d\'o|d\'a/i, isPM: function (e) { return "d'o" === e.toLowerCase() }, meridiem: function (e, t, n) { if (e > 11) return n ? "d'o" : "D'O"; else return n ? "d'a" : "D'A" }, calendar: { sameDay: "[oxhi à] LT", nextDay: "[demà à] LT", nextWeek: "dddd [à] LT", lastDay: "[ieiri à] LT", lastWeek: "[sür el] dddd [lasteu à] LT", sameElse: "L" }, relativeTime: { future: "osprei %s", past: "ja%s", s: n, ss: n, m: n, mm: n, h: n, hh: n, d: n, dd: n, M: n, MM: n, y: n, yy: n }, dayOfMonthOrdinalParse: /\d{1,2}\./, ordinal: "%d.", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("tzm", { months: "ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"), monthsShort: "ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"), weekdays: "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"), weekdaysShort: "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"), weekdaysMin: "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[ⴰⵙⴷⵅ ⴴ] LT", nextDay: "[ⴰⵙⴽⴰ ⴴ] LT", nextWeek: "dddd [ⴴ] LT", lastDay: "[ⴰⵚⴰⵏⵜ ⴴ] LT", lastWeek: "dddd [ⴴ] LT", sameElse: "L" }, relativeTime: { future: "ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s", past: "ⵢⴰⵏ %s", s: "ⵉⵎⵉⴽ", ss: "%d ⵉⵎⵉⴽ", m: "ⵎⵉⵏⵓⴺ", mm: "%d ⵎⵉⵏⵓⴺ", h: "ⵙⴰⵄⴰ", hh: "%d ⵜⴰⵙⵙⴰⵄⵉⵏ", d: "ⴰⵙⵙ", dd: "%d oⵙⵙⴰⵏ", M: "ⴰⵢoⵓⵔ", MM: "%d ⵉⵢⵢⵉⵔⵏ", y: "ⴰⵙⴳⴰⵙ", yy: "%d ⵉⵙⴳⴰⵙⵏ" }, week: { dow: 6, doy: 12 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("tzm-latn", { months: "innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"), monthsShort: "innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"), weekdays: "asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"), weekdaysShort: "asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"), weekdaysMin: "asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd D MMMM YYYY HH:mm" }, calendar: { sameDay: "[asdkh g] LT", nextDay: "[aska g] LT", nextWeek: "dddd [g] LT", lastDay: "[assant g] LT", lastWeek: "dddd [g] LT", sameElse: "L" }, relativeTime: { future: "dadkh s yan %s", past: "yan %s", s: "imik", ss: "%d imik", m: "minuḍ", mm: "%d minuḍ", h: "saɛa", hh: "%d tassaɛin", d: "ass", dd: "%d ossan", M: "ayowr", MM: "%d iyyirn", y: "asgas", yy: "%d isgasn" }, week: { dow: 6, doy: 12 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("ug-cn", { months: "يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"), monthsShort: "يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"), weekdays: "يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"), weekdaysShort: "يە_دۈ_سە_چا_پە_جۈ_شە".split("_"), weekdaysMin: "يە_دۈ_سە_چا_پە_جۈ_شە".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY-MM-DD", LL: "YYYY-يىلىM-ئاينىڭD-كۈنى", LLL: "YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm", LLLL: "dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm" }, meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "يېرىم كېچە" || t === "سەھەر" || t === "چۈشتىن بۇرۇن") return e; else if (t === "چۈشتىن كېيىن" || t === "كەچ") return e + 12; else return e >= 11 ? e : e + 12 }, meridiem: function (e, t, n) { var i = e * 100 + t; if (i < 600) return "يېرىم كېچە"; else if (i < 900) return "سەھەر"; else if (i < 1130) return "چۈشتىن بۇرۇن"; else if (i < 1230) return "چۈش"; else if (i < 1800) return "چۈشتىن كېيىن"; else return "كەچ" }, calendar: { sameDay: "[بۈگۈن سائەت] LT", nextDay: "[ئەتە سائەت] LT", nextWeek: "[كېلەركى] dddd [سائەت] LT", lastDay: "[تۆنۈگۈن] LT", lastWeek: "[ئالدىنقى] dddd [سائەت] LT", sameElse: "L" }, relativeTime: { future: "%s كېيىن", past: "%s بۇرۇن", s: "نەچچە سېكونت", ss: "%d سېكونت", m: "بىر مىنۇت", mm: "%d مىنۇت", h: "بىر سائەت", hh: "%d سائەت", d: "بىر كۈن", dd: "%d كۈن", M: "بىر ئاي", MM: "%d ئاي", y: "بىر يىل", yy: "%d يىل" }, dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/, ordinal: function (e, t) { switch (t) { case "d": case "D": case "DDD": return e + "-كۈنى"; case "w": case "W": return e + "-ھەپتە"; default: return e } }, preparse: function (e) { return e.replace(/،/g, ",") }, postformat: function (e) { return e.replace(/,/g, "،") }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            function r(e, t) { var n = e.split("_"); return t % 10 === 1 && t % 100 !== 11 ? n[0] : t % 10 >= 2 && t % 10 <= 4 && (t % 100 < 10 || t % 100 >= 20) ? n[1] : n[2] } function t(e, t, n) { var i = { ss: t ? "секунда_секунди_секунд" : "секунду_секунди_секунд", mm: t ? "хвилина_хвилини_хвилин" : "хвилину_хвилини_хвилин", hh: t ? "година_години_годин" : "годину_години_годин", dd: "день_дні_днів", MM: "місяць_місяці_місяців", yy: "рік_роки_років" }; if (n === "m") return t ? "хвилина" : "хвилину"; else if (n === "h") return t ? "година" : "годину"; else return e + " " + r(i[n], +e) } function n(e, t) { var n = { nominative: "неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"), accusative: "неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"), genitive: "неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_") }, i; if (e === true) return n["nominative"].slice(1, 7).concat(n["nominative"].slice(0, 1)); if (!e) return n["nominative"]; i = /(\[[ВвУу]\]) ?dddd/.test(t) ? "accusative" : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(t) ? "genitive" : "nominative"; return n[i][e.day()] } function i(e) { return function () { return e + "о" + (this.hours() === 11 ? "б" : "") + "] LT" } } var a; e.defineLocale("uk", { months: { format: "січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"), standalone: "січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_") }, monthsShort: "січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"), weekdays: n, weekdaysShort: "нд_пн_вт_ср_чт_пт_сб".split("_"), weekdaysMin: "нд_пн_вт_ср_чт_пт_сб".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD.MM.YYYY", LL: "D MMMM YYYY р.", LLL: "D MMMM YYYY р., HH:mm", LLLL: "dddd, D MMMM YYYY р., HH:mm" }, calendar: { sameDay: i("[Сьогодні "), nextDay: i("[Завтра "), lastDay: i("[Вчора "), nextWeek: i("[У] dddd ["), lastWeek: function () { switch (this.day()) { case 0: case 3: case 5: case 6: return i("[Минулої] dddd [").call(this); case 1: case 2: case 4: return i("[Минулого] dddd [").call(this) } }, sameElse: "L" }, relativeTime: { future: "за %s", past: "%s тому", s: "декілька секунд", ss: t, m: t, mm: t, h: "годину", hh: t, d: "день", dd: t, M: "місяць", MM: t, y: "рік", yy: t }, meridiemParse: /ночі|ранку|дня|вечора/, isPM: function (e) { return /^(дня|вечора)$/.test(e) }, meridiem: function (e, t, n) { if (e < 4) return "ночі"; else if (e < 12) return "ранку"; else if (e < 17) return "дня"; else return "вечора" }, dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, ordinal: function (e, t) { switch (t) { case "M": case "d": case "DDD": case "w": case "W": return e + "-й"; case "D": return e + "-го"; default: return e } }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t = ["جنوری", "فروری", "مارچ", "اپریل", "مئی", "جون", "جولائی", "اگست", "ستمبر", "اکتوبر", "نومبر", "دسمبر"], n = ["اتوار", "پیر", "منگل", "بدھ", "جمعرات", "جمعہ", "ہفتہ"], i; e.defineLocale("ur", { months: t, monthsShort: t, weekdays: n, weekdaysShort: n, weekdaysMin: n, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd، D MMMM YYYY HH:mm" }, meridiemParse: /صبح|شام/, isPM: function (e) { return "شام" === e }, meridiem: function (e, t, n) { if (e < 12) return "صبح"; return "شام" }, calendar: { sameDay: "[آج بوقت] LT", nextDay: "[کل بوقت] LT", nextWeek: "dddd [بوقت] LT", lastDay: "[گذشتہ روز بوقت] LT", lastWeek: "[گذشتہ] dddd [بوقت] LT", sameElse: "L" }, relativeTime: { future: "%s بعد", past: "%s قبل", s: "چند سیکنڈ", ss: "%d سیکنڈ", m: "ایک منٹ", mm: "%d منٹ", h: "ایک گھنٹہ", hh: "%d گھنٹے", d: "ایک دن", dd: "%d دن", M: "ایک ماہ", MM: "%d ماہ", y: "ایک سال", yy: "%d سال" }, preparse: function (e) { return e.replace(/،/g, ",") }, postformat: function (e) { return e.replace(/,/g, "،") }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("uz", { months: "январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"), monthsShort: "янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"), weekdays: "Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"), weekdaysShort: "Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"), weekdaysMin: "Як_Ду_Се_Чо_Па_Жу_Ша".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "D MMMM YYYY, dddd HH:mm" }, calendar: { sameDay: "[Бугун соат] LT [да]", nextDay: "[Эртага] LT [да]", nextWeek: "dddd [куни соат] LT [да]", lastDay: "[Кеча соат] LT [да]", lastWeek: "[Утган] dddd [куни соат] LT [да]", sameElse: "L" }, relativeTime: { future: "Якин %s ичида", past: "Бир неча %s олдин", s: "фурсат", ss: "%d фурсат", m: "бир дакика", mm: "%d дакика", h: "бир соат", hh: "%d соат", d: "бир кун", dd: "%d кун", M: "бир ой", MM: "%d ой", y: "бир йил", yy: "%d йил" }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("uz-latn", { months: "Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"), monthsShort: "Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"), weekdays: "Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"), weekdaysShort: "Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"), weekdaysMin: "Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "D MMMM YYYY, dddd HH:mm" }, calendar: { sameDay: "[Bugun soat] LT [da]", nextDay: "[Ertaga] LT [da]", nextWeek: "dddd [kuni soat] LT [da]", lastDay: "[Kecha soat] LT [da]", lastWeek: "[O'tgan] dddd [kuni soat] LT [da]", sameElse: "L" }, relativeTime: { future: "Yaqin %s ichida", past: "Bir necha %s oldin", s: "soniya", ss: "%d soniya", m: "bir daqiqa", mm: "%d daqiqa", h: "bir soat", hh: "%d soat", d: "bir kun", dd: "%d kun", M: "bir oy", MM: "%d oy", y: "bir yil", yy: "%d yil" }, week: { dow: 1, doy: 7 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("vi", { months: "tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"), monthsShort: "Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"), monthsParseExact: true, weekdays: "chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"), weekdaysShort: "CN_T2_T3_T4_T5_T6_T7".split("_"), weekdaysMin: "CN_T2_T3_T4_T5_T6_T7".split("_"), weekdaysParseExact: true, meridiemParse: /sa|ch/i, isPM: function (e) { return /^ch$/i.test(e) }, meridiem: function (e, t, n) { if (e < 12) return n ? "sa" : "SA"; else return n ? "ch" : "CH" }, longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "D MMMM [năm] YYYY", LLL: "D MMMM [năm] YYYY HH:mm", LLLL: "dddd, D MMMM [năm] YYYY HH:mm", l: "DD/M/YYYY", ll: "D MMM YYYY", lll: "D MMM YYYY HH:mm", llll: "ddd, D MMM YYYY HH:mm" }, calendar: { sameDay: "[Hôm nay lúc] LT", nextDay: "[Ngày mai lúc] LT", nextWeek: "dddd [tuần tới lúc] LT", lastDay: "[Hôm qua lúc] LT", lastWeek: "dddd [tuần trước lúc] LT", sameElse: "L" }, relativeTime: { future: "%s tới", past: "%s trước", s: "vài giây", ss: "%d giây", m: "một phút", mm: "%d phút", h: "một giờ", hh: "%d giờ", d: "một ngày", dd: "%d ngày", w: "một tuần", ww: "%d tuần", M: "một tháng", MM: "%d tháng", y: "một năm", yy: "%d năm" }, dayOfMonthOrdinalParse: /\d{1,2}/, ordinal: function (e) { return e }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("x-pseudo", { months: "J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"), monthsShort: "J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"), monthsParseExact: true, weekdays: "S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"), weekdaysShort: "S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"), weekdaysMin: "S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"), weekdaysParseExact: true, longDateFormat: { LT: "HH:mm", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY HH:mm", LLLL: "dddd, D MMMM YYYY HH:mm" }, calendar: { sameDay: "[T~ódá~ý át] LT", nextDay: "[T~ómó~rró~w át] LT", nextWeek: "dddd [át] LT", lastDay: "[Ý~ést~érdá~ý át] LT", lastWeek: "[L~ást] dddd [át] LT", sameElse: "L" }, relativeTime: { future: "í~ñ %s", past: "%s á~gó", s: "á ~féw ~sécó~ñds", ss: "%d s~écóñ~ds", m: "á ~míñ~úté", mm: "%d m~íñú~tés", h: "á~ñ hó~úr", hh: "%d h~óúrs", d: "á ~dáý", dd: "%d d~áýs", M: "á ~móñ~th", MM: "%d m~óñt~hs", y: "á ~ýéár", yy: "%d ý~éárs" }, dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function (e) { var t = e % 10, n = ~~(e % 100 / 10) === 1 ? "th" : t === 1 ? "st" : t === 2 ? "nd" : t === 3 ? "rd" : "th"; return e + n }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("yo", { months: "Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"), monthsShort: "Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"), weekdays: "Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"), weekdaysShort: "Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"), weekdaysMin: "Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"), longDateFormat: { LT: "h:mm A", LTS: "h:mm:ss A", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY h:mm A", LLLL: "dddd, D MMMM YYYY h:mm A" }, calendar: { sameDay: "[Ònì ni] LT", nextDay: "[Ọ̀la ni] LT", nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT", lastDay: "[Àna ni] LT", lastWeek: "dddd [Ọsẹ̀ tólọ́] [ni] LT", sameElse: "L" }, relativeTime: { future: "ní %s", past: "%s kọjá", s: "ìsẹjú aayá die", ss: "aayá %d", m: "ìsẹjú kan", mm: "ìsẹjú %d", h: "wákati kan", hh: "wákati %d", d: "ọjọ́ kan", dd: "ọjọ́ %d", M: "osù kan", MM: "osù %d", y: "ọdún kan", yy: "ọdún %d" }, dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/, ordinal: "ọjọ́ %d", week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("zh-cn", { months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), weekdaysShort: "周日_周一_周二_周三_周四_周五_周六".split("_"), weekdaysMin: "日_一_二_三_四_五_六".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY/MM/DD", LL: "YYYY年M月D日", LLL: "YYYY年M月D日Ah点mm分", LLLL: "YYYY年M月D日ddddAh点mm分", l: "YYYY/M/D", ll: "YYYY年M月D日", lll: "YYYY年M月D日 HH:mm", llll: "YYYY年M月D日dddd HH:mm" }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "凌晨" || t === "早上" || t === "上午") return e; else if (t === "下午" || t === "晚上") return e + 12; else return e >= 11 ? e : e + 12 }, meridiem: function (e, t, n) { var i = e * 100 + t; if (i < 600) return "凌晨"; else if (i < 900) return "早上"; else if (i < 1130) return "上午"; else if (i < 1230) return "中午"; else if (i < 1800) return "下午"; else return "晚上" }, calendar: { sameDay: "[今天]LT", nextDay: "[明天]LT", nextWeek: function (e) { if (e.week() !== this.week()) return "[下]dddLT"; else return "[本]dddLT" }, lastDay: "[昨天]LT", lastWeek: function (e) { if (this.week() !== e.week()) return "[上]dddLT"; else return "[本]dddLT" }, sameElse: "L" }, dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, ordinal: function (e, t) { switch (t) { case "d": case "D": case "DDD": return e + "日"; case "M": return e + "月"; case "w": case "W": return e + "周"; default: return e } }, relativeTime: { future: "%s后", past: "%s前", s: "几秒", ss: "%d 秒", m: "1 分钟", mm: "%d 分钟", h: "1 小时", hh: "%d 小时", d: "1 天", dd: "%d 天", w: "1 周", ww: "%d 周", M: "1 个月", MM: "%d 个月", y: "1 年", yy: "%d 年" }, week: { dow: 1, doy: 4 } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("zh-hk", { months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), weekdaysShort: "週日_週一_週二_週三_週四_週五_週六".split("_"), weekdaysMin: "日_一_二_三_四_五_六".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY/MM/DD", LL: "YYYY年M月D日", LLL: "YYYY年M月D日 HH:mm", LLLL: "YYYY年M月D日dddd HH:mm", l: "YYYY/M/D", ll: "YYYY年M月D日", lll: "YYYY年M月D日 HH:mm", llll: "YYYY年M月D日dddd HH:mm" }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "凌晨" || t === "早上" || t === "上午") return e; else if (t === "中午") return e >= 11 ? e : e + 12; else if (t === "下午" || t === "晚上") return e + 12 }, meridiem: function (e, t, n) { var i = e * 100 + t; if (i < 600) return "凌晨"; else if (i < 900) return "早上"; else if (i < 1200) return "上午"; else if (i === 1200) return "中午"; else if (i < 1800) return "下午"; else return "晚上" }, calendar: { sameDay: "[今天]LT", nextDay: "[明天]LT", nextWeek: "[下]ddddLT", lastDay: "[昨天]LT", lastWeek: "[上]ddddLT", sameElse: "L" }, dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, ordinal: function (e, t) { switch (t) { case "d": case "D": case "DDD": return e + "日"; case "M": return e + "月"; case "w": case "W": return e + "週"; default: return e } }, relativeTime: { future: "%s後", past: "%s前", s: "幾秒", ss: "%d 秒", m: "1 分鐘", mm: "%d 分鐘", h: "1 小時", hh: "%d 小時", d: "1 天", dd: "%d 天", M: "1 個月", MM: "%d 個月", y: "1 年", yy: "%d 年" } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("zh-mo", { months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), weekdaysShort: "週日_週一_週二_週三_週四_週五_週六".split("_"), weekdaysMin: "日_一_二_三_四_五_六".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "DD/MM/YYYY", LL: "YYYY年M月D日", LLL: "YYYY年M月D日 HH:mm", LLLL: "YYYY年M月D日dddd HH:mm", l: "D/M/YYYY", ll: "YYYY年M月D日", lll: "YYYY年M月D日 HH:mm", llll: "YYYY年M月D日dddd HH:mm" }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "凌晨" || t === "早上" || t === "上午") return e; else if (t === "中午") return e >= 11 ? e : e + 12; else if (t === "下午" || t === "晚上") return e + 12 }, meridiem: function (e, t, n) { var i = e * 100 + t; if (i < 600) return "凌晨"; else if (i < 900) return "早上"; else if (i < 1130) return "上午"; else if (i < 1230) return "中午"; else if (i < 1800) return "下午"; else return "晚上" }, calendar: { sameDay: "[今天] LT", nextDay: "[明天] LT", nextWeek: "[下]dddd LT", lastDay: "[昨天] LT", lastWeek: "[上]dddd LT", sameElse: "L" }, dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, ordinal: function (e, t) { switch (t) { case "d": case "D": case "DDD": return e + "日"; case "M": return e + "月"; case "w": case "W": return e + "週"; default: return e } }, relativeTime: { future: "%s內", past: "%s前", s: "幾秒", ss: "%d 秒", m: "1 分鐘", mm: "%d 分鐘", h: "1 小時", hh: "%d 小時", d: "1 天", dd: "%d 天", M: "1 個月", MM: "%d 個月", y: "1 年", yy: "%d 年" } })
        }(n(0))
    }, function (e, t, n) {
        !function (e) {
            "use strict";
            //! moment.js locale configuration
            var t; e.defineLocale("zh-tw", { months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), weekdaysShort: "週日_週一_週二_週三_週四_週五_週六".split("_"), weekdaysMin: "日_一_二_三_四_五_六".split("_"), longDateFormat: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY/MM/DD", LL: "YYYY年M月D日", LLL: "YYYY年M月D日 HH:mm", LLLL: "YYYY年M月D日dddd HH:mm", l: "YYYY/M/D", ll: "YYYY年M月D日", lll: "YYYY年M月D日 HH:mm", llll: "YYYY年M月D日dddd HH:mm" }, meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, meridiemHour: function (e, t) { if (e === 12) e = 0; if (t === "凌晨" || t === "早上" || t === "上午") return e; else if (t === "中午") return e >= 11 ? e : e + 12; else if (t === "下午" || t === "晚上") return e + 12 }, meridiem: function (e, t, n) { var i = e * 100 + t; if (i < 600) return "凌晨"; else if (i < 900) return "早上"; else if (i < 1130) return "上午"; else if (i < 1230) return "中午"; else if (i < 1800) return "下午"; else return "晚上" }, calendar: { sameDay: "[今天] LT", nextDay: "[明天] LT", nextWeek: "[下]dddd LT", lastDay: "[昨天] LT", lastWeek: "[上]dddd LT", sameElse: "L" }, dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, ordinal: function (e, t) { switch (t) { case "d": case "D": case "DDD": return e + "日"; case "M": return e + "月"; case "w": case "W": return e + "週"; default: return e } }, relativeTime: { future: "%s後", past: "%s前", s: "幾秒", ss: "%d 秒", m: "1 分鐘", mm: "%d 分鐘", h: "1 小時", hh: "%d 小時", d: "1 天", dd: "%d 天", M: "1 個月", MM: "%d 個月", y: "1 年", yy: "%d 年" } })
        }(n(0))
    }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = s(n(20)), r = s(n(38)), a = s(n(1)); function s(e) { return e && e.__esModule ? e : { default: e } } var o = ((0, s(n(2)).default)(u, null, [{ key: "install", value: function () { Object.setPrototypeOf = r.default || function (e, t) { return e.__proto__ = t, e }, Object.assign = i.default || function (e) { if (null == e) throw new TypeError("Cannot convert undefined or null to object"); for (var t = Object(e), n = 1; n < arguments.length; n++) { var i = arguments[n]; if (null != i) for (var r in i) i.hasOwnProperty(r) && (t[r] = i[r]) } return t }, "function" != typeof self.Promise && n(298).polyfill() } }]), u); function u() { (0, a.default)(this, u) } o.install(), t.default = o }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = m(n(1)), r = m(n(2)), a = m(n(4)), s = m(n(62)), o = n(15), u = m(n(307)), d = m(n(311)), l = (m(n(312)), m(n(313))), h = m(n(314)), c = m(n(315)), _ = m(n(316)), f = n(5); function m(e) { return e && e.__esModule ? e : { default: e } } (0, r.default)(p, [{ key: "destroy", value: function () { this._loader.isWorking() && this._loader.abort(), this._loader.destroy(), this._loader = null, this._loaderClass = null, this._dataSource = null, this._stashBuffer = null, this._stashUsed = this._stashSize = this._bufferSize = this._stashByteStart = 0, this._currentRange = null, this._speedSampler = null, this._isEarlyEofReconnecting = !1, this._onDataArrival = null, this._onSeeked = null, this._onError = null, this._onComplete = null, this._onRedirect = null, this._onRecoveredEarlyEof = null, this._extraData = null } }, { key: "isWorking", value: function () { return this._loader && this._loader.isWorking() && !this._paused } }, { key: "isPaused", value: function () { return this._paused } }, { key: "_selectSeekHandler", value: function () { var e = this._config; if ("range" === e.seekType) this._seekHandler = new c.default(this._config.rangeLoadZeroStart); else if ("param" === e.seekType) { var t = e.seekParamStart || "bstart", n = e.seekParamEnd || "bend"; this._seekHandler = new _.default(t, n) } else { if ("custom" !== e.seekType) throw new f.InvalidArgumentException("Invalid seekType in config: " + e.seekType); if ("function" != typeof e.customSeekHandler) throw new f.InvalidArgumentException("Custom seekType specified in config but invalid customSeekHandler!"); this._seekHandler = new e.customSeekHandler } } }, { key: "_selectLoader", value: function () { if (null != this._config.customLoader) this._loaderClass = this._config.customLoader; else if (this._isWebSocketURL) this._loaderClass = h.default; else if (u.default.isSupported()) this._loaderClass = u.default; else if (d.default.isSupported()) this._loaderClass = d.default; else { if (!l.default.isSupported()) throw new f.RuntimeException("Your browser doesn't support xhr with arraybuffer responseType!"); this._loaderClass = l.default } } }, { key: "_createLoader", value: function () { this._loader = new this._loaderClass(this._seekHandler, this._config), !1 === this._loader.needStashBuffer && (this._enableStash = !1), this._loader.onContentLengthKnown = this._onContentLengthKnown.bind(this), this._loader.onURLRedirect = this._onURLRedirect.bind(this), this._loader.onDataArrival = this._onLoaderChunkArrival.bind(this), this._loader.onComplete = this._onLoaderComplete.bind(this), this._loader.onError = this._onLoaderError.bind(this) } }, { key: "open", value: function (e) { this._currentRange = { from: 0, to: -1 }, e && (this._currentRange.from = e), this._speedSampler.reset(), e || (this._fullRequestFlag = !0) } }, { key: "abort", value: function () { this._loader.abort(), this._paused && (this._paused = !1, this._resumeFrom = 0) } }, { key: "pause", value: function () { this.isWorking() && (this._loader.abort(), 0 !== this._stashUsed ? (this._resumeFrom = this._stashByteStart, this._currentRange.to = this._stashByteStart - 1) : this._resumeFrom = this._currentRange.to + 1, this._stashUsed = 0, this._stashByteStart = 0, this._paused = !0) } }, { key: "resume", value: function () { var e; this._paused && (this._paused = !1, e = this._resumeFrom, this._resumeFrom = 0, this._internalSeek(e, !0)) } }, { key: "seek", value: function (e) { this._paused = !1, this._stashUsed = 0, this._stashByteStart = 0, this._internalSeek(e, !0) } }, { key: "_internalSeek", value: function (e, t) { this._loader.isWorking() && this._loader.abort(), this._flushStashBuffer(t), this._loader.destroy(), this._loader = null; e = { from: e, to: -1 }; this._currentRange = { from: e.from, to: -1 }, this._speedSampler.reset(), this._stashSize = this._stashInitialSize, this._createLoader(), this._loader.open(this._dataSource, e), this._onSeeked && this._onSeeked() } }, { key: "updateUrl", value: function (e) { if (!e || "string" != typeof e || 0 === e.length) throw new f.InvalidArgumentException("Url must be a non-empty string!"); this._dataSource.url = e } }, { key: "_expandBuffer", value: function (e) { for (var t, n, i = this._stashSize; i + 1048576 < e;)i *= 2; (i += 1048576) !== this._bufferSize && (t = new ArrayBuffer(i), 0 < this._stashUsed && (n = new Uint8Array(this._stashBuffer, 0, this._stashUsed), new Uint8Array(t, 0, i).set(n, 0)), this._stashBuffer = t, this._bufferSize = i) } }, { key: "_normalizeSpeed", value: function (e) { var t, n = this._speedNormalizeList, i = n.length - 1, r = 0, a = i; if (e < n[0]) return n[0]; for (; r <= a;) { if ((t = r + Math.floor((a - r) / 2)) === i || e >= n[t] && e < n[t + 1]) return n[t]; n[t] < e ? r = t + 1 : a = t - 1 } } }, { key: "_adjustStashSize", value: function (e) { var t = 0, e = 1024 * (t = 8192 < (t = this._config.isLive || e < 512 ? e : 512 <= e && e <= 1024 ? Math.floor(1.5 * e) : 2 * e) ? 8192 : t) + 1048576; this._bufferSize < e && this._expandBuffer(e), this._stashSize = 1024 * t } }, { key: "_dispatchChunks", value: function (e, t) { return this._currentRange.to = t + e.byteLength - 1, this._onDataArrival(e, t) } }, { key: "_onURLRedirect", value: function (e) { this._redirectedURL = e, this._onRedirect && this._onRedirect(e) } }, { key: "_onContentLengthKnown", value: function (e) { e && this._fullRequestFlag && (this._totalLength = e, this._fullRequestFlag = !1) } }, { key: "_onLoaderChunkArrival", value: function (e, t, n) { if (!this._onDataArrival) throw new f.IllegalStateException("IOController: No existing consumer (onDataArrival) callback!"); var i, r, a, s, o; this._paused || (this._isEarlyEofReconnecting && (this._isEarlyEofReconnecting = !1, this._onRecoveredEarlyEof && this._onRecoveredEarlyEof()), this._speedSampler.addBytes(e.byteLength), 0 !== (i = this._speedSampler.lastSecondKBps) && (r = this._normalizeSpeed(i), this._speedNormalized !== r && (this._speedNormalized = r, this._adjustStashSize(r))), this._enableStash ? (0 === this._stashUsed && 0 === this._stashByteStart && (this._stashByteStart = t), this._stashUsed + e.byteLength <= this._stashSize ? (new Uint8Array(this._stashBuffer, 0, this._stashSize).set(new Uint8Array(e), this._stashUsed), this._stashUsed += e.byteLength) : (i = new Uint8Array(this._stashBuffer, 0, this._bufferSize), 0 < this._stashUsed ? (r = this._stashBuffer.slice(0, this._stashUsed), (a = this._dispatchChunks(r, this._stashByteStart)) < r.byteLength ? 0 < a && (r = new Uint8Array(r, a), i.set(r, 0), this._stashUsed = r.byteLength, this._stashByteStart += a) : (this._stashUsed = 0, this._stashByteStart += a), this._stashUsed + e.byteLength > this._bufferSize && (this._expandBuffer(this._stashUsed + e.byteLength), i = new Uint8Array(this._stashBuffer, 0, this._bufferSize)), i.set(new Uint8Array(e), this._stashUsed), this._stashUsed += e.byteLength) : (s = this._dispatchChunks(e, t)) < e.byteLength && ((a = e.byteLength - s) > this._bufferSize && (this._expandBuffer(a), i = new Uint8Array(this._stashBuffer, 0, this._bufferSize)), i.set(new Uint8Array(e, s), 0), this._stashUsed += a, this._stashByteStart = t + s))) : 0 === this._stashUsed ? (o = this._dispatchChunks(e, t)) < e.byteLength && ((s = e.byteLength - o) > this._bufferSize && this._expandBuffer(s), new Uint8Array(this._stashBuffer, 0, this._bufferSize).set(new Uint8Array(e, o), 0), this._stashUsed += s, this._stashByteStart = t + o) : (this._stashUsed + e.byteLength > this._bufferSize && this._expandBuffer(this._stashUsed + e.byteLength), (t = new Uint8Array(this._stashBuffer, 0, this._bufferSize)).set(new Uint8Array(e), this._stashUsed), this._stashUsed += e.byteLength, (o = this._dispatchChunks(this._stashBuffer.slice(0, this._stashUsed), this._stashByteStart)) < this._stashUsed && 0 < o && (e = new Uint8Array(this._stashBuffer, o), t.set(e, 0)), this._stashUsed -= o, this._stashByteStart += o)) } }, { key: "_flushStashBuffer", value: function (e) { if (0 < this._stashUsed) { var t = this._stashBuffer.slice(0, this._stashUsed), n = this._dispatchChunks(t, this._stashByteStart), i = t.byteLength - n; if (n < t.byteLength) { if (!e) return 0 < n && (e = new Uint8Array(this._stashBuffer, 0, this._bufferSize), t = new Uint8Array(t, n), e.set(t, 0), this._stashUsed = t.byteLength, this._stashByteStart += n), 0; a.default.w(this.TAG, i + " bytes unconsumed data remain when flush buffer, dropped") } return this._stashUsed = 0, this._stashByteStart = 0, i } return 0 } }, { key: "_onLoaderComplete", value: function (e, t) { this._flushStashBuffer(!0), this._onComplete && this._onComplete(this._extraData) } }, { key: "_onLoaderError", value: function (e, t) { switch (a.default.e(this.TAG, "Loader error, code = " + t.code + ", msg = " + t.msg), this._flushStashBuffer(!1), this._isEarlyEofReconnecting && (this._isEarlyEofReconnecting = !1, e = o.LoaderErrors.UNRECOVERABLE_EARLY_EOF), e) { case o.LoaderErrors.EARLY_EOF: if (!this._config.isLive && this._totalLength) { var n = this._currentRange.to + 1; return void (n < this._totalLength && (a.default.w(this.TAG, "Connection lost, trying reconnect..."), this._isEarlyEofReconnecting = !0, this._internalSeek(n, !1))) } e = o.LoaderErrors.UNRECOVERABLE_EARLY_EOF; break; case o.LoaderErrors.UNRECOVERABLE_EARLY_EOF: case o.LoaderErrors.CONNECTING_TIMEOUT: case o.LoaderErrors.HTTP_STATUS_CODE_INVALID: case o.LoaderErrors.EXCEPTION: }if (!this._onError) throw new f.RuntimeException("IOException: " + t.msg); this._onError(e, t) } }, { key: "status", get: function () { return this._loader.status } }, { key: "extraData", get: function () { return this._extraData }, set: function (e) { this._extraData = e } }, { key: "onDataArrival", get: function () { return this._onDataArrival }, set: function (e) { this._onDataArrival = e } }, { key: "onSeeked", get: function () { return this._onSeeked }, set: function (e) { this._onSeeked = e } }, { key: "onError", get: function () { return this._onError }, set: function (e) { this._onError = e } }, { key: "onComplete", get: function () { return this._onComplete }, set: function (e) { this._onComplete = e } }, { key: "onRedirect", get: function () { return this._onRedirect }, set: function (e) { this._onRedirect = e } }, { key: "onRecoveredEarlyEof", get: function () { return this._onRecoveredEarlyEof }, set: function (e) { this._onRecoveredEarlyEof = e } }, { key: "currentURL", get: function () { return this._dataSource.url } }, { key: "hasRedirect", get: function () { return null != this._redirectedURL || null != this._dataSource.redirectedURL } }, { key: "currentRedirectedURL", get: function () { return this._redirectedURL || this._dataSource.redirectedURL } }, { key: "currentSpeed", get: function () { return this._loaderClass === l.default ? this._loader.currentSpeed : this._speedSampler.lastSecondKBps } }, { key: "loaderType", get: function () { return this._loader.type } }]), r = p; function p(e, t, n) { (0, i.default)(this, p), this.TAG = "IOController", this._config = t, this._extraData = n, this._stashInitialSize = 65536, null != t.stashInitialSize && 0 < t.stashInitialSize && (this._stashInitialSize = t.stashInitialSize), this._stashUsed = 0, this._stashSize = this._stashInitialSize, (this._bufferSize = 3145728) < t.stashInitialSize && (this._bufferSize = t.stashInitialSize), this._stashBuffer = new ArrayBuffer(this._bufferSize), this._stashByteStart = 0, !(this._enableStash = !0) === t.enableStashBuffer && (this._enableStash = !1), this._loader = null, this._loaderClass = null, this._seekHandler = null, this._dataSource = e, this._isWebSocketURL = /wss?:\/\/(.+?)/.test(e.url), this._refTotalLength = e.filesize || null, this._totalLength = this._refTotalLength, this._fullRequestFlag = !1, this._currentRange = null, this._redirectedURL = null, this._speedNormalized = 0, this._speedSampler = new s.default, this._speedNormalizeList = [64, 128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096], this._isEarlyEofReconnecting = !1, this._paused = !1, this._resumeFrom = 0, this._onDataArrival = null, this._onSeeked = null, this._onError = null, this._onComplete = null, this._onRedirect = null, this._onRecoveredEarlyEof = null, this._selectSeekHandler(), this._selectLoader(), this._createLoader() } t.default = r }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = y(n(38)), r = y(n(20)), a = y(n(11)), s = y(n(1)), o = y(n(2)), u = y(n(10)), d = y(n(4)), l = y(n(33)), h = y(n(65)), c = y(n(319)), _ = y(n(328)), f = y(n(66)), m = y(n(228)), p = y(n(40)); n(15); function y(e) { return e && e.__esModule ? e : { default: e } } (0, o.default)(v, [{ key: "destroy", value: function () { this._mediaInfo = null, this._mediaDataSource = null, this._statisticsReporter && this._disableStatisticsReporter(), this._ioctl && (this._ioctl.destroy(), this._ioctl = null), this._demuxer && (this._demuxer.destroy(), this._demuxer = null), this._remuxer && (this._remuxer.destroy(), this._remuxer = null), this._emitter.removeAllListeners(), this._emitter = null } }, { key: "on", value: function (e, t) { this._emitter.addListener(e, t) } }, { key: "off", value: function (e, t) { this._emitter.removeListener(e, t) } }, { key: "start", value: function () { this._loadSegment(0), this._enableStatisticsReporter() } }, { key: "_loadSegment", value: function (e, t) { this._currentSegmentIndex = e; var n = this._mediaDataSource.segments[e], e = this._ioctl = new m.default(n, this._config, e); e.onError = this._onIOException.bind(this), e.onSeeked = this._onIOSeeked.bind(this), e.onComplete = this._onIOComplete.bind(this), e.onRedirect = this._onIORedirect.bind(this), e.onRecoveredEarlyEof = this._onIORecoveredEarlyEof.bind(this), t ? this._demuxer.bindDataSource(this._ioctl) : e.onDataArrival = this._onInitChunkArrival.bind(this), e.open(t) } }, { key: "stop", value: function () { this._internalAbort(), this._disableStatisticsReporter() } }, { key: "_internalAbort", value: function () { this._ioctl && (this._ioctl.destroy(), this._ioctl = null) } }, { key: "pause", value: function () { this._ioctl && this._ioctl.isWorking() && (this._ioctl.pause(), this._disableStatisticsReporter()) } }, { key: "resume", value: function () { this._ioctl && this._ioctl.isPaused() && (this._ioctl.resume(), this._enableStatisticsReporter()) } }, { key: "seek", value: function (e) { var t, n, i; null != this._mediaInfo && this._mediaInfo.isSeekable() && ((t = this._searchSegmentIndexContains(e)) === this._currentSegmentIndex ? null == (n = this._mediaInfo.segments[t]) ? this._pendingSeekTime = e : (i = n.getNearestKeyframe(e), this._remuxer.seek(i.milliseconds), this._ioctl.seek(i.fileposition), this._pendingResolveSeekPoint = i.milliseconds) : null == (i = this._mediaInfo.segments[t]) ? (this._pendingSeekTime = e, this._internalAbort(), this._remuxer.seek(), this._remuxer.insertDiscontinuity(), this._loadSegment(t)) : (i = i.getNearestKeyframe(e), this._internalAbort(), this._remuxer.seek(e), this._remuxer.insertDiscontinuity(), this._demuxer.resetMediaInfo(), this._demuxer.timestampBase = this._mediaDataSource.segments[t].timestampBase, this._loadSegment(t, i.fileposition), this._pendingResolveSeekPoint = i.milliseconds, this._reportSegmentMediaInfo(t)), this._enableStatisticsReporter()) } }, { key: "_searchSegmentIndexContains", value: function (e) { for (var t = this._mediaDataSource.segments, n = t.length - 1, i = 0; i < t.length; i++)if (e < t[i].timestampBase) { n = i - 1; break } return n } }, { key: "_onInitChunkArrival", value: function (e, t) { var n, i = this, r = null; return 0 < t ? (this._demuxer.bindDataSource(this._ioctl), this._demuxer.timestampBase = this._mediaDataSource.segments[this._currentSegmentIndex].timestampBase, this._demuxer.parseChunks(e, t)) : (r = c.default.probe(e)).match ? (this._demuxer = new c.default(r, this._config), this._remuxer || (this._remuxer = new _.default(this._config)), null == (n = this._mediaDataSource).duration || isNaN(n.duration) || (this._demuxer.overridedDuration = n.duration), "boolean" == typeof n.hasAudio && (this._demuxer.overridedHasAudio = n.hasAudio), "boolean" == typeof n.hasVideo && (this._demuxer.overridedHasVideo = n.hasVideo), this._demuxer.timestampBase = n.segments[this._currentSegmentIndex].timestampBase, this._demuxer.onError = this._onDemuxException.bind(this), this._demuxer.onMediaInfo = this._onMediaInfo.bind(this), this._demuxer.onMetaDataArrived = this._onMetaDataArrived.bind(this), this._demuxer.onScriptDataArrived = this._onScriptDataArrived.bind(this), this._demuxer.onVideoResolutionChanged = this._onVideoResolutionChanged.bind(this), this._demuxer.onParsedData = this._onParsedData.bind(this), this._remuxer.bindDataSource(this._demuxer.bindDataSource(this._ioctl)), this._remuxer.onInitSegment = this._onRemuxerInitSegmentArrival.bind(this), this._remuxer.onMediaSegment = this._onRemuxerMediaSegmentArrival.bind(this), this._demuxer.parseChunks(e, t)) : (r = null, d.default.e(this.TAG, "Non-FLV, Unsupported media type!"), a.default.resolve().then(function () { i._internalAbort() }), this._emitter.emit(p.default.DEMUX_ERROR, f.default.FORMAT_UNSUPPORTED, "Non-FLV, Unsupported media type"), 0) } }, { key: "_onMediaInfo", value: function (e) { var t = this; null == this._mediaInfo && (this._mediaInfo = (0, r.default)({}, e), this._mediaInfo.keyframesIndex = null, this._mediaInfo.segments = [], this._mediaInfo.segmentCount = this._mediaDataSource.segments.length, (0, i.default)(this._mediaInfo, h.default.prototype)); e = (0, r.default)({}, e); (0, i.default)(e, h.default.prototype), this._mediaInfo.segments[this._currentSegmentIndex] = e, this._reportSegmentMediaInfo(this._currentSegmentIndex), null != this._pendingSeekTime && a.default.resolve().then(function () { var e = t._pendingSeekTime; t._pendingSeekTime = null, t.seek(e) }) } }, { key: "_onMetaDataArrived", value: function (e) { this._emitter.emit(p.default.METADATA_ARRIVED, e) } }, { key: "_onScriptDataArrived", value: function (e) { this._emitter.emit(p.default.SCRIPTDATA_ARRIVED, e) } }, { key: "_onIOSeeked", value: function () { this._remuxer.insertDiscontinuity() } }, { key: "_onIOComplete", value: function (e) { e += 1; e < this._mediaDataSource.segments.length ? (this._internalAbort(), this._remuxer.flushStashedSamples(), this._loadSegment(e)) : (this._remuxer.flushStashedSamples(), this._emitter.emit(p.default.LOADING_COMPLETE), this._disableStatisticsReporter()) } }, { key: "_onIORedirect", value: function (e) { var t = this._ioctl.extraData; this._mediaDataSource.segments[t].redirectedURL = e } }, { key: "_onIORecoveredEarlyEof", value: function () { this._emitter.emit(p.default.RECOVERED_EARLY_EOF) } }, { key: "_onIOException", value: function (e, t) { d.default.e(this.TAG, "IOException: type = " + e + ", code = " + t.code + ", msg = " + t.msg), this._emitter.emit(p.default.IO_ERROR, e, t), this._disableStatisticsReporter() } }, { key: "_onDemuxException", value: function (e, t) { d.default.e(this.TAG, "DemuxException: type = " + e + ", info = " + t), this._emitter.emit(p.default.DEMUX_ERROR, e, t) } }, { key: "_onRemuxerInitSegmentArrival", value: function (e, t) { this._emitter.emit(p.default.INIT_SEGMENT, e, t) } }, { key: "_onRemuxerMediaSegmentArrival", value: function (e, t) { null == this._pendingSeekTime && (this._emitter.emit(p.default.MEDIA_SEGMENT, e, t), null != this._pendingResolveSeekPoint && "video" === e && (e = t.info.syncPoints, t = this._pendingResolveSeekPoint, this._pendingResolveSeekPoint = null, l.default.safari && 0 < e.length && e[0].originalDts === t && (t = e[0].pts), this._emitter.emit(p.default.RECOMMEND_SEEKPOINT, t))) } }, { key: "_enableStatisticsReporter", value: function () { null == this._statisticsReporter && (this._statisticsReporter = self.setInterval(this._reportStatisticsInfo.bind(this), this._config.statisticsInfoReportInterval)) } }, { key: "_disableStatisticsReporter", value: function () { this._statisticsReporter && (self.clearInterval(this._statisticsReporter), this._statisticsReporter = null) } }, { key: "_reportSegmentMediaInfo", value: function (e) { e = this._mediaInfo.segments[e], e = (0, r.default)({}, e); e.duration = this._mediaInfo.duration, e.segmentCount = this._mediaInfo.segmentCount, delete e.segments, delete e.keyframesIndex, this._emitter.emit(p.default.MEDIA_INFO, e) } }, { key: "_reportStatisticsInfo", value: function () { var e = {}; e.url = this._ioctl.currentURL, e.hasRedirect = this._ioctl.hasRedirect, e.hasRedirect && (e.redirectedURL = this._ioctl.currentRedirectedURL), e.speed = this._ioctl.currentSpeed, e.loaderType = this._ioctl.loaderType, e.currentSegmentIndex = this._currentSegmentIndex, e.totalSegmentCount = this._mediaDataSource.segments.length, e.bps_audio = e.bps_video = 0, this._demuxer && this._demuxer._bpsInfo && (e.bps_video = this._demuxer._bpsInfo.bps_video, e.bps_audio = this._demuxer._bpsInfo.bps_audio), this._emitter.emit(p.default.STATISTICS_INFO, e) } }, { key: "_onVideoResolutionChanged", value: function (e) { this._emitter.emit(p.default.VIDEO_RESOLUTION_CHANGED, e) } }, { key: "_onParsedData", value: function (e, t) { this._emitter.emit(p.default.PARSEDDATA_ARRIVED, e, t) } }]), o = v; function v(t, n) { (0, s.default)(this, v), this.TAG = "TransmuxingController", this._emitter = new u.default, this._config = n, t.segments || (t.segments = [{ duration: t.duration, filesize: t.filesize, url: t.url }]), "boolean" != typeof t.cors && (t.cors = !0), "boolean" != typeof t.withCredentials && (t.withCredentials = !1), this._mediaDataSource = t; var i = this._currentSegmentIndex = 0; this._mediaDataSource.segments.forEach(function (e) { e.timestampBase = i, i += e.duration, e.cors = t.cors, e.withCredentials = t.withCredentials, n.referrerPolicy && (e.referrerPolicy = n.referrerPolicy) }), isNaN(i) || this._mediaDataSource.duration === i || (this._mediaDataSource.duration = i), this._mediaInfo = null, this._demuxer = null, this._remuxer = null, this._ioctl = null, this._pendingSeekTime = null, this._pendingResolveSeekPoint = null, this._statisticsReporter = null } t.default = o }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.MediaSegmentInfoList = t.IDRSampleList = t.MediaSegmentInfo = t.SampleInfo = void 0; var i = r(n(2)), s = r(n(1)); function r(e) { return e && e.__esModule ? e : { default: e } } t.SampleInfo = function e(t, n, i, r, a) { (0, s.default)(this, e), this.dts = t, this.pts = n, this.duration = i, this.originalDts = r, this.isSyncPoint = a, this.fileposition = null }, t.MediaSegmentInfo = ((0, i.default)(a, [{ key: "appendSyncPoint", value: function (e) { e.isSyncPoint = !0, this.syncPoints.push(e) } }]), a); function a() { (0, s.default)(this, a), this.beginDts = 0, this.endDts = 0, this.beginPts = 0, this.endPts = 0, this.originalBeginDts = 0, this.originalEndDts = 0, this.syncPoints = [], this.firstSample = null, this.lastSample = null } t.IDRSampleList = ((0, i.default)(o, [{ key: "clear", value: function () { this._list = [] } }, { key: "appendArray", value: function (e) { var t = this._list; 0 !== e.length && (0 < t.length && e[0].originalDts < t[t.length - 1].originalDts && this.clear(), Array.prototype.push.apply(t, e)) } }, { key: "getLastSyncPointBeforeDts", value: function (e) { if (0 == this._list.length) return null; var t, n = this._list, i = 0, r = n.length - 1, a = 0, s = r; for (e < n[0].dts && (i = 0, a = s + 1); a <= s;) { if ((t = a + Math.floor((s - a) / 2)) === r || e >= n[t].dts && e < n[t + 1].dts) { i = t; break } n[t].dts < e ? a = t + 1 : s = t - 1 } return this._list[i] } }]), o); function o() { (0, s.default)(this, o), this._list = [] } t.MediaSegmentInfoList = ((0, i.default)(u, [{ key: "isEmpty", value: function () { return 0 === this._list.length } }, { key: "clear", value: function () { this._list = [], this._lastAppendLocation = -1 } }, { key: "_searchNearestSegmentBefore", value: function (e) { var t = this._list; if (0 === t.length) return -2; var n, i = t.length - 1, r = 0, a = i, s = 0; if (e < t[0].originalBeginDts) return s = -1; for (; r <= a;) { if ((n = r + Math.floor((a - r) / 2)) === i || e > t[n].lastSample.originalDts && e < t[n + 1].originalBeginDts) { s = n; break } t[n].originalBeginDts < e ? r = n + 1 : a = n - 1 } return s } }, { key: "_searchNearestSegmentAfter", value: function (e) { return this._searchNearestSegmentBefore(e) + 1 } }, { key: "append", value: function (e) { var t = this._list, n = e, i = this._lastAppendLocation, e = 0; -1 !== i && i < t.length && n.originalBeginDts >= t[i].lastSample.originalDts && (i === t.length - 1 || i < t.length - 1 && n.originalBeginDts < t[i + 1].originalBeginDts) ? e = i + 1 : 0 < t.length && (e = this._searchNearestSegmentBefore(n.originalBeginDts) + 1), this._lastAppendLocation = e, this._list.splice(e, 0, n) } }, { key: "getLastSegmentBefore", value: function (e) { e = this._searchNearestSegmentBefore(e); return 0 <= e ? this._list[e] : null } }, { key: "getLastSampleBefore", value: function (e) { e = this.getLastSegmentBefore(e); return null != e ? e.lastSample : null } }, { key: "getLastSyncPointBefore", value: function (e) { for (var t = this._searchNearestSegmentBefore(e), n = this._list[t].syncPoints; 0 === n.length && 0 < t;)n = this._list[--t].syncPoints; return 0 < n.length ? n[n.length - 1] : null } }, { key: "type", get: function () { return this._type } }, { key: "length", get: function () { return this._list.length } }]), u); function u(e) { (0, s.default)(this, u), this._type = e, this._list = [], this._lastAppendLocation = -1 } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); r(n(4)); var o = r(n(64)), i = r(n(227)), u = r(n(229)), d = r(n(40)); function r(e) { return e && e.__esModule ? e : { default: e } } t.default = function (r) { var a = null, s = function (e, t) { r.postMessage({ msg: "logcat_callback", data: { type: e, logcat: t } }) }.bind(this); i.default.install(), r.addEventListener("message", function (e) { switch (e.data.cmd) { case "init": (a = new u.default(e.data.param[0], e.data.param[1])).on(d.default.IO_ERROR, function (e, t) { r.postMessage({ msg: d.default.IO_ERROR, data: { type: e, info: t } }) }.bind(this)), a.on(d.default.DEMUX_ERROR, function (e, t) { r.postMessage({ msg: d.default.DEMUX_ERROR, data: { type: e, info: t } }) }.bind(this)), a.on(d.default.INIT_SEGMENT, function (e, t) { e = { msg: d.default.INIT_SEGMENT, data: { type: e, data: t } }; r.postMessage(e, [t.data]) }.bind(this)), a.on(d.default.MEDIA_SEGMENT, function (e, t) { e = { msg: d.default.MEDIA_SEGMENT, data: { type: e, data: t } }; r.postMessage(e, [t.data]) }.bind(this)), a.on(d.default.LOADING_COMPLETE, function () { var e = { msg: d.default.LOADING_COMPLETE }; r.postMessage(e) }.bind(this)), a.on(d.default.RECOVERED_EARLY_EOF, function () { var e = { msg: d.default.RECOVERED_EARLY_EOF }; r.postMessage(e) }.bind(this)), a.on(d.default.MEDIA_INFO, function (e) { e = { msg: d.default.MEDIA_INFO, data: e }; r.postMessage(e) }.bind(this)), a.on(d.default.METADATA_ARRIVED, function (e) { e = { msg: d.default.METADATA_ARRIVED, data: e }; r.postMessage(e) }.bind(this)), a.on(d.default.SCRIPTDATA_ARRIVED, function (e) { e = { msg: d.default.SCRIPTDATA_ARRIVED, data: e }; r.postMessage(e) }.bind(this)), a.on(d.default.STATISTICS_INFO, function (e) { e = { msg: d.default.STATISTICS_INFO, data: e }; r.postMessage(e) }.bind(this)), a.on(d.default.RECOMMEND_SEEKPOINT, function (e) { r.postMessage({ msg: d.default.RECOMMEND_SEEKPOINT, data: e }) }.bind(this)), a.on(d.default.VIDEO_RESOLUTION_CHANGED, function (e) { e = { msg: d.default.VIDEO_RESOLUTION_CHANGED, data: e }; r.postMessage(e) }.bind(this)), a.on(d.default.PARSEDDATA_ARRIVED, function (e, t) { t = { msg: d.default.PARSEDDATA_ARRIVED, data: { databuf: e, dataType: t } }; r.postMessage(t) }.bind(this)); break; case "destroy": a && (a.destroy(), a = null), r.postMessage({ msg: "destroyed" }); break; case "start": a.start(); break; case "stop": a.stop(); break; case "seek": a.seek(e.data.param); break; case "pause": a.pause(); break; case "resume": a.resume(); break; case "logging_config": var t = e.data.param; o.default.applyConfig(t), !0 === t.enableCallback ? o.default.addLogListener(s) : o.default.removeLogListener(s); break; case "feed": var n = e.data.feedData, i = n.data, t = n.byteStart, n = n.receivedLength; a._ioctl._onLoaderChunkArrival(i, t, n); break; case "set_record_flag": a._demuxer.recordFlag = e.data.value; break; case "cleancache": a._ioctl._flushStashBuffer(!0) } }) } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); t.default = { ERROR: "error", SOURCE_OPEN: "source_open", UPDATE_END: "update_end", BUFFER_FULL: "buffer_full", SOURCE_END: "source_end", SOURCE_CLOSE: "source_close", SOURCE_ADD_ERROR: "source_add_error" } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = o(n(1)), r = o(n(2)), a = o(n(10)), s = function (e) { { if (e && e.__esModule) return e; var t = {}; if (null != e) for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); return t.default = e, t } }(n(61)); function o(e) { return e && e.__esModule ? e : { default: e } } var u = "stashbuffer_changed", d = "fileWrite_end"; window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; (0, r.default)(l, [{ key: "write", value: function (e) { this._stash(e) } }, { key: "download", value: function () { this._fileEntry && this._fileWriter && (1 !== this._fileWriter.readyState ? this._fileEntry.file(function (e) { this._downloadFile(e) }.bind(this)) : this._emitter.once(d, this.download.apply(this))) } }, { key: "_quota", value: function () { window.webkitStorageInfo.requestQuota(window.TEMPORARY, this._storageQuota, this._quotaSuccess.bind(this), this._errorHandlerQuta) } }, { key: "_errorHandlerQuota", value: function (e) { console.error(s.ERR_PLAY_FILESYS_QUOTA, e) } }, { key: "_quotaSuccess", value: function (e) { window.requestFileSystem(window.TEMPORARY, e, this._initFs.bind(this), this._errorHandlerRequestFileSystem) } }, { key: "_errorHandlerRequestFileSystem", value: function (e) { console.error(s.ERR_PLAY_FILESYS_REQUEST, e) } }, { key: "_initFs", value: function (e) { this._fileSystem = e, this._fileSystem.root.getFile(this._fileName, { create: !0, exclusive: !0 }, this._getFileSuccess.bind(this), this._errorHandlerGetFile) } }, { key: "_errorHandlerGetFile", value: function (e) { console.error(s.ERR_PLAY_FILESYS_GETFILE, e) } }, { key: "_getFileSuccess", value: function (e) { e.isFile && (e.createWriter(this._initFileWriter.bind(this), this._errorHandlerCreateWriter), this._fileEntry = e) } }, { key: "_errorHandlerCreateWriter", value: function (e) { console.error(s.ERR_PLAY_FILESYS_CREATE, e) } }, { key: "_initFileWriter", value: function (e) { e.onwriteend = this._fileWriteEnd.bind(this), e.onerror = this._fileWriteError.bind(this), this._fileWriter = e, this._isStart = !0, this._emitter.on(u, this._stashBufferChanged.bind(this)) } }, { key: "_stashBufferChanged", value: function () { var e; (0 === this._fileWriter.readyState || 2 === this._fileWriter.readyState) && 0 < this._stashUsed && (this._fileWriter.seek(this._fileWriter.length), e = this._stashBuffer.slice(0, this._stashUsed), this._fileWriter.write(new Blob([e])), this._bufferSize = this._defaultBufferSize, this._stashBuffer = new Uint8Array(this._bufferSize), this._stashUsed = 0) } }, { key: "_fileWriteEnd", value: function (e) { this._emitter.listeners(d) && this._emitter.emit(d) } }, { key: "_fileWriteError", value: function (e) { console.error(s.ERR_PLAY_FILESYS_WRITE, e) } }, { key: "_errorHandler", value: function (e) { console.error(e) } }, { key: "_stash", value: function (e) { this._stashUsed + e.byteLength > this._bufferSize && this._expandBuffer(this._stashUsed + e.byteLength), this._stashBuffer.set(new Uint8Array(e), this._stashUsed), this._stashUsed += e.byteLength, this._emitter.listeners(u) && this._emitter.emit(u) } }, { key: "_expandBuffer", value: function (e) { this._bufferSize = e; e = this._stashBuffer.slice(0, this._stashUsed); this._stashBuffer = new Uint8Array(this._bufferSize), this._stashBuffer.set(e, 0) } }, { key: "_downloadFile", value: function (e) { var t = e; e instanceof Blob || e instanceof File || (t = new Blob([e])); e = window.URL.createObjectURL(t), t = window.document.createElement("a"); t.href = e, t.download = this._fileName; e = document.createEvent("MouseEvents"); e.initEvent("click", !0, !0), t.dispatchEvent(e) } }, { key: "onReady", set: function (e) { this._fileWriterReady = e } }]), r = l; function l(e, t) { (0, i.default)(this, l), this._fileName = e, this._storageQuota = 268435456, this._fileSystem = null, this._fileEntry = null, this._fileWriter = null, this._isStart = !1, this._emitter = new a.default, this._defaultBufferSize = 134217728, this._bufferSize = this._defaultBufferSize, this._stashBuffer = new Uint8Array(this._bufferSize), this._stashUsed = 0, this._stash(t), this._quota() } t.default = r }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.ErrorDetails = t.ErrorTypes = void 0; var i, r = n(15), a = n(66), n = (i = a) && i.__esModule ? i : { default: i }; t.ErrorTypes = { NETWORK_ERROR: "NetworkError", MEDIA_ERROR: "MediaError", OTHER_ERROR: "OtherError" }, t.ErrorDetails = { NETWORK_EXCEPTION: r.LoaderErrors.EXCEPTION, NETWORK_STATUS_CODE_INVALID: r.LoaderErrors.HTTP_STATUS_CODE_INVALID, NETWORK_TIMEOUT: r.LoaderErrors.CONNECTING_TIMEOUT, NETWORK_UNRECOVERABLE_EARLY_EOF: r.LoaderErrors.UNRECOVERABLE_EARLY_EOF, MEDIA_MSE_ERROR: "MediaMSEError", MEDIA_FORMAT_ERROR: n.default.FORMAT_ERROR, MEDIA_FORMAT_UNSUPPORTED: n.default.FORMAT_UNSUPPORTED, MEDIA_CODEC_UNSUPPORTED: n.default.CODEC_UNSUPPORTED } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.JSPlugin = void 0; var f = r(n(11)), m = r(n(85)), p = r(n(53)), y = r(n(54)), a = r(n(1)), i = r(n(2)), v = r(n(55)), g = n(86), s = n(262), u = n(285), d = n(286), o = n(287), l = n(288), h = n(289), c = r(n(290)), _ = r(n(0)), M = r(n(10)), L = function (e) { { if (e && e.__esModule) return e; var t = {}; if (null != e) for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); return t.default = e, t } }(n(61)), S = r(n(334)), k = r(n(91)), b = r(n(39)), w = n(335); function r(e) { return e && e.__esModule ? e : { default: e } } var D = 4194304, T = !1, E = null, Y = []; window.JSPlayM4_AdditionDataCBFun = function (t, e) { var n, i, r, a = Y.find(function (e) { return e.port === t }).belongWindowpoint, s = Y.find(function (e) { return e.port === t }).belongWindowId, o = a.aWndList[s]; o && o.AdditionDataCB && (n = E.HEAP32[e >> 2], i = E.HEAP32[e + 4 >> 2], r = E.HEAP32[e + 8 >> 2], a = E.HEAP32[e + 12 >> 2], s = E.HEAP32[e + 16 >> 2], (e = new Uint8Array(a)).set(E.HEAPU8.subarray(s, s + a)), o.AdditionDataCB(n, i, r, e)) }; var P, C, i = ((0, i.default)(A, [{ key: "_getOSDTime", value: function (e, t, n, i, r, a, s) { var o = void 0, o = "ios" === this._browserInfo._system || g.oTool.isEdge() ? t + "/" + n + "/" + i + " " + r + ":" + a + ":" + s : t + "-" + n + "-" + i + " " + r + ":" + a + ":" + s; this.aWndList[e].iCurentOSDTime = new Date(o).getTime() } }, { key: "_getWndIndexFromPort", value: function (e) { for (var t = this.aWndList.length, n = -1, i = 0; i < t; i++)if (this.aWndList[i].oPlayCtrl && e === this.aWndList[i].oPlayCtrl.iPort) { n = i; break } return n } }, { key: "_listenBrowserVisibility", value: function () { document.addEventListener("visibilitychange", this.e.visibilitychange) } }, { key: "_createWindows", value: function () { var i = this, e = document.getElementById(this.options.szId), t = e.clientWidth, n = e.clientHeight; t && n || ((0, v.default)(e).width(this.options.iWidth), (0, v.default)(e).height(this.options.iHeight)), 25e4 < t * n && (this.bcloseAntialias = !0); var n = this.options.oStyle, r = n.borderWidth, a = n.border, s = n.borderSelect, o = n.background, u = this.options.iCurrentSplit; e.innerHTML = ""; var d = document.createElement("div"); d.className = "parent-wnd", d.style = "width: 100%; height: 100%; position: relative; overflow: hidden;", e.appendChild(d); for (var n = d.clientWidth, e = d.clientHeight, l = Math.floor((n - 1) / u), h = Math.floor((e - 1) / u), e = parseFloat((window.screen.width / window.innerWidth).toFixed(2)), c = Math.floor(l - r / e * 2), _ = Math.floor(h - r / e * 2), f = 0; f < this.iMaxWndNum; f++)!function (e) { var t = document.createElement("div"); t.className = "sub-wnd", t.id = "player-container-" + e; var n = { "box-sizing": "border-box", overflow: "hidden", width: l + "px", height: h + "px", border: r + "px solid " + (0 === e ? s : a), "background-color": o, position: "relative", float: "left", display: e < Math.pow(u, 2) ? "inline-block" : "none" }; (0, m.default)(n).forEach(function (e) { t.style.setProperty(e, n[e]) }), t.innerHTML = '\n                <video autoplay muted id="' + i.options.szId + "_playVideo" + e + '" class="play-window" wid="' + e + '" \n                    width="' + c + '" height="' + _ + '" style="object-fit: fill;">\n                </video>\n                <canvas id="' + i.options.szId + "_playCanvas" + e + '" class="play-window" wid="' + e + '" \n                    width="' + (i.bcloseAntialias && 1 === u ? c : 2 * c) + '" height="' + (i.bcloseAntialias && 1 === u ? _ : 2 * _) + '"\n                    style="' + (i.bcloseAntialias && 1 === u ? "transform-origin: 0 0;" : "transform: scale(0.5); transform-origin: 0 0;") + '">\n                </canvas>\n                <canvas id="' + i.options.szId + "_canvas_draw" + e + '" class="draw-window" wid="' + e + '" \n                    width="' + c + '" height="' + _ + '" style="position: absolute; top: 0; left: 0;">\n                </canvas>\n            ', d.appendChild(t) }(f); this.oJSPlugin.find("video.play-window").hide() } }, { key: "_updateWnd", value: function () { var e = this.oJSPlugin.find(".parent-wnd").get(0), t = e.clientWidth, n = e.clientHeight; t && n && (this.options.iWidth = t, this.options.iHeight = n); for (var i = this.options.oStyle.borderWidth, r = this.options.iCurrentSplit, a = Math.floor((t - 1) / r), t = Math.floor((n - 1) / r), n = parseFloat((window.screen.width / window.innerWidth).toFixed(2)), s = Math.floor(a - i / n * 2), o = Math.floor(t - i / n * 2), u = 0; u < this.iMaxWndNum; u++) { var d = (0, v.default)(e).find(".sub-wnd").get(u); (0, v.default)(d).width(s).height(o).css("display", u < Math.pow(r, 2) ? "inline-block" : "none").css("border", "1px solid " + this.options.oStyle.border), u === this.currentWindowIndex && (0, v.default)(d).css("border", "1px solid " + this.options.oStyle.borderSelect), (0, v.default)(d).find("video.play-window").attr("width", s).attr("height", o); var l = this.bcloseAntialias && 1 === r ? s : 2 * s, h = this.bcloseAntialias && 1 === r ? o : 2 * o, c = this.bcloseAntialias && 1 === r ? "scale(1)" : "scale(0.5)"; (0, v.default)(d).find("canvas.play-window").attr("width", l).attr("height", h).css("transform", c); c = this.aWndList[u]; c.bPlay && 0 === c.iMode && c.oPlayCtrl && c.oPlayCtrl.PlayM4_SetCanvasSize && c.oPlayCtrl.PlayM4_SetCanvasSize(l, h), (0, v.default)(d).find("canvas.draw-window").attr("width", s).attr("height", o), this.oDrawCanvas.resizeCanvas() } } }, { key: "_dealWndSelect", value: function (t) { var n = this; this.iCurrentWndIndex = t, (this.aWndList[t].bEZoom || this.aWndList[t].b3DZoom) && (this.oJSPlugin.find(".draw-window").unbind(), this.oDrawCanvas.setDrawStatus(!1), this.oDrawCanvas = null, this.oDrawCanvas = new h.ESCanvas(this.options.szId + "_canvas_draw" + t), this.oDrawCanvas.setShapeType("Rect"), this.oDrawCanvas.setDrawStyle("#ff0000", "", 0), this.aWndList[t].bEZoom ? this.oDrawCanvas.setDrawStatus(!0, function (e) { e.startPos && e.endPos && (e.startPos[0] > e.endPos[0] ? n.aWndList[t].oPlayCtrl.PlayM4_SetDisplayRegion && n.aWndList[t].oPlayCtrl.PlayM4_SetDisplayRegion(null, !1) : n.aWndList[t].oPlayCtrl.PlayM4_SetDisplayRegion && n.aWndList[t].oPlayCtrl.PlayM4_SetDisplayRegion({ left: e.startPos[0], top: e.startPos[1], right: e.endPos[0], bottom: e.endPos[1] }, !0)) }) : this.aWndList[t].b3DZoom && this.oDrawCanvas.setDrawStatus(!0, function (e) { n.fDrawCallback(e) })) } }, { key: "_initCallbackEvent", value: function () { this.oEventCallback = { loadEventHandler: function () { window.loadEventHandler && window.loadEventHandler() }, windowEventSelect: function (e) { window.getSelectWndInfo && window.getSelectWndInfo(e) }, pluginErrorHandler: function (e, t, n) { window.pluginEventHandler && window.pluginEventHandler(e, t, n) }, windowEventOver: function (e) { window.windowEventOver && window.windowEventOver(e) }, windowEventOut: function (e) { window.windowEventOut && window.windowEventOut(e) }, windowEventUp: function (e) { window.windowEventUp && window.windowEventUp(e) }, windowFullCcreenChange: function (e) { window.windowFullCcreenChange && window.windowFullCcreenChange(e) }, firstFrameDisplay: function (e, t, n) { window.firstFrameDisplay && window.firstFrameDisplay(e, t, n) }, performanceLack: function () { window.performanceLack && window.performanceLack() }, StreamEnd: function (e) { window.StreamEnd && window.StreamEnd(e) }, InterruptStream: function (e, t) { window.InterruptStream && window.InterruptStream(e, t) }, mouseEvent: function () { } } } }, { key: "_initEvent", value: function () { var a = this; this._initCallbackEvent(), this.oJSPlugin.find(".parent-wnd").eq(0).children().each(function (i) { var r = !1; (0, v.default)(this).unbind().bind("click", function (e) { var t, n; 0 === e.button && (t = (n = a.options.oStyle).borderWidth, e = n.border, n = n.borderSelect, a.oJSPlugin.find(".parent-wnd").eq(0).children().css("border", t + "px solid " + e), a.oJSPlugin.find(".parent-wnd").eq(0).children().eq(i).css("border", t + "px solid " + n), a.oEventCallback.windowEventSelect(parseInt(a.oJSPlugin.find(".parent-wnd").eq(0).children().eq(i).find(".play-window").eq(0).attr("wid"), 10)), a._dealWndSelect(parseInt(a.oJSPlugin.find(".parent-wnd").eq(0).children().eq(i).find(".play-window").eq(0).attr("wid"), 10))) }), (0, v.default)(this).bind("mouseover", function (e) { a.oEventCallback.windowEventOver(i) }), (0, v.default)(this).bind("mouseout", function (e) { a.oEventCallback.windowEventOut(i) }), (0, v.default)(this).bind("mousemove", function (e) { var t = e.offsetX / a.oDrawCanvas.m_iCanvasWidth, e = e.offsetY / a.oDrawCanvas.m_iCanvasHeight; r ? a.oEventCallback.mouseEvent(7, t, e) : a.oEventCallback.mouseEvent(6, t, e) }), (0, v.default)(this).bind("mousewheel", function (e) { var t = e.offsetX / a.oDrawCanvas.m_iCanvasWidth, e = e.offsetY / a.oDrawCanvas.m_iCanvasHeight; a.oEventCallback.mouseEvent(8, t, e) }), (0, v.default)(this).bind("mouseup", function (e) { r = !1, a.oEventCallback.windowEventUp(i); var t = e.offsetX / a.oDrawCanvas.m_iCanvasWidth, n = e.offsetY / a.oDrawCanvas.m_iCanvasHeight; 2 === e.button ? a.oEventCallback.mouseEvent(5, t, n) : 0 === e.button && a.oEventCallback.mouseEvent(3, t, n) }), (0, v.default)(this).bind("dblclick", function (e) { var t; a.options.bSupporDoubleClickFull && ("desktop" === a._browserInfo.platform ? a.JS_FullScreenSingle(i) : a.fullscreenElement ? a._triggerFullscreen(a.fullscreenElement) : a.JS_FullScreenSingle(a.currentWindowIndex), t = e.offsetX / a.oDrawCanvas.m_iCanvasWidth, e = e.offsetX / a.oDrawCanvas.m_iCanvasHeight, a.oEventCallback.mouseEvent(2, t, e)) }) }), window.addEventListener("resize", this.e.resize), document.addEventListener("fullscreenchange", this.e.fullscreenchange) } }, { key: "_eventHandlerResize", value: function () { if (!(document.fullscreen || document.webkitIsFullScreen || document.mozFullScreen || !1) && this.fullscreenElement) { var e = this.fullscreenElement; if (!(document.fullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled || e.webkitSupportsFullscreen || !1)) return this._triggerFullscreen(e); this.fullscreenElement = null, this.oEventCallback.windowFullCcreenChange(!1) } this.JS_Resize() } }, { key: "_eventHandlerFullscreenchange", value: function () { if (!(document.fullscreen || document.webkitIsFullScreen || document.mozFullScreen || !1) && this.fullscreenElement) { var e = this.fullscreenElement; if (!(document.fullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled || e.webkitSupportsFullscreen || !1)) return this._triggerFullscreen(e); this.fullscreenElement = null, this.oEventCallback.windowFullCcreenChange(!1) } this.JS_Resize() } }, { key: "_eventHandlerVisibilitychange", value: function () { this.isBrowserVisible = !document.hidden } }, { key: "removeAllListeners", value: function () { window.removeEventListener("resize", this.e.resize), document.removeEventListener("fullscreenchange", this.e.fullscreenchange), document.removeEventListener("visibilitychange", this.e.visibilitychange) } }, { key: "_debounse", value: function (e, t) { var n = this; this._debounseTimer && clearTimeout(this._debounseTimer), this._debounseTimer = setTimeout(function () { e.apply(n), clearTimeout(n._debounseTimer), n._debounseTimer = null }, t) } }, { key: "_initPlayCtrlOnlyAudio", value: function (e, t) { t = new Uint8Array(t); t[10] = 0, t[11] = 0, this.aWndList[e].oPlayCtrl.PlayM4_OpenStream(t, 40, 2097152), "" !== this.aWndList[e].szSecretKey && (this.aWndList[e].oPlayCtrl.PlayM4_SetSecretKey(1, this.aWndList[e].szSecretKey, 128), this.aWndList[e].szSecretKey = ""), this.aWndList[e].oPlayCtrl.PlayM4_SetStreamOpenMode(0), this.aWndList[e].oPlayCtrl.PlayM4_Play(null) } }, { key: "flvtohikHead", value: function (e) { var t = new Uint8Array(40); t[0] = 73, t[1] = 77, t[2] = 75, t[3] = 72, t[4] = 3, t[5] = 1, t[6] = 0, t[7] = 0, t[8] = 10, t[9] = 0, t[10] = 0, t[11] = 1, t[12] = 1, t[13] = 32, t[14] = 1, t[15] = 12; e = this.aWndList[e]._videoInfo.audioSampleRate.toString(16); return t[16] = parseInt(e[2] + e[3], 16), t[17] = parseInt(e[0] + e[1], 16), t } }, { key: "_changeHVAGHead", value: function (e) { var t = new Uint8Array(40); return t[0] = 73, t[1] = 77, t[2] = 75, t[3] = 72, t[4] = 3, t[5] = 1, t[6] = 0, t[7] = 0, 192 === e[8] && 0 === e[9] ? t[8] = 4 : t[8] = 2, t[9] = 0, 100 === e[24] && 97 === e[25] && 104 === e[26] && 117 === e[27] && 97 === e[28] && (t[8] = 1, t[9] = 128), 0 !== e[11] && 1 !== e[11] || 192 !== e[10] ? 2 === e[11] && 192 === e[10] ? t[10] = 3 : 3 === e[11] && 192 === e[10] ? t[10] = 5 : 4 === e[11] && 192 === e[10] ? t[10] = 4 : 5 === e[11] && 192 === e[10] ? t[10] = 2 : 6 === e[11] && 192 === e[10] ? t[10] = 6 : t[10] = 1 : t[10] = 1, t[11] = 0, 1 === e[13] && 192 === e[12] ? (t[12] = 16, t[13] = 113) : 2 === e[13] && 192 === e[12] ? (t[12] = 17, t[13] = 113) : 3 === e[13] && 192 === e[12] ? (t[12] = 33, t[13] = 114) : 4 === e[13] && 192 === e[12] ? (t[12] = 96, t[13] = 114) : 5 === e[13] && 192 === e[12] ? (t[12] = 1, t[13] = 32) : 6 === e[13] && 192 === e[12] ? (t[12] = 0, t[13] = 32) : 7 === e[13] && 192 === e[12] ? (t[12] = 0, t[13] = 112) : (t[12] = 16, t[13] = 113), t } }, { key: "_parseHead", value: function (e, t) { 1 === t[8] && 0 === t[9] ? this.aWndList[e]._videoInfo.systemFormt = "HIK" : 2 === t[8] && 0 === t[9] ? this.aWndList[e]._videoInfo.systemFormt = "PS" : 4 === t[8] && 0 === t[9] ? this.aWndList[e]._videoInfo.systemFormt = "RTP" : 8 === t[8] && 0 === t[9] ? this.aWndList[e]._videoInfo.systemFormt = "GB" : 16 === t[8] && 0 === t[9] ? this.aWndList[e]._videoInfo.systemFormt = "RAW" : 1 === t[8] && 128 === t[9] ? this.aWndList[e]._videoInfo.systemFormt = "DAHUA" : this.aWndList[e]._videoInfo.systemFormt = "unkonw", 1 === t[11] && 0 === t[10] || 0 === t[11] && 1 === t[10] ? (this.aWndList[e]._videoInfo.VideType = "H264", 129 === t[24] && (this.aWndList[e]._videoInfo.VideType = "Smart264")) : 0 === t[11] && 5 === t[10] ? (this.aWndList[e]._videoInfo.VideType = "H265", 129 === t[24] && (this.aWndList[e]._videoInfo.VideType = "Smart265")) : 0 === t[11] && 6 === t[10] ? this.aWndList[e]._videoInfo.VideType = "SAC" : 0 === t[11] && 2 === t[10] ? this.aWndList[e]._videoInfo.VideType = "MPEG2" : 0 === t[11] && 3 === t[10] ? this.aWndList[e]._videoInfo.VideType = "MPEG4" : this.aWndList[e]._videoInfo.VideType = "unkonw", 113 === t[13] && 16 === t[12] ? this.aWndList[e]._videoInfo.audioType = "G711_U" : 113 === t[13] && 17 === t[12] ? this.aWndList[e]._videoInfo.audioType = "G711_A" : 114 === t[13] && 33 === t[12] ? this.aWndList[e]._videoInfo.audioType = "G7221" : 114 === t[13] && 96 === t[12] ? this.aWndList[e]._videoInfo.audioType = "G726_32" : 114 === t[13] && 98 === t[12] ? this.aWndList[e]._videoInfo.audioType = "G726_16" : 114 === t[13] && 144 === t[12] ? this.aWndList[e]._videoInfo.audioType = "G729" : 32 === t[13] && 1 === t[12] ? this.aWndList[e]._videoInfo.audioType = "AAC" : 16 === t[13] && 0 === t[12] ? this.aWndList[e]._videoInfo.audioType = "ADPCM" : 32 === t[13] && 0 === t[12] ? this.aWndList[e]._videoInfo.audioType = "MP2L2" : 0 === t[13] && 0 === t[12] ? this.aWndList[e]._videoInfo.audioType = "without" : this.aWndList[e]._videoInfo.audioType = "unknow" } }, { key: "_stripRtpHead", value: function (e) { var t, n = new Uint8Array(e), i = 32 & n[0], r = 16 & n[0], a = 15 & n[0], s = 0, e = 0; return 32 == i && (s = n[n.byteLength - 1]), t = 4 * parseInt(a, 10), 16 == r && (e = 4 * new window.DataView(n.buffer, 12 + t, 4).getUint16(2) + 4), n.length <= 12 + t + e ? -1 : n.slice(12 + t + e, n.length - s) } }, { key: "_openStream", value: function (i, a, s, o, u) { var d = this, l = this.aWndList[s], e = o; return e && -1 !== e.search("Z") && (e = e.replace("Z", "+08:00")), this.aWndList[s].iCurentOSDTime = this.aWndList[s].iGlobalBaseTime = new Date(e).getTime(), new f.default(function (t, r) { var n, e = o && u; l.szPlayType = e ? "playback" : "realplay", 3 === a.PlayBackMode && e && (l.szPlayType = "reverse"), l._emiter.on("firstframeload", function () { l.asyncLock = !1, t() }, { once: !0 }), d.oStreamClient.openStream(i, a, (n = (0, y.default)(p.default.mark(function e(t) { var n, i; return p.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: if (!t.bHead) { e.next = 49; break } if (l.oSdpInfo = t, n = l.aHead = new Uint8Array(t.buf), d._log.I("headData arrive", n), l.isGB = 0 === n[7] && 196 === n[8] && 100 === n[24] && 98 === n[25] && 51 === n[26] && 51 === n[27], 72 === n[0] && 86 === n[1] && 65 === n[2] && 71 === n[3] ? (l.isHVAGHead = !0, l.aHVAGHead = new Uint8Array(t.buf), l.aHead = d._changeHVAGHead(t.buf)) : l.isHVAGHead = !1, l.isHVAGHead && 1 === l.aHead[8] && 128 === l.aHead[9] && "1" === d._decoderVersion) return d._log.E(L.ERR_STREAM_VIDEO_CODING + ":  jsdecoder1.0 unsupport dahua video"), l.asyncLock = !1, d._closeStreamAndDestory(s), d.oEventCallback.pluginErrorHandler(s, L.ERR_STREAM_VIDEO_CODING), e.abrupt("return", r(L.ERR_STREAM_VIDEO_CODING)); e.next = 12; break; case 12: if (d.aWndList[s]._bpsCalculator || (d.aWndList[s]._bpsCalculator = window.setInterval(d._calculateRealtimeBitrate.bind(d), 1e3, s)), !(70 === n[0] && 76 === n[1] && 86 === n[2])) { e.next = 20; break } l.iMode = 1, l.isFlv = !0, d._createFlvPlayer(s), e.next = 47; break; case 20: if (!(5 === l.aHead[10] && 0 === l.aHead[11] || 1 === l.aHead[10] && 0 === l.aHead[11] || 0 === l.aHead[10] && 1 === l.aHead[11])) { e.next = 23; break } e.next = 25; break; case 23: return d._log.E(L.ERR_STREAM_JSDECODER_CODEC_UNSUPPORTED + ":  the stream not h264 h265 smart,unsupport .", l.aHead[10], l.aHead[11]), e.abrupt("return", r(L.ERR_STREAM_JSDECODER_CODEC_UNSUPPORTED)); case 25: if (d._parseHead(s, l.aHead), i = 1, d.aWndList[s].asyncLock && "2" === d._decoderVersion) return d._log.E(L.ERR_STREAM_LOCK_ERROR + ":  Multiple call js_play API in a short time, please wait lasttime call over."), e.abrupt("return", r(L.ERR_STREAM_LOCK_ERROR)); e.next = 30; break; case 30: if (d.aWndList[s].asyncLock = !0, l.oPlayCtrl) { e.next = 45; break } if (E || "2" !== d._decoderVersion) { e.next = 42; break } return e.prev = 33, e.next = 36, d._decoder2Loaded(); case 36: i = e.sent, e.next = 42; break; case 39: e.prev = 39, e.t0 = e.catch(33), 1 === e.t0 || E || (l.asyncLock = !1, d.oEventCallback.pluginErrorHandler(s, L.ERR_COM_LOAD_JSDECODER_ERROR), d._closeStreamAndDestory(s), d._log.E(L.ERR_COM_LOAD_JSDECODER_ERROR + ":  load jsdecoder faild."), r(L.ERR_COM_LOAD_JSDECODER_ERROR)); case 42: d._createPlayCtrl(s), e.next = 47; break; case 45: 1 !== (i = d._playCtrlLoad(s)) && (l.asyncLock = !1, d._closeStreamAndDestory(s), d.oEventCallback.pluginErrorHandler(s, i), d._log.E(i + ":  jsdecoder open stream faild."), r(i)); case 47: e.next = 50; break; case 49: t.cmd && "end" === t.cmd ? (console.log("[iWndNum-" + s + "] recv stream end"), l.asyncLock = !1, d._streamEndStop(s).then(function () { d.oEventCallback.StreamEnd(s) }, function (e) { console.error("[iWndNum-" + s + "] recv stream end stop error:", e), d.oEventCallback.StreamEnd(s) })) : ("1" === d._decoderVersion || l.bPlay) && l.bSeekOk && d._feedData(s, t); case 50: case "end": return e.stop() } }, e, d, [[33, 39]]) })), function (e) { return n.apply(this, arguments) }), function (e) { if (l.asyncLock = !1, d.aWndList[s].bPlay) 1e3 === e.code || 1005 === e.code ? (d._log.E(L.ERR_STREAM_CONNECT_CLOSED + ":  送流异常,被后端关闭连接", i), d.oEventCallback.pluginErrorHandler(s, L.ERR_STREAM_CONNECT_CLOSED, e)) : (d._log.E(L.ERR_STREAM_INTERRUPT + ":  流中断", i), d.oEventCallback.pluginErrorHandler(s, L.ERR_STREAM_INTERRUPT, e)), l.szStreamUUID = "", d._closeStreamAndDestory(s); else { if (1e3 === e.code || 1005 === e.code) return t(); d.aWndList[s].szStreamUUID ? (d.oEventCallback.pluginErrorHandler(s, L.ERR_COM_RECV_STREAM_TIMEOUT, e), l.szStreamUUID = "", r(L.ERR_COM_RECV_STREAM_TIMEOUT)) : 1006 === e.code && -1 !== i.search("wss://") ? (d.oEventCallback.pluginErrorHandler(s, L.ERR_STREAM_WSS_ERROR, e), r(L.ERR_STREAM_WSS_ERROR)) : (d.oEventCallback.pluginErrorHandler(s, L.ERR_STREAM_WS_ERROR, e), r(L.ERR_STREAM_WS_ERROR)), d.oStreamClient.closeTimer(l.szStreamUUID) } }).then(function (e) { d.aWndList[s].szStreamUUID && (d.oStreamClient.stop(d.aWndList[s].szStreamUUID), d.aWndList[s].szStreamUUID = ""), d.aWndList[s].szStreamUUID = e, d.oStreamClient && d.oStreamClient.startPlay(e, o, u, l.szPlayType).then(function () { }, function (e) { l.szStreamUUID = "", l.asyncLock = !1; var t = e; "string" != typeof e && (t = "0x0" + e.errorCode.toString(16)), l.bPlay || (d._log.E(t + ":  取流失败,详情根据错误码在运管后台进行查询."), d.oEventCallback.pluginErrorHandler(s, t, e), r(t)), r(L.ERR_STREAM_OPEN_FAILED), d.oStreamClient.closeTimer(l.szStreamUUID) }) }).catch(function (e) { l.asyncLock = !1, d.oEventCallback.pluginErrorHandler(s, L.ERR_STREAM_WS_TIMEOUT, e), d._closeStreamAndDestory(s), r(L.ERR_STREAM_WS_TIMEOUT) }) }) } }, { key: "JS_GetPluginVersion", value: function () { var t = this; return new f.default(function (e) { e(t.szPluginVersion) }) } }, { key: "JS_SetWindowControlCallback", value: function (t) { var n = this; return new f.default(function (e) { n.oEventCallback = v.default.extend(n.oEventCallback, t), e() }) } }, { key: "JS_SetSecretKey", value: function (n, i) { var r = this; return new f.default(function (e, t) { !(n < 0) && "" !== i && void 0 !== i ? (r.aWndList[n].szSecretKey = i, e()) : t() }) } }, { key: "JS_ArrangeWindow", value: function (i) { var r = this; return new f.default(function (e, t) { if (i < 1 || "number" != typeof i) return t(L.ERR_COM_PARAM); if (i < r.options.iMaxSplit ? r.options.iCurrentSplit = i : r.options.iCurrentSplit = r.options.iMaxSplit, g.oTool.isFirefox()) for (var n = 0; n < r.options.iMaxSplit * r.options.iMaxSplit; n++)r.aWndList[n].oPlayCtrl && r.aWndList[n].oPlayCtrl.PlayM4_ClearCanvas && r.aWndList[n].oPlayCtrl.PlayM4_ClearCanvas(); r.iCurrentWndIndex = 0, r.oEventCallback.windowEventSelect(0), r._updateWnd(), r._dealWndSelect(0), e() }) } }, { key: "JS_Play", value: function (r, a) { var s = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : -1, o = this, u = arguments[3], d = arguments[4]; return (s < 0 || s > this.iMaxWndNum - 1 || "number" != typeof s) && (s = this.iCurrentWndIndex), new f.default(function (e, t) { if ("string" != typeof r || -1 === r.search("wss://") && -1 === r.search("ws://")) return t(L.ERR_COM_URL_ERROR); var n = 0; a.mode && (n = a.mode); var i = r; 1 !== n && o._supportInfo.MSE && (i = /\?/g.test(r) ? r + "&streamform=flv" : r + "?streamform=flv"), o.aWndList[s].bopenTraceId && (-1 !== i.search("traceId=") && 0 < i.split("traceId=").pop().split("&").shift().length ? o.aWndList[s].szTraceId = i.split("traceId=").pop().split("&").shift() : (o.aWndList[s].szTraceId = o.uuid2(16, 16), i = "" + i + (/\?/g.test(i) ? "&" : "?") + "traceId=" + o.aWndList[s].szTraceId)), r = i, a.playURL && (a.playURL = r), a.mode = "media", -1 !== i.search("wss://") && -1 !== i.search("/proxy/") && (a.proxy = i.split("/proxy/").pop().split("/").shift(), n = i.split("wss://").pop().split("/").shift(), a.playURL = i.replace("wss:", "ws:").replace(n, "").replace("/proxy/", "")), o.aWndList[s].szUrl = r, o.aWndList[s].oParams = a, o.aWndList[s].szStartTime = u || "", o.aWndList[s].szStopTime = d || "", o.aWndList[s].pointSignNumber = r.split("realplay/").pop().split("/").shift(), o.aWndList[s].bPlay ? o.JS_Stop(s).then(function () { o._openStream(r, a, s, u, d).then(function () { e() }, function (e) { t(e) }) }) : o._openStream(r, a, s, u, d).then(function () { e() }, function (e) { t(e) }) }) } }, { key: "JS_Seek", value: function () { var r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, a = this, s = arguments[1], o = arguments[2]; return new f.default(function (t, n) { if ((r < 0 || r > a.iMaxWndNum - 1 || "number" != typeof r) && (r = a.iCurrentWndIndex), "string" != typeof s || "string" != typeof o) return n(L.ERR_COM_PARAM); var e = s, i = o; if (-1 !== s.search("Z") && (e = e.replace("Z", "+08:00")), -1 !== o.search("Z") && (i = i.replace("Z", "+08:00")), e = new Date(e).getTime(), i = new Date(i).getTime(), !e || !i || i <= e || -1 === s.search("T") || -1 === s.search(":") || -1 === s.search("-") || -1 === o.search("T") || -1 === o.search(":") || -1 === o.search("-")) return n(L.ERR_COM_PARAM); i = a._checkPlayback(r); 0 === i ? (a.aWndList[r].bSeekOk = !1, a.aWndList[r].isFlv && ((e = s) && -1 !== e.search("Z") && (e = e.replace("Z", "+08:00")), a.aWndList[r].iCurentOSDTime = new Date(e).getTime(), a.aWndList[r].iGlobalBaseTime = new Date(e).getTime() - a.aWndList[r]._osdtimeInfo.flvduration, a.aWndList[r].oMSE.CleanCache(), a.aWndList[r]._resetFlvplayer = !0, a.aWndList[r]._receivedLength = 4), a.oStreamClient.seek(a.aWndList[r].szStreamUUID, s, o).then(function () { var e; !0 === a.aWndList[r].isPause && (1 === a.aWndList[r].iMode ? (e = a.oJSPlugin.find("video.play-window").eq(r)).get(0).play && e.get(0).play() : a.aWndList[r].oPlayCtrl && a.aWndList[r].oPlayCtrl.PlayM4_Pause(!1), a.aWndList[r].isPause = !1), a.aWndList[r].bSeekOk = !0, t() }, function (e) { e = "0x0" + e.errorCode.toString(16); a._log.E(e + ":  定位失败,可能是定位传的时间异常导致,详情根据错误码在运管后台进行查询."), n(e) })) : n(i) }) } }, { key: "JS_GetSdkVersion", value: function () { return this.aWndList[0].oPlayCtrl.PlayM4_GetSdkVersion() } }, { key: "JS_DestroyWorker", value: function () { var t = this; return new f.default(function (e) { t.aWndList.forEach(function (e) { e.oPlayCtrl = null }), e() }) } }, { key: "JS_Destroy", value: function () { var t = this; return new f.default(function (e) { t.JS_StopRealPlayAll(), t.oStreamClient.stopAll(), t.oStreamClient = null, e() }) } }, { key: "JS_Stop", value: function () { var n = this, i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return new f.default(function (e, t) { if ((i < 0 || i > n.iMaxWndNum - 1 || "number" != typeof i) && (i = n.iCurrentWndIndex), n.aWndList[i].asyncLock && "2" === n._decoderVersion) return n._log.E(L.ERR_STREAM_LOCK_ERROR + ":  Multiple call js_stop API in a short time, please wait lasttime call over."), t(L.ERR_STREAM_LOCK_ERROR); n.aWndList[i]._bpsCalculator && (self.clearInterval(n.aWndList[i]._bpsCalculator), n.aWndList[i]._bpsCalculator = null, n.aWndList[i]._bpsInfo = { lastVideoBytes: 0, bps_video: 0, data_updated_time: 0, time_gap_factor: 1 }), n.aWndList[i].szStorageUUID && n.JS_StopSave(i), n.aWndList[i].bEZoom && n.JS_DisableZoom(i), i === n.iCurrentSoundWnd && (n.JS_CloseSound(), n.aWndList[i].MSEVolume = .5), clearInterval(n.aWndList[i].streamEndinter), n._closeStreamAndDestory(i), n.aWndList[i].isPause = !1, n.aWndList[i].bFirstFrame = !1, n.aWndList[i]._emiter.removeAllListeners(), n.aWndList[i]._resetFlvplayer = !1, e() }) } }, { key: "JS_Pause", value: function () { var i = this, r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return new f.default(function (t, n) { (r < 0 || r > i.iMaxWndNum - 1 || "number" != typeof r) && (r = i.iCurrentWndIndex); var e = i._checkPlayback(r); if (0 === e) return i.aWndList[r].bFrameForward ? (i._log.E(L.ERR_PLAYBACK_FRAMEFORWARD + ":  status singleFrame not support this handle."), void n(L.ERR_PLAYBACK_FRAMEFORWARD)) : !0 === i.aWndList[r].isPause ? t() : void i.oStreamClient.pause(i.aWndList[r].szStreamUUID).then(function () { var e; 1 === i.aWndList[r].iMode ? (e = i.oJSPlugin.find("video.play-window").eq(r)).get(0).pause && e.get(0).pause() : i.aWndList[r].oPlayCtrl.PlayM4_Pause && i.aWndList[r].oPlayCtrl.PlayM4_Pause(!0), i.aWndList[r].isPause = !0, t() }, function (e) { n(e) }); n(e) }) } }, { key: "JS_Resume", value: function () { var i = this, r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return new f.default(function (t, n) { (r < 0 || r > i.iMaxWndNum - 1 || "number" != typeof r) && (r = i.iCurrentWndIndex); var e = i._checkPlay(r); return 0 !== e ? n(e) : (i.aWndList[r].bFrameForward && ("2" === i._decoderVersion ? i.aWndList[r].oPlayCtrl.PlayM4_OneByOne_Play && i.aWndList[r].oPlayCtrl.PlayM4_OneByOne_Play() : i.aWndList[r].oPlayCtrl.PlayM4_Play(i.options.szId + "_playCanvas" + r), i.aWndList[r].bFrameForward = !1), !1 === i.aWndList[r].isPause ? t() : void i.oStreamClient.resume(i.aWndList[r].szStreamUUID).then(function () { var e; 1 === i.aWndList[r].iMode ? (e = i.oJSPlugin.find("video.play-window").eq(r)).get(0).play && e.get(0).play() : (1 !== i.iCurrentPlayRate && (i.aWndList[r].iRate = i.iCurrentPlayRate, i.oStreamClient.setPlayRate(i.aWndList[r].szStreamUUID, i.aWndList[r].iRate), i.aWndList[r].oPlayCtrl.PlayM4_PlayRate && i.aWndList[r].oPlayCtrl.PlayM4_PlayRate(i.aWndList[r].iRate), 1 < i.iCurrentPlayRate ? i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType && i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType(1) : i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType && i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType(0)), i.aWndList[r].oPlayCtrl && i.aWndList[r].oPlayCtrl.PlayM4_Pause(!1)), i.aWndList[r].isPause = !1, t() }, function (e) { n(e) })) }) } }, { key: "JS_Slow", value: function () { var i = this, r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return new f.default(function (t, n) { (r < 0 || r > i.iMaxWndNum - 1 || "number" != typeof r) && (r = i.iCurrentWndIndex); var e = i._checkPlayback(r); return 0 !== e ? n(e) : i.aWndList[r].bFrameForward ? (i._log.E(L.ERR_PLAYBACK_FRAMEFORWARD + ":  status singleFrame not support this handle."), n(L.ERR_PLAYBACK_FRAMEFORWARD)) : -8 === i.aWndList[r].iRate ? (i._log.E(L.ERR_PLAYBACK_MIN_RATE + ":  current rate is the min."), void n(L.ERR_PLAYBACK_MIN_RATE)) : (i.aWndList[r].iRate < 0 && -8 < i.aWndList[r].iRate && (i.aWndList[r].iRate *= 2), 1 === i.aWndList[r].iRate && (i.aWndList[r].iRate *= -2), 1 < i.aWndList[r].iRate && (i.aWndList[r].iRate /= 2), void i.oStreamClient.setPlayRate(i.aWndList[r].szStreamUUID, i.aWndList[r].iRate).then(function () { var e; 1 === i.aWndList[r].iMode ? (e = i.oJSPlugin.find("video.play-window").eq(r).get(0), i.aWndList[r].iRate < 0 ? e.playbackRate = 1 / Math.abs(i.aWndList[r].iRate) : e.playbackRate = i.aWndList[r].iRate, 1 === i.aWndList[r].iRate && i.aWndList[r].bOpenSound ? i.oJSPlugin.find("video.play-window").eq(r)[0].muted = !1 : i.oJSPlugin.find("video.play-window").eq(r)[0].muted = !0) : (i.aWndList[r].iRate <= 2 && "2" === i._decoderVersion || i.aWndList[r].iRate < 2 && "2" !== i._decoderVersion ? i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType && i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType(0) : i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType(1), i.aWndList[r].oPlayCtrl.PlayM4_PlayRate && i.aWndList[r].oPlayCtrl.PlayM4_PlayRate(i.aWndList[r].iRate), i.aWndList[r].oPlayCtrl.PlayM4_Slow && i.aWndList[r].oPlayCtrl.PlayM4_Slow(i.aWndList[r].iRate)), t(i.aWndList[r].iRate) }, function (e) { n(e) })) }) } }, { key: "JS_Fast", value: function () { var i = this, r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return (r < 0 || r > this.iMaxWndNum - 1 || "number" != typeof r) && (r = this.iCurrentWndIndex), new f.default(function (t, n) { var e = i._checkPlayback(r); return 0 !== e ? n(e) : i.aWndList[r].bFrameForward ? (i._log.E(L.ERR_PLAYBACK_FRAMEFORWARD + ":  status singleFrame not support this handle."), n(L.ERR_PLAYBACK_FRAMEFORWARD)) : 8 === i.aWndList[r].iRate ? (i._log.E(L.ERR_PLAYBACK_MAX_RATE + ":  current rate is the max."), n(L.ERR_PLAYBACK_MAX_RATE)) : (-2 === i.aWndList[r].iRate ? i.aWndList[r].iRate = 1 : i.aWndList[r].iRate < -2 ? i.aWndList[r].iRate /= 2 : 0 < i.aWndList[r].iRate && i.aWndList[r].iRate < 8 && (i.aWndList[r].iRate *= 2), void i.oStreamClient.setPlayRate(i.aWndList[r].szStreamUUID, i.aWndList[r].iRate).then(function () { var e; 1 === i.aWndList[r].iMode ? (i.aWndList[r].oMSE.closeLatencyMonitor(), e = i.oJSPlugin.find("video.play-window").eq(r).get(0), i.aWndList[r].iRate < 0 ? e.playbackRate = 1 / Math.abs(i.aWndList[r].iRate) : e.playbackRate = i.aWndList[r].iRate, 1 === i.aWndList[r].iRate && i.aWndList[r].bOpenSound ? i.oJSPlugin.find("video.play-window").eq(r)[0].muted = !1 : i.oJSPlugin.find("video.play-window").eq(r)[0].muted = !0) : (i.aWndList[r].iRate <= 2 && "2" === i._decoderVersion || i.aWndList[r].iRate < 2 && "2" !== i._decoderVersion ? i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType && i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType(0) : i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType && i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType(1), i.aWndList[r].oPlayCtrl.PlayM4_PlayRate && i.aWndList[r].oPlayCtrl.PlayM4_PlayRate(i.aWndList[r].iRate), i.aWndList[r].oPlayCtrl.PlayM4_Fast && i.aWndList[r].oPlayCtrl.PlayM4_Fast(i.aWndList[r].iRate)), t(i.aWndList[r].iRate) }, function (e) { n(e) })) }) } }, { key: "JS_Transmission", value: function () { var e = this, i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, r = arguments[1]; return new f.default(function (t, n) { (i < 0 || i > e.iMaxWndNum - 1 || "number" != typeof i) && (i = e.iCurrentWndIndex), e.aWndList[i].szStreamUUID ? e.oStreamClient.transmission(e.aWndList[i].szStreamUUID, r).then(function (e) { t(e) }, function (e) { n(e) }) : n() }) } }, { key: "JS_FrameForward", value: function () { var i = this, r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, a = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 1; return new f.default(function (e, t) { (r < 0 || r > i.iMaxWndNum - 1 || "number" != typeof r) && (r = i.iCurrentWndIndex); var n = i._checkPlayback(r); return 0 !== n ? t(n) : 1 === i.aWndList[r].iMode ? (i._log.E(L.ERR_COM_IS_MSE + ": MSE unsupport this function."), t(L.ERR_COM_IS_MSE)) : (1 !== i.aWndList[r].iRate ? (i.aWndList[r].iRate = 1, i.iCurrentPlayRate = i.aWndList[r].iRate, i.oStreamClient.setPlayRate(i.aWndList[r].szStreamUUID, i.aWndList[r].iRate).then(function () { i.aWndList[r].oPlayCtrl.PlayM4_PlayRate && i.aWndList[r].oPlayCtrl.PlayM4_PlayRate(i.aWndList[r].iRate), i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType && i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType(0), i.aWndList[r].oPlayCtrl.PlayM4_OneByOne && i.aWndList[r].oPlayCtrl.PlayM4_OneByOne(a), i.aWndList[r].bFrameForward = !0 }, function (e) { t(e) })) : (i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType && i.aWndList[r].oPlayCtrl.PlayM4_SetDecodeFrameType(0), i.aWndList[r].oPlayCtrl.PlayM4_OneByOne && i.aWndList[r].oPlayCtrl.PlayM4_OneByOne(a), i.aWndList[r].bFrameForward = !0), void e()) }) } }, { key: "JS_GetOSDTime", value: function () { var i = this, r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return new f.default(function (n, e) { (r < 0 || r > i.iMaxWndNum - 1 || "number" != typeof r) && (r = i.iCurrentWndIndex); var t = i._checkPlay(r); 0 === t ? 1 === i.aWndList[r].iMode ? (i.oJSPlugin.find("video.play-window").eq(r).get(0), n(i.aWndList[r].iCurentOSDTime)) : "1" === i._decoderVersion ? i.aWndList[r].oPlayCtrl.PlayM4_GetOSDTime && i.aWndList[r].oPlayCtrl.PlayM4_GetOSDTime(function (e) { var t; e ? (t = "ios" === i._browserInfo._system || g.oTool.isEdge() ? "/" : " ", t = Date.parse(e.replace(/-/g, t)), n(t)) : n(e) }) : (i.aWndList[r].oPlayCtrl.PlayM4_GetFrameInfo && i.aWndList[r].oPlayCtrl.PlayM4_GetFrameInfo(function (e) { i.aWndList[r].oPlayCtrl.iYUVWidth = e.width, i.aWndList[r].oPlayCtrl.iYUVHeight = e.height, i._getOSDTime(r, e.year, e.month, e.day, e.hour, e.minute, e.second), i.aWndList[r]._videoInfo.height = e.height, i.aWndList[r]._videoInfo.width = e.width, i.aWndList[r]._videoInfo.frameRate = e.frameRate }), n(i.aWndList[r].iCurentOSDTime)) : e(t) }) } }, { key: "JS_SetNormalDecoderAudio", value: function () { var t = this, n = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, i = arguments[1]; return new f.default(function (e) { (n < 0 || n > t.iMaxWndNum - 1 || "number" != typeof n) && (n = t.iCurrentWndIndex), t.aWndList[n].mseDecoderAudio = i, e() }) } }, { key: "JS_OpenSound", value: function () { var i = this, r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return (r < 0 || r > this.iMaxWndNum - 1 || "number" != typeof r) && (r = this.iCurrentWndIndex), new f.default(function (e, t) { var n = i._checkPlay(r); if (0 !== n) return t(n); if (!i.aWndList[r].bFirstFrame) return t(L.ERR_COM_OPENSOUND_ERROR); n = i.iCurrentSoundWnd; if (n !== r) { if (-1 !== n && (1 === i.aWndList[n].iMode ? i.oJSPlugin.find("video.play-window").eq(n)[0].muted = !0 : i.aWndList[n].oPlayCtrl.PlayM4_StopSound && i.aWndList[n].oPlayCtrl.PlayM4_StopSound()), 1 === i.aWndList[r].iMode) { if ("AAC" !== i.aWndList[r]._videoInfo.audioType) return t(L.ERR_STREAM_SOUND_NOTHAS); i.aWndList[r].mseDecoderAudio || (i.aWndList[r].bOpenSound = !0, i._streamReset(r)); n = i.oJSPlugin.find("video.play-window").eq(r)[0]; n.volume = i.aWndList[r].MSEVolume, n.muted = !1, n.paused && n.play() } else if (i.aWndList[r].oPlayCtrl.PlayM4_PlaySound && 1 !== i.aWndList[r].oPlayCtrl.PlayM4_PlaySound(r)) return void t(L.ERR_JSDECODER + i.aWndList[r].oPlayCtrl.PlayM4_GetLastError().toString()); i.iCurrentSoundWnd = r, i.aWndList[r].bOpenSound = !0, e() } else e() }) } }, { key: "JS_GetVolume", value: function () { var t, i = this; return new f.default(function (n, e) { if (-1 === i.iCurrentSoundWnd) return e(L.ERR_COM_SETORGET_VOLUME_ERROR); t = i.iCurrentSoundWnd, 1 === i.aWndList[t].iMode ? (e = 100 * i.oJSPlugin.find("video.play-window").eq(t).get(0).volume, n(e)) : i.aWndList[t].oPlayCtrl.PlayM4_GetVolume && i.aWndList[t].oPlayCtrl.PlayM4_GetVolume(function (e) { var t = e; "2" === i._decoderVersion && (t = Math.ceil(e / 655)), n(t) }) }) } }, { key: "JS_SetVolume", value: function () { var i, r = this, a = arguments[1]; return new f.default(function (e, t) { if (-1 === r.iCurrentSoundWnd) return t(L.ERR_COM_SETORGET_VOLUME_ERROR); if (i = r.iCurrentSoundWnd, a < 1 || 100 < a || "number" != typeof a) return t(L.ERR_COM_SETVOLUME_ERROR); if (1 === r.aWndList[i].iMode) { try { var n = r.oJSPlugin.find("video.play-window").eq(i).get(0); n.volume = a / 100, r.aWndList[i].MSEVolume = n.volume } catch (e) { t(e) } e() } else { r.aWndList[i].oPlayCtrl.PlayM4_SetVolume || t(); n = a; "2" === r._decoderVersion && (n = Math.ceil(655 * a)), 0 === r.aWndList[i].oPlayCtrl.PlayM4_SetVolume(n) ? t(L.ERR_JSDECODER + r.aWndList[i].oPlayCtrl.PlayM4_GetLastError().toString()) : e() } }) } }, { key: "JS_CloseSound", value: function () { var r = this; return new f.default(function (e, t) { var n, i = r.iCurrentSoundWnd; i < 0 || i > r.iMaxWndNum - 1 ? e() : 0 === (n = r._checkPlay(i)) ? (1 === r.aWndList[i].iMode ? r.oJSPlugin.find("video.play-window").eq(i)[0].muted = !0 : r.aWndList[i].oPlayCtrl.PlayM4_StopSound && 1 !== r.aWndList[i].oPlayCtrl.PlayM4_StopSound() && t(L.ERR_JSDECODER + r.aWndList[i].oPlayCtrl.PlayM4_GetLastError().toString()), r.iCurrentSoundWnd = -1, r.aWndList[i].bOpenSound = !1, e()) : t(n) }) } }, { key: "JS_EnableZoom", value: function () { var i = this, r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return (r < 0 || r > this.iMaxWndNum - 1 || "number" != typeof r) && (r = this.iCurrentWndIndex), new f.default(function (e, t) { var n = i._checkPlay(r); return 0 !== n ? t(n) : 1 === i.aWndList[r].iMode ? (i._log.E(L.ERR_COM_IS_MSE + ": MSE unsupport this function."), t(L.ERR_COM_IS_MSE)) : (i.oJSPlugin.find(".draw-window").unbind(), i.oDrawCanvas = new h.ESCanvas(i.options.szId + "_canvas_draw" + r), i.oDrawCanvas.setShapeType("Rect"), i.oDrawCanvas.setDrawStyle("#ff0000", "", 0), i.oDrawCanvas.setDrawStatus(!0, function (e) { e.startPos && e.endPos && (e.startPos[0] > e.endPos[0] ? i.aWndList[r].oPlayCtrl.PlayM4_SetDisplayRegion && i.aWndList[r].oPlayCtrl.PlayM4_SetDisplayRegion(null, !1) : i.aWndList[r].oPlayCtrl.PlayM4_SetDisplayRegion && i.aWndList[r].oPlayCtrl.PlayM4_SetDisplayRegion({ left: e.startPos[0], top: e.startPos[1], right: e.endPos[0], bottom: e.endPos[1] }, !0)) }), i.aWndList[r].bEZoom = !0, void e()) }) } }, { key: "JS_DisableZoom", value: function () { var i = this, r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return (r < 0 || r > this.iMaxWndNum - 1 || "number" != typeof r) && (r = this.iCurrentWndIndex), new f.default(function (e, t) { var n = i._checkPlay(r); return 0 !== n ? t(n) : 1 === i.aWndList[r].iMode ? (i._log.E(L.ERR_COM_IS_MSE + ": MSE unsupport this function."), t(L.ERR_COM_IS_MSE)) : (i.oDrawCanvas.setDrawStatus(!1), i.oDrawCanvas.clearAllShape(), void (i.aWndList[r].oPlayCtrl.PlayM4_SetDisplayRegion && 1 !== i.aWndList[r].oPlayCtrl.PlayM4_SetDisplayRegion(null, !1) ? t(L.ERR_JSDECODER + i.aWndList[r].oPlayCtrl.PlayM4_GetLastError().toString()) : (i.aWndList[r].bEZoom = !1, e()))) }) } }, { key: "JS_Enable3DZoom", value: function () { var n = this, i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, r = arguments[1]; return new f.default(function (e, t) { (i < 0 || i > n.iMaxWndNum - 1 || "number" != typeof i) && (i = n.iCurrentWndIndex), n.aWndList[i].bPlay ? (n.oJSPlugin.find(".draw-window").unbind(), n.fDrawCallback = r, n.oDrawCanvas = new h.ESCanvas("canvas_draw" + i), n.oDrawCanvas.setShapeType("Rect"), n.oDrawCanvas.setDrawStyle("#ff0000", "", 0), n.oDrawCanvas.setDrawStatus(!0, function (e) { r(e) }), n.aWndList[i].b3DZoom = !0, e()) : t() }) } }, { key: "JS_Disable3DZoom", value: function () { var n = this, i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return new f.default(function (e, t) { (i < 0 || i > n.iMaxWndNum - 1 || "number" != typeof i) && (i = n.iCurrentWndIndex), n.aWndList[i].bPlay ? (n.oDrawCanvas.setDrawStatus(!1), n.aWndList[i].b3DZoom = !1, e()) : t() }) } }, { key: "JS_CapturePicture", value: (C = (0, y.default)(p.default.mark(function e() { var d = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, l = arguments[1], h = this, c = arguments[2], _ = arguments[3]; return p.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: return e.abrupt("return", new f.default(function () { var n = (0, y.default)(p.default.mark(function e(t, n) { var i, r, a, s, o, u; return p.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: if ((d < 0 || d > h.iMaxWndNum - 1 || "number" != typeof d) && (d = h.iCurrentWndIndex), 0 !== (a = h._checkPlay(d))) return n(a), e.abrupt("return"); e.next = 5; break; case 5: if (h.aWndList[d].bFirstFrame) { e.next = 7; break } return e.abrupt("return", n(L.ERR_CAPTURE_NO_PREPARED)); case 7: if (c = "JPEG", i = null, 1 !== (r = h.aWndList[d]).iMode) { e.next = 21; break } a = h.oJSPlugin.find("video.play-window").eq(d).get(0), s = a.videoWidth, o = a.videoHeight, (u = document.createElement("canvas")).width = s, u.height = o, u.getContext("2d").drawImage(a, 0, 0, s, o), i = u.toDataURL("image/" + c), e.next = 24; break; case 21: return e.next = 23, h._jsdecoderCapture(r, c); case 23: i = e.sent; case 24: if (_) return _(i), t(), e.abrupt("return"); e.next = 28; break; case 28: (s = i.split(";").shift().split("/").pop()) !== c.toLowerCase() && console.warn("Current Browser is not support to capture '" + c + "' image type, auto capture '" + s.toUpperCase() + "' image."), (o = document.createEvent("MouseEvents")).initEvent("click", !1, !1), (u = document.createElement("a")).href = Blob ? URL.createObjectURL(g.oTool.dataURLtoBlob(i)) : i, u.download = l + "." + s, u.dispatchEvent(o), t(); case 37: case "end": return e.stop() } }, e, h) })); return function (e, t) { return n.apply(this, arguments) } }())); case 1: case "end": return e.stop() } }, e, this) })), function () { return C.apply(this, arguments) }) }, { key: "_jsdecoderCapture", value: function (t, o) { var u = this; return new f.default(function (a, s) { function e(e) { if (6 === e) return u._log.E(L.ERR_CAPTURE_RAM + ": capture failed, memory not enough."), s(L.ERR_CAPTURE_RAM); for (var t = "", n = e.byteLength, i = 0; i < n; i++)t += String.fromCharCode(e[i]); var r = btoa(t), r = "data:image/" + o.toLowerCase() + ";base64," + r; a(r) } "JPEG" === o ? t.oPlayCtrl.PlayM4_GetJPEG(e) : "BMP" === o && t.oPlayCtrl.PlayM4_GetBMP(e) }) } }, { key: "JS_StopRealPlayAll", value: function () { var n = this; return new f.default(function (e) { n.aWndList.forEach(function (e, t) { n.JS_Stop(t) }), n.iCurrentSoundWnd = -1, e() }) } }, { key: "JS_StartSave", value: function () { var n = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, i = this, r = arguments[1], a = arguments[2]; return new f.default(function (e, t) { (n < 0 || n > i.iMaxWndNum - 1 || "number" != typeof n) && (n = i.iCurrentWndIndex), i.JS_StartSaveEx(n, r, 2, a).then(function () { e() }, function (e) { t(e) }) }) } }, { key: "JS_StartSaveEx", value: function () { var o = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, u = arguments[1], d = this, l = arguments[2], h = arguments[3]; return new f.default(function (t, e) { var n, i, r, a, s; (o < 0 || o > d.iMaxWndNum - 1 || "number" != typeof o) && (o = d.iCurrentWndIndex), 2 === l || 5 === l ? null !== u ? (n = 1, i = null, h && (n = h.irecordType, i = h.cbStreamCB), 0 === (r = d._checkPlay(o)) ? d.aWndList[o].szStorageUUID ? e(L.ERR_PLAY_FILESYS_ALREADY_WRITING) : (u.indexOf(".mp4") < 0 && (u += ".mp4"), a = d.aWndList[o].aHead, s = 0, "realplay" !== d.aWndList[o].szPlayType && (s = 1), d.aWndList[o].isFlv && (a = d.flvtohikHead(o)), (5 === l && 33 === a[12] && 114 === a[13] || 98 === a[12] && 114 === a[13] || 0 === a[12] && 32 === a[13]) && (a[12] = 0, a[13] = 0), 129 === a[24] && (l = 1), d.oStorageManager.startRecord(u, a, l, s, { cbEventHandler: function (e) { d._closeStreamAndDestory(o), d.oEventCallback.pluginErrorHandler(o, e) }, irecordType: n, cbStreamCB: i }).then(function (e) { d.aWndList[o].szStorageUUID = e, d.aWndList[o].isFlv && d.aWndList[o].oMSE.setRecordFlag(!0), t() }, function () { e() })) : e(r)) : e(L.ERR_PLAY_FILESYS_FILENAME_ISNULL) : e(L.ERR_PLAY_FILESYS_NOT_SUPPORT_DSTTYPE) }) } }, { key: "JS_StopSave", value: function () { var n = this, i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return new f.default(function (e, t) { (i < 0 || i > n.iMaxWndNum - 1 || "number" != typeof i) && (i = n.iCurrentWndIndex), n.aWndList[i].szStorageUUID ? (n.aWndList[i].isFlv && n.aWndList[i].oMSE.setRecordFlag(!1), n.oStorageManager.stopRecord(n.aWndList[i].szStorageUUID).then(function () { n.aWndList[i].szStorageUUID = "", e() }, function (e) { t(e) })) : t(L.ERR_PLAY_FILESYS_NOT_WRITING) }) } }, { key: "JS_SetDrawStatus", value: function (n) { var i = this; return new f.default(function (e, t) { i.oDrawCanvas ? (i.oDrawCanvas.setDrawStatus(n), e()) : t() }) } }, { key: "JS_ClearRegion", value: function () { var n = this; return new f.default(function (e, t) { n.oDrawCanvas ? (n.oDrawCanvas.clearAllShape(), e()) : t() }) } }, { key: "JS_SetGridInfo", value: function (n) { var i = this; return new f.default(function (e) { if (null == n) return -1; var t = "#ff0000"; n.drawColor && (t = n.drawColor), i.oDrawCanvas.setDrawStyle(t), i.oDrawCanvas.setShapesInfoByType("Grid", [{ szGridMap: n.gridMap, iGridColNum: n.gridColNum, iGridRowNum: n.gridRowNum }]), e() }) } }, { key: "JS_GetGridInfo", value: function () { var e, t = null; return t = this.oDrawCanvas ? (e = this.oDrawCanvas.getShapesInfoByType("Grid")[0]) ? { gridColNum: e.iGridColNum, gridRowNum: e.iGridRowNum, gridMap: e.szGridMap } : { iGridRowNum: 18, iGridColNum: 22, szGridMap: "" } : {}, f.default.resolve(t) } }, { key: "JS_SetDrawShapeInfo", value: function (n, i) { var r = this; return new f.default(function (e, t) { void 0 !== n && "" !== n ? (r.oDrawCanvas.setShapeType(n), r.oDrawCanvas.setDrawStyle(i.szDrawColor || "", i.szFillColor || "", i.iTranslucent || 0), i.iMaxShapeSupport && 0 < i.iMaxShapeSupport && r.oDrawCanvas.setMaxShapeSupport(i.iMaxShapeSupport), i.iMaxPointSupport && 0 < i.iMaxPointSupport && r.oDrawCanvas.setCurrentShapeInfo({ szId: "", szTips: "", iMinClosed: 3, iMaxPointNum: i.iMaxPointSupport, iPolygonType: 1, szDrawColor: i.szDrawColor || "", szFillColor: i.szFillColor || "", iTranslucent: i.iTranslucent || 0 }), e()) : t() }) } }, { key: "JS_SetPolygonInfo", value: function (a) { var s = this; return new f.default(function (e, t) { if (void 0 !== a && a.length) { var n = []; if (0 < a.length) for (var i = 0, r = a.length; i < r; i++)0 < a[i].aPoint.length && n.push(a[i]); 0 < n.length ? (s.oDrawCanvas.setShapesInfoByType("Polygon", n), e()) : t() } else t() }) } }, { key: "JS_GetPolygonInfo", value: function () { var s = this; return new f.default(function (e) { for (var t = [], n = s.oDrawCanvas.getShapesInfoByType("Polygon"), i = 0, r = n.length; i < r; i++) { var a = n[i], a = { aPoint: a.aPoint, bClosed: a.bClosed, szTips: a.szTips }; t.push(a) } e(t) }) } }, { key: "JS_SetLineInfo", value: function (a) { var s = this; return new f.default(function (e, t) { if (void 0 !== a && a.length) { var n = []; if (0 < a.length) for (var i = 0, r = a.length; i < r; i++)0 < a[i].aPoint.length && n.push(a[i]); 0 < n.length ? (s.oDrawCanvas.setShapesInfoByType("Line", n), e()) : t() } else t() }) } }, { key: "JS_GetLineInfo", value: function () { var s = this; return new f.default(function (e) { for (var t = [], n = s.oDrawCanvas.getShapesInfoByType("Line"), i = 0, r = n.length; i < r; i++) { var a = n[i], a = { iLineType: a.iLineType, aPoint: a.aPoint, szTips: a.szTips }; t.push(a) } e(t) }) } }, { key: "JS_SetRectInfo", value: function (a) { var s = this; return new f.default(function (e, t) { if (void 0 !== a && a.length) { var n = []; if (0 < a.length) for (var i = 0, r = a.length; i < r; i++)0 < a[i].aPoint.length && n.push(a[i]); 0 < n.length ? (s.oDrawCanvas.setShapesInfoByType("Rect", n), e()) : t() } else t() }) } }, { key: "JS_GetRectInfo", value: function () { var s = this; return new f.default(function (e) { for (var t = [], n = s.oDrawCanvas.getShapesInfoByType("Rect"), i = 0, r = n.length; i < r; i++) { var a = n[i], a = { aPoint: a.aPoint, szTips: a.szTips }; t.push(a) } e(t) }) } }, { key: "JS_FullScreenDisplay", value: function (e) { var t = document.getElementById(this.options.szId).children[0]; return this._triggerFullscreen(t) } }, { key: "JS_FullScreenSingle", value: function () { var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; (e < 0 || e > this.iMaxWndNum - 1 || "number" != typeof e) && (e = this.iCurrentWndIndex); var t = this.aWndList[e]; if (!t.bPlay) return f.default.reject("window " + e + " is not playing."); var n = null, n = ("desktop" === this._browserInfo.platform || "ios" === this._browserInfo.system ? this.oJSPlugin.find(".sub-wnd") : 1 === t.iMode ? this.oJSPlugin.find(".sub-wnd video.play-window") : this.oJSPlugin.find(".sub-wnd canvas.play-window")).get(e); return this._triggerFullscreen(n) } }, { key: "_triggerFullscreen", value: function (a, e) { var n, s = this, o = document.fullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled || a.webkitSupportsFullscreen || !1, u = document.fullscreen || document.webkitIsFullScreen || document.mozFullScreen || a.webkitDisplayingFullscreen || !1; return a.requestFullscreen = a.requestFullscreen || a.webkitRequestFullScreen || a.mozRequestFullScreen || a.msRequestFullscreen || a.webkitEnterFullScreen || null, document.exitFullscreen = document.exitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen || null, new f.default((n = (0, y.default)(p.default.mark(function e(t, n) { var i, r; return p.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: if (!o) { e.next = 13; break } if (u && s.fullscreenElement === a) return document.exitFullscreen ? document.exitFullscreen() : a.webkitExitFullScreen(), s.fullscreenElement = null, s.JS_Resize(), s.oEventCallback.windowFullCcreenChange(!1), e.abrupt("return", t()); e.next = 7; break; case 7: return e.next = 9, a.requestFullscreen(); case 9: return s.fullscreenElement = a, s.JS_Resize(), s.oEventCallback.windowFullCcreenChange(!0), e.abrupt("return", t()); case 13: return s.fullscreenElement ? (document.body.style.setProperty("overflow", "unset"), i = s.oJSPlugin.width(), r = s.oJSPlugin.height(), (0, v.default)(a).css("width", i).css("height", r).css("z-index", "").css("position", "relative").css("transform", "").css("transform-origin", "").css("top", "").css("left", ""), s.fullscreenElement = null, s.JS_Resize(), s.oEventCallback.windowFullCcreenChange(!1)) : (i = document.body.clientWidth, r = document.body.clientHeight, s.options.openDebug && console.log("iphone fullscreen: body, window", i, r, window.screen.width, window.screen.height), i < r ? (document.body.style.setProperty("overflow", "hidden"), (0, v.default)(a).css("width", r).css("height", i).css("z-index", "1001").css("position", "fixed").css("transform", "rotate(90deg)").css("transform-origin", "0px 0px").css("top", "0px").css("left", i + "px"), (0, v.default)(a).find("video.play-window").attr("width", r).attr("height", i), (0, v.default)(a).find("canvas.play-window").attr("width", r).attr("height", i).css("transform", "scale(1)"), (0, v.default)(a).find("canvas.draw-window").attr("width", r).attr("height", i)) : (0, v.default)(a).css("width", i).css("height", r).css("z-index", "1001").css("position", "fixed"), s.fullscreenElement = a, s.JS_Resize(), s.oEventCallback.windowFullCcreenChange(!0)), e.abrupt("return", f.default.resolve()); case 15: case "end": return e.stop() } }, e, s) })), function (e, t) { return n.apply(this, arguments) })) } }, { key: "JS_Resize", value: function (s, o) { var u = this; return new f.default(function (a) { u._debounse(function () { var e, t, n, i, r; s && o && "number" == typeof s && "number" == typeof o && (u.options.iWidth = s, u.options.iHeight = o, u.oJSPlugin.width(s), u.oJSPlugin.height(o)), u.fullscreenElement && "sub-wnd" === u.fullscreenElement.className ? (t = (e = (0, v.default)(u.fullscreenElement)).width(), n = e.height(), i = window.screen.width, r = window.screen.height, u.options.openDebug && console.log("singleFullscreen JS_Resize: ", i, r, t, n), e.css("border", "1px solid " + u.options.oStyle.border), e.find("video.play-window").attr("width", t).attr("height", n), e.find("canvas.play-window").css("transform", "unset").attr("width", t).attr("height", n), (r = u.aWndList[u.currentWindowIndex]).bPlay && 0 === r.iMode && r.oPlayCtrl && r.oPlayCtrl.PlayM4_SetCanvasSize && r.oPlayCtrl.PlayM4_SetCanvasSize(t, n), e.find("canvas.draw-window").attr("width", t).attr("height", n)) : (u.options.iWidth = u.oJSPlugin.width(), u.options.iHeight = u.oJSPlugin.height(), u._updateWnd()), u.oDrawCanvas.resizeCanvas(), u.oDrawCanvas.canvasRedraw(), a() }, 50) }) } }, { key: "JS_SelectWnd", value: function (n) { var i = this; return new f.default(function (e, t) { if (n < 0 || n > i.iMaxWndNum - 1 || "number" != typeof n) return t(L.ERR_COM_PARAM); i.oJSPlugin.find(".sub-wnd").get(n).click(), e() }) } }, { key: "JS_SetOptions", value: function (t) { var n = this; return new f.default(function (e) { !1 === t.bSupportSound && (n.options.bSupportSound = t.bSupportSound), !1 === t.bSupporDoubleClickFull && (n.options.bSupporDoubleClickFull = t.bSupporDoubleClickFull), !0 === t.bOnlySupportMSE && (n.options.bOnlySupportMSE = t.bOnlySupportMSE), !0 === t.bOnlySupportJSDecoder && (n.options.bOnlySupportJSDecoder = t.bOnlySupportJSDecoder), e() }) } }, { key: "JS_SetLogFlag", value: function (n) { var i = this; return new f.default(function (e) { for (var t = 0; t < i.iMaxWndNum; t++)i.aWndList[t].oPlayCtrl && i.aWndList[t].oPlayCtrl.PlayM4_OpenPlayerSDKPrintLog(n); e() }) } }, { key: "JS_SetDecodeThreadNum", value: function (n) { var i = this; return new f.default(function (e) { for (var t = 0; t < i.iMaxWndNum; t++)i.aWndList[t].oPlayCtrl && i.aWndList[t].oPlayCtrl.SetDecodeThreadNum(n); e() }) } }, { key: "JS_RenderPrivateData", value: function (e, t) { var n = this.iCurrentWndIndex, i = this.aWndList[n], r = this._checkPlay(n); return 0 !== r || (1 === this.aWndList[n].iMode ? (r = L.ERR_COM_IS_MSE, this._log.E(L.ERR_COM_IS_MSE + ": MSE unsupport this function.")) : 1 !== i.oPlayCtrl.PlayM4_RenderPrivateData(e, t) && (r = L.ERR_JSDECODER + i.oPlayCtrl.PlayM4_GetLastError().toString(), this._log.E(r + ": 播放库智能信息接口报错:"))), r } }, { key: "JS_RenderPrivateDataEx", value: function (e, t, n) { var i = this.iCurrentWndIndex, r = this.aWndList[i], a = this._checkPlay(i); return 0 !== a || (1 === this.aWndList[i].iMode && (a = L.ERR_COM_IS_MSE, this._log.E(L.ERR_COM_IS_MSE + ": MSE unsupport this function.")), 1 !== r.oPlayCtrl.PlayM4_RenderPrivateDataEx(e, t, n) && (a = L.ERR_JSDECODER + r.oPlayCtrl.PlayM4_GetLastError().toString(), this._log.E(a + ": 播放库智能信息接口报错:", a))), a } }, { key: "JS_RenderALLPrivateData", value: function () { var r = this, a = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, s = arguments[1]; return new f.default(function (e, t) { if ((a < 0 || a > r.iMaxWndNum - 1 || "number" != typeof a) && (a = r.iCurrentWndIndex), "boolean" != typeof s) return t(L.ERR_COM_PARAM); var n = r.aWndList[a], i = r._checkPlay(a); if (0 !== i) return t(i); if (0 !== n.iMode || "2" !== r._decoderVersion) return t(L.ERR_STREAM_INTEL_UNSUPPORT);[{ typeCode: "0x00000001", desc: "智能分析(默认开)", children: [] }, { typeCode: "0x00000002", desc: "移动侦测(默认开)", children: [] }, { typeCode: "0x00000004", desc: "pos 信息叠加(默认关)", children: [] }, { typeCode: "0x00000008", desc: "图片叠加(默认关)", children: [] }, { typeCode: "0x00000010", desc: "火点信息(默认开)", children: [{ typeCode: "0x00000001", desc: "火点框显示" }, { typeCode: "0x00000002", desc: "火点最高温显示" }, { typeCode: "0x00000004", desc: "最高温位置显示" }, { typeCode: "0x00000008", desc: "最高温度距离" }] }, { typeCode: "0x00000020", desc: "温度信息(默认关)", children: [{ typeCode: "0x00000001", desc: "框测温" }, { typeCode: "0x00000002", desc: "线测温" }, { typeCode: "0x00000004", desc: "点测温" }] }, { typeCode: "0x00000040", desc: "轨迹信息(默认关)", children: [{ typeCode: "0x00000001", desc: "人的轨迹信息" }, { typeCode: "0x00000002", desc: "车的轨迹信息" }] }, { typeCode: "0x00000080", desc: "烟火屏蔽和废气监测(默认关)", children: [{ typeCode: "0x00000001", desc: "烟火屏蔽" }, { typeCode: "0x00000002", desc: "规则废气检测" }, { typeCode: "0x00000004", desc: "目标废气检测" }] }].forEach(function (t) { 1 === n.oPlayCtrl.PlayM4_RenderPrivateData(t.typeCode, s) ? s && t.children && 0 < t.children.length && t.children.forEach(function (e) { 1 === n.oPlayCtrl.PlayM4_RenderPrivateDataEx(t.typeCode, e.typeCode, s) || (console.warn("trigger intelligence sub " + e.typeCode + " " + (s ? "open" : "close") + " failed"), i = 1) }) : (console.warn("trigger intelligence main " + t.typeCode + " " + (s ? "open" : "close") + " failed"), i = 1) }), e() }) } }, { key: "_checkPlay", value: function (e) { return e < 0 || e > this.iMaxWndNum - 1 ? (this._log.E(L.ERR_COM_PARAM + ": unexpected window index."), L.ERR_COM_PARAM) : this.aWndList[e].bPlay ? 0 : (this._log.E(L.ERR_COM_NOT_PLAYING + ": this window is not playing."), L.ERR_COM_NOT_PLAYING) } }, { key: "_checkPlayback", value: function (e) { var t = this._checkPlay(e); return 0 === t && "realplay" === this.aWndList[e].szPlayType && (this._log.E(L.ERR_COM_NOT_PLAYBACK + ": this function was only supported by playback."), t = L.ERR_COM_NOT_PLAYBACK), t } }, { key: "_createFlvPlayer", value: function (i) { var r = this, a = this.aWndList[i]; a.oMSE && (a.bPlay = !1, a.oMSE.detachMediaElement(), a.oMSE.destroy(), a.oMSE = null); var e = this.oJSPlugin.find("video.play-window").eq(i), t = this.oJSPlugin.find("canvas.play-window").eq(i); e.show(), t.hide(); var n = { isLive: !0, type: "flv" }; this.aWndList[i].mseDecoderAudio || (n = { hasAudio: !1, isLive: !0, type: "flv" }); var s = "realplay" === a.szPlayType, o = !1, u = 3, t = 2; 0 < a.szBufferSize && (o = !0, u = 5, t = 2); t = a.oMSE = c.default.createPlayer(n, { enableWorker: this.options.mseWorkerEnable, lazyLoadMaxDuration: 180, seekType: "range", isLive: !0, enableStashBuffer: o, autoCleanupMaxBackwardDuration: 60, autoCleanupMinBackwardDuration: 30, statisticsInfoReportInterval: 1e3, enableDurationMonitor: s, lowLatencyThreshold: u, decreaseDurationStep: t, enableAudioGain: !1, stashInitialSize: a.szBufferSize, WDInfo: { index: i, pointSignNumber: a.pointSignNumber } }); t.on(b.default.ERROR, function (e, t, n) { a.bFirstFrame ? (r._streamReset(i), window.console.warn("[iWndNum-" + i + "] PlayerEvents.ERROR mediaElement error,reset decoder:", e, t, n.code, n.message)) : ("MediaError" === e && "CodecUnsupported" === t ? (r.oEventCallback.pluginErrorHandler(i, L.ERR_STREAM_CODEC_UNSUPPORTED, n.message), window.console.error("[iWndNum-" + i + "] PlayerEvents.ERROR unsupport h265,please js_play change mode 1,stop decoder:", e, t, n.code, n.message)) : (r.oEventCallback.pluginErrorHandler(i, L.ERR_STREAM_DATA_ERROR, n.message), window.console.error("[iWndNum-" + i + "] PlayerEvents.ERROR mediaElement error,stop decoder:", e, t, n.code, n.message)), r.JS_Stop(i)) }), t.on(b.default.MEDIA_SOURCE_ADD_ERROR, function () { r._streamReset(i, !0), window.console.warn("[iWndNum-" + i + "] MEDIA_SOURCE_ADD_ERROR,reset decoder:") }), t.on(b.default.MS_BUFFER_FULL, function () { a.bFirstFrame ? (r._streamReset(i), window.console.warn("[iWndNum-" + i + "] media_source_buffer_full,reset decoder:")) : (r.oEventCallback.pluginErrorHandler(i, L.ERR_STREAM_MSE_DATA_FULL), r.JS_Stop(i), window.console.error("[iWndNum-" + i + "] media_source_buffer_full,stop decoder:")) }); var d = e.get(0), l = this, e = function e(t) { console.info("[debug] [iWndNum-" + i + "] %c" + (0, _.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c 硬解首帧已经加载,编码:" + a._videoInfo.VideType + ",分辨率:" + a._videoInfo.width + "*" + a._videoInfo.height, "color: blue", "color: black", d.paused, d.autoplay), d.removeEventListener("loadeddata", e), a._emiter.emit("firstframeload"), d.poster = "", a.bFirstFrame = !0; function n(e) { window.console.warn("[iWndNum-" + i + "] mediaElement error,reset decoder:", e.target.error), d.removeEventListener("error", n), l._streamReset(i) } d.addEventListener("error", n), l.oEventCallback.firstFrameDisplay(i, a._videoInfo.width, a._videoInfo.height) }; d.addEventListener("loadeddata", e), a._receivedLength = 0, t.attachMediaElement(d), t.load(), a.bPlay = !0, a.asyncLock = !1, t.onParsedData = this._onParsedData.bind(this) } }, { key: "_streamReset", value: function (e) { var t = this.aWndList[e]; (t.bFirstFrame || 1 < arguments.length && void 0 !== arguments[1] && arguments[1]) && (t._resetFlvplayer = !1, t.bFirstFrame = !1, this._capturePoster(e), t.isFlv && (this._createFlvPlayer(e), t.oMSE.onLoaderChunkArrival(t.szFlvhead.buffer, t._receivedLength), t._receivedLength += t.szFlvhead.length, t._resetFlvplayer = !0)) } }, { key: "_capturePoster", value: function (e) { var t = this.oJSPlugin.find("video.play-window").eq(e).get(0), n = t.videoWidth, i = t.videoHeight, e = document.createElement("canvas"); e.width = n, e.height = i, e.getContext("2d").drawImage(t, 0, 0, n, i); e = e.toDataURL("image/JPEG"); t.poster = e } }, { key: "_createPlayCtrl", value: function (r) { var a = this, s = this.aWndList[r]; console.info("[debug] %c" + (0, _.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c _createPlayCtrl load start code", "color: blue", "color: black"); var e, o = this._playCtrlLoad.bind(this); this.oJSPlugin.find("video.play-window").eq(r).hide(), this.oJSPlugin.find("canvas.play-window").eq(r).show(), "2" === this._decoderVersion ? E && (s.oPlayCtrl = new u.JSPlayCtrl(this.options.szId + "_playCanvas" + r, E, function (e) { e.instance; var t = e.cmd, e = (e.data, e.errorCode, e.status); "OnebyOne" === t && (e && s.isPause && (a.oStreamClient.resume(s.szStreamUUID), s.isPause = !1), e || s.isPause || (a.oStreamClient.pause(s.szStreamUUID), s.isPause = !0)) }, r), s.bLoad = !0, this._playCtrlLoad(r)) : (s.oPlayCtrl = new d.JSPlayCtrl(this.options.szBasePath + "playctrl1/", function (e) { e.instance; var t = e.cmd, n = e.errorCode, i = e.status; switch (t) { case "loaded": console.info("[debug] %c" + (0, _.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c new JSDecoder1.0 received loaded message", "color: blue", "color: black"), s.bLoad || o(r), s.bLoad = !0; break; case "OnebyOne": i && s.isPause && (a.oStreamClient.resume(s.szStreamUUID), s.isPause = !1), i || s.isPause || (a.oStreamClient.pause(s.szStreamUUID), s.isPause = !0); break; case "GetFrameData": return void (16 === n && (a._closeStreamAndDestory(r), a.oEventCallback.pluginErrorHandler(r, L.ERR_STREAM_VIDEO_CODING))) } }, r), e = 4 === s.aHead[8] ? 0 : 1, s.oPlayCtrl.PlayM4_SetStreamOpenMode(e)), console.info("[debug] %c" + (0, _.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c _createPlayCtrl load end code", "color: blue", "color: black") } }, { key: "_playCtrlLoad", value: function (e) { var t = this.aWndList[e]; if ("2" === this._decoderVersion) { var n = "realplay" === t.szPlayType ? 0 : 1, i = t.isHVAGHead ? t.aHVAGHead : t.aHead; if (t.oPlayCtrl && t.oPlayCtrl.PlayM4_SetStreamOpenMode(n), t.oPlayCtrl && t.oPlayCtrl.PlayM4_OpenStream(i, 40, 8388608 + t.szBufferSize), "realplay" !== t.szPlayType && t.oPlayCtrl.PlayM4_SetGlobalBaseTime(new Date(this.aWndList[e].iGlobalBaseTime)), 1 !== t.oPlayCtrl.PlayM4_Play()) return L.ERR_JSDECODER + t.oPlayCtrl.PlayM4_GetLastError().toString(); if ("reverse" === t.szPlayType && 1 !== t.oPlayCtrl.PlayM4_ReversePlay()) return L.ERR_JSDECODER + t.oPlayCtrl.PlayM4_GetLastError().toString(); t.bPlay = !0, t.oPlayCtrl.iBufferValue = t.oPlayCtrl.PlayM4_GetBufferValue(1), this._supportInfo.webGL2 && t.oPlayCtrl.PlayM4_SetAntialias(1) } else { if (t.oPlayCtrl && t.oPlayCtrl.PlayM4_OpenStream(t.aHead, 40, 2097152), t.oPlayCtrl && t.oPlayCtrl.PlayM4_SetInputBufSize(D), 1 !== t.oPlayCtrl.PlayM4_Play(this.options.szId + "_playCanvas" + e)) return L.ERR_JSDECODER + t.oPlayCtrl.PlayM4_GetLastError().toString(); t.bPlay = !0 } return Y.push({ port: t.oPlayCtrl.iPort, belongWindowpoint: this, belongWindowId: e }), console.info("[debug] %c" + (0, _.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c call PlayM4_Play sucessed", "color: blue", "color: black"), 1 } }, { key: "sleep", value: function (e) { for (var t = (new Date).getTime(); (new Date).getTime() - t < e;); } }, { key: "_feedData", value: function (n, e) { var t, i, r, a, s = this, o = e.type, u = e.statusString, d = e.buf, l = this.aWndList[n], h = this.oEventCallback.pluginErrorHandler.bind(this), d = l.isGB ? this._stripRtpHead(d) : d; l.isFlv ? l._resetFlvplayer ? 9 === new Uint8Array(d)[4] && (l.oMSE.onLoaderChunkArrival(d, l._receivedLength), l._receivedLength += d.byteLength, l._resetFlvplayer = !1) : (l.oMSE.onLoaderChunkArrival(d, l._receivedLength), l._receivedLength += d.byteLength) : "2" === this._decoderVersion ? (r = new Uint8Array(d), 1 === (a = l.oPlayCtrl.PlayM4_InputData(r, r.byteLength)) ? 0 !== l.iDecodeType && l.oPlayCtrl.PlayM4_GetSourceBufferRemain() < l.oPlayCtrl.iBufferValue / 2 && (l.oPlayCtrl.PlayM4_SetDecodeFrameType(0), l.iDecodeType = 0) : 11 === a ? 1 === l.iDecodeType || l.bFrameForward || (l.oPlayCtrl.PlayM4_SetDecodeFrameType(1), l.iDecodeType = 1, this.oEventCallback.performanceLack()) : this.oEventCallback.pluginErrorHandler(n, L.ERR_JSDECODER + l.oPlayCtrl.PlayM4_GetLastError().toString(), "PlayM4_InputData oError"), l.bFirstFrame || l.oPlayCtrl && l.oPlayCtrl.PlayM4_GetFrameInfo(function (e) { var t = s._getWndIndexFromPort(e.port); e.width && e.height && t === n && (l.bFirstFrame = !0, l.oPlayCtrl.iYUVWidth = e.width, l.oPlayCtrl.iYUVHeight = e.height, s._getOSDTime(n, e.year, e.month, e.day, e.hour, e.minute, e.second), l._videoInfo.height = e.height, l._videoInfo.width = e.width, l._videoInfo.frameRate = e.frameRate, l._emiter.emit("firstframeload"), s.oEventCallback.firstFrameDisplay(n, l.oPlayCtrl.iYUVWidth, l.oPlayCtrl.iYUVHeight), e = "chrome" === s._browserInfo.supporter && 90 < parseInt(s._browserInfo.supporterVersion.split(".").shift()) ? "3" : "2", console.info("[debug] [iWndNum-" + n + "] %c" + (0, _.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c jsdecoder" + e + ".0软解首帧已经加载,编码:" + l._videoInfo.VideType + ",分辨率:" + l._videoInfo.width + "*" + l._videoInfo.height, "color: blue", "color: black"), l.oPlayCtrl.PlayM4_SetDisplayBuf(6)) })) : (t = new Uint8Array(d), i = l.oPlayCtrl, e = l.oPlayCtrl && i.PlayM4_GetYUVBufSize(), l.bFirstFrame || l.oPlayCtrl && i.PlayM4_GetFrameResolution(function (e, t) { l.bFirstFrame = !0, l._videoInfo.height = t, l._videoInfo.width = e, l._emiter.emit("firstframeload"), s.oEventCallback.firstFrameDisplay(n, e, t), console.info("[debug] [iWndNum-" + n + "]%c" + (0, _.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c jsdecoder1.0软解首帧已经加载,编码:" + l._videoInfo.VideType + ",分辨率:" + e + "*" + t, "color: blue", "color: black") }), r = l.oPlayCtrl && i.PlayM4_GetInputBufSize(), a = l.oPlayCtrl && i.PlayM4_GetDecodeFrameType(), .5 * D < r && r < .8 * D && 1 === l.iRate && (1 === a || l.bFrameForward || (l.oPlayCtrl && i.PlayM4_SetDecodeFrameType(1), this.oEventCallback.performanceLack())), 10 < e && e < 15 && (1 === a || l.bFrameForward || (l.oPlayCtrl && i.PlayM4_SetDecodeFrameType(1), this.oEventCallback.performanceLack())), e < 10 && r < .5 * D && 0 !== a && 1 === l.iRate && l.oPlayCtrl && i.PlayM4_SetDecodeFrameType(0), u ? (this._closeStreamAndDestory(n), h(n, L.ERR_STREAM_TRANS, u)) : o && "exception" === o ? (this._closeStreamAndDestory(n), h(n, L.ERR_STREAM_PLAYBACK_END, o)) : l.oPlayCtrl && l.oPlayCtrl.PlayM4_InputData(t, t.byteLength)), l.szStorageUUID && 0 === l.iMode && this.oStorageManager.inputData(l.szStorageUUID, d), this.aWndList[n]._bpsCalculator && this.aWndList[n]._bpsInfo && (this.aWndList[n]._bpsInfo.lastVideoBytes += d.byteLength, this.aWndList[n]._bpsInfo.data_updated_time = Date.now()) } }, { key: "_closeStreamAndDestory", value: (P = (0, y.default)(p.default.mark(function e(t) { var n, i; return p.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: if (n = this.aWndList[t], this.aWndList[t]._bpsCalculator && (self.clearInterval(this.aWndList[t]._bpsCalculator), this.aWndList[t]._bpsCalculator = null, this.aWndList[t]._bpsInfo = { lastVideoBytes: 0, bps_video: 0, data_updated_time: 0, time_gap_factor: 1 }), n.szStreamUUID) return e.prev = 3, e.next = 6, this.oStreamClient; e.next = 15; break; case 6: if (e.t0 = e.sent, !e.t0) { e.next = 9; break } this.oStreamClient.stop(n.szStreamUUID); case 9: e.next = 14; break; case 11: e.prev = 11, e.t1 = e.catch(3), console.warn(e.t1); case 14: n.szStreamUUID = ""; case 15: n.bPlay = !1, n.iRate = 1, n.isGB = !1, n.bFrameForward = !1, n.iGlobalBaseTime = 0, this.aWndList[t].iInterruptTimeCnt = 1, this.aWndList[t].iCurentOSDTime = -1, this.aWndList[t].bFirstFrame = !1, n.isFlv && n.oMSE ? (n.oMSE.destroy && n.oMSE.destroy(), n.oMSE = null, n.isFlv = !1, n.iMode = 0, n._receivedLength = 0, this.oJSPlugin.find("video.play-window").eq(t).get(0).poster = "") : n.oPlayCtrl && ("1" === this._decoderVersion ? n.oPlayCtrl.PlayM4_Destroy() : (this._supportInfo.webGL2 && n.oPlayCtrl.PlayM4_SetAntialias(0), n.oPlayCtrl.PlayM4_Stop(), i = Y.findIndex(function (e) { return e.port === n.oPlayCtrl.iPort }), Y.splice(i, 1), n.AdditionDataCB = null), n.oPlayCtrl = null, n.bLoad = !1); case 24: case "end": return e.stop() } }, e, this, [[3, 11]]) })), function (e) { return P.apply(this, arguments) }) }, { key: "_onParsedData", value: function (e, t, n) { switch (t) { case 1: this.aWndList[n].szStorageUUID && this.oStorageManager.inputData(this.aWndList[n].szStorageUUID, e); break; case 2: this.aWndList[n]._osdtimeInfo = e, 0 === this.aWndList[n]._osdtimeInfo.globalTime ? this.aWndList[n].iCurentOSDTime = this.aWndList[n]._osdtimeInfo.flvduration + this.aWndList[n].iGlobalBaseTime : this.aWndList[n].iCurentOSDTime = this.aWndList[n]._osdtimeInfo.globalTime; break; case 3: this.aWndList[n]._videoInfo = e; break; case 4: break; case 5: this.aWndList[n].szFlvhead = e.slice(0, e.byteLength - 4); break; case 11: this.aWndList[n].bPlay && this.aWndList[n].bFirstFrame && this._streamReset(n) } } }, { key: "_captureAudio", value: function (e, t, b, w, D) { var n, T = this, i = window.navigator, E = new (window.AudioContext || window.webkitAudioContext); return new f.default((n = (0, y.default)(p.default.mark(function e(t, n) { return p.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: void 0 === i.mediaDevices && (i.mediaDevices = {}), void 0 === i.mediaDevices.getUserMedia && (i.mediaDevices.getUserMedia = function (e) { if (!(i.getUserMedia || i.webkitGetUserMedia || i.mozGetUserMedia || i.msGetUserMedia)) return f.default.reject(new Error("getUserMedia is not implemented in this browser")) }), i.mediaDevices.getUserMedia({ audio: !0 }).then(function (M) { T.bTalkLoaded || M.getTracks().forEach(function (e) { e.stop() }); var L = E.createMediaStreamSource(M), e = L.context, S = e.createScriptProcessor(512, 1, 1), k = []; S.onaudioprocess = function (e) { T.bTalkLoaded || T._audionodeClose || (T._audionodeClose = !0, L.disconnect(S), S.disconnect(E.destination), M.getTracks().forEach(function (e) { e.stop() })); for (var t = e.inputBuffer.getChannelData(0), n = 48e3 / b, i = t.length / n, r = new window.Float32Array(i), a = 0, s = 0; a < i;)r[a] = t[s], s += n, a++; var o = r.length, u = null; if (16 === w) for (var e = new window.ArrayBuffer(2 * o), u = new window.DataView(e), d = 0, l = 0; l < r.length; l++, d += 2) { var h = Math.max(-1, Math.min(1, r[l])); u.setInt16(d, h < 0 ? 32768 * h : 32767 * h, !0) } else if (8 === w) { o = new window.ArrayBuffer(o); u = new window.DataView(o); for (var c = 0, _ = 0; _ < r.length; _++, c++) { var f = Math.max(-1, Math.min(1, r[_])), f = f < 0 ? 32768 * f : 32767 * f, f = parseInt(255 / (65535 / (32768 + f)), 10); u.setInt8(c, f, !0) } } if (T.bTalkLoaded && null !== u.buffer) for (var m, p = new Uint8Array(u.buffer), y = k.length, v = 0, g = p.byteLength; v < g; v++)k[y++] = p[v], 640 === k.length && (T._saveAudioFlags && (m = T.mixToWave(new Uint8Array(k), b, w, D), T.szAudioStorageUUID && T.oStorageManager.inputData(T.szAudioStorageUUID, new Uint8Array(m))), T.bTalkLoaded && T.oTalkPlayCtrl.Talk_InputAudEncodeData(new Uint8Array(k), 640), y = k.length = 0) }, L.connect(S), S.connect(e.destination), t() }, function (e) { return T.oEventCallback.pluginErrorHandler(0, L.ERR_TALK_GETUSERMEDIA_UNDEFINE), T._log.E(L.ERR_TALK_GETUSERMEDIA_UNDEFINE + ":  采集音频接口失败", e), T.JS_StopTalk(), n(L.ERR_TALK_GETUSERMEDIA_UNDEFINE) }); case 3: case "end": return e.stop() } }, e, T) })), function (e, t) { return n.apply(this, arguments) })) } }, { key: "_loadTalk", value: function (a) { var s, o, u, d, l, h = this, c = "", _ = ""; return new f.default(function (i, r) { var e, t, n; c = -1 !== a.search("wss://") ? (e = a.indexOf("/proxy/") + 7, t = a.indexOf("/", e), _ = a.substring(e, t), a.replace("wss:", "ws:").replace(_, "").replace("/proxy/", "")) : a, h.oStreamClient.openStream(a, { playURL: c, proxy: _, mode: "media" }, (n = (0, y.default)(p.default.mark(function e(t) { var n; return p.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: if (!t.bHead) { e.next = 18; break } s = t.oParams.iAudioType, o = t.oParams.iAudioBitRate, u = t.oParams.iAudioSamplingRate, d = t.oParams.iAudioBitWidth, l = t.oParams.iChannel, 6 < s && (h.oEventCallback.pluginErrorHandler(0, L.ERR_TALK_UNSUPPORT_AUDIOTYPE), h._log.E(L.ERR_TALK_UNSUPPORT_AUDIOTYPE + ":  不支持该音频格式"), h.JS_StopTalk(), r(L.ERR_TALK_UNSUPPORT_AUDIOTYPE)), h.oTalkPlayCtrl.Talk_CreateAudEncode(s), h.oTalkPlayCtrl.Talk_SetAudEncodeParam(u, l, o, d), h.oTalkPlayCtrl.Talk_RegisterAudEncodeCB(function (e) { h.oStreamClient.transmission(h.szTalkStreamId, e) }), h.oTalkPlayCtrl.Talk_CreateAuDecode(), h.oTalkPlayCtrl.Talk_SetAudDecodeParam(u, l, o, d, s), h.oTalkPlayCtrl.Talk_OpenStreamDecodeData(), 1 !== h.oTalkPlayCtrl.Talk_GetLastError() && (n = L.ERR_TALK + h.oTalkPlayCtrl.Talk_GetLastError().toString(), h._log.E(n + ":  对讲库初始化失败", n), h.oEventCallback.pluginErrorHandler(0, n), h.JS_StopTalk(), r(n)), h.bTalkLoaded = !0, h._captureAudio(s, o, u, d, l).then(function () { i() }, function (e) { r(e) }), e.next = 21; break; case 18: if (t.buf.byteLength < 10) return e.abrupt("return"); e.next = 20; break; case 20: h.oTalkPlayCtrl && h.oTalkPlayCtrl.Talk_InputAudDecodeData(t.buf, t.buf.byteLength); case 21: case "end": return e.stop() } }, e, h) })), function (e) { return n.apply(this, arguments) }), function (e) { if (h.bTalkLoaded) 1e3 === e.code || 1005 === e.code ? (h._log.E(L.ERR_STREAM_CONNECT_CLOSED + ":  送流异常,被后端关闭连接"), h.oEventCallback.pluginErrorHandler(0, L.ERR_STREAM_CONNECT_CLOSED, e)) : (h._log.E(L.ERR_STREAM_INTERRUPT + ":  流中断"), h.oEventCallback.pluginErrorHandler(0, L.ERR_STREAM_INTERRUPT, e)), h.szTalkStreamId = "", h.JS_StopTalk(); else { if (1e3 === e.code || 1005 === e.code) return r(); h.szTalkStreamId ? (h.oEventCallback.pluginErrorHandler(0, L.ERR_COM_RECV_STREAM_TIMEOUT, e), h.szTalkStreamId = "", r(L.ERR_COM_RECV_STREAM_TIMEOUT)) : 1006 === e.code && -1 !== a.search("wss://") ? (h.oEventCallback.pluginErrorHandler(0, L.ERR_STREAM_WSS_ERROR, e), r(L.ERR_STREAM_WSS_ERROR)) : (h.oEventCallback.pluginErrorHandler(0, L.ERR_STREAM_WS_ERROR, e), r(L.ERR_STREAM_WS_ERROR)) } }).then(function (e) { h.szTalkStreamId = e, h.oStreamClient.startPlay(e, "", "", "startTalk").then(function () { h.oStreamClient.closeTimer(e) }, function (e) { var t = e; "string" != typeof e && (t = "0x0" + e.errorCode.toString(16)), h._log.E(t + ":  取流失败,详情根据错误码在运管后台进行查询."), h.oEventCallback.pluginErrorHandler(0, t), r(t) }) }, function (e) { h._log.E(L.ERR_STREAM_INTERRUPT + ":  对讲通道异常中断."), h.oEventCallback.pluginErrorHandler(0, L.ERR_STREAM_INTERRUPT, e), h.JS_StopTalk() }) }) } }, { key: "JS_StartTalk", value: function (r) { var n, a = this; return this._audionodeClose = !1, new f.default((n = (0, y.default)(p.default.mark(function e(n, i) { var t; return p.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: if ("string" != typeof r || -1 === r.search("wss://") && -1 === r.search("ws://")) return e.abrupt("return", i(L.ERR_COM_URL_ERROR)); e.next = 2; break; case 2: t = "", t = "2" === a._decoderVersion ? a.options.szBasePath + "talkW/AudioInterCom.js" : a.options.szBasePath + "talk/AudioInterCom.js", null === a.oTalkPlayCtrl ? a.oTalkPlayCtrl = new o.JSTalkCtrl(t, function (e) { var t = e.cmd; e.status, e.errorCode; "loaded" === t && a._loadTalk(r).then(function () { console.info("[debug] %c" + (0, _.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c oTalkPlayCtrl load end code", "color: blue", "color: black"), n() }, function (e) { i(e) }) }) : a.JS_StopTalk().then(function () { a.oTalkPlayCtrl = new o.JSTalkCtrl(t, function (e) { var t = e.cmd; e.status, e.errorCode; "loaded" === t && a._loadTalk(r).then(function () { console.info("[debug] %c" + (0, _.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c oTalkPlayCtrl load end code", "color: blue", "color: black"), n() }, function (e) { i(e) }) }) }); case 5: case "end": return e.stop() } }, e, a) })), function (e, t) { return n.apply(this, arguments) })) } }, { key: "JS_StopTalk", value: function () { var n = this; return new f.default(function (e, t) { n.JS_StopSaveTalk(), n.bTalkLoaded = !1, n.szTalkStreamId && (n.oStreamClient.stop(n.szTalkStreamId), n.szTalkStreamId = ""), n.oTalkPlayCtrl && (n.oTalkPlayCtrl.Talk_DestroyAudEncode(), n.oTalkPlayCtrl.Talk_DestroyAudDecode(), n.oTalkPlayCtrl = null), e() }) } }, { key: "JS_TalkSetVolume", value: function (n) { var i = this; return new f.default(function (e, t) { i.oTalkPlayCtrl && 0 === i.oTalkPlayCtrl.Talk_SetVolume(n / 100) ? t(i.oTalkPlayCtrl.Talk_GetLastError() + L.ERR_TALK) : e() }) } }, { key: "JS_TalkGetVolume", value: function () { var e = this; return new f.default(function (t) { e.oTalkPlayCtrl && e.oTalkPlayCtrl.Talk_GetVolume(function (e) { e = Math.round(100 * e); t(e) }) }) } }, { key: "JS_SetTalkLogFlag", value: function (t) { var n = this; return new f.default(function (e) { n.oTalkPlayCtrl && n.oTalkPlayCtrl.Talk_SetTalkLogFlag(t), e() }) } }, { key: "addWavHeader", value: function (e, t, n, i) { var r = e.byteLength, a = new ArrayBuffer(44 + r), s = new DataView(a); return R(s, 0, "RIFF"), s.setUint32(4, 36 + r, !0), R(s, 8, "WAVE"), R(s, 12, "fmt "), s.setUint32(16, 16, !0), s.setUint16(20, 1, !0), s.setUint16(22, i, !0), s.setUint32(24, t, !0), s.setUint32(28, t * i * (n / 8), !0), s.setUint16(32, i * (n / 8), !0), s.setUint16(34, n, !0), R(s, 36, "data"), s.setUint32(40, 5242880, !0), s.setUint16(44, e, !0), s.buffer } }, { key: "mixToWave", value: function (e, t, n, i) { var r = void 0; if (0 === this._saveAudioType) { if (this._stashUsed <= 0) return; r = this._stashBuffer.slice(0, this._stashUsed), this._stashUsed = 0 } else if (1 === this._saveAudioType) r = e; else if (this._stashUsed >= e.byteLength) { var a = new Uint8Array(this._stashBuffer, 0, this._bufferSize), s = new Uint8Array(this._stashBuffer.slice(0, e.byteLength)); this._stashUsed -= e.byteLength; for (var r = new Uint8Array(e.byteLength), o = 0; o < e.byteLength; o++)r[o] = .5 * s[o] + .5 * e[o]; var u = new Uint8Array(this._stashBuffer, e.byteLength); a.set(u, 0) } else r = e; return this._firstaddwave ? (this._firstaddwave = !1, this.addWavHeader(r, t, n, i)) : r } }, { key: "JS_StartSaveTalk", value: function (e) { var i = this, r = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 2; return new f.default(function (t, n) { i._saveAudioFlags = !1, i._stashBuffer = new ArrayBuffer(i._bufferSize), i._stashUsed = 0, i._firstaddwave = !0, i.szAudioStorageUUID ? n(L.ERR_PLAY_FILESYS_ALREADY_WRITING) : i.oStorageManager.startRecord(e, "audio", 0, 0, { cbEventHandler: function (e) { n(e) }, iPackage: 0 }).then(function (e) { i.szAudioStorageUUID = e, i._saveAudioFlags = !0, i._saveAudioType = r, i.oTalkPlayCtrl.Talk_RegisterAudDecodeCB(function (e) { i._saveAudioFlags && (new Uint8Array(i._stashBuffer, 0, i._bufferSize).set(e, i._stashUsed), i._stashUsed += e.byteLength) }), t() }, function () { n() }) }) } }, { key: "JS_StopSaveTalk", value: function () { var n = this; return new f.default(function (e, t) { n._saveAudioFlags = !1, n._stashBuffer = null, n._stashUsed = 0, n.szAudioStorageUUID && n.oStorageManager.stopRecord(n.szAudioStorageUUID).then(function () { n.szAudioStorageUUID = "", e() }, function (e) { t(e) }) }) } }, { key: "JS_GetVideoInfo", value: function () { var i = this, r = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return new f.default(function (e, t) { (r < 0 || r > i.iMaxWndNum - 1 || "number" != typeof r) && (r = i.iCurrentWndIndex); var n = i._checkPlay(r); 0 !== n && t(n), e(i.aWndList[r]._videoInfo) }) } }, { key: "JS_SetConnectTimeOut", value: function () { var n = this, i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, r = arguments[1]; return new f.default(function (e, t) { (i < 0 || i > n.iMaxWndNum - 1 || "number" != typeof i) && (i = n.iCurrentWndIndex), n.oStreamClient.setTimeOut(r).then(function () { e() }, function (e) { t(e) }) }) } }, { key: "JS_SetAdditionDataCB", value: function () { var n = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, i = this, r = arguments[1], a = arguments[2]; return new f.default(function (e, t) { (n < 0 || n > i.iMaxWndNum - 1 || "number" != typeof n) && (n = i.iCurrentWndIndex), i.aWndList[n].oPlayCtrl.PlayM4_SetAdditionDataCallBack(r, 1), i.aWndList[n].AdditionDataCB = a, e() }) } }, { key: "JS_SetStreamCacheBuf", value: function () { var n = this, i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, r = arguments[1]; return new f.default(function (e, t) { (i < 0 || i > n.iMaxWndNum - 1 || "number" != typeof i) && (i = n.iCurrentWndIndex), (r < 0 || 5242880 < r) && (r = 5242880, n._log.E(L.ERR_STREAM_BUFER_ERROR + ":  JS_SetStreamCacheBuf size invaild,please set 0-5*1024*1024."), t(L.ERR_STREAM_BUFER_ERROR)), n.aWndList[i].szBufferSize = r, e() }) } }, { key: "JS_SetTraceId", value: function () { var t = this, n = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, i = arguments[1]; return new f.default(function (e) { (n < 0 || n > t.iMaxWndNum - 1 || "number" != typeof n) && (n = t.iCurrentWndIndex), t.aWndList[n].bopenTraceId = i, e() }) } }, { key: "JS_GetTraceId", value: function () { var t = this, n = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1; return new f.default(function (e) { (n < 0 || n > t.iMaxWndNum - 1 || "number" != typeof n) && (n = t.iCurrentWndIndex), e(t.aWndList[n].szTraceId) }) } }, { key: "JS_SetInterruptTime", value: function () { var t = this, n = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : -1, i = arguments[1]; return new f.default(function (e) { (n < 0 || n > t.iMaxWndNum - 1 || "number" != typeof n) && (n = t.iCurrentWndIndex), t.aWndList[n].iInterruptTime = 1e3 * i, e() }) } }, { key: "_support", value: function () { var e = !!window.MediaSource, t = !!window.WebGLRenderingContext, n = !!window.WebGL2RenderingContext, i = !!window.SharedArrayBuffer, r = !!window.OffscreenCanvas, a = !("windows" === this._browserInfo.system && "chrome" === this._browserInfo.supporter && parseInt(this._browserInfo.supporterVersion.split(".").shift()) < 80), s = "android" !== this._browserInfo.system && "ios" !== this._browserInfo.system; return { MSE: e, webGL1: t, webGL2: n, SharedArrayBuffer: i, OffscreenCanvas: r, "decoder1.0": t, "decoder2.0": t && i && r && a && s } } }, { key: "_decoder2Loaded", value: function () { return new f.default(function (e, t) { var n = 0, i = window.setInterval(function () { 4e3 <= n && (clearInterval(i), t(L.ERR_COM_LOAD_JSDECODER_ERROR)), E && (clearInterval(i), console.log("clearInterval"), e(1)), n += 100 }, 100) }) } }, { key: "_calculateRealtimeBitrate", value: function (e) { var t, n, i; this.aWndList[e]._bpsInfo && 0 !== this.aWndList[e]._bpsInfo.data_updated_time && (0 !== this.aWndList[e]._bpsInfo.lastVideoBytes && (this.aWndList[e]._bpsInfo.bps_video = 8 * this.aWndList[e]._bpsInfo.lastVideoBytes / 1024, this.aWndList[e]._bpsInfo.lastVideoBytes = 0), this.aWndList[e]._videoInfo.bitRate = this.aWndList[e]._bpsInfo.bps_video, this.aWndList[e]._bpsInfo.time_gap_factor = Date.now(), (i = Date.now() - this.aWndList[e]._bpsInfo.data_updated_time) >= this.aWndList[e].iInterruptTime * this.aWndList[e].iInterruptTimeCnt && !this.aWndList[e].isPause && (this.aWndList[e].iInterruptTimeCnt++, this.oEventCallback.InterruptStream(e, i / 1e3), this._log.W(" stream Interrupt windowsId:" + e + ", time:" + i + "ms")), 8e3 <= i && ((t = this.aWndList[e].szStartTime) && -1 !== t.search("Z") && (t = t.replace("Z", "+08:00")), 0 === (n = this.aWndList[e].oExpandParams.iduration) && ((i = this.aWndList[e].szStopTime) && -1 !== i.search("Z") && (i = i.replace("Z", "+08:00")), n = (new Date(t).getTime() - new Date(i).getTime()) / 1e3), n - (this.aWndList[e].iCurentOSDTime - new Date(t).getTime()) / 1e3 < 20 && (this.oEventCallback.StreamEnd(e), this.JS_Stop(e)))) } }, { key: "_loadScript", value: function (n) { return new f.default(function (e) { var t = document.createElement("script"); t.type = "text/javascript", t.src = n, t.onload = function () { e() }, document.body.appendChild(t) }) } }, { key: "_playerlocalFile", value: function (e, t) { var n = this.aWndList[e]; n.iMode = 1, n.isFlv = !0, n.bPlay || this._createFlvPlayer(e), n.oMSE.onLoaderChunkArrival(t, n._receivedLength), n._receivedLength += t.byteLength } }, { key: "uuid2", value: function (e, t) { var n, i, r = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""), a = []; if (t = t || r.length, e) for (n = 0; n < e; n++)a[n] = r[0 | Math.random() * t]; else for (a[8] = a[13] = a[18] = a[23] = "-", a[14] = "4", n = 0; n < 36; n++)a[n] || (i = 0 | 16 * Math.random(), a[n] = r[19 === n ? 3 & i | 8 : i]); return a.join("") } }, { key: "_streamEndStop", value: function (i) { var r = this.aWndList[i], a = this; return new f.default(function (n) { a.aWndList[i].streamEndinter = window.setInterval(function () { if (r.isFlv) { var e = a.oJSPlugin.find("video.play-window").eq(i).get(0); if (console.log("videoElement.seekable.end(0):" + e.seekable.end(0) + " ,videoElement.currentTime:" + e.currentTime), e.seekable.end(0) - e.currentTime < 1) return clearInterval(r.streamEndinter), a.JS_Stop(i), n() } else if (r.oPlayCtrl) if ("1" === a._decoderVersion) { var t = r.oPlayCtrl && r.oPlayCtrl.PlayM4_GetYUVBufSize(), e = r.oPlayCtrl && r.oPlayCtrl.PlayM4_GetInputBufSize(); if (0 === t && 0 === e) return clearInterval(r.streamEndinter), a.JS_Stop(i), n() } else if (0 === r.oPlayCtrl.PlayM4_GetSourceBufferRemain()) return clearInterval(r.streamEndinter), a.JS_Stop(i), n(); 0 }, 500) }) } }, { key: "currentWindowIndex", get: function () { return this.iCurrentWndIndex } }, { key: "fileSysSwitch", set: function (e) { if ("boolean" != typeof e) return console.error("fileSysSwitch set should get a Boolean"); this._fileSysSwitch = e } }]), A); function A(e) { var t = this; (0, a.default)(this, A), this.TAG = "H5player"; this.options = v.default.extend({ szId: "playWnd", iWidth: 400, iHeight: 300, iMaxSplit: 1, iCurrentSplit: 1, szBasePath: "./", bSupporDoubleClickFull: !0, openDebug: !0, mseWorkerEnable: !1 }, e); var n = v.default.extend(n = { borderWidth: 1, border: "#343434", borderSelect: "#FFCC00", background: "#000" }, e.oStyle); this.options.oStyle = n, this._log = new k.default(this), this.e = { resize: this._eventHandlerResize.bind(this), fullscreenchange: this._eventHandlerFullscreenchange.bind(this), visibilitychange: this._eventHandlerVisibilitychange.bind(this) }, this.options.iCurrentSplit > this.options.iMaxSplit && (this.options.iCurrentSplit = this.options.iMaxSplit), this.iCurrentPlayRate = 1, this.iCurrentSoundWnd = -1, this.iMaxWndNum = this.options.iMaxSplit * this.options.iMaxSplit, this.bPluginFull = !1, this.oVideoWindow = null, this.fullscreenElement = null, this.iCurrentWndIndex = -1, this.fDrawCallback = null, this.szPluginVersion = w.version, this.isBrowserVisible = !0, this._decoderVersion = "1", "/" !== this.options.szBasePath.charAt(this.options.szBasePath.length - 1) && (this.options.szBasePath = this.options.szBasePath + "/"), this.oStorageManager = new l.StorageManager(this.options.szBasePath + "transform/"), this.oStreamClient = new s.StreamClient(this.options), this.oJSPlugin = (0, v.default)("#" + this.options.szId), this.bcloseAntialias = !1, this._listenBrowserVisibility(), this._createWindows(), this.aWndList = []; for (var i, r = 0; r < this.iMaxWndNum; r++)this.aWndList[r] = {}, this.aWndList[r].bPlay = !1, this.aWndList[r].bLoad = !1, this.aWndList[r].stashArray = [], this.aWndList[r].stashFeeding = !1, this.aWndList[r].szPlayType = "", this.aWndList[r].szStorageUUID = "", this.aWndList[r].szStreamUUID = "", this.aWndList[r].aHead = [], this.aWndList[r].isGB = !1, this.aWndList[r].isHVAGHead = !1, this.aWndList[r].aHVAGHead = [], this.aWndList[r].iRate = 1, this.aWndList[r].bEZoom = !1, this.aWndList[r].b3DZoom = !1, this.aWndList[r].szSecretKey = "", this.aWndList[r].bFrameForward = !1, this.aWndList[r].aSamples = [], this.aWndList[r].iRevBufferTimes = 0, this.aWndList[r].nalPackage = [0, 0, 0, 1, 97], this.aWndList[r].iMode = 0, this.aWndList[r].iCurentOSDTime = -1, this.aWndList[r].oSdpInfo = {}, this.aWndList[r].iLastDuaration = -1, this.aWndList[r].iCurDuaration = -1, this.aWndList[r].iTimeInterval = -1, this.aWndList[r].isPause = !1, this.aWndList[r].MSEVolume = .5, this.aWndList[r].iBufferValue = 0, this.aWndList[r]._videoInfo = { VideType: "H264", audioType: "without", width: 0, height: 0, frameRate: 25, bitRate: 0, systemFormt: "ps", audioSampleRate: 0 }, this.aWndList[r].asyncLock = !1, this.aWndList[r].AdditionDataCB = null, this.aWndList[r].bFirstFrame = !1, this.aWndList[r].iDecodeType = 0, this.aWndList[r]._bpsCalculator = null, this.aWndList[r]._bpsInfo = { lastVideoBytes: 0, bps_video: 0, data_updated_time: 0, time_gap_factor: 1 }, this.aWndList[r]._emiter = new M.default, this.aWndList[r].bOpenSound = !1, this.aWndList[r].szFlvhead = "", this.aWndList[r]._resetFlvplayer = !1, this.aWndList[r]._osdtimeInfo = { flvstartTime: 0, globalTime: 0, flvduration: 0 }, this.aWndList[r].szBufferSize = 0, this.aWndList[r].iGlobalBaseTime = 0, this.aWndList[r].mseDecoderAudio = !0, this.aWndList[r].szTraceId = "", this.aWndList[r].bopenTraceId = !1, this.aWndList[r].iInterruptTime = 5e3, this.aWndList[r].iInterruptTimeCnt = 1, this.aWndList[r].streamEndinter = null, this.aWndList[r].bSeekOk = !0; this.oTalkPlayCtrl = null, this.bTalkLoaded = !1, this.szAudioStorageUUID = "", this.szEncodeAudioStorageUUID = "", this.szAudiorecvStorageUUID = "", this._audionodeClose = !1, this._saveAudioType = 2, this._saveAudioFlags = !1, this._bufferSize = 655360, this._stashBuffer = null, this._stashUsed = 0, this._browserInfo = new S.default, this._supportInfo = this._support(), console.log("H5player" + w.version + " Support: ", this._supportInfo, this._browserInfo), this._decoderVersion = this._supportInfo["decoder2.0"] ? "2" : "1", "2" !== this._decoderVersion || E || T || (i = "chrome" === this._browserInfo.supporter && 90 < parseInt(this._browserInfo.supporterVersion.split(".").shift()) ? "3" : "2", n = this.options.szBasePath + "playctrl" + i + "/Decoder.js", T = !0, this._loadScript(n).then((0, y.default)(p.default.mark(function e() { return p.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: return T = !1, e.next = 3, window.JSPlayerModule(); case 3: E = e.sent, console.info("[debug] %c" + (0, _.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c JSDecoder" + i + " load end ", "color: blue", "color: black"); case 5: case "end": return e.stop() } }, e, t) })))), this.oDrawCanvas = new h.ESCanvas(this.options.szId + "_canvas_draw0"), this._initEvent(), this.oEventCallback.windowEventSelect(0), this._dealWndSelect(0) } function R(e, t, n) { for (var i = 0; i < n.length; i++)e.setUint8(t + i, n.charCodeAt(i)) } i.version = w.version, t.JSPlugin = i }, function (e, t, n) { n(67), n(41), n(75), n(245), n(253), n(254), e.exports = n(3).Promise }, function (e, t, n) { var s = n(42), o = n(43); e.exports = function (a) { return function (e, t) { var n, i = String(o(e)), r = s(t), e = i.length; return r < 0 || e <= r ? a ? "" : void 0 : (t = i.charCodeAt(r)) < 55296 || 56319 < t || r + 1 === e || (n = i.charCodeAt(r + 1)) < 56320 || 57343 < n ? a ? i.charAt(r) : t : a ? i.slice(r, r + 2) : n - 56320 + (t - 55296 << 10) + 65536 } } }, function (e, t, n) { "use strict"; var i = n(46), r = n(28), a = n(36), s = {}; n(17)(s, n(7)("iterator"), function () { return this }), e.exports = function (e, t, n) { e.prototype = i(s, { next: r(1, n) }), a(e, t + " Iterator") } }, function (e, t, n) { var s = n(12), o = n(13), u = n(30); e.exports = n(14) ? Object.defineProperties : function (e, t) { o(e); for (var n, i = u(t), r = i.length, a = 0; a < r;)s.f(e, n = i[a++], t[n]); return e } }, function (e, t, n) { var u = n(19), d = n(47), l = n(241); e.exports = function (o) { return function (e, t, n) { var i, r = u(e), a = d(r.length), s = l(n, a); if (o && t != t) { for (; s < a;)if ((i = r[s++]) != i) return !0 } else for (; s < a; s++)if ((o || s in r) && r[s] === t) return o || s || 0; return !o && -1 } } }, function (e, t, n) { var i = n(42), r = Math.max, a = Math.min; e.exports = function (e, t) { return (e = i(e)) < 0 ? r(e + t, 0) : a(e, t) } }, function (e, t, n) { "use strict"; var i = n(243), r = n(244), a = n(29), s = n(19); e.exports = n(68)(Array, "Array", function (e, t) { this._t = s(e), this._i = 0, this._k = t }, function () { var e = this._t, t = this._k, n = this._i++; return !e || n >= e.length ? (this._t = void 0, r(1)) : r(0, "keys" == t ? n : "values" == t ? e[n] : [n, e[n]]) }, "values"), a.Arguments = a.Array, i("keys"), i("values"), i("entries") }, function (e, t) { e.exports = function () { } }, function (e, t) { e.exports = function (e, t) { return { value: t, done: !!e } } }, function (e, t, n) { "use strict"; function i() { } var r, a, s, o, u = n(27), c = n(6), d = n(22), l = n(76), h = n(8), _ = n(16), f = n(34), m = n(246), p = n(247), y = n(80), v = n(81).set, g = n(249)(), M = n(51), L = n(82), S = n(250), k = n(83), b = "Promise", w = c.TypeError, D = c.process, T = D && D.versions, E = T && T.v8 || "", Y = c[b], P = "process" == l(D), C = a = M.f, l = !!function () { try { var e = Y.resolve(1), t = (e.constructor = {})[n(7)("species")] = function (e) { e(i, i) }; return (P || "function" == typeof PromiseRejectionEvent) && e.then(i) instanceof t && 0 !== E.indexOf("6.6") && -1 === S.indexOf("Chrome/66") } catch (e) { } }(), A = function (e) { var t; return !(!_(e) || "function" != typeof (t = e.then)) && t }, R = function (h, n) { var i; h._n || (h._n = !0, i = h._c, g(function () { for (var r, d = h._v, l = 1 == h._s, e = 0, t = function (e) { var t, n, i, r, a = l ? e.ok : e.fail, s = e.resolve, o = e.reject, u = e.domain; try { a ? (l || (2 == h._h && (r = h, v.call(c, function () { var e; P ? D.emit("rejectionHandled", r) : (e = c.onrejectionhandled) && e({ promise: r, reason: r._v }) })), h._h = 1), !0 === a ? t = d : (u && u.enter(), t = a(d), u && (u.exit(), i = !0)), t === e.promise ? o(w("Promise-chain cycle")) : (n = A(t)) ? n.call(t, s, o) : s(t)) : o(d) } catch (e) { u && !i && u.exit(), o(e) } }; i.length > e;)t(i[e++]); h._c = [], h._n = !1, n && !h._h && (r = h, v.call(c, function () { var e, t, n = r._v, i = x(r); if (i && (e = L(function () { P ? D.emit("unhandledRejection", n, r) : (t = c.onunhandledrejection) ? t({ promise: r, reason: n }) : (t = c.console) && t.error && t.error("Unhandled promise rejection", n) }), r._h = P || x(r) ? 2 : 1), r._a = void 0, i && e.e) throw e.v })) })) }, x = function (e) { return 1 !== e._h && 0 === (e._a || e._c).length }, O = function (e) { var t = this; t._d || (t._d = !0, (t = t._w || t)._v = e, t._s = 2, t._a || (t._a = t._c.slice()), R(t, !0)) }, I = function (e) { var n, i = this; if (!i._d) { i._d = !0, i = i._w || i; try { if (i === e) throw w("Promise can't be resolved itself"); (n = A(e)) ? g(function () { var t = { _w: i, _d: !1 }; try { n.call(e, d(I, t, 1), d(O, t, 1)) } catch (e) { O.call(t, e) } }) : (i._v = e, i._s = 1, R(i, !1)) } catch (e) { O.call({ _w: i, _d: !1 }, e) } } }; l || (Y = function (e) { m(this, Y, b, "_h"), f(e), r.call(this); try { e(d(I, this, 1), d(O, this, 1)) } catch (e) { O.call(this, e) } }, (r = function (e) { this._c = [], this._a = void 0, this._s = 0, this._d = !1, this._v = void 0, this._h = 0, this._n = !1 }).prototype = n(251)(Y.prototype, { then: function (e, t) { var n = C(y(this, Y)); return n.ok = "function" != typeof e || e, n.fail = "function" == typeof t && t, n.domain = P ? D.domain : void 0, this._c.push(n), this._a && this._a.push(n), this._s && R(this, !1), n.promise }, catch: function (e) { return this.then(void 0, e) } }), s = function () { var e = new r; this.promise = e, this.resolve = d(I, e, 1), this.reject = d(O, e, 1) }, M.f = C = function (e) { return e === Y || e === o ? new s : a(e) }), h(h.G + h.W + h.F * !l, { Promise: Y }), n(36)(Y, b), n(252)(b), o = n(3)[b], h(h.S + h.F * !l, b, { reject: function (e) { var t = C(this); return (0, t.reject)(e), t.promise } }), h(h.S + h.F * (u || !l), b, { resolve: function (e) { return k(u && this === o ? Y : this, e) } }), h(h.S + h.F * !(l && n(84)(function (e) { Y.all(e).catch(i) })), b, { all: function (e) { var s = this, t = C(s), o = t.resolve, u = t.reject, n = L(function () { var i = [], r = 0, a = 1; p(e, !1, function (e) { var t = r++, n = !1; i.push(void 0), a++, s.resolve(e).then(function (e) { n || (n = !0, i[t] = e, --a || o(i)) }, u) }), --a || o(i) }); return n.e && u(n.v), t.promise }, race: function (e) { var t = this, n = C(t), i = n.reject, r = L(function () { p(e, !1, function (e) { t.resolve(e).then(n.resolve, i) }) }); return r.e && i(r.v), n.promise } }) }, function (e, t) { e.exports = function (e, t, n, i) { if (!(e instanceof t) || void 0 !== i && i in e) throw TypeError(n + ": incorrect invocation!"); return e } }, function (e, t, n) { var h = n(22), c = n(77), _ = n(78), f = n(13), m = n(47), p = n(79), y = {}, v = {}; (t = e.exports = function (e, t, n, i, r) { var a, s, o, u, r = r ? function () { return e } : p(e), d = h(n, i, t ? 2 : 1), l = 0; if ("function" != typeof r) throw TypeError(e + " is not iterable!"); if (_(r)) { for (a = m(e.length); l < a; l++)if ((u = t ? d(f(s = e[l])[0], s[1]) : d(e[l])) === y || u === v) return u } else for (o = r.call(e); !(s = o.next()).done;)if ((u = c(o, d, s.value, t)) === y || u === v) return u }).BREAK = y, t.RETURN = v }, function (e, t) { e.exports = function (e, t, n) { var i = void 0 === n; switch (t.length) { case 0: return i ? e() : e.call(n); case 1: return i ? e(t[0]) : e.call(n, t[0]); case 2: return i ? e(t[0], t[1]) : e.call(n, t[0], t[1]); case 3: return i ? e(t[0], t[1], t[2]) : e.call(n, t[0], t[1], t[2]); case 4: return i ? e(t[0], t[1], t[2], t[3]) : e.call(n, t[0], t[1], t[2], t[3]) }return e.apply(n, t) } }, function (e, t, n) { var o = n(6), u = n(81).set, d = o.MutationObserver || o.WebKitMutationObserver, l = o.process, h = o.Promise, c = "process" == n(31)(l); e.exports = function () { function e() { var e, t; for (c && (e = l.domain) && e.exit(); n;) { t = n.fn, n = n.next; try { t() } catch (e) { throw n ? r() : i = void 0, e } } i = void 0, e && e.enter() } var n, i, t, r, a, s; return r = c ? function () { l.nextTick(e) } : !d || o.navigator && o.navigator.standalone ? h && h.resolve ? (t = h.resolve(void 0), function () { t.then(e) }) : function () { u.call(o, e) } : (a = !0, s = document.createTextNode(""), new d(e).observe(s, { characterData: !0 }), function () { s.data = a = !a }), function (e) { e = { fn: e, next: void 0 }; i && (i.next = e), n || (n = e, r()), i = e } } }, function (e, t, n) { n = n(6).navigator; e.exports = n && n.userAgent || "" }, function (e, t, n) { var r = n(17); e.exports = function (e, t, n) { for (var i in t) n && e[i] ? e[i] = t[i] : r(e, i, t[i]); return e } }, function (e, t, n) { "use strict"; var i = n(6), r = n(3), a = n(12), s = n(14), o = n(7)("species"); e.exports = function (e) { e = ("function" == typeof r[e] ? r : i)[e]; s && e && !e[o] && a.f(e, o, { configurable: !0, get: function () { return this } }) } }, function (e, t, n) { "use strict"; var i = n(8), r = n(3), a = n(6), s = n(80), o = n(83); i(i.P + i.R, "Promise", { finally: function (t) { var n = s(this, r.Promise || a.Promise), e = "function" == typeof t; return this.then(e ? function (e) { return o(n, t()).then(function () { return e }) } : t, e ? function (e) { return o(n, t()).then(function () { throw e }) } : t) } }) }, function (e, t, n) { "use strict"; var i = n(8), r = n(51), a = n(82); i(i.S, "Promise", { try: function (e) { var t = r.f(this), e = a(e); return (e.e ? t.reject : t.resolve)(e.v), t.promise } }) }, function (e, t, n) { n(256), e.exports = n(3).Object.keys }, function (e, t, n) { var i = n(24), r = n(30); n(52)("keys", function () { return function (e) { return r(i(e)) } }) }, function (e, t, n) { var i = function () { return this }() || Function("return this")(), r = i.regeneratorRuntime && 0 <= Object.getOwnPropertyNames(i).indexOf("regeneratorRuntime"), a = r && i.regeneratorRuntime; if (i.regeneratorRuntime = void 0, e.exports = n(258), r) i.regeneratorRuntime = a; else try { delete i.regeneratorRuntime } catch (e) { i.regeneratorRuntime = void 0 } }, function (T, e) { !function (e) { "use strict"; var u, d, l, h, c, _, t, n = Object.prototype, f = n.hasOwnProperty, i = "function" == typeof Symbol ? Symbol : {}, r = i.iterator || "@@iterator", a = i.asyncIterator || "@@asyncIterator", s = i.toStringTag || "@@toStringTag", i = "object" == typeof T, o = e.regeneratorRuntime; function m(e, t, n, i) { var r, a, s, o, t = t && t.prototype instanceof y ? t : y, t = Object.create(t.prototype), i = new b(i || []); return t._invoke = (r = e, a = n, s = i, o = d, function (e, t) { if (o === h) throw new Error("Generator is already running"); if (o === c) { if ("throw" === e) throw t; return D() } for (s.method = e, s.arg = t; ;) { var n = s.delegate; if (n) { var i = function e(t, n) { var i = t.iterator[n.method]; if (i === u) { if (n.delegate = null, "throw" === n.method) { if (t.iterator.return && (n.method = "return", n.arg = u, e(t, n), "throw" === n.method)) return _; n.method = "throw", n.arg = new TypeError("The iterator does not provide a 'throw' method") } return _ } var i = p(i, t.iterator, n.arg); if ("throw" === i.type) return n.method = "throw", n.arg = i.arg, n.delegate = null, _; i = i.arg; if (!i) return n.method = "throw", n.arg = new TypeError("iterator result is not an object"), n.delegate = null, _; { if (!i.done) return i; n[t.resultName] = i.value, n.next = t.nextLoc, "return" !== n.method && (n.method = "next", n.arg = u) } n.delegate = null; return _ }(n, s); if (i) { if (i === _) continue; return i } } if ("next" === s.method) s.sent = s._sent = s.arg; else if ("throw" === s.method) { if (o === d) throw o = c, s.arg; s.dispatchException(s.arg) } else "return" === s.method && s.abrupt("return", s.arg); o = h; i = p(r, a, s); if ("normal" === i.type) { if (o = s.done ? c : l, i.arg !== _) return { value: i.arg, done: s.done } } else "throw" === i.type && (o = c, s.method = "throw", s.arg = i.arg) } }), t } function p(e, t, n) { try { return { type: "normal", arg: e.call(t, n) } } catch (e) { return { type: "throw", arg: e } } } function y() { } function v() { } function g() { } function M(e) { ["next", "throw", "return"].forEach(function (t) { e[t] = function (e) { return this._invoke(t, e) } }) } function L(s) { var t; this._invoke = function (n, i) { function e() { return new Promise(function (e, t) { !function t(e, n, i, r) { e = p(s[e], s, n); if ("throw" !== e.type) { var a = e.arg; return (n = a.value) && "object" == typeof n && f.call(n, "__await") ? Promise.resolve(n.__await).then(function (e) { t("next", e, i, r) }, function (e) { t("throw", e, i, r) }) : Promise.resolve(n).then(function (e) { a.value = e, i(a) }, r) } r(e.arg) }(n, i, e, t) }) } return t = t ? t.then(e, e) : e() } } function S(e) { var t = { tryLoc: e[0] }; 1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t) } function k(e) { var t = e.completion || {}; t.type = "normal", delete t.arg, e.completion = t } function b(e) { this.tryEntries = [{ tryLoc: "root" }], e.forEach(S, this), this.reset(!0) } function w(t) { if (t) { var e = t[r]; if (e) return e.call(t); if ("function" == typeof t.next) return t; if (!isNaN(t.length)) { var n = -1, e = function e() { for (; ++n < t.length;)if (f.call(t, n)) return e.value = t[n], e.done = !1, e; return e.value = u, e.done = !0, e }; return e.next = e } } return { next: D } } function D() { return { value: u, done: !0 } } o ? i && (T.exports = o) : ((o = e.regeneratorRuntime = i ? T.exports : {}).wrap = m, d = "suspendedStart", l = "suspendedYield", h = "executing", c = "completed", _ = {}, (e = {})[r] = function () { return this }, (i = (i = Object.getPrototypeOf) && i(i(w([])))) && i !== n && f.call(i, r) && (e = i), t = g.prototype = y.prototype = Object.create(e), (v.prototype = t.constructor = g).constructor = v, g[s] = v.displayName = "GeneratorFunction", o.isGeneratorFunction = function (e) { e = "function" == typeof e && e.constructor; return !!e && (e === v || "GeneratorFunction" === (e.displayName || e.name)) }, o.mark = function (e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, g) : (e.__proto__ = g, s in e || (e[s] = "GeneratorFunction")), e.prototype = Object.create(t), e }, o.awrap = function (e) { return { __await: e } }, M(L.prototype), L.prototype[a] = function () { return this }, o.AsyncIterator = L, o.async = function (e, t, n, i) { var r = new L(m(e, t, n, i)); return o.isGeneratorFunction(t) ? r : r.next().then(function (e) { return e.done ? e.value : r.next() }) }, M(t), t[s] = "Generator", t[r] = function () { return this }, t.toString = function () { return "[object Generator]" }, o.keys = function (n) { var e, i = []; for (e in n) i.push(e); return i.reverse(), function e() { for (; i.length;) { var t = i.pop(); if (t in n) return e.value = t, e.done = !1, e } return e.done = !0, e } }, o.values = w, b.prototype = { constructor: b, reset: function (e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = u, this.done = !1, this.delegate = null, this.method = "next", this.arg = u, this.tryEntries.forEach(k), !e) for (var t in this) "t" === t.charAt(0) && f.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = u) }, stop: function () { this.done = !0; var e = this.tryEntries[0].completion; if ("throw" === e.type) throw e.arg; return this.rval }, dispatchException: function (n) { if (this.done) throw n; var i = this; function e(e, t) { return a.type = "throw", a.arg = n, i.next = e, t && (i.method = "next", i.arg = u), !!t } for (var t = this.tryEntries.length - 1; 0 <= t; --t) { var r = this.tryEntries[t], a = r.completion; if ("root" === r.tryLoc) return e("end"); if (r.tryLoc <= this.prev) { var s = f.call(r, "catchLoc"), o = f.call(r, "finallyLoc"); if (s && o) { if (this.prev < r.catchLoc) return e(r.catchLoc, !0); if (this.prev < r.finallyLoc) return e(r.finallyLoc) } else if (s) { if (this.prev < r.catchLoc) return e(r.catchLoc, !0) } else { if (!o) throw new Error("try statement without catch or finally"); if (this.prev < r.finallyLoc) return e(r.finallyLoc) } } } }, abrupt: function (e, t) { for (var n = this.tryEntries.length - 1; 0 <= n; --n) { var i = this.tryEntries[n]; if (i.tryLoc <= this.prev && f.call(i, "finallyLoc") && this.prev < i.finallyLoc) { var r = i; break } } var a = (r = r && ("break" === e || "continue" === e) && r.tryLoc <= t && t <= r.finallyLoc ? null : r) ? r.completion : {}; return a.type = e, a.arg = t, r ? (this.method = "next", this.next = r.finallyLoc, _) : this.complete(a) }, complete: function (e, t) { if ("throw" === e.type) throw e.arg; return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), _ }, finish: function (e) { for (var t = this.tryEntries.length - 1; 0 <= t; --t) { var n = this.tryEntries[t]; if (n.finallyLoc === e) return this.complete(n.completion, n.afterLoc), k(n), _ } }, catch: function (e) { for (var t = this.tryEntries.length - 1; 0 <= t; --t) { var n = this.tryEntries[t]; if (n.tryLoc === e) { var i, r = n.completion; return "throw" === r.type && (i = r.arg, k(n)), i } } throw new Error("illegal catch attempt") }, delegateYield: function (e, t, n) { return this.delegate = { iterator: w(e), resultName: t, nextLoc: n }, "next" === this.method && (this.arg = u), _ } }) }(function () { return this }() || Function("return this")()) }, function (e, t, n) { e.exports = { default: n(260), __esModule: !0 } }, function (e, t, n) { n(261); var i = n(3).Object; e.exports = function (e, t, n) { return i.defineProperty(e, t, n) } }, function (e, t, n) { var i = n(8); i(i.S + i.F * !n(14), "Object", { defineProperty: n(12).f }) }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.StreamClient = void 0; var d = _(n(11)), i = _(n(1)), r = _(n(2)), a = _(n(87)), s = n(265), o = n(266), u = n(268), l = n(282), h = _(n(10)), k = function (e) { { if (e && e.__esModule) return e; var t = {}; if (null != e) for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); return t.default = e, t } }(n(61)), c = _(n(91)); function _(e) { return e && e.__esModule ? e : { default: e } } var f, b, w, D, T, E, r = (f = new s.DirectDeviceCustom, b = new o.DirectDevice, w = new u.LiveMedia, D = new l.LocalService, T = 6e3, E = {}, (0, r.default)(m, [{ key: "openStream", value: function (e, c, _, n) { var f = this, m = !1, t = !1; -1 < e.indexOf("[") && (t = !0); var i = e.split("://"), e = i[0], p = "", y = 7681, v = 1, g = 0, M = !1, r = !1, g = t ? (p = i[1].split("]:")[0] + "]", y = Math.floor(i[1].split("]:")[1].split("/")[0]), v = Math.floor(i[1].split("]:")[1].split("/")[1] / 100), Math.floor(i[1].split("]:")[1].split("/")[1] % 100) - 1) : (p = i[1].split(":")[0], y = Math.floor(i[1].split(":")[1].split("/")[0]), v = Math.floor(i[1].split(":")[1].split("/")[1] / 100), Math.floor(i[1].split(":")[1].split("/")[1] % 100) - 1); 0 === v && (g = 0); t = "&sessionID="; (c = c || {}).token && !c.playURL && (t = "&token="); var i = c.sessionID || c.session || (c.playURL ? "" : c.token) || "", L = new window.WebSocket("wss" + "://" + p + ":" + y + (c.mode ? "/" + c.mode : "") + "?version=" + this.szProtocolVersion + "&cipherSuites=" + this.iCiphersuites + t + i + (c.proxy ? "&proxy=" + c.proxy : "")); L.binaryType = "arraybuffer"; var S = a.default.v4(); return new d.default(function (l, h) { L.onopen = function () { f._log.I("websocket onopen"), E[S] = setTimeout(function () { M || r || !L || (L.onopen = null, L.onmessage = null, L.close(1e3, "CLOSE"), L.close = null, clearTimeout(E[S]), f._log.W("recv stream timeout"), h()) }, T) }, L.onmessage = function (e) { if ("string" == typeof e.data) { var t, n = f.getIndex(S), i = JSON.parse(e.data); if (i && i.hasOwnProperty("statusCode") && (f.aWebsocket[n].statusCode = i.statusCode, 0 === i.statusCode ? -1 === n ? l() : f.aWebsocket[n].resolve() : -1 === n ? h(i) : f.aWebsocket[n].reject(i)), !m && i.cmd && "end" === i.cmd) return m = !0, f._log.I("回放结束,媒体流关闭"), void _({ cmd: "end" }); if (i && i.version && i.cipherSuite) { f._log.D("websocket onmessage: PKD", i), f.szProtocolVersion = i.version, f.iCiphersuites = parseInt(i.cipherSuite, 10), i && i.PKD && i.rand ? f.aWebsocket.push(w.createClientObject(L, S, i.PKD, i.rand, c)) : (t = "live://" + p + ":" + y + "/" + v + "/" + g, -1 === f.iCiphersuites ? f.aWebsocket.push(D.createClientObject(L, S, t, c)) : f.aWebsocket.push(b.createClientObject(L, S, t))); var r = f.getIndex(S); return f.aWebsocket[r].statusCode = -1, void l(S) } i && i.sdp && (f._log.I("websocket onmessage: sdp", i), t = b.getMediaFromSdp(i.sdp), r = b.getSdpParams(i.sdp), a = b.getSDPInfo(i.sdp), _({ bHead: !0, oParams: r, buf: t, iClockFrequency: a.iClockFrequency, iCurrentTime: a.iCurrentTime }), -1 !== (a = f.aWebsocket.findIndex(function (e) { return e.id === S })) && f.aWebsocket[a].resolve()) } else { var a = {}, s = e.data; if (64 === s.byteLength || 40 === s.byteLength) { for (var o = -1, u = s.byteLength, d = 0; d < u; d++)if (73 === s[d] && 77 === s[d + 1] && 75 === s[d + 2] && 72 === s[d + 3]) { o = d; break } a = -1 !== o ? { bHead: !0, buf: s.slice(o, o + 40) } : { bHead: !1, buf: s } } else a = { bHead: !1, buf: s }; _(a), M = !(e = a = s = null) } }, L.onclose = function (e) { var t; 1e3 !== e.code && 1005 !== e.code || -1 === (t = f.aWebsocket.findIndex(function (e) { return e.id === S })) || (f._log.I("Stream closed", e), 0 !== f.aWebsocket[t].statusCode ? f.aWebsocket[t].reject(k.ERR_STREAM_CMD_FAILED) : f.aWebsocket[t].resolve(), f.aWebsocket.splice(t, 1)), n(e), r = !0 } }) } }, { key: "startPlay", value: function (e, i, r, a) { var s = this, o = this.getIndex(e); return i && r && "0.1" === this.szProtocolVersion && (i = i.replace("-", "").replace(":", ""), r = r.replace("-", "").replace(":", "")), new d.default(function (e, t) { if (-1 < o) { s.aWebsocket[o].resolve = e, s.aWebsocket[o].reject = t; var n = null; i && r ? "0.1" !== s.szProtocolVersion ? 0 === s.iCiphersuites ? n = w.playbackCmd(s.aWebsocket[o], i, r, a) : 1 === s.iCiphersuites ? n = b.playbackCmd(i, r, s.aWebsocket[o].playURL) : -1 === s.iCiphersuites && (n = D.playbackCmd(s.aWebsocket[o], i, r)) : n = f.playbackCmd(i, r, s.aWebsocket[o].iCurChannel, s.aWebsocket[o].iCurStream) : 0 === s.aWebsocket[o].iCurChannel && "0.1" === s.szProtocolVersion ? n = f.zeroPlayCmd(s.aWebsocket[o].iCurChannel, s.aWebsocket[o].iCurStream) : "0.1" !== s.szProtocolVersion ? 0 === s.iCiphersuites ? n = w.playCmd(s.aWebsocket[o], a) : 1 === s.iCiphersuites ? n = b.playCmd(s.aWebsocket[o].playURL) : -1 === s.iCiphersuites && (n = D.playCmd(s.aWebsocket[o])) : n = f.playCmd(s.aWebsocket[o].iCurChannel, s.aWebsocket[o].iCurStream); try { s.aWebsocket[o].socket.send(n) } catch (e) { s._log.E(k.ERR_STREAM_CMD_FAILED), t(e) } "0.1" === s.szProtocolVersion && e() } else "0.1" === s.szProtocolVersion && t() }) } }, { key: "singleFrame", value: function () { } }, { key: "setPlayRate", value: function (a, s) { var o = this; return new d.default(function (e, t) { for (var n = 0, i = o.aWebsocket.length; n < i; n++)if (o.aWebsocket[n].id === a) { if ("0.1" === o.szProtocolVersion) { var r = f.playRateCmd(s); o.aWebsocket[n].socket.send(r), e(); break } o.aWebsocket[n].resolve = e, o.aWebsocket[n].reject = t; r = b.playRateCmd(s); o.aWebsocket[n].socket.send(r) } }) } }, { key: "seek", value: function (a, s, o) { var u = this; return new d.default(function (e, t) { for (var n, i = 0, r = u.aWebsocket.length; i < r; i++)u.aWebsocket[i].id === a && (u.aWebsocket[i].resolve = e, u.aWebsocket[i].reject = t, n = w.seekCmd(s, o), u.aWebsocket[i].socket.send(n)) }) } }, { key: "pause", value: function (a) { var s = this; return new d.default(function (e, t) { for (var n = 0, i = s.aWebsocket.length; n < i; n++)if (s.aWebsocket[n].id === a) { if ("0.1" === s.szProtocolVersion) { var r = f.pauseCmd(); s.aWebsocket[n].socket.send(r), e(); break } s.aWebsocket[n].resolve = e, s.aWebsocket[n].reject = t; r = b.pauseCmd(); s.aWebsocket[n].socket.send(r) } }) } }, { key: "transmission", value: function (r, a) { var s = this; return new d.default(function (e, t) { for (var n = 0, i = s.aWebsocket.length; n < i; n++)s.aWebsocket[n].id === r && (s.aWebsocket[n].resolve = e, s.aWebsocket[n].reject = t, s.aWebsocket[n].socket.send(a)) }) } }, { key: "resume", value: function (a) { var s = this; return new d.default(function (e, t) { for (var n = 0, i = s.aWebsocket.length; n < i; n++)if (s.aWebsocket[n].id === a) { if ("0.1" === s.szProtocolVersion) { var r = f.resumeCmd(); s.aWebsocket[n].socket.send(r), e(); break } s.aWebsocket[n].resolve = e, s.aWebsocket[n].reject = t; r = b.resumeCmd(); s.aWebsocket[n].socket.send(r) } }) } }, { key: "stop", value: function (r) { var a = this; return new d.default(function (e, t) { var n = a.aWebsocket.find(function (e) { return e.id === r }); if (!n) return a._log.E(k.ERR_STREAM_WS_UNFIND + ": can't find related websocket, check the index."), t(k.ERR_STREAM_WS_UNFIND); if (0 === n.socket.readyState) return n.stoping = !0, n.socket.onopen = null, n.socket.onmessage = null, n.socket.onclose = null, n.socket = null, a._log.E(k.ERR_STREAM_WS_UNCONNECT + ": websocket is not connect, check the index."), t(k.ERR_STREAM_WS_UNCONNECT); try { n.resolve = e; var i = w.stopCmd(); n.socket.send(i), n.stoping = !0, n.socket.onopen = null, n.socket.onmessage = null, n.socket.onclose = null, n.socket = null, e() } catch (e) { a._log.E(k.ERR_STREAM_CMD_FAILED + ": send signalCmd to websocket failed."), t(k.ERR_STREAM_CMD_FAILED) } }) } }, { key: "stopAll", value: function () { for (var e = 0, t = this.aWebsocket.length; e < t; e++)this.aWebsocket[e].socket.close(1e3, "CLOSE"), this.aWebsocket[e].stoping = !0, this.aWebsocket[e].socket.onopen = null, this.aWebsocket[e].socket.onmessage = null, this.aWebsocket[e].socket.onclose = null, this.aWebsocket[e].socket = null } }, { key: "setTimeOut", value: function (n) { return new d.default(function (e, t) { T = 1e3 * n, e() }) } }, { key: "closeTimer", value: function (e) { clearTimeout(E[e]) } }]), m); function m(e) { var r = this; (0, i.default)(this, m), this.TAG = "StreamClient", this._config = e, this._log = new c.default(this), this._emiter = new h.default, this.szProtocolVersion = "0.1", this.iCiphersuites = 0, this.aWebsocket = [], this.getIndex = function (e) { for (var t = -1, n = 0, i = r.aWebsocket.length; n < i; n++)if (r.aWebsocket[n].id === e) { t = n; break } return t }, this.autoCloseTime = 1e4, this.heartbeatTime = 2e3 } t.StreamClient = r }, function (e, t, n) { var l, h, c = n(88), _ = n(89), f = 0, m = 0; e.exports = function (e, t, n) { var i = t && n || 0, r = t || [], a = (e = e || {}).node || l, s = void 0 !== e.clockseq ? e.clockseq : h; null != a && null != s || (u = c(), null == a && (a = l = [1 | u[0], u[1], u[2], u[3], u[4], u[5]]), null == s && (s = h = 16383 & (u[6] << 8 | u[7]))); var o = void 0 !== e.msecs ? e.msecs : (new Date).getTime(), n = void 0 !== e.nsecs ? e.nsecs : m + 1, u = o - f + (n - m) / 1e4; if (u < 0 && void 0 === e.clockseq && (s = s + 1 & 16383), 1e4 <= (n = (u < 0 || f < o) && void 0 === e.nsecs ? 0 : n)) throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); f = o, h = s, n = (1e4 * (268435455 & (o += 122192928e5)) + (m = n)) % 4294967296, r[i++] = n >>> 24 & 255, r[i++] = n >>> 16 & 255, r[i++] = n >>> 8 & 255, r[i++] = 255 & n, o = o / 4294967296 * 1e4 & 268435455, r[i++] = o >>> 8 & 255, r[i++] = 255 & o, r[i++] = o >>> 24 & 15 | 16, r[i++] = o >>> 16 & 255, r[i++] = s >>> 8 | 128, r[i++] = 255 & s; for (var d = 0; d < 6; ++d)r[i + d] = a[d]; return t || _(r) } }, function (e, t, n) { var s = n(88), o = n(89); e.exports = function (e, t, n) { var i = t && n || 0; "string" == typeof e && (t = "binary" === e ? new Array(16) : null, e = null); var r = (e = e || {}).random || (e.rng || s)(); if (r[6] = 15 & r[6] | 64, r[8] = 63 & r[8] | 128, t) for (var a = 0; a < 16; ++a)t[i + a] = r[a]; return t || o(r) } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.DirectDeviceCustom = void 0; var i = r(n(1)); function r(e) { return e && e.__esModule ? e : { default: e } } (0, r(n(2)).default)(a, [{ key: "createClientObject", value: function (e, t, n, i) { return { socket: e, id: t, iCurChannel: n, iCurStream: i, resolve: null, reject: null, stoping: !1 } } }, { key: "zeroPlayCmd", value: function (e, t) { return new Uint8Array([0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, e + 1, 0, 0, 0, t, 0, 0, 4, 0]) } }, { key: "playCmd", value: function (e, t) { return new Uint8Array([0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, e, 0, 0, 0, t, 0, 0, 4, 0]) } }, { key: "playbackCmd", value: function (e, t, n, i) { var r = e.split("T")[0], a = e.split("T")[1], s = "0" + parseInt(r.substring(0, 4), 10).toString(16), o = parseInt(r.substring(4, 6), 10), u = parseInt(r.substring(6), 10), d = parseInt(a.substring(0, 2), 10), l = parseInt(a.substring(2, 4), 10), h = parseInt(a.substring(4, 6), 10), c = t.split("T")[0], e = t.split("T")[1], r = "0" + parseInt(c.substring(0, 4), 10).toString(16), a = parseInt(c.substring(4, 6), 10), t = parseInt(e.substring(0, 2), 10), c = parseInt(e.substring(2, 4), 10), e = parseInt(e.substring(4, 6), 10), i = [0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, n, 0, 0, parseInt(s.substring(0, 2), 16), parseInt(s.substring(2, 4), 16), 0, 0, 0, o, 0, 0, 0, u, 0, 0, 0, d, 0, 0, 0, l, 0, 0, 0, h, 0, 0, parseInt(r.substring(0, 2), 16), parseInt(r.substring(2, 4), 16), 0, 0, 0, a, 0, 0, 0, u, 0, 0, 0, t, 0, 0, 0, c, 0, 0, 0, e, 0, 0, 0, 0, 0, 0, 0, 0, i, 0, 0, 0]; return new Uint8Array(i) } }, { key: "playRateCmd", value: function (e) { for (var t = (parseInt(e, 10) >>> 0).toString(16).toLocaleUpperCase().toString(16), n = t.length; n < 8; n++)t = "0" + t; for (var i = [0, 0, 0, 0], r = 0, a = t.length; r < a; r += 2)i[Math.floor(r / 2)] = parseInt(t.substring(r, r + 2), 16); e = [0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, i[0], i[1], i[2], i[3]]; return new Uint8Array(e) } }, { key: "pauseCmd", value: function () { return new Uint8Array([0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) } }, { key: "resumeCmd", value: function () { return new Uint8Array([0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) } }]), n = a; function a() { (0, i.default)(this, a) } t.DirectDeviceCustom = n }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.DirectDevice = void 0; var i = a(n(56)), r = a(n(1)); function a(e) { return e && e.__esModule ? e : { default: e } } (0, a(n(2)).default)(s, [{ key: "createClientObject", value: function (e, t, n) { return { socket: e, id: t, playURL: n, resolve: null, reject: null, stoping: !1 } } }, { key: "getMediaFromSdp", value: function (e) { for (var t = e.indexOf("MEDIAINFO=") + 10, n = e.slice(t, t + 80), i = [], r = 0, a = n.length / 2; r < a; r++)i[r] = parseInt(n.slice(2 * r, 2 * r + 2), 16); return new Uint8Array(i) } }, { key: "sdpParamsReverse", value: function (e) { for (var t = [], n = 0, i = e.length / 2; n < i; n++)t[n] = e.slice(2 * n, 2 * n + 2); return t = parseInt(t.reverse().join(""), 16) } }, { key: "getSdpParams", value: function (e) { var t = e.indexOf("MEDIAINFO=") + 10, t = e.slice(t, t + 80), n = this.sdpParamsReverse(t.slice(24, 28)), i = this.sdpParamsReverse(t.slice(40, 48)), r = this.sdpParamsReverse(t.slice(32, 40)), a = parseInt(t.slice(30, 32), 16), s = parseInt(t.slice(29, 30), 16); switch (console.log("parse head iAudioType:" + n + ",iAudioSamplingRate:" + r + ", iAudioBitRate:" + i + ", iAudioBitWidth:" + a + ", iChannel:" + s), n) { case 1984: (n = 0) === i && (i = 32e3), 0 === r && (r = 8e3), 0 === a && (a = 16), 0 === s && (s = 1); break; case 28945: case 49154: i = 64e3, r = 8e3, a = 16, s = n = 1; break; case 28944: case 49153: n = 2, i = 64e3, r = 8e3, a = 16, s = 1; break; case 29217: case 49155: n = 3, r = i = 16e3, a = 16, s = 1; break; case 29280: case 29282: case 49156: n = 4, i = 16e3, r = 8e3, a = 16, s = 1; break; case 8193: case 49157: n = 6, 0 === i && (i = 32e3), 0 === r && (r = 16e3), 0 === a && (a = 16), 0 === s && (s = 1) }return { iAudioType: n, iAudioBitRate: i, iAudioSamplingRate: r, iAudioBitWidth: a, iChannel: s } } }, { key: "getSDPInfo", value: function (e) { var t = e.indexOf("rtpmap:96 H264/") + 15, n = e.slice(t, t + 5), i = parseInt(n, 10), n = e.indexOf("o=- ") + 4, n = e.slice(n, n + 16), t = parseInt(n, 10) / 1e3, n = 60 * (new Date).getTimezoneOffset() * 1e3; return { iClockFrequency: i, iCurrentTime: Math.floor(t + n) } } }, { key: "playCmd", value: function (e) { return (0, i.default)({ sequence: 0, cmd: "realplay", url: e }) } }, { key: "playbackCmd", value: function (e, t, n) { return (0, i.default)({ sequence: 0, cmd: "playback", url: n, startTime: e, endTime: t }) } }, { key: "playRateCmd", value: function (e) { return (0, i.default)({ sequence: 0, cmd: "speed", rate: e }) } }, { key: "pauseCmd", value: function () { return (0, i.default)({ sequence: 0, cmd: "pause" }) } }, { key: "resumeCmd", value: function () { return (0, i.default)({ sequence: 0, cmd: "resume" }) } }]), n = s; function s() { (0, r.default)(this, s) } t.DirectDevice = n }, function (e, t, n) { var n = n(3), i = n.JSON || (n.JSON = { stringify: JSON.stringify }); e.exports = function (e) { return i.stringify.apply(i, arguments) } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.LiveMedia = void 0; var r = u(n(56)), i = u(n(1)), a = u(n(2)), s = u(n(269)), o = u(n(281)); function u(e) { return e && e.__esModule ? e : { default: e } } (0, a.default)(d, [{ key: "createClientObject", value: function (e, t, n, i, r) { var a = o.default.AES.encrypt((new Date).getTime().toString(), o.default.enc.Hex.parse("1234567891234567123456789123456712345678912345671234567891234567"), { mode: o.default.mode.CBC, iv: o.default.enc.Hex.parse("12345678912345671234567891234567"), padding: o.default.pad.Pkcs7 }).ciphertext.toString(); a.length < 64 && (a += a); var s = o.default.AES.encrypt((new Date).getTime().toString(), o.default.enc.Hex.parse("12345678912345671234567891234567"), { mode: o.default.mode.CBC, iv: o.default.enc.Hex.parse("12345678912345671234567891234567"), padding: o.default.pad.Pkcs7 }).ciphertext.toString(); return { socket: e, id: t, PKD: n, rand: i, playURL: r.playURL || "", auth: r.auth || "", token: r.token || "", key: a, iv: s, resolve: null, reject: null, stoping: !1 } } }, { key: "playCmd", value: function (e, t) { e = { sequence: 0, cmd: t || "realplay", url: e.playURL, key: s.default.encrypt(e.iv + ":" + e.key, e.PKD).cipher.split("?")[0], authorization: o.default.AES.encrypt(e.rand + ":" + e.auth, o.default.enc.Hex.parse(e.key), { mode: o.default.mode.CBC, iv: o.default.enc.Hex.parse(e.iv), padding: o.default.pad.Pkcs7 }).ciphertext.toString(), token: o.default.AES.encrypt(e.token, o.default.enc.Hex.parse(e.key), { mode: o.default.mode.CBC, iv: o.default.enc.Hex.parse(e.iv), padding: o.default.pad.Pkcs7 }).ciphertext.toString() }; return (0, r.default)(e) } }, { key: "playbackCmd", value: function (e, t, n, i) { n = { sequence: 0, cmd: i || "playback", url: e.playURL, key: s.default.encrypt(e.iv + ":" + e.key, e.PKD).cipher.split("?")[0], authorization: o.default.AES.encrypt(e.rand + ":" + e.auth, o.default.enc.Hex.parse(e.key), { mode: o.default.mode.CBC, iv: o.default.enc.Hex.parse(e.iv), padding: o.default.pad.Pkcs7 }).ciphertext.toString(), token: o.default.AES.encrypt(e.token, o.default.enc.Hex.parse(e.key), { mode: o.default.mode.CBC, iv: o.default.enc.Hex.parse(e.iv), padding: o.default.pad.Pkcs7 }).ciphertext.toString(), startTime: t, endTime: n }; return (0, r.default)(n) } }, { key: "seekCmd", value: function (e, t) { return (0, r.default)({ sequence: 0, cmd: "seek", startTime: e, endTime: t }) } }, { key: "stopCmd", value: function () { return (0, r.default)({ sequence: 0, cmd: "stop" }) } }]), a = d; function d() { (0, i.default)(this, d) } t.LiveMedia = a }, function (e, t, n) { "use strict"; var r, a = n(9), s = (r = a) && r.__esModule ? r : { default: r }; var o = "Netscape", u = 40; function m(e, t, n) { null != e && ("number" == typeof e ? this.fromNumber(e, t, n) : null == t && "string" != typeof e ? this.fromString(e, 256) : this.fromString(e, t)) } function p() { return new m(null) } n = "Microsoft Internet Explorer" == o ? (m.prototype.am = function (e, t, n, i, r, a) { var s = 32767 & t; for (t >>= 15; 0 <= --a;) { var o = 32767 & this[e], u = this[e++] >> 15, d = t * o + u * s, r = ((o = s * o + ((32767 & d) << 15) + n[i] + (1073741823 & r)) >>> 30) + (d >>> 15) + t * u + (r >>> 30); n[i++] = 1073741823 & o } return r }, 30) : "Netscape" != o ? (m.prototype.am = function (e, t, n, i, r, a) { for (; 0 <= --a;) { var s = t * this[e++] + n[i] + r, r = Math.floor(s / 67108864); n[i++] = 67108863 & s } return r }, 26) : (m.prototype.am = function (e, t, n, i, r, a) { var s = 16383 & t; for (t >>= 14; 0 <= --a;) { var o = 16383 & this[e], u = this[e++] >> 14, d = t * o + u * s, r = ((o = s * o + ((16383 & d) << 14) + n[i] + r) >> 28) + (d >> 14) + t * u; n[i++] = 268435455 & o } return r }, 28), m.prototype.DB = n, m.prototype.DM = (1 << n) - 1, m.prototype.DV = 1 << n; m.prototype.FV = Math.pow(2, 52), m.prototype.F1 = 52 - n, m.prototype.F2 = 2 * n - 52; for (var d = "0123456789abcdefghijklmnopqrstuvwxyz", l = [], h = "0".charCodeAt(0), c = 0; c <= 9; ++c)l[h++] = c; for (h = "a".charCodeAt(0), c = 10; c < 36; ++c)l[h++] = c; for (h = "A".charCodeAt(0), c = 10; c < 36; ++c)l[h++] = c; function _(e) { return d.charAt(e) } function f(e, t) { t = l[e.charCodeAt(t)]; return null == t ? -1 : t } function y(e) { var t = p(); return t.fromInt(e), t } function g(e) { var t, n = 1; return 0 != (t = e >>> 16) && (e = t, n += 16), 0 != (t = e >> 8) && (e = t, n += 8), 0 != (t = e >> 4) && (e = t, n += 4), 0 != (t = e >> 2) && (e = t, n += 2), e >> 1 != 0 && (n += 1), n } function M(e) { this.m = e } function L(e) { this.m = e, this.mp = e.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << e.DB - 15) - 1, this.mt2 = 2 * e.t } function S(e, t) { return e & t } function k(e, t) { return e | t } function b(e, t) { return e ^ t } function w(e, t) { return e & ~t } function D() { } function T(e) { return e } function E(e) { this.r2 = p(), this.q3 = p(), m.ONE.dlShiftTo(2 * e.t, this.r2), this.mu = this.r2.divide(e), this.m = e } M.prototype.convert = function (e) { return e.s < 0 || 0 <= e.compareTo(this.m) ? e.mod(this.m) : e }, M.prototype.revert = function (e) { return e }, M.prototype.reduce = function (e) { e.divRemTo(this.m, null, e) }, M.prototype.mulTo = function (e, t, n) { e.multiplyTo(t, n), this.reduce(n) }, M.prototype.sqrTo = function (e, t) { e.squareTo(t), this.reduce(t) }, L.prototype.convert = function (e) { var t = p(); return e.abs().dlShiftTo(this.m.t, t), t.divRemTo(this.m, null, t), e.s < 0 && 0 < t.compareTo(m.ZERO) && this.m.subTo(t, t), t }, L.prototype.revert = function (e) { var t = p(); return e.copyTo(t), this.reduce(t), t }, L.prototype.reduce = function (e) { for (; e.t <= this.mt2;)e[e.t++] = 0; for (var t = 0; t < this.m.t; ++t) { var n = 32767 & e[t], i = n * this.mpl + ((n * this.mph + (e[t] >> 15) * this.mpl & this.um) << 15) & e.DM; for (e[n = t + this.m.t] += this.m.am(0, i, e, t, 0, this.m.t); e[n] >= e.DV;)e[n] -= e.DV, e[++n]++ } e.clamp(), e.drShiftTo(this.m.t, e), 0 <= e.compareTo(this.m) && e.subTo(this.m, e) }, L.prototype.mulTo = function (e, t, n) { e.multiplyTo(t, n), this.reduce(n) }, L.prototype.sqrTo = function (e, t) { e.squareTo(t), this.reduce(t) }, m.prototype.copyTo = function (e) { for (var t = this.t - 1; 0 <= t; --t)e[t] = this[t]; e.t = this.t, e.s = this.s }, m.prototype.fromInt = function (e) { this.t = 1, this.s = e < 0 ? -1 : 0, 0 < e ? this[0] = e : e < -1 ? this[0] = e + DV : this.t = 0 }, m.prototype.fromString = function (e, t) { var n; if (16 == t) n = 4; else if (8 == t) n = 3; else if (256 == t) n = 8; else if (2 == t) n = 1; else if (32 == t) n = 5; else { if (4 != t) return void this.fromRadix(e, t); n = 2 } this.s = this.t = 0; for (var i = e.length, r = !1, a = 0; 0 <= --i;) { var s = 8 == n ? 255 & e[i] : f(e, i); s < 0 ? "-" == e.charAt(i) && (r = !0) : (r = !1, 0 == a ? this[this.t++] = s : a + n > this.DB ? (this[this.t - 1] |= (s & (1 << this.DB - a) - 1) << a, this[this.t++] = s >> this.DB - a) : this[this.t - 1] |= s << a, (a += n) >= this.DB && (a -= this.DB)) } 8 == n && 0 != (128 & e[0]) && (this.s = -1, 0 < a && (this[this.t - 1] |= (1 << this.DB - a) - 1 << a)), this.clamp(), r && m.ZERO.subTo(this, this) }, m.prototype.clamp = function () { for (var e = this.s & this.DM; 0 < this.t && this[this.t - 1] == e;)--this.t }, m.prototype.dlShiftTo = function (e, t) { for (var n = this.t - 1; 0 <= n; --n)t[n + e] = this[n]; for (n = e - 1; 0 <= n; --n)t[n] = 0; t.t = this.t + e, t.s = this.s }, m.prototype.drShiftTo = function (e, t) { for (var n = e; n < this.t; ++n)t[n - e] = this[n]; t.t = Math.max(this.t - e, 0), t.s = this.s }, m.prototype.lShiftTo = function (e, t) { for (var n = e % this.DB, i = this.DB - n, r = (1 << i) - 1, a = Math.floor(e / this.DB), s = this.s << n & this.DM, o = this.t - 1; 0 <= o; --o)t[o + a + 1] = this[o] >> i | s, s = (this[o] & r) << n; for (o = a - 1; 0 <= o; --o)t[o] = 0; t[a] = s, t.t = this.t + a + 1, t.s = this.s, t.clamp() }, m.prototype.rShiftTo = function (e, t) { t.s = this.s; var n = Math.floor(e / this.DB); if (n >= this.t) t.t = 0; else { var i = e % this.DB, r = this.DB - i, a = (1 << i) - 1; t[0] = this[n] >> i; for (var s = n + 1; s < this.t; ++s)t[s - n - 1] |= (this[s] & a) << r, t[s - n] = this[s] >> i; 0 < i && (t[this.t - n - 1] |= (this.s & a) << r), t.t = this.t - n, t.clamp() } }, m.prototype.subTo = function (e, t) { for (var n = 0, i = 0, r = Math.min(e.t, this.t); n < r;)i += this[n] - e[n], t[n++] = i & this.DM, i >>= this.DB; if (e.t < this.t) { for (i -= e.s; n < this.t;)i += this[n], t[n++] = i & this.DM, i >>= this.DB; i += this.s } else { for (i += this.s; n < e.t;)i -= e[n], t[n++] = i & this.DM, i >>= this.DB; i -= e.s } t.s = i < 0 ? -1 : 0, i < -1 ? t[n++] = this.DV + i : 0 < i && (t[n++] = i), t.t = n, t.clamp() }, m.prototype.multiplyTo = function (e, t) { var n = this.abs(), i = e.abs(), r = n.t; for (t.t = r + i.t; 0 <= --r;)t[r] = 0; for (r = 0; r < i.t; ++r)t[r + n.t] = n.am(0, i[r], t, r, 0, n.t); t.s = 0, t.clamp(), this.s != e.s && m.ZERO.subTo(t, t) }, m.prototype.squareTo = function (e) { for (var t = this.abs(), n = e.t = 2 * t.t; 0 <= --n;)e[n] = 0; for (n = 0; n < t.t - 1; ++n) { var i = t.am(n, t[n], e, 2 * n, 0, 1); (e[n + t.t] += t.am(n + 1, 2 * t[n], e, 2 * n + 1, i, t.t - n - 1)) >= t.DV && (e[n + t.t] -= t.DV, e[n + t.t + 1] = 1) } 0 < e.t && (e[e.t - 1] += t.am(n, t[n], e, 2 * n, 0, 1)), e.s = 0, e.clamp() }, m.prototype.divRemTo = function (e, t, n) { var i = e.abs(); if (!(i.t <= 0)) { var r = this.abs(); if (r.t < i.t) null != t && t.fromInt(0), null != n && this.copyTo(n); else { null == n && (n = p()); var a = p(), s = this.s, e = e.s, o = this.DB - g(i[i.t - 1]); if (0 < o ? (i.lShiftTo(o, a), r.lShiftTo(o, n)) : (i.copyTo(a), r.copyTo(n)), 0 != (r = a[(i = a.t) - 1])) { var u = r * (1 << this.F1) + (1 < i ? a[i - 2] >> this.F2 : 0), d = this.FV / u, u = (1 << this.F1) / u, l = 1 << this.F2, h = n.t, c = h - i, _ = null == t ? p() : t; for (a.dlShiftTo(c, _), 0 <= n.compareTo(_) && (n[n.t++] = 1, n.subTo(_, n)), m.ONE.dlShiftTo(i, _), _.subTo(a, a); a.t < i;)a[a.t++] = 0; for (; 0 <= --c;) { var f = n[--h] == r ? this.DM : Math.floor(n[h] * d + (n[h - 1] + l) * u); if ((n[h] += a.am(0, f, n, c, 0, i)) < f) for (a.dlShiftTo(c, _), n.subTo(_, n); n[h] < --f;)n.subTo(_, n) } null != t && (n.drShiftTo(i, t), s != e && m.ZERO.subTo(t, t)), n.t = i, n.clamp(), 0 < o && n.rShiftTo(o, n), s < 0 && m.ZERO.subTo(n, n) } } } }, m.prototype.invDigit = function () { if (this.t < 1) return 0; var e = this[0]; if (0 == (1 & e)) return 0; var t = 3 & e; return 0 < (t = (t = (t = (t = t * (2 - (15 & e) * t) & 15) * (2 - (255 & e) * t) & 255) * (2 - ((65535 & e) * t & 65535)) & 65535) * (2 - e * t % this.DV) % this.DV) ? this.DV - t : -t }, m.prototype.isEven = function () { return 0 == (0 < this.t ? 1 & this[0] : this.s) }, m.prototype.exp = function (e, t) { if (4294967295 < e || e < 1) return m.ONE; var n, i = p(), r = p(), a = t.convert(this), s = g(e) - 1; for (a.copyTo(i); 0 <= --s;)t.sqrTo(i, r), 0 < (e & 1 << s) ? t.mulTo(r, a, i) : (n = i, i = r, r = n); return t.revert(i) }, m.prototype.toString = function (e) { if (this.s < 0) return "-" + this.negate().toString(e); if (16 == e) e = 4; else if (8 == e) e = 3; else if (2 == e) e = 1; else if (32 == e) e = 5; else if (64 == e) e = 6; else { if (4 != e) return this.toRadix(e); e = 2 } var t, n = (1 << e) - 1, i = !1, r = "", a = this.t, s = this.DB - a * this.DB % e; if (0 < a--) for (s < this.DB && 0 < (t = this[a] >> s) && (i = !0, r = _(t)); 0 <= a;)s < e ? (t = (this[a] & (1 << s) - 1) << e - s, t |= this[--a] >> (s += this.DB - e)) : (t = this[a] >> (s -= e) & n, s <= 0 && (s += this.DB, --a)), (i = 0 < t ? !0 : i) && (r += _(t)); return i ? r : "0" }, m.prototype.negate = function () { var e = p(); return m.ZERO.subTo(this, e), e }, m.prototype.abs = function () { return this.s < 0 ? this.negate() : this }, m.prototype.compareTo = function (e) { var t = this.s - e.s; if (0 != t) return t; var n = this.t; if (0 != (t = n - e.t)) return t; for (; 0 <= --n;)if (0 != (t = this[n] - e[n])) return t; return 0 }, m.prototype.bitLength = function () { return this.t <= 0 ? 0 : this.DB * (this.t - 1) + g(this[this.t - 1] ^ this.s & this.DM) }, m.prototype.mod = function (e) { var t = p(); return this.abs().divRemTo(e, null, t), this.s < 0 && 0 < t.compareTo(m.ZERO) && e.subTo(t, t), t }, m.prototype.modPowInt = function (e, t) { return t = new (e < 256 || t.isEven() ? M : L)(t), this.exp(e, t) }, m.ZERO = y(0), m.ONE = y(1), D.prototype.convert = T, D.prototype.revert = T, D.prototype.mulTo = function (e, t, n) { e.multiplyTo(t, n) }, D.prototype.sqrTo = function (e, t) { e.squareTo(t) }, E.prototype.convert = function (e) { if (e.s < 0 || e.t > 2 * this.m.t) return e.mod(this.m); if (e.compareTo(this.m) < 0) return e; var t = p(); return e.copyTo(t), this.reduce(t), t }, E.prototype.revert = function (e) { return e }, E.prototype.reduce = function (e) { for (e.drShiftTo(this.m.t - 1, this.r2), e.t > this.m.t + 1 && (e.t = this.m.t + 1, e.clamp()), this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3), this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); e.compareTo(this.r2) < 0;)e.dAddOffset(1, this.m.t + 1); for (e.subTo(this.r2, e); 0 <= e.compareTo(this.m);)e.subTo(this.m, e) }, E.prototype.mulTo = function (e, t, n) { e.multiplyTo(t, n), this.reduce(n) }, E.prototype.sqrTo = function (e, t) { e.squareTo(t), this.reduce(t) }; var Y, P, C, A, R, x = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997], O = 67108864 / x[x.length - 1]; function I(e) { var t, n, o = this, i = e.length, r = 0, a = o.i = o.j = o.m = 0; for (o.S = [], o.c = [], i || (e = [i++]); r < 256;)o.S[r] = r++; for (r = 0; r < 256; r++)a = a + (t = o.S[r]) + e[r % i] & 255, n = o.S[a], o.S[r] = n, o.S[a] = t; o.g = function (e) { var t = o.S, n = o.i + 1 & 255, i = t[n], r = o.j + i & 255, a = t[r]; t[n] = a, t[r] = i; for (var s = t[i + a & 255]; --e;)a = t[r = r + (i = t[n = n + 1 & 255]) & 255], t[n] = a, t[r] = i, s = 256 * s + t[i + a & 255]; return o.i = n, o.j = r, s }, o.g(256) } function W(e, t, n, i) { for (e += "", i = n = 0; i < e.length; i++) { var r = t, a = 255 & i, s = (n ^= 19 * t[255 & i]) + e.charCodeAt(i); r[a] = 255 & s } for (i in e = "", t) e += String.fromCharCode(t[i]); return e } function H() { } function j() { this.j = this.i = 0, this.S = [] } m.prototype.chunkSize = function (e) { return Math.floor(Math.LN2 * this.DB / Math.log(e)) }, m.prototype.toRadix = function (e) { if (null == e && (e = 10), 0 == this.signum() || e < 2 || 36 < e) return "0"; var t = this.chunkSize(e), n = y(t = Math.pow(e, t)), i = p(), r = p(), a = ""; for (this.divRemTo(n, i, r); 0 < i.signum();)a = (t + r.intValue()).toString(e).substr(1) + a, i.divRemTo(n, i, r); return r.intValue().toString(e) + a }, m.prototype.fromRadix = function (e, t) { this.fromInt(0); for (var n = this.chunkSize(t = null == t ? 10 : t), i = Math.pow(t, n), r = !1, a = 0, s = 0, o = 0; o < e.length; ++o) { var u = f(e, o); u < 0 ? "-" == e.charAt(o) && 0 == this.signum() && (r = !0) : (s = t * s + u, ++a >= n && (this.dMultiply(i), this.dAddOffset(s, 0), s = a = 0)) } 0 < a && (this.dMultiply(Math.pow(t, a)), this.dAddOffset(s, 0)), r && m.ZERO.subTo(this, this) }, m.prototype.fromNumber = function (e, t, n) { if ("number" == typeof t) if (e < 2) this.fromInt(1); else for (this.fromNumber(e, n), this.testBit(e - 1) || this.bitwiseTo(m.ONE.shiftLeft(e - 1), k, this), this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(t);)this.dAddOffset(2, 0), this.bitLength() > e && this.subTo(m.ONE.shiftLeft(e - 1), this); else { var i = 7 & e; (n = []).length = 1 + (e >> 3), t.nextBytes(n), 0 < i ? n[0] &= (1 << i) - 1 : n[0] = 0, this.fromString(n, 256) } }, m.prototype.bitwiseTo = function (e, t, n) { for (var i, r = Math.min(e.t, this.t), a = 0; a < r; ++a)n[a] = t(this[a], e[a]); if (e.t < this.t) { for (i = e.s & this.DM, a = r; a < this.t; ++a)n[a] = t(this[a], i); n.t = this.t } else { for (i = this.s & this.DM, a = r; a < e.t; ++a)n[a] = t(i, e[a]); n.t = e.t } n.s = t(this.s, e.s), n.clamp() }, m.prototype.changeBit = function (e, t) { return e = m.ONE.shiftLeft(e), this.bitwiseTo(e, t, e), e }, m.prototype.addTo = function (e, t) { for (var n = 0, i = 0, r = Math.min(e.t, this.t); n < r;)i += this[n] + e[n], t[n++] = i & this.DM, i >>= this.DB; if (e.t < this.t) { for (i += e.s; n < this.t;)i += this[n], t[n++] = i & this.DM, i >>= this.DB; i += this.s } else { for (i += this.s; n < e.t;)i += e[n], t[n++] = i & this.DM, i >>= this.DB; i += e.s } t.s = i < 0 ? -1 : 0, 0 < i ? t[n++] = i : i < -1 && (t[n++] = this.DV + i), t.t = n, t.clamp() }, m.prototype.dMultiply = function (e) { this[this.t] = this.am(0, e - 1, this, 0, 0, this.t), ++this.t, this.clamp() }, m.prototype.dAddOffset = function (e, t) { if (0 != e) { for (; this.t <= t;)this[this.t++] = 0; for (this[t] += e; this[t] >= this.DV;)this[t] -= this.DV, ++t >= this.t && (this[this.t++] = 0), ++this[t] } }, m.prototype.multiplyLowerTo = function (e, t, n) { var i, r = Math.min(this.t + e.t, t); for (n.s = 0, n.t = r; 0 < r;)n[--r] = 0; for (i = n.t - this.t; r < i; ++r)n[r + this.t] = this.am(0, e[r], n, r, 0, this.t); for (i = Math.min(e.t, t); r < i; ++r)this.am(0, e[r], n, r, 0, t - r); n.clamp() }, m.prototype.multiplyUpperTo = function (e, t, n) { var i = n.t = this.t + e.t - --t; for (n.s = 0; 0 <= --i;)n[i] = 0; for (i = Math.max(t - this.t, 0); i < e.t; ++i)n[this.t + i - t] = this.am(t - i, e[i], n, 0, 0, this.t + i - t); n.clamp(), n.drShiftTo(1, n) }, m.prototype.modInt = function (e) { if (e <= 0) return 0; var t = this.DV % e, n = this.s < 0 ? e - 1 : 0; if (0 < this.t) if (0 == t) n = this[0] % e; else for (var i = this.t - 1; 0 <= i; --i)n = (t * n + this[i]) % e; return n }, m.prototype.millerRabin = function (e) { var t = this.subtract(m.ONE), n = t.getLowestSetBit(); if (n <= 0) return !1; var i = t.shiftRight(n), e = e + 1 >> 1; x.length < e && (e = x.length); for (var r = p(), a = 0; a < e; ++a) { r.fromInt(x[Math.floor(Math.random() * x.length)]); var s = r.modPow(i, this); if (0 != s.compareTo(m.ONE) && 0 != s.compareTo(t)) { for (var o = 1; o++ < n && 0 != s.compareTo(t);)if (0 == (s = s.modPowInt(2, this)).compareTo(m.ONE)) return !1; if (0 != s.compareTo(t)) return !1 } } return !0 }, m.prototype.clone = function () { var e = p(); return this.copyTo(e), e }, m.prototype.intValue = function () { if (this.s < 0) { if (1 == this.t) return this[0] - this.DV; if (0 == this.t) return -1 } else { if (1 == this.t) return this[0]; if (0 == this.t) return 0 } return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0] }, m.prototype.byteValue = function () { return 0 == this.t ? this.s : this[0] << 24 >> 24 }, m.prototype.shortValue = function () { return 0 == this.t ? this.s : this[0] << 16 >> 16 }, m.prototype.signum = function () { return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this[0] <= 0 ? 0 : 1 }, m.prototype.toByteArray = function () { var e = this.t, t = []; t[0] = this.s; var n, i = this.DB - e * this.DB % 8, r = 0; if (0 < e--) for (i < this.DB && (n = this[e] >> i) != (this.s & this.DM) >> i && (t[r++] = n | this.s << this.DB - i); 0 <= e;)i < 8 ? (n = (this[e] & (1 << i) - 1) << 8 - i, n |= this[--e] >> (i += this.DB - 8)) : (n = this[e] >> (i -= 8) & 255, i <= 0 && (i += this.DB, --e)), 0 != (128 & n) && (n |= -256), 0 == r && (128 & this.s) != (128 & n) && ++r, (0 < r || n != this.s) && (t[r++] = n); return t }, m.prototype.equals = function (e) { return 0 == this.compareTo(e) }, m.prototype.min = function (e) { return this.compareTo(e) < 0 ? this : e }, m.prototype.max = function (e) { return 0 < this.compareTo(e) ? this : e }, m.prototype.and = function (e) { var t = p(); return this.bitwiseTo(e, S, t), t }, m.prototype.or = function (e) { var t = p(); return this.bitwiseTo(e, k, t), t }, m.prototype.xor = function (e) { var t = p(); return this.bitwiseTo(e, b, t), t }, m.prototype.andNot = function (e) { var t = p(); return this.bitwiseTo(e, w, t), t }, m.prototype.not = function () { for (var e = p(), t = 0; t < this.t; ++t)e[t] = this.DM & ~this[t]; return e.t = this.t, e.s = ~this.s, e }, m.prototype.shiftLeft = function (e) { var t = p(); return e < 0 ? this.rShiftTo(-e, t) : this.lShiftTo(e, t), t }, m.prototype.shiftRight = function (e) { var t = p(); return e < 0 ? this.lShiftTo(-e, t) : this.rShiftTo(e, t), t }, m.prototype.getLowestSetBit = function () { for (var e = 0; e < this.t; ++e)if (0 != this[e]) return e * this.DB + function (e) { if (0 == e) return -1; var t = 0; return 0 == (65535 & e) && (e >>= 16, t += 16), 0 == (255 & e) && (e >>= 8, t += 8), 0 == (15 & e) && (e >>= 4, t += 4), 0 == (3 & e) && (e >>= 2, t += 2), 0 == (1 & e) && ++t, t }(this[e]); return this.s < 0 ? this.t * this.DB : -1 }, m.prototype.bitCount = function () { for (var e = 0, t = this.s & this.DM, n = 0; n < this.t; ++n)e += function (e) { for (var t = 0; 0 != e;)e &= e - 1, ++t; return t }(this[n] ^ t); return e }, m.prototype.testBit = function (e) { var t = Math.floor(e / this.DB); return t >= this.t ? 0 != this.s : 0 != (this[t] & 1 << e % this.DB) }, m.prototype.setBit = function (e) { return this.changeBit(e, k) }, m.prototype.clearBit = function (e) { return this.changeBit(e, w) }, m.prototype.flipBit = function (e) { return this.changeBit(e, b) }, m.prototype.add = function (e) { var t = p(); return this.addTo(e, t), t }, m.prototype.subtract = function (e) { var t = p(); return this.subTo(e, t), t }, m.prototype.multiply = function (e) { var t = p(); return this.multiplyTo(e, t), t }, m.prototype.divide = function (e) { var t = p(); return this.divRemTo(e, t, null), t }, m.prototype.remainder = function (e) { var t = p(); return this.divRemTo(e, null, t), t }, m.prototype.divideAndRemainder = function (e) { var t = p(), n = p(); return this.divRemTo(e, t, n), [t, n] }, m.prototype.modPow = function (e, t) { var n = e.bitLength(), i = y(1); if (n <= 0) return i; var r = n < 18 ? 1 : n < 48 ? 3 : n < 144 ? 4 : n < 768 ? 5 : 6, a = new (n < 8 ? M : t.isEven() ? E : L)(t), s = [], o = 3, u = r - 1, d = (1 << r) - 1; if (s[1] = a.convert(this), 1 < r) for (n = p(), a.sqrTo(s[1], n); o <= d;)s[o] = p(), a.mulTo(n, s[o - 2], s[o]), o += 2; for (var l, h = e.t - 1, c = !0, _ = p(), n = g(e[h]) - 1; 0 <= h;) { for (u <= n ? l = e[h] >> n - u & d : (l = (e[h] & (1 << n + 1) - 1) << u - n, 0 < h && (l |= e[h - 1] >> this.DB + n - u)), o = r; 0 == (1 & l);)l >>= 1, --o; if ((n -= o) < 0 && (n += this.DB, --h), c) s[l].copyTo(i), c = !1; else { for (; 1 < o;)a.sqrTo(i, _), a.sqrTo(_, i), o -= 2; 0 < o ? a.sqrTo(i, _) : (o = i, i = _, _ = o), a.mulTo(_, s[l], i) } for (; 0 <= h && 0 == (e[h] & 1 << n);)a.sqrTo(i, _), o = i, i = _, _ = o, --n < 0 && (n = this.DB - 1, --h) } return a.revert(i) }, m.prototype.modInverse = function (e) { var t = e.isEven(); if (this.isEven() && t || 0 == e.signum()) return m.ZERO; for (var n = e.clone(), i = this.clone(), r = y(1), a = y(0), s = y(0), o = y(1); 0 != n.signum();) { for (; n.isEven();)n.rShiftTo(1, n), t ? (r.isEven() && a.isEven() || (r.addTo(this, r), a.subTo(e, a)), r.rShiftTo(1, r)) : a.isEven() || a.subTo(e, a), a.rShiftTo(1, a); for (; i.isEven();)i.rShiftTo(1, i), t ? (s.isEven() && o.isEven() || (s.addTo(this, s), o.subTo(e, o)), s.rShiftTo(1, s)) : o.isEven() || o.subTo(e, o), o.rShiftTo(1, o); 0 <= n.compareTo(i) ? (n.subTo(i, n), t && r.subTo(s, r), a.subTo(o, a)) : (i.subTo(n, i), t && s.subTo(r, s), o.subTo(a, o)) } return 0 != i.compareTo(m.ONE) ? m.ZERO : 0 <= o.compareTo(e) ? o.subtract(e) : o.signum() < 0 ? (o.addTo(e, o), o.signum() < 0 ? o.add(e) : o) : o }, m.prototype.pow = function (e) { return this.exp(e, new D) }, m.prototype.gcd = function (e) { var t = this.s < 0 ? this.negate() : this.clone(), e = e.s < 0 ? e.negate() : e.clone(); t.compareTo(e) < 0 && (n = t, t = e, e = n); var n = t.getLowestSetBit(), i = e.getLowestSetBit(); if (i < 0) return t; for (0 < (i = n < i ? n : i) && (t.rShiftTo(i, t), e.rShiftTo(i, e)); 0 < t.signum();)0 < (n = t.getLowestSetBit()) && t.rShiftTo(n, t), 0 < (n = e.getLowestSetBit()) && e.rShiftTo(n, e), 0 <= t.compareTo(e) ? (t.subTo(e, t), t.rShiftTo(1, t)) : (e.subTo(t, e), e.rShiftTo(1, e)); return 0 < i && e.lShiftTo(i, e), e }, m.prototype.isProbablePrime = function (e) { var t, n = this.abs(); if (1 == n.t && n[0] <= x[x.length - 1]) { for (t = 0; t < x.length; ++t)if (n[0] == x[t]) return !0; return !1 } if (n.isEven()) return !1; for (t = 1; t < x.length;) { for (var i = x[t], r = t + 1; r < x.length && i < O;)i *= x[r++]; for (i = n.modInt(i); t < r;)if (i % x[t++] == 0) return !1 } return n.millerRabin(e) }, m.prototype.square = function () { var e = p(); return this.squareTo(e), e }, Y = [], P = Math, C = 52, P.seedrandom = function (e, t) { var n = [], e = W(function e(t, n, i, r, a) { if (i = [], a = void 0 === t ? "undefined" : (0, s.default)(t), n && "object" == a) for (r in t) if (r.indexOf("S") < 5) try { i.push(e(t[r], n - 1)) } catch (e) { } return i.length ? i : t + ("string" != a ? "\0" : "") }(t ? [e, Y] : arguments.length ? e : [(new Date).getTime(), Y, window], 3), n), i = new I(n); return W(i.S, Y), P.random = function () { for (var e = i.g(6), t = R, n = 0; e < C;)e = 256 * (e + n), t *= 256, n = i.g(1); for (; A <= e;)e /= 2, t /= 2, n >>>= 1; return (e + n) / t }, e }, R = P.pow(256, 6), C = P.pow(2, C), A = 2 * C, W(P.random(), Y), H.prototype.nextBytes = function (e) { for (var t = 0; t < e.length; t++)e[t] = Math.floor(256 * Math.random()) }, j.prototype.init = function (e) { for (var t, n, i = 0; i < 256; ++i)this.S[i] = i; for (i = t = 0; i < 256; ++i)t = t + this.S[i] + e[i % e.length] & 255, n = this.S[i], this.S[i] = this.S[t], this.S[t] = n; this.j = this.i = 0 }, j.prototype.next = function () { var e; return this.i = this.i + 1 & 255, this.j = this.j + this.S[this.i] & 255, e = this.S[this.i], this.S[this.i] = this.S[this.j], this.S[this.j] = e, this.S[e + this.S[this.i] & 255] }; var F, B = 256; function N() { var e; e = (new Date).getTime(), z[U++] ^= 255 & e, z[U++] ^= e >> 8 & 255, z[U++] ^= e >> 16 & 255, z[U++] ^= e >> 24 & 255, B <= U && (U -= B) } if (null == z) { var z = [], U = 0; if ("Netscape" == o && u < "5" && window.crypto) for (var V = window.crypto.random(32), G = 0; G < V.length; ++G)z[U++] = 255 & V.charCodeAt(G); for (; U < B;)G = Math.floor(65536 * Math.random()), z[U++] = G >>> 8, z[U++] = 255 & G; U = 0, N() } function J() { if (null == F) { for (N(), (F = new j).init(z), U = 0; U < z.length; ++U)z[U] = 0; U = 0 } return F.next() } function q() { } q.prototype.nextBytes = function (e) { for (var t = 0; t < e.length; ++t)e[t] = J() }; var K = function (e) { return function (e) { for (var t = "", n = 0; n < 4 * e.length; n++)t += "0123456789abcdef".charAt(e[n >> 2] >> 8 * (3 - n % 4) + 4 & 15) + "0123456789abcdef".charAt(e[n >> 2] >> 8 * (3 - n % 4) & 15); return t }(function (e, t) { var n, i, r, a, s, o, u, d, l, h, c, _, f = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298], m = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225], p = Array(64); for (e[t >> 5] |= 128 << 24 - t % 32, e[15 + (64 + t >> 9 << 4)] = t, l = 0; l < e.length; l += 16) { for (n = m[0], i = m[1], r = m[2], a = m[3], s = m[4], o = m[5], u = m[6], d = m[7], h = 0; h < 64; h++)p[h] = h < 16 ? e[h + l] : y(y(y(v(p[h - 2], 17) ^ v(p[h - 2], 19) ^ p[h - 2] >>> 10, p[h - 7]), v(p[h - 15], 7) ^ v(p[h - 15], 18) ^ p[h - 15] >>> 3), p[h - 16]), c = y(y(y(y(d, v(s, 6) ^ v(s, 11) ^ v(s, 25)), s & o ^ ~s & u), f[h]), p[h]), _ = y(v(n, 2) ^ v(n, 13) ^ v(n, 22), n & i ^ n & r ^ i & r), d = u, u = o, o = s, s = y(a, c), a = r, r = i, i = n, n = y(c, _); m[0] = y(n, m[0]), m[1] = y(i, m[1]), m[2] = y(r, m[2]), m[3] = y(a, m[3]), m[4] = y(s, m[4]), m[5] = y(o, m[5]), m[6] = y(u, m[6]), m[7] = y(d, m[7]) } return m }(function (e) { for (var t = [], n = 0; n < 8 * e.length; n += 8)t[n >> 5] |= (255 & e.charCodeAt(n / 8)) << 24 - n % 32; return t }(e = function (e) { for (var e = e.replace(/\r\n/g, "\n"), t = "", n = 0; n < e.length; n++) { var i = e.charCodeAt(n); i < 128 ? t += String.fromCharCode(i) : (127 < i && i < 2048 ? t += String.fromCharCode(i >> 6 | 192) : (t += String.fromCharCode(i >> 12 | 224), t += String.fromCharCode(i >> 6 & 63 | 128)), t += String.fromCharCode(63 & i | 128)) } return t }(e = e)), 8 * e.length)); function y(e, t) { var n = (65535 & e) + (65535 & t); return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n } function v(e, t) { return e >>> t | e << 32 - t } }; u = function (e) { function t(e, t) { return e << t | e >>> 32 - t } function n(e) { for (var t = "", n = 7; 0 <= n; n--)t += (e >>> 4 * n & 15).toString(16); return t } for (var i, r, a, s, o, u = Array(80), d = 1732584193, l = 4023233417, h = 2562383102, c = 271733878, _ = 3285377520, f = (e = function (e) { for (var e = e.replace(/\r\n/g, "\n"), t = "", n = 0; n < e.length; n++) { var i = e.charCodeAt(n); i < 128 ? t += String.fromCharCode(i) : (127 < i && i < 2048 ? t += String.fromCharCode(i >> 6 | 192) : (t += String.fromCharCode(i >> 12 | 224), t += String.fromCharCode(i >> 6 & 63 | 128)), t += String.fromCharCode(63 & i | 128)) } return t }(e)).length, m = [], p = 0; p < f - 3; p += 4)i = e.charCodeAt(p) << 24 | e.charCodeAt(p + 1) << 16 | e.charCodeAt(p + 2) << 8 | e.charCodeAt(p + 3), m.push(i); switch (f % 4) { case 0: p = 2147483648; break; case 1: p = e.charCodeAt(f - 1) << 24 | 8388608; break; case 2: p = e.charCodeAt(f - 2) << 24 | e.charCodeAt(f - 1) << 16 | 32768; break; case 3: p = e.charCodeAt(f - 3) << 24 | e.charCodeAt(f - 2) << 16 | e.charCodeAt(f - 1) << 8 | 128 }for (m.push(p); m.length % 16 != 14;)m.push(0); for (m.push(f >>> 29), m.push(f << 3 & 4294967295), e = 0; e < m.length; e += 16) { for (p = 0; p < 16; p++)u[p] = m[e + p]; for (p = 16; p <= 79; p++)u[p] = t(u[p - 3] ^ u[p - 8] ^ u[p - 14] ^ u[p - 16], 1); for (i = d, f = l, r = h, a = c, s = _, p = 0; p <= 19; p++)o = t(i, 5) + (f & r | ~f & a) + s + u[p] + 1518500249 & 4294967295, s = a, a = r, r = t(f, 30), f = i, i = o; for (p = 20; p <= 39; p++)o = t(i, 5) + (f ^ r ^ a) + s + u[p] + 1859775393 & 4294967295, s = a, a = r, r = t(f, 30), f = i, i = o; for (p = 40; p <= 59; p++)o = t(i, 5) + (f & r | f & a | r & a) + s + u[p] + 2400959708 & 4294967295, s = a, a = r, r = t(f, 30), f = i, i = o; for (p = 60; p <= 79; p++)o = t(i, 5) + (f ^ r ^ a) + s + u[p] + 3395469782 & 4294967295, s = a, a = r, r = t(f, 30), f = i, i = o; d = d + i & 4294967295, l = l + f & 4294967295, h = h + r & 4294967295, c = c + a & 4294967295, _ = _ + s & 4294967295 } return (o = n(d) + n(l) + n(h) + n(c) + n(_)).toLowerCase() }; function X(e, t) { return new m(e, t) } function Z() { this.n = null, this.e = 0, this.coeff = this.dmq1 = this.dmp1 = this.q = this.p = this.d = null } Z.prototype.doPublic = function (e) { return e.modPowInt(this.e, this.n) }, Z.prototype.setPublic = function (e, t) { null != e && null != t && 0 < e.length && 0 < t.length ? (this.n = X(e, 16), this.e = parseInt(t, 16)) : alert("Invalid RSA public key") }, Z.prototype.encrypt = function (e) { return null == (e = function (e, t) { if (t < e.length + 11) throw "Message too long for RSA (n=" + t + ", l=" + e.length + ")"; for (var n = [], i = e.length - 1; 0 <= i && 0 < t;) { var r = e.charCodeAt(i--); r < 128 ? n[--t] = r : 127 < r && r < 2048 ? (n[--t] = 63 & r | 128, n[--t] = r >> 6 | 192) : (n[--t] = 63 & r | 128, n[--t] = r >> 6 & 63 | 128, n[--t] = r >> 12 | 224) } for (n[--t] = 0, i = new q, r = []; 2 < t;) { for (r[0] = 0; 0 == r[0];)i.nextBytes(r); n[--t] = r[0] } return n[--t] = 2, n[--t] = 0, new m(n) }(e, this.n.bitLength() + 7 >> 3)) || null == (e = this.doPublic(e)) ? null : 0 == (1 & (e = e.toString(16)).length) ? e : "0" + e }, Z.prototype.doPrivate = function (e) { if (null == this.p || null == this.q) return e.modPow(this.d, this.n); for (var t = e.mod(this.p).modPow(this.dmp1, this.p), e = e.mod(this.q).modPow(this.dmq1, this.q); t.compareTo(e) < 0;)t = t.add(this.p); return t.subtract(e).multiply(this.coeff).mod(this.p).multiply(this.q).add(e) }, Z.prototype.setPrivate = function (e, t, n) { null != e && null != t && 0 < e.length && 0 < t.length ? (this.n = X(e, 16), this.e = parseInt(t, 16), this.d = X(n, 16)) : alert("Invalid RSA private key") }, Z.prototype.setPrivateEx = function (e, t, n, i, r, a, s, o) { null != e && null != t && 0 < e.length && 0 < t.length ? (this.n = X(e, 16), this.e = parseInt(t, 16), this.d = X(n, 16), this.p = X(i, 16), this.q = X(r, 16), this.dmp1 = X(a, 16), this.dmq1 = X(s, 16), this.coeff = X(o, 16)) : alert("Invalid RSA private key") }, Z.prototype.generate = function (e, t) { var n = new H, i = e >> 1; this.e = parseInt(t, 16); for (var r = new m(t, 16); ;) { for (; this.p = new m(e - i, 1, n), 0 != this.p.subtract(m.ONE).gcd(r).compareTo(m.ONE) || !this.p.isProbablePrime(10);); for (; this.q = new m(i, 1, n), 0 != this.q.subtract(m.ONE).gcd(r).compareTo(m.ONE) || !this.q.isProbablePrime(10);); this.p.compareTo(this.q) <= 0 && (a = this.p, this.p = this.q, this.q = a); var a = this.p.subtract(m.ONE), s = this.q.subtract(m.ONE), o = a.multiply(s); if (0 == o.gcd(r).compareTo(m.ONE)) { this.n = this.p.multiply(this.q), this.d = r.modInverse(o), this.dmp1 = this.d.mod(a), this.dmq1 = this.d.mod(s), this.coeff = this.q.modInverse(this.p); break } } }, Z.prototype.decrypt = function (e) { return null == (e = this.doPrivate(X(e, 16))) ? null : function (e, t) { for (var n = e.toByteArray(), i = 0; i < n.length && 0 == n[i];)++i; if (n.length - i != t - 1 || 2 != n[i]) return null; for (++i; 0 != n[i];)if (++i >= n.length) return null; for (var r = ""; ++i < n.length;) { var a = 255 & n[i]; a < 128 ? r += String.fromCharCode(a) : 191 < a && a < 224 ? (r += String.fromCharCode((31 & a) << 6 | 63 & n[i + 1]), ++i) : (r += String.fromCharCode((15 & a) << 12 | (63 & n[i + 1]) << 6 | 63 & n[i + 2]), i += 2) } return r }(e, this.n.bitLength() + 7 >> 3) }; var $ = []; $.sha1 = "3021300906052b0e03021a05000414", $.sha256 = "3031300d060960864801650304020105000420"; var Q = []; function ee(e, t, n) { t /= 4; for (var e = (0, Q[n])(e), n = "00" + $[n] + e, e = "", t = t - 4 - n.length, i = 0; i < t; i += 2)e += "ff"; return sPaddedMessageHex = "0001" + e + n } function te(e, t, n) { return i = e, e = t, t = n, (n = new Z).setPublic(e, t), n.doPublic(i).toString(16).replace(/^1f+00/, ""); var i } function ne(e) { for (var t in $) { var n = $[t], i = n.length; if (e.substring(0, i) == n) return [t, e.substring(i)] } return [] } Q.sha1 = u, Q.sha256 = K, Z.prototype.signString = function (e, t) { return t = ee(e, this.n.bitLength(), t), this.doPrivate(X(t, 16)).toString(16) }, Z.prototype.signStringWithSHA1 = function (e) { return e = ee(e, this.n.bitLength(), "sha1"), this.doPrivate(X(e, 16)).toString(16) }, Z.prototype.signStringWithSHA256 = function (e) { return e = ee(e, this.n.bitLength(), "sha256"), this.doPrivate(X(e, 16)).toString(16) }, Z.prototype.verifyString = function (e, t) { return t = t.replace(/[ \n]+/g, ""), 0 != (t = ne(this.doPublic(X(t, 16)).toString(16).replace(/^1f+00/, ""))).length && t[1] == (t = (0, Q[t[0]])(e)) }, Z.prototype.verifyHexSignatureForMessage = function (e, t) { var n, i = X(e, 16); return n = t, e = i, t = this.n.toString(16), i = this.e.toString(16), 0 != (t = ne(e = te(e, t, i))).length && (e = t[1]) == (n = (0, Q[t[0]])(n)) }; var ie, re, ae = re = { Sbox: [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22], ShiftRowTab: [0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 1, 6, 11], Init: function () { re.Sbox_Inv = Array(256); for (var e = 0; e < 256; e++)re.Sbox_Inv[re.Sbox[e]] = e; for (re.ShiftRowTab_Inv = Array(16), e = 0; e < 16; e++)re.ShiftRowTab_Inv[re.ShiftRowTab[e]] = e; for (re.xtime = Array(256), e = 0; e < 128; e++)re.xtime[e] = e << 1, re.xtime[128 + e] = e << 1 ^ 27 }, Done: function () { delete re.Sbox_Inv, delete re.ShiftRowTab_Inv, delete re.xtime }, ExpandKey: function (e) { var t, n = e.length, i = 1; switch (n) { case 16: t = 176; break; case 24: t = 208; break; case 32: t = 240; break; default: alert("my.ExpandKey: Only key lengths of 16, 24 or 32 bytes allowed!") }for (var r = n; r < t; r += 4) { var a = e.slice(r - 4, r); r % n == 0 ? (a = [re.Sbox[a[1]] ^ i, re.Sbox[a[2]], re.Sbox[a[3]], re.Sbox[a[0]]], 256 <= (i <<= 1) && (i ^= 283)) : 24 < n && r % n == 16 && (a = [re.Sbox[a[0]], re.Sbox[a[1]], re.Sbox[a[2]], re.Sbox[a[3]]]); for (var s = 0; s < 4; s++)e[r + s] = e[r + s - n] ^ a[s] } }, Encrypt: function (e, t) { var n = t.length; re.AddRoundKey(e, t.slice(0, 16)); for (var i = 16; i < n - 16; i += 16)re.SubBytes(e, re.Sbox), re.ShiftRows(e, re.ShiftRowTab), re.MixColumns(e), re.AddRoundKey(e, t.slice(i, i + 16)); re.SubBytes(e, re.Sbox), re.ShiftRows(e, re.ShiftRowTab), re.AddRoundKey(e, t.slice(i, n)) }, Decrypt: function (e, t) { var n = t.length; for (re.AddRoundKey(e, t.slice(n - 16, n)), re.ShiftRows(e, re.ShiftRowTab_Inv), re.SubBytes(e, re.Sbox_Inv), n -= 32; 16 <= n; n -= 16)re.AddRoundKey(e, t.slice(n, n + 16)), re.MixColumns_Inv(e), re.ShiftRows(e, re.ShiftRowTab_Inv), re.SubBytes(e, re.Sbox_Inv); re.AddRoundKey(e, t.slice(0, 16)) }, SubBytes: function (e, t) { for (var n = 0; n < 16; n++)e[n] = t[e[n]] }, AddRoundKey: function (e, t) { for (var n = 0; n < 16; n++)e[n] ^= t[n] }, ShiftRows: function (e, t) { for (var n = [].concat(e), i = 0; i < 16; i++)e[i] = n[t[i]] }, MixColumns: function (e) { for (var t = 0; t < 16; t += 4) { var n = e[t + 0], i = e[t + 1], r = e[t + 2], a = e[t + 3], s = n ^ i ^ r ^ a; e[t + 0] ^= s ^ re.xtime[n ^ i], e[t + 1] ^= s ^ re.xtime[i ^ r], e[t + 2] ^= s ^ re.xtime[r ^ a], e[t + 3] ^= s ^ re.xtime[a ^ n] } }, MixColumns_Inv: function (e) { for (var t = 0; t < 16; t += 4) { var n = e[t + 0], i = e[t + 1], r = e[t + 2], a = e[t + 3], s = n ^ i ^ r ^ a, o = re.xtime[s], u = re.xtime[re.xtime[o ^ n ^ r]] ^ s; s ^= re.xtime[re.xtime[o ^ i ^ a]], e[t + 0] ^= u ^ re.xtime[n ^ i], e[t + 1] ^= s ^ re.xtime[i ^ r], e[t + 2] ^= u ^ re.xtime[r ^ a], e[t + 3] ^= s ^ re.xtime[a ^ n] } } }, u = (ie = {}, ae.Init(), ie.b256to64 = function (e) { for (var t, n, i = "", r = 0, a = e.length, s = 0; s < a; s++)n = e.charCodeAt(s), 0 == r ? (i += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n >> 2 & 63), t = (3 & n) << 4) : 1 == r ? (i += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t | n >> 4 & 15), t = (15 & n) << 2) : 2 == r && (i += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t | n >> 6 & 3), i += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(63 & n)), 3 == (r += 1) && (r = 0); return 0 < r && (i += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t), i += "="), 1 == r && (i += "="), i }, ie.b64to256 = function (e) { for (var t, n = "", i = 0, r = 0, a = e.length, s = 0; s < a; s++)0 <= (t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(e.charAt(s))) && (i && (n += String.fromCharCode(r | t >> 6 - i & 255)), r = t << (i = i + 2 & 7) & 255); return n }, ie.b16to64 = function (e) { var t, n, i = ""; for (e.length % 2 == 1 && (e = "0" + e), t = 0; t + 3 <= e.length; t += 3)n = parseInt(e.substring(t, t + 3), 16), i += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n >> 6) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(63 & n); for (t + 1 == e.length ? (n = parseInt(e.substring(t, t + 1), 16), i += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n << 2)) : t + 2 == e.length && (n = parseInt(e.substring(t, t + 2), 16), i += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(n >> 2) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((3 & n) << 4)); 0 < (3 & i.length);)i += "="; return i }, ie.b64to16 = function (e) { for (var t, n = "", i = 0, r = 0; r < e.length && "=" != e.charAt(r); ++r)v = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(e.charAt(r)), v < 0 || (i = 0 == i ? (n += _(v >> 2), t = 3 & v, 1) : 1 == i ? (n += _(t << 2 | v >> 4), t = 15 & v, 2) : 2 == i ? (n += _(t), n += _(v >> 2), t = 3 & v, 3) : (n += _(t << 2 | v >> 4), n += _(15 & v), 0)); return 1 == i && (n += _(t << 2)), n }, ie.string2bytes = function (e) { for (var t = [], n = 0; n < e.length; n++)t.push(e.charCodeAt(n)); return t }, ie.bytes2string = function (e) { for (var t = "", n = 0; n < e.length; n++)t += String.fromCharCode(e[n]); return t }, ie.blockXOR = function (e, t) { for (var n = Array(16), i = 0; i < 16; i++)n[i] = e[i] ^ t[i]; return n }, ie.blockIV = function () { var e = new q, t = Array(16); return e.nextBytes(t), t }, ie.pad16 = function (e) { var t = e.slice(0), n = (16 - e.length % 16) % 16; for (i = e.length; i < e.length + n; i++)t.push(0); return t }, ie.depad = function (e) { for (e = e.slice(0); 0 == e[e.length - 1];)e = e.slice(0, e.length - 1); return e }, ie.encryptAESCBC = function (e, t) { var n = t.slice(0); ae.ExpandKey(n); for (var i = ie.string2bytes(e), i = ie.pad16(i), r = ie.blockIV(), a = 0; a < i.length / 16; a++) { var s = i.slice(16 * a, 16 * a + 16), o = r.slice(16 * a, 16 * a + 16), s = ie.blockXOR(o, s); ae.Encrypt(s, n), r = r.concat(s) } return n = ie.bytes2string(r), ie.b256to64(n) }, ie.decryptAESCBC = function (e, t) { var n = t.slice(0); ae.ExpandKey(n); for (var e = ie.b64to256(e), i = ie.string2bytes(e), r = [], a = 1; a < i.length / 16; a++) { var s = i.slice(16 * a, 16 * a + 16), o = i.slice(16 * (a - 1), 16 * (a - 1) + 16); ae.Decrypt(s, n), s = ie.blockXOR(o, s), r = r.concat(s) } return r = ie.depad(r), ie.bytes2string(r) }, ie.wrap60 = function (e) { for (var t = "", n = 0; n < e.length; n++)n % 60 == 0 && 0 != n && (t += "\n"), t += e[n]; return t }, ie.generateAESKey = function () { var e = Array(16); return (new q).nextBytes(e), e }, ie.generateRSAKey = function (e, t) { Math.seedrandom(K(e)); e = new Z; return e.generate(t, "10001"), e }, ie.publicKeyString = function (e) { return pubkey = e.n.toString(16) }, ie.publicKeyID = function (e) { function o(e, t) { var n = 2147483648 & e, i = 2147483648 & t, r = 1073741824 & e, a = 1073741824 & t, t = (1073741823 & e) + (1073741823 & t); return r & a ? 2147483648 ^ t ^ n ^ i : r | a ? 1073741824 & t ? 3221225472 ^ t ^ n ^ i : 1073741824 ^ t ^ n ^ i : t ^ n ^ i } function t(e, t, n, i, r, a, s) { return e = o(e, o(o(t & n | ~t & i, r), s)), o(e << a | e >>> 32 - a, t) } function n(e, t, n, i, r, a, s) { return e = o(e, o(o(t & i | n & ~i, r), s)), o(e << a | e >>> 32 - a, t) } function i(e, t, n, i, r, a, s) { return e = o(e, o(o(t ^ n ^ i, r), s)), o(e << a | e >>> 32 - a, t) } function r(e, t, n, i, r, a, s) { return e = o(e, o(o(n ^ (t | ~i), r), s)), o(e << a | e >>> 32 - a, t) } function a(e) { for (var t = "", n = "", i = 0; i <= 3; i++)t += (n = "0" + (n = e >>> 8 * i & 255).toString(16)).substr(n.length - 2, 2); return t } var s, u, d, l, h = function (e) { for (var t, n = e.length, i = n + 8, r = 16 * ((i - i % 64) / 64 + 1), a = Array(r - 1), s = 0; s < n;)t = s % 4 * 8, a[(s - s % 4) / 4] |= e.charCodeAt(s) << t, s++; return a[(s - s % 4) / 4] |= 128 << s % 4 * 8, a[r - 2] = n << 3, a[r - 1] = n >>> 29, a }(e = function (e) { for (var e = e.replace(/\r\n/g, "\n"), t = "", n = 0; n < e.length; n++) { var i = e.charCodeAt(n); i < 128 ? t += String.fromCharCode(i) : (127 < i && i < 2048 ? t += String.fromCharCode(i >> 6 | 192) : (t += String.fromCharCode(i >> 12 | 224), t += String.fromCharCode(i >> 6 & 63 | 128)), t += String.fromCharCode(63 & i | 128)) } return t }(e)), c = 1732584193, _ = 4023233417, f = 2562383102, m = 271733878; for (e = 0; e < h.length; e += 16)c = t(s = c, u = _, d = f, l = m, h[e + 0], 7, 3614090360), m = t(m, c, _, f, h[e + 1], 12, 3905402710), f = t(f, m, c, _, h[e + 2], 17, 606105819), _ = t(_, f, m, c, h[e + 3], 22, 3250441966), c = t(c, _, f, m, h[e + 4], 7, 4118548399), m = t(m, c, _, f, h[e + 5], 12, 1200080426), f = t(f, m, c, _, h[e + 6], 17, 2821735955), _ = t(_, f, m, c, h[e + 7], 22, 4249261313), c = t(c, _, f, m, h[e + 8], 7, 1770035416), m = t(m, c, _, f, h[e + 9], 12, 2336552879), f = t(f, m, c, _, h[e + 10], 17, 4294925233), _ = t(_, f, m, c, h[e + 11], 22, 2304563134), c = t(c, _, f, m, h[e + 12], 7, 1804603682), m = t(m, c, _, f, h[e + 13], 12, 4254626195), f = t(f, m, c, _, h[e + 14], 17, 2792965006), c = n(c, _ = t(_, f, m, c, h[e + 15], 22, 1236535329), f, m, h[e + 1], 5, 4129170786), m = n(m, c, _, f, h[e + 6], 9, 3225465664), f = n(f, m, c, _, h[e + 11], 14, 643717713), _ = n(_, f, m, c, h[e + 0], 20, 3921069994), c = n(c, _, f, m, h[e + 5], 5, 3593408605), m = n(m, c, _, f, h[e + 10], 9, 38016083), f = n(f, m, c, _, h[e + 15], 14, 3634488961), _ = n(_, f, m, c, h[e + 4], 20, 3889429448), c = n(c, _, f, m, h[e + 9], 5, 568446438), m = n(m, c, _, f, h[e + 14], 9, 3275163606), f = n(f, m, c, _, h[e + 3], 14, 4107603335), _ = n(_, f, m, c, h[e + 8], 20, 1163531501), c = n(c, _, f, m, h[e + 13], 5, 2850285829), m = n(m, c, _, f, h[e + 2], 9, 4243563512), f = n(f, m, c, _, h[e + 7], 14, 1735328473), c = i(c, _ = n(_, f, m, c, h[e + 12], 20, 2368359562), f, m, h[e + 5], 4, 4294588738), m = i(m, c, _, f, h[e + 8], 11, 2272392833), f = i(f, m, c, _, h[e + 11], 16, 1839030562), _ = i(_, f, m, c, h[e + 14], 23, 4259657740), c = i(c, _, f, m, h[e + 1], 4, 2763975236), m = i(m, c, _, f, h[e + 4], 11, 1272893353), f = i(f, m, c, _, h[e + 7], 16, 4139469664), _ = i(_, f, m, c, h[e + 10], 23, 3200236656), c = i(c, _, f, m, h[e + 13], 4, 681279174), m = i(m, c, _, f, h[e + 0], 11, 3936430074), f = i(f, m, c, _, h[e + 3], 16, 3572445317), _ = i(_, f, m, c, h[e + 6], 23, 76029189), c = i(c, _, f, m, h[e + 9], 4, 3654602809), m = i(m, c, _, f, h[e + 12], 11, 3873151461), f = i(f, m, c, _, h[e + 15], 16, 530742520), c = r(c, _ = i(_, f, m, c, h[e + 2], 23, 3299628645), f, m, h[e + 0], 6, 4096336452), m = r(m, c, _, f, h[e + 7], 10, 1126891415), f = r(f, m, c, _, h[e + 14], 15, 2878612391), _ = r(_, f, m, c, h[e + 5], 21, 4237533241), c = r(c, _, f, m, h[e + 12], 6, 1700485571), m = r(m, c, _, f, h[e + 3], 10, 2399980690), f = r(f, m, c, _, h[e + 10], 15, 4293915773), _ = r(_, f, m, c, h[e + 1], 21, 2240044497), c = r(c, _, f, m, h[e + 8], 6, 1873313359), m = r(m, c, _, f, h[e + 15], 10, 4264355552), f = r(f, m, c, _, h[e + 6], 15, 2734768916), _ = r(_, f, m, c, h[e + 13], 21, 1309151649), c = r(c, _, f, m, h[e + 4], 6, 4149444226), m = r(m, c, _, f, h[e + 11], 10, 3174756917), f = r(f, m, c, _, h[e + 2], 15, 718787259), _ = r(_, f, m, c, h[e + 9], 21, 3951481745), c = o(c, s), _ = o(_, u), f = o(f, d), m = o(m, l); return (a(c) + a(_) + a(f) + a(m)).toLowerCase() }, ie.publicKeyFromString = function (e) { var e = e.split("|")[0], t = new Z; return t.setPublic(e, "10001"), t }, ie.encrypt = function (e, t, n) { var i = ""; try { i += ie.publicKeyFromString(t).encrypt(e) + "?" } catch (e) { return { status: "Invalid public key" } } return { status: "success", cipher: i } }, ie.decrypt = function (e, t) { e = e.split("?"); return { status: "success", plaintext: t.decrypt(e[0]), signature: "unsigned" } }, ie); e.exports = u }, function (e, t, n) { e.exports = { default: n(271), __esModule: !0 } }, function (e, t, n) { n(41), n(75), e.exports = n(57).f("iterator") }, function (e, t, n) { e.exports = { default: n(273), __esModule: !0 } }, function (e, t, n) { n(274), n(67), n(279), n(280), e.exports = n(3).Symbol }, function (e, t, n) { "use strict"; function i(e) { var t = V[e] = E(W[F]); return t._k = e, t } function r(e, t) { S(e); for (var n, i = M(t = w(t)), r = 0, a = i.length; r < a;)Q(e, n = i[r++], t[n]); return e } function a(e) { var t = z.call(this, e = D(e, !0)); return !(this === J && u(V, e) && !u(G, e)) && (!(t || !u(this, e) || !u(V, e) || u(this, B) && this[B][e]) || t) } function s(e, t) { if (e = w(e), t = D(t, !0), e !== J || !u(V, t) || u(G, t)) { var n = x(e, t); return !n || !u(V, t) || u(e, B) && e[B][t] || (n.enumerable = !0), n } } var o = n(6), u = n(18), d = n(14), l = n(8), h = n(70), c = n(275).KEY, _ = n(23), f = n(49), m = n(36), p = n(35), y = n(7), v = n(57), g = n(58), M = n(276), L = n(277), S = n(13), k = n(16), b = n(24), w = n(19), D = n(45), T = n(28), E = n(46), Y = n(278), P = n(60), C = n(59), A = n(12), R = n(30), x = P.f, O = A.f, I = Y.f, W = o.Symbol, H = o.JSON, j = H && H.stringify, F = "prototype", B = y("_hidden"), N = y("toPrimitive"), z = {}.propertyIsEnumerable, U = f("symbol-registry"), V = f("symbols"), G = f("op-symbols"), J = Object[F], q = "function" == typeof W && !!C.f, K = o.QObject, X = !K || !K[F] || !K[F].findChild, Z = d && _(function () { return 7 != E(O({}, "a", { get: function () { return O(this, "a", { value: 7 }).a } })).a }) ? function (e, t, n) { var i = x(J, t); i && delete J[t], O(e, t, n), i && e !== J && O(J, t, i) } : O, $ = q && "symbol" == typeof W.iterator ? function (e) { return "symbol" == typeof e } : function (e) { return e instanceof W }, Q = function (e, t, n) { return e === J && Q(G, t, n), S(e), t = D(t, !0), S(n), u(V, t) ? (n.enumerable ? (u(e, B) && e[B][t] && (e[B][t] = !1), n = E(n, { enumerable: T(0, !1) })) : (u(e, B) || O(e, B, T(1, {})), e[B][t] = !0), Z(e, t, n)) : O(e, t, n) }, f = function (e) { for (var t, n = I(w(e)), i = [], r = 0; n.length > r;)u(V, t = n[r++]) || t == B || t == c || i.push(t); return i }, K = function (e) { for (var t, n = e === J, i = I(n ? G : w(e)), r = [], a = 0; i.length > a;)!u(V, t = i[a++]) || n && !u(J, t) || r.push(V[t]); return r }; q || (h((W = function () { if (this instanceof W) throw TypeError("Symbol is not a constructor!"); var t = p(0 < arguments.length ? arguments[0] : void 0), n = function (e) { this === J && n.call(G, e), u(this, B) && u(this[B], t) && (this[B][t] = !1), Z(this, t, T(1, e)) }; return d && X && Z(J, t, { configurable: !0, set: n }), i(t) })[F], "toString", function () { return this._k }), P.f = s, A.f = Q, n(90).f = Y.f = f, n(37).f = a, C.f = K, d && !n(27) && h(J, "propertyIsEnumerable", a, !0), v.f = function (e) { return i(y(e)) }), l(l.G + l.W + l.F * !q, { Symbol: W }); for (var ee = "hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","), te = 0; ee.length > te;)y(ee[te++]); for (var ne = R(y.store), ie = 0; ne.length > ie;)g(ne[ie++]); l(l.S + l.F * !q, "Symbol", { for: function (e) { return u(U, e += "") ? U[e] : U[e] = W(e) }, keyFor: function (e) { if (!$(e)) throw TypeError(e + " is not a symbol!"); for (var t in U) if (U[t] === e) return t }, useSetter: function () { X = !0 }, useSimple: function () { X = !1 } }), l(l.S + l.F * !q, "Object", { create: function (e, t) { return void 0 === t ? E(e) : r(E(e), t) }, defineProperty: Q, defineProperties: r, getOwnPropertyDescriptor: s, getOwnPropertyNames: f, getOwnPropertySymbols: K }); K = _(function () { C.f(1) }); l(l.S + l.F * K, "Object", { getOwnPropertySymbols: function (e) { return C.f(b(e)) } }), H && l(l.S + l.F * (!q || _(function () { var e = W(); return "[null]" != j([e]) || "{}" != j({ a: e }) || "{}" != j(Object(e)) })), "JSON", { stringify: function (e) { for (var t, n, i = [e], r = 1; r < arguments.length;)i.push(arguments[r++]); if (n = t = i[1], (k(t) || void 0 !== e) && !$(e)) return L(t) || (t = function (e, t) { if ("function" == typeof n && (t = n.call(this, e, t)), !$(t)) return t }), i[1] = t, j.apply(H, i) } }), W[F][N] || n(17)(W[F], N, W[F].valueOf), m(W, "Symbol"), m(Math, "Math", !0), m(o.JSON, "JSON", !0) }, function (e, t, n) { function i(e) { o(e, r, { value: { i: "O" + ++u, w: {} } }) } var r = n(35)("meta"), a = n(16), s = n(18), o = n(12).f, u = 0, d = Object.isExtensible || function () { return !0 }, l = !n(23)(function () { return d(Object.preventExtensions({})) }), h = e.exports = { KEY: r, NEED: !1, fastKey: function (e, t) { if (!a(e)) return "symbol" == typeof e ? e : ("string" == typeof e ? "S" : "P") + e; if (!s(e, r)) { if (!d(e)) return "F"; if (!t) return "E"; i(e) } return e[r].i }, getWeak: function (e, t) { if (!s(e, r)) { if (!d(e)) return !0; if (!t) return !1; i(e) } return e[r].w }, onFreeze: function (e) { return l && h.NEED && d(e) && !s(e, r) && i(e), e } } }, function (e, t, n) { var o = n(30), u = n(59), d = n(37); e.exports = function (e) { var t = o(e), n = u.f; if (n) for (var i, r = n(e), a = d.f, s = 0; r.length > s;)a.call(e, i = r[s++]) && t.push(i); return t } }, function (e, t, n) { var i = n(31); e.exports = Array.isArray || function (e) { return "Array" == i(e) } }, function (e, t, n) { var i = n(19), r = n(90).f, a = {}.toString, s = "object" == typeof window && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; e.exports.f = function (e) { return s && "[object Window]" == a.call(e) ? function (e) { try { return r(e) } catch (e) { return s.slice() } }(e) : r(i(e)) } }, function (e, t, n) { n(58)("asyncIterator") }, function (e, t, n) { n(58)("observable") }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var u, i, r, a, d, s, E = function (o) { function n() { } var e = {}, t = e.lib = {}, i = t.Base = { extend: function (e) { n.prototype = this; var t = new n; return e && t.mixIn(e), t.hasOwnProperty("init") || (t.init = function () { t.$super.init.apply(this, arguments) }), (t.init.prototype = t).$super = this, t }, create: function () { var e = this.extend(); return e.init.apply(e, arguments), e }, init: function () { }, mixIn: function (e) { for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]); e.hasOwnProperty("toString") && (this.toString = e.toString) }, clone: function () { return this.init.prototype.extend(this) } }, u = t.WordArray = i.extend({ init: function (e, t) { e = this.words = e || [], this.sigBytes = null != t ? t : 4 * e.length }, toString: function (e) { return (e || a).stringify(this) }, concat: function (e) { var t = this.words, n = e.words, i = this.sigBytes; if (e = e.sigBytes, this.clamp(), i % 4) for (var r = 0; r < e; r++)t[i + r >>> 2] |= (n[r >>> 2] >>> 24 - r % 4 * 8 & 255) << 24 - (i + r) % 4 * 8; else if (65535 < n.length) for (r = 0; r < e; r += 4)t[i + r >>> 2] = n[r >>> 2]; else t.push.apply(t, n); return this.sigBytes += e, this }, clamp: function () { var e = this.words, t = this.sigBytes; e[t >>> 2] &= 4294967295 << 32 - t % 4 * 8, e.length = o.ceil(t / 4) }, clone: function () { var e = i.clone.call(this); return e.words = this.words.slice(0), e }, random: function (e) { for (var t = [], n = 0; n < e; n += 4)t.push(4294967296 * o.random() | 0); return new u.init(t, e) } }), r = e.enc = {}, a = r.Hex = { stringify: function (e) { var t = e.words; e = e.sigBytes; for (var n = [], i = 0; i < e; i++) { var r = t[i >>> 2] >>> 24 - i % 4 * 8 & 255; n.push((r >>> 4).toString(16)), n.push((15 & r).toString(16)) } return n.join("") }, parse: function (e) { for (var t = e.length, n = [], i = 0; i < t; i += 2)n[i >>> 3] |= parseInt(e.substr(i, 2), 16) << 24 - i % 8 * 4; return new u.init(n, t / 2) } }, s = r.Latin1 = { stringify: function (e) { var t = e.words; e = e.sigBytes; for (var n = [], i = 0; i < e; i++)n.push(String.fromCharCode(t[i >>> 2] >>> 24 - i % 4 * 8 & 255)); return n.join("") }, parse: function (e) { for (var t = e.length, n = [], i = 0; i < t; i++)n[i >>> 2] |= (255 & e.charCodeAt(i)) << 24 - i % 4 * 8; return new u.init(n, t) } }, d = r.Utf8 = { stringify: function (e) { try { return decodeURIComponent(escape(s.stringify(e))) } catch (e) { throw Error("Malformed UTF-8 data") } }, parse: function (e) { return s.parse(unescape(encodeURIComponent(e))) } }, l = t.BufferedBlockAlgorithm = i.extend({ reset: function () { this._data = new u.init, this._nDataBytes = 0 }, _append: function (e) { "string" == typeof e && (e = d.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes }, _process: function (e) { var t = this._data, n = t.words, i = t.sigBytes, r = this.blockSize, a = i / (4 * r), a = e ? o.ceil(a) : o.max((0 | a) - this._minBufferSize, 0), i = o.min(4 * (e = a * r), i); if (e) { for (var s = 0; s < e; s += r)this._doProcessBlock(n, s); s = n.splice(0, e), t.sigBytes -= i } return new u.init(s, i) }, clone: function () { var e = i.clone.call(this); return e._data = this._data.clone(), e }, _minBufferSize: 0 }); t.Hasher = l.extend({ cfg: i.extend(), init: function (e) { this.cfg = this.cfg.extend(e), this.reset() }, reset: function () { l.reset.call(this), this._doReset() }, update: function (e) { return this._append(e), this._process(), this }, finalize: function (e) { return e && this._append(e), this._doFinalize() }, blockSize: 16, _createHelper: function (n) { return function (e, t) { return new n.init(t).finalize(e) } }, _createHmacHelper: function (n) { return function (e, t) { return new h.HMAC.init(n, t).finalize(e) } } }); var h = e.algo = {}; return e }(Math); u = E.lib.WordArray, E.enc.Base64 = { stringify: function (e) { var t = e.words, n = e.sigBytes, i = this._map; e.clamp(), e = []; for (var r = 0; r < n; r += 3)for (var a = (t[r >>> 2] >>> 24 - r % 4 * 8 & 255) << 16 | (t[r + 1 >>> 2] >>> 24 - (r + 1) % 4 * 8 & 255) << 8 | t[r + 2 >>> 2] >>> 24 - (r + 2) % 4 * 8 & 255, s = 0; s < 4 && r + .75 * s < n; s++)e.push(i.charAt(a >>> 6 * (3 - s) & 63)); if (t = i.charAt(64)) for (; e.length % 4;)e.push(t); return e.join("") }, parse: function (e) { var t = e.length, n = this._map; !(a = n.charAt(64)) || -1 != (a = e.indexOf(a)) && (t = a); for (var i, r, a = [], s = 0, o = 0; o < t; o++)o % 4 && (i = n.indexOf(e.charAt(o - 1)) << o % 4 * 2, r = n.indexOf(e.charAt(o)) >>> 6 - o % 4 * 2, a[s >>> 2] |= (i | r) << 24 - s % 4 * 8, s++); return u.create(a, s) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" }, function (a) { function k(e, t, n, i, r, a, s) { return ((e = e + (t & n | ~t & i) + r + s) << a | e >>> 32 - a) + t } function b(e, t, n, i, r, a, s) { return ((e = e + (t & i | n & ~i) + r + s) << a | e >>> 32 - a) + t } function w(e, t, n, i, r, a, s) { return ((e = e + (t ^ n ^ i) + r + s) << a | e >>> 32 - a) + t } function D(e, t, n, i, r, a, s) { return ((e = e + (n ^ (t | ~i)) + r + s) << a | e >>> 32 - a) + t } for (var e = E, t = (i = e.lib).WordArray, n = i.Hasher, i = e.algo, T = [], r = 0; r < 64; r++)T[r] = 4294967296 * a.abs(a.sin(r + 1)) | 0; i = i.MD5 = n.extend({ _doReset: function () { this._hash = new t.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (e, t) { for (var n = 0; n < 16; n++) { var i = e[r = t + n]; e[r] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8) } var n = this._hash.words, r = e[t + 0], i = e[t + 1], a = e[t + 2], s = e[t + 3], o = e[t + 4], u = e[t + 5], d = e[t + 6], l = e[t + 7], h = e[t + 8], c = e[t + 9], _ = e[t + 10], f = e[t + 11], m = e[t + 12], p = e[t + 13], y = e[t + 14], v = e[t + 15], g = k(g = n[0], S = n[1], L = n[2], M = n[3], r, 7, T[0]), M = k(M, g, S, L, i, 12, T[1]), L = k(L, M, g, S, a, 17, T[2]), S = k(S, L, M, g, s, 22, T[3]), g = k(g, S, L, M, o, 7, T[4]), M = k(M, g, S, L, u, 12, T[5]), L = k(L, M, g, S, d, 17, T[6]), S = k(S, L, M, g, l, 22, T[7]), g = k(g, S, L, M, h, 7, T[8]), M = k(M, g, S, L, c, 12, T[9]), L = k(L, M, g, S, _, 17, T[10]), S = k(S, L, M, g, f, 22, T[11]), g = k(g, S, L, M, m, 7, T[12]), M = k(M, g, S, L, p, 12, T[13]), L = k(L, M, g, S, y, 17, T[14]), g = b(g, S = k(S, L, M, g, v, 22, T[15]), L, M, i, 5, T[16]), M = b(M, g, S, L, d, 9, T[17]), L = b(L, M, g, S, f, 14, T[18]), S = b(S, L, M, g, r, 20, T[19]), g = b(g, S, L, M, u, 5, T[20]), M = b(M, g, S, L, _, 9, T[21]), L = b(L, M, g, S, v, 14, T[22]), S = b(S, L, M, g, o, 20, T[23]), g = b(g, S, L, M, c, 5, T[24]), M = b(M, g, S, L, y, 9, T[25]), L = b(L, M, g, S, s, 14, T[26]), S = b(S, L, M, g, h, 20, T[27]), g = b(g, S, L, M, p, 5, T[28]), M = b(M, g, S, L, a, 9, T[29]), L = b(L, M, g, S, l, 14, T[30]), g = w(g, S = b(S, L, M, g, m, 20, T[31]), L, M, u, 4, T[32]), M = w(M, g, S, L, h, 11, T[33]), L = w(L, M, g, S, f, 16, T[34]), S = w(S, L, M, g, y, 23, T[35]), g = w(g, S, L, M, i, 4, T[36]), M = w(M, g, S, L, o, 11, T[37]), L = w(L, M, g, S, l, 16, T[38]), S = w(S, L, M, g, _, 23, T[39]), g = w(g, S, L, M, p, 4, T[40]), M = w(M, g, S, L, r, 11, T[41]), L = w(L, M, g, S, s, 16, T[42]), S = w(S, L, M, g, d, 23, T[43]), g = w(g, S, L, M, c, 4, T[44]), M = w(M, g, S, L, m, 11, T[45]), L = w(L, M, g, S, v, 16, T[46]), g = D(g, S = w(S, L, M, g, a, 23, T[47]), L, M, r, 6, T[48]), M = D(M, g, S, L, l, 10, T[49]), L = D(L, M, g, S, y, 15, T[50]), S = D(S, L, M, g, u, 21, T[51]), g = D(g, S, L, M, m, 6, T[52]), M = D(M, g, S, L, s, 10, T[53]), L = D(L, M, g, S, _, 15, T[54]), S = D(S, L, M, g, i, 21, T[55]), g = D(g, S, L, M, h, 6, T[56]), M = D(M, g, S, L, v, 10, T[57]), L = D(L, M, g, S, d, 15, T[58]), S = D(S, L, M, g, p, 21, T[59]), g = D(g, S, L, M, o, 6, T[60]), M = D(M, g, S, L, f, 10, T[61]), L = D(L, M, g, S, a, 15, T[62]), S = D(S, L, M, g, c, 21, T[63]); n[0] = n[0] + g | 0, n[1] = n[1] + S | 0, n[2] = n[2] + L | 0, n[3] = n[3] + M | 0 }, _doFinalize: function () { var e = this._data, t = e.words, n = 8 * this._nDataBytes, i = 8 * e.sigBytes; t[i >>> 5] |= 128 << 24 - i % 32; var r = a.floor(n / 4294967296); for (t[15 + (64 + i >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), t[14 + (64 + i >>> 9 << 4)] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8), e.sigBytes = 4 * (t.length + 1), this._process(), t = (e = this._hash).words, n = 0; n < 4; n++)i = t[n], t[n] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8); return e }, clone: function () { var e = n.clone.call(this); return e._hash = this._hash.clone(), e } }), e.MD5 = n._createHelper(i), e.HmacMD5 = n._createHmacHelper(i) }(Math), r = (i = E).lib, a = r.Base, d = r.WordArray, s = (r = i.algo).EvpKDF = a.extend({ cfg: a.extend({ keySize: 4, hasher: r.MD5, iterations: 1 }), init: function (e) { this.cfg = this.cfg.extend(e) }, compute: function (e, t) { for (var n = (s = this.cfg).hasher.create(), i = d.create(), r = i.words, a = s.keySize, s = s.iterations; r.length < a;) { o && n.update(o); var o = n.update(e).finalize(t); n.reset(); for (var u = 1; u < s; u++)o = n.finalize(o), n.reset(); i.concat(o) } return i.sigBytes = 4 * a, i } }), i.EvpKDF = function (e, t, n) { return s.create(n).compute(e, t) }, E.lib.Cipher || function () { var e = (c = E).lib, t = e.Base, s = e.WordArray, n = e.BufferedBlockAlgorithm, i = c.enc.Base64, r = c.algo.EvpKDF, a = e.Cipher = n.extend({ cfg: t.extend(), createEncryptor: function (e, t) { return this.create(this._ENC_XFORM_MODE, e, t) }, createDecryptor: function (e, t) { return this.create(this._DEC_XFORM_MODE, e, t) }, init: function (e, t, n) { this.cfg = this.cfg.extend(n), this._xformMode = e, this._key = t, this.reset() }, reset: function () { n.reset.call(this), this._doReset() }, process: function (e) { return this._append(e), this._process() }, finalize: function (e) { return e && this._append(e), this._doFinalize() }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function (i) { return { encrypt: function (e, t, n) { return ("string" == typeof t ? _ : h).encrypt(i, e, t, n) }, decrypt: function (e, t, n) { return ("string" == typeof t ? _ : h).decrypt(i, e, t, n) } } } }); e.StreamCipher = a.extend({ _doFinalize: function () { return this._process(!0) }, blockSize: 1 }); function o(e, t, n) { var i = this._iv; i ? this._iv = void 0 : i = this._prevBlock; for (var r = 0; r < n; r++)e[t + r] ^= i[r] } var u = c.mode = {}, d = (e.BlockCipherMode = t.extend({ createEncryptor: function (e, t) { return this.Encryptor.create(e, t) }, createDecryptor: function (e, t) { return this.Decryptor.create(e, t) }, init: function (e, t) { this._cipher = e, this._iv = t } })).extend(); d.Encryptor = d.extend({ processBlock: function (e, t) { var n = this._cipher, i = n.blockSize; o.call(this, e, t, i), n.encryptBlock(e, t), this._prevBlock = e.slice(t, t + i) } }), d.Decryptor = d.extend({ processBlock: function (e, t) { var n = this._cipher, i = n.blockSize, r = e.slice(t, t + i); n.decryptBlock(e, t), o.call(this, e, t, i), this._prevBlock = r } }), u = u.CBC = d, d = (c.pad = {}).Pkcs7 = { pad: function (e, t) { for (var n = 4 * t, i = (n = n - e.sigBytes % n) << 24 | n << 16 | n << 8 | n, r = [], a = 0; a < n; a += 4)r.push(i); n = s.create(r, n), e.concat(n) }, unpad: function (e) { e.sigBytes -= 255 & e.words[e.sigBytes - 1 >>> 2] } }, e.BlockCipher = a.extend({ cfg: a.cfg.extend({ mode: u, padding: d }), reset: function () { a.reset.call(this); var e, t = (n = this.cfg).iv, n = n.mode; this._xformMode == this._ENC_XFORM_MODE ? e = n.createEncryptor : (e = n.createDecryptor, this._minBufferSize = 1), this._mode = e.call(n, this, t && t.words) }, _doProcessBlock: function (e, t) { this._mode.processBlock(e, t) }, _doFinalize: function () { var e, t = this.cfg.padding; return this._xformMode == this._ENC_XFORM_MODE ? (t.pad(this._data, this.blockSize), e = this._process(!0)) : (e = this._process(!0), t.unpad(e)), e }, blockSize: 4 }); var l = e.CipherParams = t.extend({ init: function (e) { this.mixIn(e) }, toString: function (e) { return (e || this.formatter).stringify(this) } }), u = (c.format = {}).OpenSSL = { stringify: function (e) { var t = e.ciphertext; return ((e = e.salt) ? s.create([1398893684, 1701076831]).concat(e).concat(t) : t).toString(i) }, parse: function (e) { var t, n = (e = i.parse(e)).words; return 1398893684 == n[0] && 1701076831 == n[1] && (t = s.create(n.slice(2, 4)), n.splice(0, 4), e.sigBytes -= 16), l.create({ ciphertext: e, salt: t }) } }, h = e.SerializableCipher = t.extend({ cfg: t.extend({ format: u }), encrypt: function (e, t, n, i) { i = this.cfg.extend(i); var r = e.createEncryptor(n, i); return t = r.finalize(t), r = r.cfg, l.create({ ciphertext: t, key: n, iv: r.iv, algorithm: e, mode: r.mode, padding: r.padding, blockSize: e.blockSize, formatter: i.format }) }, decrypt: function (e, t, n, i) { return i = this.cfg.extend(i), t = this._parse(t, i.format), e.createDecryptor(n, i).finalize(t.ciphertext) }, _parse: function (e, t) { return "string" == typeof e ? t.parse(e, this) : e } }), c = (c.kdf = {}).OpenSSL = { execute: function (e, t, n, i) { return i = i || s.random(8), e = r.create({ keySize: t + n }).compute(e, i), n = s.create(e.words.slice(t), 4 * n), e.sigBytes = 4 * t, l.create({ key: e, iv: n, salt: i }) } }, _ = e.PasswordBasedCipher = h.extend({ cfg: h.cfg.extend({ kdf: c }), encrypt: function (e, t, n, i) { return n = (i = this.cfg.extend(i)).kdf.execute(n, e.keySize, e.ivSize), i.iv = n.iv, (e = h.encrypt.call(this, e, t, n.key, i)).mixIn(n), e }, decrypt: function (e, t, n, i) { return i = this.cfg.extend(i), t = this._parse(t, i.format), n = i.kdf.execute(n, e.keySize, e.ivSize, t.salt), i.iv = n.iv, h.decrypt.call(this, e, t, n.key, i) } }) }(), function () { for (var e = E, t = e.lib.BlockCipher, n = e.algo, s = [], i = [], r = [], a = [], o = [], u = [], d = [], l = [], h = [], c = [], _ = [], f = 0; f < 256; f++)_[f] = f < 128 ? f << 1 : f << 1 ^ 283; for (var m = 0, p = 0, f = 0; f < 256; f++) { var y = p ^ p << 1 ^ p << 2 ^ p << 3 ^ p << 4; s[m] = y = y >>> 8 ^ 255 & y ^ 99; var v = _[i[y] = m], g = _[v], M = _[g], L = 257 * _[y] ^ 16843008 * y; r[m] = L << 24 | L >>> 8, a[m] = L << 16 | L >>> 16, o[m] = L << 8 | L >>> 24, u[m] = L, d[y] = (L = 16843009 * M ^ 65537 * g ^ 257 * v ^ 16843008 * m) << 24 | L >>> 8, l[y] = L << 16 | L >>> 16, h[y] = L << 8 | L >>> 24, c[y] = L, m ? (m = v ^ _[_[_[M ^ v]]], p ^= _[_[p]]) : m = p = 1 } var S = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], n = n.AES = t.extend({ _doReset: function () { for (var e, t = (i = this._key).words, n = i.sigBytes / 4, i = 4 * ((this._nRounds = n + 6) + 1), r = this._keySchedule = [], a = 0; a < i; a++)a < n ? r[a] = t[a] : (e = r[a - 1], a % n ? 6 < n && 4 == a % n && (e = s[e >>> 24] << 24 | s[e >>> 16 & 255] << 16 | s[e >>> 8 & 255] << 8 | s[255 & e]) : (e = s[(e = e << 8 | e >>> 24) >>> 24] << 24 | s[e >>> 16 & 255] << 16 | s[e >>> 8 & 255] << 8 | s[255 & e], e ^= S[a / n | 0] << 24), r[a] = r[a - n] ^ e); for (t = this._invKeySchedule = [], n = 0; n < i; n++)a = i - n, e = n % 4 ? r[a] : r[a - 4], t[n] = n < 4 || a <= 4 ? e : d[s[e >>> 24]] ^ l[s[e >>> 16 & 255]] ^ h[s[e >>> 8 & 255]] ^ c[s[255 & e]] }, encryptBlock: function (e, t) { this._doCryptBlock(e, t, this._keySchedule, r, a, o, u, s) }, decryptBlock: function (e, t) { var n = e[t + 1]; e[t + 1] = e[t + 3], e[t + 3] = n, this._doCryptBlock(e, t, this._invKeySchedule, d, l, h, c, i), n = e[t + 1], e[t + 1] = e[t + 3], e[t + 3] = n }, _doCryptBlock: function (e, t, n, i, r, a, s, o) { for (var u = this._nRounds, d = e[t] ^ n[0], l = e[t + 1] ^ n[1], h = e[t + 2] ^ n[2], c = e[t + 3] ^ n[3], _ = 4, f = 1; f < u; f++)var m = i[d >>> 24] ^ r[l >>> 16 & 255] ^ a[h >>> 8 & 255] ^ s[255 & c] ^ n[_++], p = i[l >>> 24] ^ r[h >>> 16 & 255] ^ a[c >>> 8 & 255] ^ s[255 & d] ^ n[_++], y = i[h >>> 24] ^ r[c >>> 16 & 255] ^ a[d >>> 8 & 255] ^ s[255 & l] ^ n[_++], c = i[c >>> 24] ^ r[d >>> 16 & 255] ^ a[l >>> 8 & 255] ^ s[255 & h] ^ n[_++], d = m, l = p, h = y; m = (o[d >>> 24] << 24 | o[l >>> 16 & 255] << 16 | o[h >>> 8 & 255] << 8 | o[255 & c]) ^ n[_++], p = (o[l >>> 24] << 24 | o[h >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & d]) ^ n[_++], y = (o[h >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[d >>> 8 & 255] << 8 | o[255 & l]) ^ n[_++], c = (o[c >>> 24] << 24 | o[d >>> 16 & 255] << 16 | o[l >>> 8 & 255] << 8 | o[255 & h]) ^ n[_++], e[t] = m, e[t + 1] = p, e[t + 2] = y, e[t + 3] = c }, keySize: 8 }); e.AES = t._createHelper(n) }(), t.default = E }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.LocalService = void 0; var i = a(n(56)), r = a(n(1)); function a(e) { return e && e.__esModule ? e : { default: e } } (0, a(n(2)).default)(s, [{ key: "createClientObject", value: function (e, t, n, i) { return { socket: e, id: t, playURL: n, deviceSerial: i.deviceSerial || "", verificationCode: i.verificationCode || "", resolve: null, reject: null, stoping: !1 } } }, { key: "playCmd", value: function (e) { e = { sequence: 0, cmd: "realplay", deviceSerial: e.deviceSerial, verificationCode: e.verificationCode, url: e.playURL }; return (0, i.default)(e) } }, { key: "playbackCmd", value: function (e, t, n) { n = { sequence: 0, cmd: "playback", deviceSerial: e.deviceSerial, verificationCode: e.verificationCode, url: e.playURL, startTime: t, endTime: n }; return (0, i.default)(n) } }]), n = s; function s() { (0, r.default)(this, s) } t.LocalService = n }, function (e, t) { e.exports = function (e) { return e.webpackPolyfill || (e.deprecate = function () { }, e.paths = [], e.children || (e.children = []), Object.defineProperty(e, "loaded", { enumerable: !0, get: function () { return e.l } }), Object.defineProperty(e, "id", { enumerable: !0, get: function () { return e.i } }), e.webpackPolyfill = 1), e } }, function (e, t, n) { var i = { "./af": 92, "./af.js": 92, "./ar": 93, "./ar-dz": 94, "./ar-dz.js": 94, "./ar-kw": 95, "./ar-kw.js": 95, "./ar-ly": 96, "./ar-ly.js": 96, "./ar-ma": 97, "./ar-ma.js": 97, "./ar-sa": 98, "./ar-sa.js": 98, "./ar-tn": 99, "./ar-tn.js": 99, "./ar.js": 93, "./az": 100, "./az.js": 100, "./be": 101, "./be.js": 101, "./bg": 102, "./bg.js": 102, "./bm": 103, "./bm.js": 103, "./bn": 104, "./bn-bd": 105, "./bn-bd.js": 105, "./bn.js": 104, "./bo": 106, "./bo.js": 106, "./br": 107, "./br.js": 107, "./bs": 108, "./bs.js": 108, "./ca": 109, "./ca.js": 109, "./cs": 110, "./cs.js": 110, "./cv": 111, "./cv.js": 111, "./cy": 112, "./cy.js": 112, "./da": 113, "./da.js": 113, "./de": 114, "./de-at": 115, "./de-at.js": 115, "./de-ch": 116, "./de-ch.js": 116, "./de.js": 114, "./dv": 117, "./dv.js": 117, "./el": 118, "./el.js": 118, "./en-au": 119, "./en-au.js": 119, "./en-ca": 120, "./en-ca.js": 120, "./en-gb": 121, "./en-gb.js": 121, "./en-ie": 122, "./en-ie.js": 122, "./en-il": 123, "./en-il.js": 123, "./en-in": 124, "./en-in.js": 124, "./en-nz": 125, "./en-nz.js": 125, "./en-sg": 126, "./en-sg.js": 126, "./eo": 127, "./eo.js": 127, "./es": 128, "./es-do": 129, "./es-do.js": 129, "./es-mx": 130, "./es-mx.js": 130, "./es-us": 131, "./es-us.js": 131, "./es.js": 128, "./et": 132, "./et.js": 132, "./eu": 133, "./eu.js": 133, "./fa": 134, "./fa.js": 134, "./fi": 135, "./fi.js": 135, "./fil": 136, "./fil.js": 136, "./fo": 137, "./fo.js": 137, "./fr": 138, "./fr-ca": 139, "./fr-ca.js": 139, "./fr-ch": 140, "./fr-ch.js": 140, "./fr.js": 138, "./fy": 141, "./fy.js": 141, "./ga": 142, "./ga.js": 142, "./gd": 143, "./gd.js": 143, "./gl": 144, "./gl.js": 144, "./gom-deva": 145, "./gom-deva.js": 145, "./gom-latn": 146, "./gom-latn.js": 146, "./gu": 147, "./gu.js": 147, "./he": 148, "./he.js": 148, "./hi": 149, "./hi.js": 149, "./hr": 150, "./hr.js": 150, "./hu": 151, "./hu.js": 151, "./hy-am": 152, "./hy-am.js": 152, "./id": 153, "./id.js": 153, "./is": 154, "./is.js": 154, "./it": 155, "./it-ch": 156, "./it-ch.js": 156, "./it.js": 155, "./ja": 157, "./ja.js": 157, "./jv": 158, "./jv.js": 158, "./ka": 159, "./ka.js": 159, "./kk": 160, "./kk.js": 160, "./km": 161, "./km.js": 161, "./kn": 162, "./kn.js": 162, "./ko": 163, "./ko.js": 163, "./ku": 164, "./ku.js": 164, "./ky": 165, "./ky.js": 165, "./lb": 166, "./lb.js": 166, "./lo": 167, "./lo.js": 167, "./lt": 168, "./lt.js": 168, "./lv": 169, "./lv.js": 169, "./me": 170, "./me.js": 170, "./mi": 171, "./mi.js": 171, "./mk": 172, "./mk.js": 172, "./ml": 173, "./ml.js": 173, "./mn": 174, "./mn.js": 174, "./mr": 175, "./mr.js": 175, "./ms": 176, "./ms-my": 177, "./ms-my.js": 177, "./ms.js": 176, "./mt": 178, "./mt.js": 178, "./my": 179, "./my.js": 179, "./nb": 180, "./nb.js": 180, "./ne": 181, "./ne.js": 181, "./nl": 182, "./nl-be": 183, "./nl-be.js": 183, "./nl.js": 182, "./nn": 184, "./nn.js": 184, "./oc-lnc": 185, "./oc-lnc.js": 185, "./pa-in": 186, "./pa-in.js": 186, "./pl": 187, "./pl.js": 187, "./pt": 188, "./pt-br": 189, "./pt-br.js": 189, "./pt.js": 188, "./ro": 190, "./ro.js": 190, "./ru": 191, "./ru.js": 191, "./sd": 192, "./sd.js": 192, "./se": 193, "./se.js": 193, "./si": 194, "./si.js": 194, "./sk": 195, "./sk.js": 195, "./sl": 196, "./sl.js": 196, "./sq": 197, "./sq.js": 197, "./sr": 198, "./sr-cyrl": 199, "./sr-cyrl.js": 199, "./sr.js": 198, "./ss": 200, "./ss.js": 200, "./sv": 201, "./sv.js": 201, "./sw": 202, "./sw.js": 202, "./ta": 203, "./ta.js": 203, "./te": 204, "./te.js": 204, "./tet": 205, "./tet.js": 205, "./tg": 206, "./tg.js": 206, "./th": 207, "./th.js": 207, "./tk": 208, "./tk.js": 208, "./tl-ph": 209, "./tl-ph.js": 209, "./tlh": 210, "./tlh.js": 210, "./tr": 211, "./tr.js": 211, "./tzl": 212, "./tzl.js": 212, "./tzm": 213, "./tzm-latn": 214, "./tzm-latn.js": 214, "./tzm.js": 213, "./ug-cn": 215, "./ug-cn.js": 215, "./uk": 216, "./uk.js": 216, "./ur": 217, "./ur.js": 217, "./uz": 218, "./uz-latn": 219, "./uz-latn.js": 219, "./uz.js": 218, "./vi": 220, "./vi.js": 220, "./x-pseudo": 221, "./x-pseudo.js": 221, "./yo": 222, "./yo.js": 222, "./zh-cn": 223, "./zh-cn.js": 223, "./zh-hk": 224, "./zh-hk.js": 224, "./zh-mo": 225, "./zh-mo.js": 225, "./zh-tw": 226, "./zh-tw.js": 226 }; function r(e) { e = a(e); return n(e) } function a(e) { if (n.o(i, e)) return i[e]; e = new Error("Cannot find module '" + e + "'"); throw e.code = "MODULE_NOT_FOUND", e } r.keys = function () { return Object.keys(i) }, r.resolve = a, (e.exports = r).id = 284 }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.JSPlayCtrl = void 0; var i = r(n(1)), n = r(n(2)); function r(e) { return e && e.__esModule ? e : { default: e } } var o = { id: null, cmd: null, data: null, errorCode: 0, status: null }, n = ((0, n.default)(a, [{ key: "PlayM4_SetStreamOpenMode", value: function (e) { return this.iPort = this.oWASM._JSPlayM4_GetPort(), 1 !== this.oWASM._JSPlayM4_SetStreamOpenMode(this.iPort, e) ? 0 : 1 } }, { key: "PlayM4_OpenStream", value: function (e, t, n) { if (this.iPort < 0) return 0; if (!e || t <= 0 || n <= 0) return 0; this.bPlay = !1, this.bPause = !1, this.bOnebyOne = !1, this.bIsFirstFrame = !0, this.bIsGetYUV = !1, this.bIsInput = !1; var i = t, t = this.oWASM._malloc(i); return t ? (this.oWASM.writeArrayToMemory(e, t), 1 !== this.oWASM._JSPlayM4_OpenStream(this.iPort, t, i, n) ? (this.oWASM._free(t), t = null, this.oWASM._JSPlayM4_FreePort(this.iPort), this.iPort = -1, 0) : (this.oWASM._JSPlayM4_SetDisplayBuf(this.iPort, 1), this.oWASM._free(t), t = null, 1)) : 0 } }, { key: "PlayM4_SetDisplayBuf", value: function (e) { this.oWASM._JSPlayM4_SetDisplayBuf(this.iPort, e) } }, { key: "PlayM4_OpenPlayerSDKPrintLog", value: function (e) { e ? (console.log("JSPlaySDKInterface.js bFlag:" + e), this.oWASM._JSPlayM4_SetPrintLogFlag(this.iPort, 2)) : this.oWASM._JSPlayM4_SetPrintLogFlag(this.iPort, 0) } }, { key: "SetDecodeThreadNum", value: function (e) { this.oWASM._JSPlayM4_SetDecodeThreadNum(this.iPort, e) } }, { key: "PlayM4_SetSecretKey", value: function () { return 1 } }, { key: "PlayM4_RenderPrivateData", value: function (e, t) { return this.oWASM._JSPlayM4_RenderPrivateData(this.iPort, e, t) } }, { key: "PlayM4_RenderPrivateDataEx", value: function (e, t, n) { return this.oWASM._JSPlayM4_RenderPrivateDataEx(this.iPort, e, t, n) } }, { key: "stringToBytes", value: function (e) { for (var t = void 0, n = void 0, i = [], r = 0; r < e.length; r++) { for (t = e.charCodeAt(r), n = []; n.push(255 & t), t >>= 8;); i = i.concat(n.reverse()) } return i } }, { key: "PlayM4_Play", value: function () { if (this.pCanvasData = this.oWASM._malloc(128), null === this.pCanvasData) return 0; this.bOnebyOne && (this.bPlayRateChange = !1, this.bOnebyOne = !1, this.bPause = !1), !document.getElementById(this.szCanvasID) && this.clonedCanvas && this.clonedCanvasParentNode && this.clonedCanvasParentNode.appendChild(this.clonedCanvas), 0 < this.iCanvasWidth && 0 < this.iCanvasHeight && this.PlayM4_SetCanvasSize(this.iCanvasWidth, this.iCanvasHeight); var e = this.stringToBytes("#" + this.szCanvasID), t = this.oWASM.HEAPU8.subarray(this.pCanvasData, this.pCanvasData + 128), n = new Uint8Array(128); t.set(n, 0), t.set(new Uint8Array(e)); return 1 !== this.oWASM._JSPlayM4_Play(this.iPort, this.pCanvasData) ? 0 : (this.oWASM._JSPlayM4_SetFrameInfoCallBack(this.iPort, 1), this.bPlay = !0, this.bPause = !1, this.bOnebyOne = !1, this.bPlaySound = !1, this.bPlayRateChange = !1, this.bOnlyPlaySound = !1, 1) } }, { key: "PlayM4_OneByOne_Play", value: function () { this.oWASM._JSPlayM4_Play(this.iPort, this.pCanvasData), this.bPlayRateChange = !1, this.bOnebyOne = !1, this.bPause = !1 } }, { key: "Sleep", value: function (e) { for (var t = (new Date).getTime(); (new Date).getTime() - t < e;); } }, { key: "PlayM4_InputData", value: function (e, t) { var n = t, i = 1; if (0 < n) { var r = this.oWASM._malloc(n); if (null === r) return 0; t = new Uint8Array(e.buffer); this.oWASM.writeArrayToMemory(t, r), t = null, this.bIsFirstFrame && this.inputDataFun(), this.bOnebyOne ? 1 !== this.oWASM._JSPlayM4_InputData(this.iPort, r, n) && (11 === (i = this.oWASM._JSPlayM4_GetLastError(this.iPort)) && (this.setCallBack(this, "OnebyOne", 0, 0, !1), this.bIsFirstFrame = !0), this.aInputDataBuffer.push(e)) : 1 !== this.oWASM._JSPlayM4_InputData(this.iPort, r, n) && (i = this.oWASM._JSPlayM4_GetLastError(this.iPort)), this.oWASM._free(r), r = null } return i } }, { key: "inputDataFun", value: function () { if (this.bIsGetYUV = !1, this.bPlay && (!this.bPause || this.bOnebyOne) || this.bOnlyPlaySound) for (; 0 < this.aInputDataBuffer.length;) { var e = this.aInputDataBuffer.shift(), t = this.oWASM._JSPlayM4_InputData(this.iPort, e, e.byteLength); if (1 !== t) if (11 === this.oWASM._JSPlayM4_GetLastError(this.iPort)) { this.bIsFirstFrame = !0, this.aInputDataBuffer.unshift(e); break } } this.bIsFirstFrame = !1 } }, { key: "PlayM4_Stop", value: function () { this.bPlaySound && (this.PlayM4_StopSound(), this.bPlaySound = !1), this.bPlay = !1, this.bOnebyOne = !1, this.bPause = !1, this.oWASM._JSPlayM4_SetFrameInfoCallBack(this.iPort, 0), this.PlayM4_SetDisplayRegion(null, !1), this.oWASM._JSPlayM4_Stop(this.iPort), this.oWASM._JSPlayM4_CloseStream(this.iPort), this.oWASM._JSPlayM4_FreePort(this.iPort), this.iPort = -1; var e = document.getElementById(this.szCanvasID); e && (this.clonedCanvas = e.cloneNode(!0), this.clonedCanvasParentNode = e.parentNode, this.clonedCanvasParentNode.replaceChild(this.clonedCanvas, e)), null !== this.pCanvasData && (this.oWASM._free(this.pCanvasData), this.pCanvasData = null) } }, { key: "PlayM4_PlayRate", value: function (e) { return this.bPlayRateChange = 1 !== e, this.iInputDataLen = 5e3 * e, 1 } }, { key: "PlayM4_Fast", value: function (e) { this.bPlayRateChange = 1 !== e, this.oWASM._JSPlayM4_Fast(this.iPort) } }, { key: "PlayM4_Slow", value: function (e) { this.bPlayRateChange = 1 !== e, this.oWASM._JSPlayM4_Slow(this.iPort) } }, { key: "PlayM4_Pause", value: function (e) { return !this.bPlay || this.bOnebyOne ? 2 : ("boolean" != typeof e || (this.bPause = e, this.bIsFirstFrame = !0, e ? (this.bPlaySound && (this.PlayM4_StopSound(), this.bPlaySound = !0), this.oWASM._JSPlayM4_Pause(this.iPort, 1)) : (this.bPlaySound && this.PlayM4_PlaySound(), this.oWASM._JSPlayM4_Pause(this.iPort, 0))), 1) } }, { key: "PlayM4_OneByOne", value: function () { return this.bPlay ? (this.oWASM._JSPlayM4_GetSourceBufferRemain(this.iPort) < this.oWASM._JSPlayM4_GetBufferValue(this.iPort, 1) / 2 && (this.bIsInputBufOver = !1, this.setCallBack(this, "OnebyOne", 0, 31, !0)), this.iInputDataLen = 5e3, this.oWASM._JSPlayM4_OneByOne(this.iPort), this.bPause = !0, this.bOnebyOne = !0, this.bPlayRateChange = !0, 1) : 2 } }, { key: "PlayM4_PlaySound", value: function (e) { return e < 0 || 16 < e || 1 === this.oWASM._JSPlayM4_PlaySound(this.iPort) && (this.bPlaySound = !0, this.oWASM._JSPlayM4_SetANRParam(3)), 1 } }, { key: "PlayM4_StopSound", value: function () { return this.bPlaySound ? (1 === this.oWASM._JSPlayM4_StopSound(this.iPort) && (this.bPlaySound = !1), 1) : 2 } }, { key: "PlayM4_SetSecretKey", value: function () { } }, { key: "PlayM4_SetDecodeFrameType", value: function (e) { return 0 !== e && 1 !== e || (this.nDecFrameType = e, this.oWASM._JSPlayM4_SetDecodeFrameType(this.iPort, e)), 1 } }, { key: "PlayM4_SetIFrameDecInterval", value: function (e) { return 1 !== this.nDecFrameType ? 2 : (e < 0 || (this.oWASM._JSPlayM4_SetDecodeFrameType(this.iPort, 1), this.oWASM._JSPlayM4_SetIFrameDecInterval(this.iPort, e)), 1) } }, { key: "PlayM4_SetDisplayRegion", value: function (e, t) { if (null === this.szCanvasID) return 2; if (!0 !== t) return 1 === this.oWASM._JSPlayM4_SetDisplayRegion(this.iPort, this.pCanvasData, 0, this.iYUVWidth, 0, this.iYUVHeight) ? (this.iZoomNum = 0, this.bDisRect = !1, 1) : this.PlayM4_GetLastError(); if (null == e) return 1; if ("number" != typeof e.left || "number" != typeof e.top || "number" != typeof e.right || "number" != typeof e.bottom) return 1; if (e.right < 0 || e.left < 0 || e.top < 0 || e.bottom < 0) return 1; var n = e.left, i = e.right, r = e.top, a = e.bottom, t = document.getElementById(this.szCanvasID).getBoundingClientRect(); if (this.iCanvasWidth = t.width, this.iCanvasHeight = t.height, i - n < 16 || a - r < 16 || i - n > this.iCanvasWidth || a - r > this.iCanvasHeight) return 1; a = 0 !== this.iZoomNum ? (n = Math.round(n / this.iRatio_x) + this.stDisplayRect.left, r = Math.round(r / this.iRatio_y) + this.stDisplayRect.top, i = Math.round(i / this.iRatio_x) + this.stDisplayRect.left, Math.round(a / this.iRatio_y) + this.stDisplayRect.top) : (e = this.iYUVWidth / this.iCanvasWidth, t = this.iYUVHeight / this.iCanvasHeight, n = Math.round(n * e), r = Math.round(r * t), i = Math.round(i * e), Math.round(a * t)), this.stDisplayRect = { top: r, left: n, right: i, bottom: a }, this.bDisRect = !0; r = a - r; return this.iRatio_x = this.iCanvasWidth / (i - n), this.iRatio_y = this.iCanvasHeight / r, this.iZoomNum++, this.oWASM._JSPlayM4_SetDisplayRegion(this.iPort, this.pCanvasData, this.stDisplayRect.left, this.stDisplayRect.right, this.stDisplayRect.top, this.stDisplayRect.bottom) } }, { key: "PlayM4_GetJPEG", value: function (e) { var t, n = this.iYUVWidth * this.iYUVHeight * 4 + 60, i = this.oWASM._malloc(n), r = this.oWASM._malloc(4); null !== i && (this.oWASM._JSPlayM4_GetJPEG(this.iPort, i, n, r), 0 < (t = this.oWASM.getValue(r, "i32")) ? ((n = new Uint8Array(t)).set(this.oWASM.HEAPU8.subarray(i, i + t)), e(n)) : e(6), this.oWASM._free(i), this.oWASM._free(r), i = null) } }, { key: "PlayM4_GetBMP", value: function (e) { var t, n = this.iYUVWidth * this.iYUVHeight * 4 + 60, i = this.oWASM._malloc(n), r = this.oWASM._malloc(4); null !== i && (this.oWASM._JSPlayM4_GetBMP(this.iPort, i, n, r), 0 < (t = this.oWASM.getValue(r, "i32")) ? ((n = new Uint8Array(t)).set(this.oWASM.HEAPU8.subarray(i, i + t)), e(n)) : e(6), this.oWASM._free(i), this.oWASM._free(r), i = null) } }, { key: "PlayM4_SetVolume", value: function (e) { return this.oWASM._JSPlayM4_SetVolume(this.iPort, e) } }, { key: "PlayM4_GetVolume", value: function (e) { if (e && "function" == typeof e) { var t = this.oWASM._JSPlayM4_GetVolume(this.iPort); return null === t ? 63 : (e(Math.round(t)), 1) } return 1 } }, { key: "PlayM4_GetDecodeFrameType", value: function () { return this.nDecFrameType } }, { key: "PlayM4_GetSdkVersion", value: function () { return this.oWASM.JSPlayM4_GetSDKVersion() } }, { key: "PlayM4_SetCanvasSize", value: function (e, t) { !document.getElementById(this.szCanvasID) && this.clonedCanvas && (this.iCanvasWidth = e, this.iCanvasHeight = t, this.clonedCanvas.width = e, this.clonedCanvas.height = t), -1 < this.iPort && this.oWASM._JSPlayM4_SetCanvasSize(this.iPort, e, t) } }, { key: "PlayM4_SetAntialias", value: function (e) { return this.oWASM._JSPlayM4_SetAntialias(this.iPort, e) } }, { key: "PlayM4_GetSourceBufferRemain", value: function () { return this.oWASM._JSPlayM4_GetSourceBufferRemain(this.iPort) } }, { key: "PlayM4_GetBufferValue", value: function (e) { return this.oWASM._JSPlayM4_GetBufferValue(this.iPort, e) } }, { key: "PlayM4_GetLastError", value: function () { return this.oWASM._JSPlayM4_GetLastError(this.iPort) } }, { key: "PlayM4_GetFrameInfo", value: function (e) { var t, n; e && "function" == typeof e && (t = { port: 0, frameType: 0, frameSize: 0, width: 0, height: 0, timeStamp: 0, frameRate: 0, bitPerSample: 0, samplesPerSec: 0, channel: 0, frameNum: 0, cropLeft: 0, cropRight: 0, cropTop: 0, cropBottom: 0, year: 0, month: 0, week: 0, day: 0, hour: 0, minute: 0, second: 0, milliseconds: 0 }, n = this.oWASM._JSPlayM4_GetFrameInfo(this.iPort), t.port = this.oWASM.HEAP32[n >> 2], t.frameType = this.oWASM.HEAP32[n + 4 >> 2], t.frameSize = this.oWASM.HEAP32[n + 8 >> 2], t.width = this.oWASM.HEAP32[n + 12 >> 2], t.height = this.oWASM.HEAP32[n + 16 >> 2], t.timeStamp = this.oWASM.HEAP32[n + 20 >> 2], t.frameRate = this.oWASM.HEAP32[n + 24 >> 2], t.bitPerSample = this.oWASM.HEAP32[n + 28 >> 2], t.samplesPerSec = this.oWASM.HEAP32[n + 32 >> 2], t.channel = this.oWASM.HEAP32[n + 36 >> 2], t.frameNum = this.oWASM.HEAP32[n + 40 >> 2], t.cropLeft = this.oWASM.HEAP32[n + 44 >> 2], t.cropRight = this.oWASM.HEAP32[n + 48 >> 2], t.cropTop = this.oWASM.HEAP32[n + 52 >> 2], t.cropBottom = this.oWASM.HEAP32[n + 56 >> 2], t.year = this.oWASM.HEAP16[n + 60 >> 1], t.month = this.oWASM.HEAP16[n + 62 >> 1], t.week = this.oWASM.HEAP16[n + 64 >> 1], t.day = this.oWASM.HEAP16[n + 66 >> 1], t.hour = this.oWASM.HEAP16[n + 68 >> 1], t.minute = this.oWASM.HEAP16[n + 70 >> 1], t.second = this.oWASM.HEAP16[n + 72 >> 1], t.milliseconds = this.oWASM.HEAP16[n + 74 >> 1], e(t)) } }, { key: "PlayM4_ReversePlay", value: function () { return this.oWASM._JSPlayM4_ReversePlay(this.iPort) } }, { key: "PlayM4_SetAdditionDataCallBack", value: function (e, t) { return this.oWASM._JSPlayM4_SetAdditionDataCallBack(this.iPort, e, t) } }, { key: "PlayM4_SetGlobalBaseTime", value: function (e) { var t = e.getFullYear(), n = e.getMonth() + 1, i = e.getDate(), r = e.getHours(), a = e.getMinutes(), s = e.getSeconds(), e = e.getMilliseconds(); this.oWASM._JSPlayM4_SetGlobalBaseTime(this.iPort, t, n, i, r, a, s, e) } }]), a); function a(e, t, n, s) { (0, i.default)(this, a), this.szCanvasID = e, this.clonedCanvas = null, this.oWASM = null, this.iPort = -1, this.pCanvasData = null, this.iYUVWidth = 0, this.iYUVHeight = 0, this.bPlay = !1, this.bPause = !1, this.bOnebyOne = !1, this.bIsFirstFrame = !0, this.bIsGetYUV = !1, this.bIsInput = !1, this.iZoomNum = 0, this.iCanvasWidth = 0, this.iCanvasHeight = 0, this.nDecFrameType = 0, n && "function" == typeof n && (this.fnCallBack = n), this.aInputDataBuffer = [], this.setCallBack = function (e, t, n, i, r) { var a = o; a.id = s, a.cmd = t, a.data = n, a.errorCode = i, a.status = r, (a.instance = e).fnCallBack(a) }, this.aInputDataLens = [], this.aInputDataBuffer = [], this.bIsGetYUV = !1, this.bIsFirstFrame = !0, this.iInputMaxBufSize = 5242880, this.bIsInput = !1, this.bIsInputBufOver = !1, this.iInputDataLen = 5e3, t && (this.oWASM = t) } t.JSPlayCtrl = n }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.JSPlayCtrl = void 0; var i = u(n(53)), r = u(n(54)), a = u(n(1)), s = u(n(2)), o = u(n(11)); function u(e) { return e && e.__esModule ? e : { default: e } } var d = 28944, l = 28945, h = 29217, c = 29280, _ = 29281, m = 29282, p = 8193, y = 8192, v = 4096, g = { width: 0, height: 0, frameNum: 0, yuvData: null }, M = { width: 0, height: 0, frameNum: 0, yuvData: null }, L = { sampleRate: 0, channel: 0, bitsPerSample: 0, length: 0, pcmData: null }, f = !1, S = !1, k = !1, b = { id: null, cmd: null, data: null, errorCode: 0, status: null }; function w(n) { return new o.default(function (e) { var t = document.createElement("script"); t.type = "text/javascript", t.src = n, t.onload = function () { e() }, document.body.appendChild(t) }) } var D; t.JSPlayCtrl = ((0, s.default)(T, [{ key: "_loadRenderFiles", value: (D = (0, r.default)(i.default.mark(function e() { return i.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: if (S && f) { e.next = 5; break } return e.next = 3, o.default.all([w(this.szBasePath + "AudioRenderer.js"), w(this.szBasePath + "SuperRender_10.js")]); case 3: f = S = !0; case 5: case "end": return e.stop() } }, e, this) })), function () { return D.apply(this, arguments) }) }, { key: "PlayM4_SetCurrentFrameNum", value: function (e, t) { return null != this.decodeWorker && null != this.oSuperRender && this.bPlay ? e < 0 || 0 !== t && 1 !== t ? this.iLastErrorCode = 0 : this.PlayM4_SetPlayPosition(0, e, t) : this.iLastErrorCode = 2 } }, { key: "PlayM4_SetPlayPosition", value: function (e, t, n) { return null != this.decodeWorker && null != this.oSuperRender && this.bPlay ? 0 !== e && 1 !== e || t < 0 || 0 !== n && 1 !== n ? this.iLastErrorCode = 0 : (this.SetPlayPositionFlag = !0, this.iFrameNumOrTime = t, this.bSetPlayPositionType = n, this.decodeWorker.postMessage({ command: "SetPlayPosition", data: this.iFrameNumOrTime, type: e }), this.aAudioBuffer.splice(0, this.aAudioBuffer.length), this.iAudioBufferSize = 0, this.aVideoFrameBuffer.splice(0, this.aVideoFrameBuffer.length), this.aInputDataBuffer.splice(0, this.aInputDataBuffer.length), this.aInputDataLens.splice(0, this.aInputDataLens.length), this.bIsFirstFrame = !0, this.bIsInputBufOver = !1, this.iLastErrorCode = 1) : this.iLastErrorCode = 2 } }, { key: "PlayM4_OpenPlayerSDKPrintLog", value: function (e) { return k = !0 === e, this.decodeWorker.postMessage({ command: "printLog", data: e }), this.iLastErrorCode = 1 } }, { key: "PlayM4_DownloadYUVdata", value: function () { return this.bWriteYUVData = !0, this.iLastErrorCode = 1 } }, { key: "PlayM4_DownloadPCMdata", value: function () { return this.bWritePCMData = !0, this.iLastErrorCode = 1 } }, { key: "PlayM4_SetDecCallBack", value: function (e) { return k && console.log(">>>JS MainThread-PlayM4_SetDecCallBack"), e && "function" == typeof e ? (this.DecCallBackFun = e, this.iLastErrorCode = 1) : this.iLastErrorCode = 0 } }, { key: "PlayM4_SetDisplayCallBack", value: function (e) { return k && console.log(">>>JS MainThread-PlayM4_SetDisplayCallBack"), e && "function" == typeof e ? (this.DisplayCallBackFun = e, this.iLastErrorCode = 1) : this.iLastErrorCode = 0 } }, { key: "PlayM4_SetPCMCallBack", value: function (e) { return k && console.log(">>>JS MainThread-PlayM4_SetDisplayCallBack"), e && "function" == typeof e ? (this.PCMCallBackFun = e, this.iLastErrorCode = 1) : this.iLastErrorCode = 0 } }, { key: "PlayM4_SetStreamOpenMode", value: function (e) { return null == e || void 0 === e || 0 !== e && 1 !== e ? this.iLastErrorCode = 0 : (this.streamOpenMode = e, k && console.log(">>>JS PlayM4_SetStreamOpenMode nMode:" + e), this.iLastErrorCode = 1) } }, { key: "PlayM4_DownloadRTPData", value: function (e) { this.downloadRTP = e } }, { key: "PlayM4_OpenStream", value: function (e, t, n) { if (k && console.log(">>>JS PlayM4_OpenStream 1 nSysTime:" + ((new Date).getMonth() + 1) + "-" + (new Date).getDate() + " " + (new Date).getHours() + ":" + (new Date).getMinutes() + ":" + (new Date).getSeconds() + "." + (new Date).getMilliseconds()), null == this.decodeWorker) return this.iLastErrorCode = 2; if (this.downloadRTP && (i = new Uint8Array(e.buffer), this.DownloadRTPData(i), console.log("write 40 hik head")), null == e || t <= 0 || n <= 0) return this.iLastErrorCode = 0; this.bPlay = !1, this.bPause = !1, this.bOnebyOne = !1, this.bIsFirstFrame = !0, this.bIsGetYUV = !1, this.bIsInput = !1; var i = this.checkAudioType(e); return this.bAudioTypeSupport = 1 === i, this.decodeWorker.postMessage({ command: "SetStreamOpenMode", data: this.streamOpenMode }), k && console.log(">>>JS PlayM4_OpenStream 2 nSysTime:" + ((new Date).getMonth() + 1) + "-" + (new Date).getDate() + " " + (new Date).getHours() + ":" + (new Date).getMinutes() + ":" + (new Date).getSeconds() + "." + (new Date).getMilliseconds()), this.decodeWorker.postMessage({ command: "OpenStream", data: e, dataSize: t, bufPoolSize: n }), k && console.log(">>>JS PlayM4_OpenStream 3 nSysTime:" + ((new Date).getMonth() + 1) + "-" + (new Date).getDate() + " " + (new Date).getHours() + ":" + (new Date).getMinutes() + ":" + (new Date).getSeconds() + "." + (new Date).getMilliseconds()), this.bOpenStream = !0, this.iLastErrorCode = 1 } }, { key: "PlayM4_CloseStream", value: function () { return k && console.log(">>>JS PlayM4_CloseStream 1 nSysTime:" + ((new Date).getMonth() + 1) + "-" + (new Date).getDate() + " " + (new Date).getHours() + ":" + (new Date).getMinutes() + ":" + (new Date).getSeconds() + "." + (new Date).getMilliseconds()), null === this.decodeWorker || !1 === this.bOpenStream ? this.iLastErrorCode = 2 : (this.bOnlyPlaySound = !1, this.PlayM4_Stop(), this.decodeWorker.postMessage({ command: "CloseStream" }), null !== this.oSuperRender && (this.oSuperRender.SR_Destroy(), this.oSuperRender = null), null !== this.audioRenderer && (this.audioRenderer.Stop(), this.audioRenderer = null), this.aAudioBuffer.splice(0, this.aAudioBuffer.length), this.aVideoFrameBuffer.splice(0, this.aVideoFrameBuffer.length), this.aInputDataBuffer.splice(0, this.aInputDataBuffer.length), this.aInputDataLens.splice(0, this.aInputDataLens.length), this.aAudioEncBuffer.splice(0, this.aAudioEncBuffer.length), this.aVideoYUVBuffer.splice(0, this.aVideoYUVBuffer.length), this.aAudioPCMBuffer.splice(0, this.aAudioPCMBuffer.length), this.aRawDataBuffer.splice(0, this.aRawDataBuffer.length), this.bOpenStream = !1, this.iAudioBufferSize = 0, this.szOSDTime = null, this.iLastErrorCode = 1) } }, { key: "PlayM4_Destroy", value: function () { return k && console.log(">>>JS PlayM4_Destroy 1 nSysTime:" + ((new Date).getMonth() + 1) + "-" + (new Date).getDate() + " " + (new Date).getHours() + ":" + (new Date).getMinutes() + ":" + (new Date).getSeconds() + "." + (new Date).getMilliseconds()), null === this.decodeWorker || (this.PlayM4_CloseStream(), this.decodeWorker.terminate(), this.decodeWorker = null), this.iLastErrorCode = 1 } }, { key: "PlayM4_InputData", value: function (e, t) { var n = this.aInputDataBuffer.length; if (4 === t) { var i = new Uint8Array(e.buffer); if (1 === i[0] && 2 === i[1] && 3 === i[2] && 4 === i[3]) return k && console.log(">>>JS PlaySDKInterface PlayM4_InputData:intput end"), this.bIsFirstFrame ? (k && console.log(">>>JS inputData FirstTime"), this.inputDataFun()) : this.bIsGetYUV ? this.inputDataFun() : this.bIsInput = !0, i = null, this.iLastErrorCode = 1 } if (n + t > this.iInputMaxBufSize) return console.log("input over"), this.inputDataFun(), this.iLastErrorCode = 11; var r = null, a = t; switch (this.streamOpenMode) { case 1: r = new Uint8Array(e.buffer), this.downloadRTP && (this.DownloadRTPData(r), this.rtpNum++, console.log("rtpNUm:" + this.rtpNum)), this.aInputDataLens.push(t); break; case 0: var a = t + 4, s = new Uint32Array([t]), o = new Uint8Array(s.buffer); (r = new Uint8Array(a)).set(o, 0), r.set(e, 4), this.downloadRTP && (this.DownloadRTPData(r), this.rtpNum++, console.log("rtpNUm:" + this.rtpNum)), 0, this.aInputDataLens.push(t + 4); break; default: return this.iLastErrorCode = 16 }for (var u = 0; u < a; u++)this.aInputDataBuffer[n + u] = r[u]; return this.bPlay && null !== this.decodeWorker && !1 !== this.bOpenStream ? (r = null, k && console.log(">>>JS PlayM4_InputData 1: nSize:%d, iInputBufLen:%d, iInputMaxBufSize;%d", t, this.aInputDataBuffer.length, this.iInputMaxBufSize), this.bOnlyPlaySound ? (k && console.log(">>>JS PlayM4_InputData: OnlyPlaySound"), this.inputDataFun()) : this.bIsFirstFrame ? (k && console.log(">>>JS PlayM4_InputData is firstFrame"), this.inputDataFun()) : this.bIsGetYUV ? (k && console.log(">>>JS PlayM4_InputData is GetYUV"), this.inputDataFun()) : (k && console.log(">>>JS PlayM4_InputData 1-3 sysTime:" + ((new Date).getMonth() + 1) + "-" + (new Date).getDate() + " " + (new Date).getHours() + ":" + (new Date).getMinutes() + ":" + (new Date).getSeconds() + "." + (new Date).getMilliseconds()), this.bIsInput = !0), this.iLastErrorCode = 1) : 1 } }, { key: "DownloadRTPData", value: function (e) { if (this.bWriteRTPData) { for (var t = new Uint8Array(e), n = this.aRTPDataBuffer.length, i = 0, r = t.length; i < r; i++)this.aRTPDataBuffer[n + i] = t[i]; this.iRTPDataSize++, t = null } this.bWriteRTPData && 200 <= this.iRTPDataSize && (console.log("download200RTPdata"), e = new Uint8Array(this.aRTPDataBuffer), this.downloadFile(e, "RTP.data"), this.aRTPDataBuffer.splice(0, this.aRTPDataBuffer.length), this.bWriteRTPData = !1, this.iRTPDataSize = 0, this.rtpNum = 0, this.downloadRTP = !1) } }, { key: "PlayM4_Play", value: function (e) { if (null === this.decodeWorker) return this.iLastErrorCode = 2; if (k && console.log(">>>JS PlayM4_Play canvasID: " + e), null === e) this.bOnlyPlaySound = !0, this.sCanvasId = null; else { if ("string" != typeof e) return this.iLastErrorCode = 0; if (this.bOnebyOne && (this.bPlayRateChange = !1, this.bOnebyOne = !1, this.bPause = !1, this.draw()), this.bPlay) return this.iLastErrorCode = 1; if (null == this.oSuperRender && (this.oSuperRender = new SuperRender(e, this.szBasePath), null == this.oSuperRender)) return this.iLastErrorCode = 61; this.sCanvasId = e, this.bPlay = !0, this.bPause = !1, this.bOnebyOne = !1, this.bPlaySound = !1, this.bPlayRateChange = !1, this.bOnlyPlaySound = !1, this.draw() } return null == this.audioRenderer && (this.audioRenderer = new AudioRenderer, null == this.audioRenderer) ? this.iLastErrorCode = 61 : this.iLastErrorCode = 1 } }, { key: "PlayM4_Stop", value: function () { if (k && console.log(">>>JS PlayM4_Stop 1"), null == this.decodeWorker || null == this.oSuperRender) return this.iLastErrorCode = 2; if (!this.bPlay) return this.iLastErrorCode = 2; this.bPlaySound && (this.PlayM4_StopSound(), this.bPlaySound = !0), this.bPlay = !1, this.bOnebyOne = !1, this.bPause = !1, this.oSuperRender.SR_SetDisplayRect(null), this.iZoomNum = 0, this.bDisRect = !1, this.oSuperRender.SR_DisplayFrameData(this.nWidth, this.nHeight, null); var e = document.getElementById(this.sCanvasId); return e && (this.clonedCanvas = e.cloneNode(!0), this.clonedCanvasParentNode = e.parentNode, this.clonedCanvasParentNode.replaceChild(this.clonedCanvas, e)), this.iLastErrorCode = 1 } }, { key: "PlayM4_PlayRate", value: function (e) { return null == this.decodeWorker ? this.iLastErrorCode = 2 : (this.bPlayRateChange = 1 !== e, this.iInputDataLen = 20480 * (e = e < 1 ? 1 : e), this.iLastErrorCode = 1) } }, { key: "PlayM4_Pause", value: function (e) { return null == this.decodeWorker || null == this.oSuperRender || !this.bPlay || this.bOnebyOne ? this.iLastErrorCode = 2 : "boolean" != typeof e ? this.iLastErrorCode = 0 : (this.bPause = e, this.bIsFirstFrame = !0, k && console.log(">>>JS PlayM4_Pause:" + e), e ? this.bPlaySound && (this.PlayM4_StopSound(), this.bPlaySound = !0) : (this.bPlaySound && this.PlayM4_PlaySound(), this.draw()), this.iLastErrorCode = 1) } }, { key: "PlayM4_OneByOne", value: function (e) { return null != this.decodeWorker && null != this.oSuperRender && this.bPlay ? 10 < e || e <= 0 ? this.iLastErrorCode = 0 : (e = e || 1, this.iInputDataLen = 20480, this.FrameForwardLen = e, this.bPause = !0, this.bOnebyOne = !0, this.bIsFirstFrame = !0, this.draw(), this.iLastErrorCode = 1) : this.iLastErrorCode = 2 } }, { key: "PlayM4_PlaySound", value: function (e) { return null === this.decodeWorker || !1 === this.bOpenStream ? this.iLastErrorCode = 2 : this.bAudioTypeSupport ? e < 0 || 16 < e ? this.iLastErrorCode = 0 : null == this.audioRenderer && (this.audioRenderer = new AudioRenderer, null == this.audioRenderer) ? this.iLastErrorCode = 61 : (this.audioRenderer.SetWndNum(e), this.audioRenderer.oAudioContext.resume(), this.bPlaySound = !0, this.iLastErrorCode = 1) : this.iLastErrorCode = 16 } }, { key: "PlayM4_StopSound", value: function () { return null != this.decodeWorker && null != this.audioRenderer && this.bPlaySound ? (this.bPlaySound = !1, this.iLastErrorCode = 1) : this.iLastErrorCode = 2 } }, { key: "PlayM4_SetDisplayBuf", value: function (e) { return null == this.decodeWorker ? this.iLastErrorCode = 2 : e <= 0 ? this.iLastErrorCode = 0 : (this.YUVBufferSize = e, this.iLastErrorCode = 1) } }, { key: "PlayM4_SetSecretKey", value: function (e, t, n) { if (null == this.decodeWorker || !1 === this.bOpenStream) return this.iLastErrorCode = 2; if (null == t) return this.iLastErrorCode = 0; if (1 === e) { if (128 !== n) return this.iLastErrorCode = 0; if (null == t || void 0 === t) return this.iLastErrorCode = 0 } else if (0 !== e) return this.iLastErrorCode = 0; return this.decodeWorker.postMessage({ command: "SetSecretKey", data: t, nKeyType: e, nKeyLen: n }), this.iLastErrorCode = 1 } }, { key: "PlayM4_SetDecodeFrameType", value: function (e) { return null == this.decodeWorker || null == this.oSuperRender ? this.iLastErrorCode = 2 : 0 !== e && 1 !== e ? this.iLastErrorCode = 0 : (k && (console.log(">>>JS PlayM4_SetDecodeFrameType"), console.log(e)), this.nDecFrameType = e, this.decodeWorker.postMessage({ command: "SetDecodeFrameType", data: e }), this.iLastErrorCode = 1) } }, { key: "PlayM4_SetIFrameDecInterval", value: function (e) { return 1 !== this.nDecFrameType ? this.iLastErrorCode = 2 : e < 0 ? this.iLastErrorCode = 0 : (this.decodeWorker.postMessage({ command: "SetIFrameDecInterval", data: e }), this.iLastErrorCode = 1) } }, { key: "PlayM4_SetLostFrameMode", value: function (e) { return e < 0 || 1 < e ? 0 : (this.decodeWorker.postMessage({ command: "SetLostFrameMode", data: e }), 1) } }, { key: "PlayM4_SetDisplayRegion", value: function (e, t) { if (k && console.log("PlayM4_SetDisplayRegion "), null === this.decodeWorker || !1 === this.bPlay || null === this.oSuperRender || null === this.canvasId) return this.iLastErrorCode = 2; if (!0 === t) { if (null == e) return k && console.log("PlayM4_SetDisplayRegion: dipalyRect is null"), this.iLastErrorCode = 0; if ("number" != typeof e.left || "number" != typeof e.top || "number" != typeof e.right || "number" != typeof e.bottom) return this.iLastErrorCode = 0; if (e.right < 0 || e.left < 0 || e.top < 0 || e.bottom < 0) return k && console.log("PlayM4_SetDisplayRegion: dipalyRect rectParameter is wrong"), this.iLastErrorCode = 0; var n = e.left, i = e.right, r = e.top, t = e.bottom, e = document.getElementById(this.sCanvasId).getBoundingClientRect(); if (this.iCanvasWidth = e.width, this.iCanvasHeight = e.height, i - n < 16 || t - r < 16 || i - n > this.iCanvasWidth || t - r > this.iCanvasHeight) return this.iLastErrorCode = 0; 0 !== this.iZoomNum && (n = Math.round(n / this.iRatio_x) + this.stDisplayRect.left, r = Math.round(r / this.iRatio_y) + this.stDisplayRect.top, i = Math.round(i / this.iRatio_x) + this.stDisplayRect.left, t = Math.round(t / this.iRatio_y) + this.stDisplayRect.top), this.stDisplayRect = { top: r, left: n, right: i, bottom: t }, this.oSuperRender.SR_SetDisplayRect(this.stDisplayRect), this.bDisRect = !0; r = t - r; this.iRatio_x = this.iCanvasWidth / (i - n), this.iRatio_y = this.iCanvasHeight / r, this.iZoomNum++ } else this.oSuperRender.SR_SetDisplayRect(null), this.iZoomNum = 0, this.bDisRect = !1; return (this.bPause || this.bOnebyOne || this.bPlayRateChange) && this.oSuperRender.SR_DisplayFrameData(this.nWidth, this.nHeight, new Uint8Array(this.aDisplayBuf)), this.iLastErrorCode = 1 } }, { key: "PlayM4_GetBMP", value: function (e) { return this.getPic(e, "GetBMP") } }, { key: "PlayM4_GetJPEG", value: function (e) { return this.getPic(e, "GetJPEG") } }, { key: "PlayM4_SetVolume", value: function (e) { return null == this.decodeWorker || null == this.audioRenderer ? this.iLastErrorCode = 2 : e < 0 || 100 < e ? this.iLastErrorCode = 0 : (this.audioRenderer.SetVolume(e / 100), this.iLastErrorCode = 1) } }, { key: "PlayM4_GetVolume", value: function (e) { if (null == this.decodeWorker || null == this.audioRenderer) return this.iLastErrorCode = 2; if (e && "function" == typeof e) { var t = this.audioRenderer.GetVolume(); return null === t ? 63 : (e(10 * Math.round(10 * t)), this.iLastErrorCode = 1) } return this.iLastErrorCode = 0 } }, { key: "PlayM4_GetOSDTime", value: function (e) { return null != this.decodeWorker && this.bPlay ? e && "function" == typeof e ? (e(this.szOSDTime), this.iLastErrorCode = 1) : this.iLastErrorCode = 0 : this.iLastErrorCode = 2 } }, { key: "PlayM4_IsVisible", value: function (e) { return this.bVisibility = e, k && console.log(">>>JS PlayM4_IsVisible visibility:" + e), this.iLastErrorCode = 1 } }, { key: "PlayM4_GetSdkVersion", value: function () { return "20211104" } }, { key: "PlayM4_GetBuildDate", value: function () { return "20210923" } }, { key: "PlayM4_GetInputBufSize", value: function () { return this.aInputDataBuffer.length } }, { key: "PlayM4_SetInputBufSize", value: function (e) { return 0 < e ? (this.iInputMaxBufSize = e, this.iLastErrorCode = 1) : this.iLastErrorCode = 0 } }, { key: "PlayM4_GetYUVBufSize", value: function () { return this.aVideoFrameBuffer.length } }, { key: "PlayM4_GetFrameResolution", value: function (e) { return null == this.decodeWorker ? this.iLastErrorCode = 2 : e && "function" == typeof e && 0 < this.nHeight && 0 < this.nWidth ? (e(this.nWidth, this.nHeight), this.iLastErrorCode = 1) : this.iLastErrorCode = 0 } }, { key: "PlayM4_RegisterYUVBufSizeCB", value: function (e) { return e && "function" == typeof e ? (this.YUVBufSizeCBFun = e, this.iLastErrorCode = 1) : this.iLastErrorCode = 0 } }, { key: "PlayM4_UnRegisterYUVBufSizeCB", value: function () { return null != this.YUVBufSizeCBFun && (this.YUVBufSizeCBFun = null), this.iLastErrorCode = 1 } }, { key: "PlayM4_ClearCanvas", value: function () { return null == this.oSuperRender ? this.iLastErrorCode = 2 : (this.oSuperRender.SR_DisplayFrameData(this.nWidth, this.nHeight, null), this.iLastErrorCode = 1) } }, { key: "PlayM4_ReleaseInputBuffer", value: function () { return null === this.aInputDataBuffer ? this.iLastErrorCode = 2 : (this.aInputDataBuffer.splice(0, this.aInputDataBuffer.length), this.aInputDataLens.splice(0, this.aInputDataLens.length), this.iLastErrorCode = 1) } }, { key: "PlayM4_GetDecodeFrameType", value: function () { return this.nDecFrameType } }, { key: "PlayM4_CreateAudEncode", value: function (e) { return k && console.log(">>>JS PlayM4_CreateAudEncode 1 nEncoderType:" + e), null == this.decodeWorker ? 79 : e < 1 || 6 < e || 5 === e ? 71 : (this.decodeWorker.postMessage({ command: "CreateAudEncode", encodertype: e }), k && console.log(">>>JS PlayM4_CreateAudEncode 2 nEncoderType:" + e), 1) } }, { key: "PlayM4_SetAudEncodeParam", value: function (e, t, n, i) { return k && console.log(">>>JS PlayM4_SetAudEncodeParam 1 nSampleRate:" + e + ",nChannel:" + t + " ,nBitRate:" + n + " ,nBitWidth:" + i), null == this.decodeWorker ? 79 : 1 != t || 16 != i ? 71 : (this.decodeWorker.postMessage({ command: "SetAudEncodeParam", samplerate: e, channel: t, bitrate: n, bitwidth: i }), k && console.log(">>>JS PlayM4_SetAudEncodeParam 2 nSampleRate:" + e + ",nChannel:" + t + " ,nBitRate:" + n + " ,nBitWidth:" + i), 1) } }, { key: "PlayM4_InputAudEncodeData", value: function (e, t) { return k && console.log(">>>JS PlayM4_InputAudEncodeData 1 dataSize:" + t), null == this.decodeWorker ? 79 : (k && console.log(">>>JS  PlayM4_InputAudEncodeData 2 dataSize:" + t + ", nSysTime:" + (new Date).getMinutes() + ":" + (new Date).getSeconds() + "." + (new Date).getMilliseconds()), this.decodeWorker.postMessage({ command: "InputAudEncodeData", data: e, dataSize: t }), 1) } }, { key: "PlayM4_DestroyAudEncode", value: function () { return k && console.log(">>>JS MainThread-PlayM4_DestroyAudEncode 1 "), null == this.decodeWorker ? 79 : (this.aAudioEncBuffer.splice(0, this.aAudioEncBuffer.length), this.iAudioEncBufferSize = 0, this.decodeWorker.postMessage({ command: "DestroyAudEncode" }), 1) } }, { key: "PlayM4_GetAudioEmcBuf", value: function () { return this.aAudioEncBuffer } }, { key: "PlayM4_RegisterAudEncodeCB", value: function (e) { return k && console.log(">>>JS PlayM4_RegisterAudEncodeCB 1 callback:" + e), e && "function" == typeof e ? (this.AudEncodeDataCBFun = e, k && console.log(">>>JS PlayM4_RegisterAudEncodeCB 2 callback:" + e), 1) : 0 } }, { key: "downloadFile", value: function (e, t) { var n = e; e instanceof Blob || e instanceof File || (n = new Blob([e])); e = window.URL.createObjectURL(n), n = window.document.createElement("a"); n.href = e, n.download = t; t = document.createEvent("MouseEvents"); t.initEvent("click", !0, !0), n.dispatchEvent(t) } }, { key: "PlayM4_GetLastError", value: function () { return this.iLastErrorCode } }]), T); function T(e, t, s) { if ((0, a.default)(this, T), null == e || void 0 === e || "string" != typeof e) return 0; if (this.szBasePath = e, !t || "function" != typeof t) return 0; this.fnCallBack = t, this.decodeWorker = null, this.streamOpenMode = null, this.bOpenStream = !1, this.iFrameNumOrTime = 0, this.bSetPlayPositionType = 0, this.audioRenderer = null, this.aAudioBuffer = [], this.iAudioBufferSize = 0, this.bWriteAudEnc = !1, this.iAudioEncBufferSize = 0, this.aAudioEncBuffer = [], this.oSuperRender = null, this.aVideoFrameBuffer = [], this.YUVBufferSize = 1, this.szOSDTime = null, this.bWriteYUVData = !1, this.iYUV10size = 0, this.aVideoYUVBuffer = [], this.bWritePCMData = !1, this.iAudioBuffer500Size = 0, this.aAudioPCMBuffer = [], this.bWriteRawData = !1, this.iRawDataSize = 0, this.aRawDataBuffer = [], this.bWriteRTPData = !0, this.iRTPDataSize = 0, this.aRTPDataBuffer = [], this.downloadRTP = !1, this.rtpNum = 0, this.bPlaySound = !1, this.bPlay = !1, this.bPause = !1, this.bOnebyOne = !1, this.bPlayRateChange = !1, this.bAudioTypeSupport = !0, this.audioNum = 0, this.videoNum = 0, this.SetPlayPositionFlag = !1, this.FrameForwardLen = 1, this.bOnlyPlaySound = !1, this.dataCallBackFun = null, this.YUVBufSizeCBFun = null, this.AudEncodeDataCBFun = null, this.DecCallBackFun = null, this.DisplayCallBackFun = null, this.PCMCallBackFun = null, this.DecInfoYUV = g, this.DisplayInfoYUV = M, this.DecInfoPCM = L, this.nWidth = 0, this.nHeight = 0, this.nSPSCropLeft = 0, this.nSPSCropRight = 0, this.nSPSCropTop = 0, this.nSPSCropBottom = 0, this.sCanvasId = null, this.aDisplayBuf = null, this.bVisibility = !0, this.nDecFrameType = 0, this.iCanvasWidth = 0, this.iCanvasHeight = 0, this.iZoomNum = 0, this.iRatio_x = 1, this.iRatio_y = 1, this.stDisplayRect = { top: 0, left: 0, right: 0, bottom: 0 }, this.bDisRect = !1, this.stYUVRect = { top: 0, left: 0, right: 0, bottom: 0 }, this.aInputDataLens = [], this.aInputDataBuffer = [], this.bIsGetYUV = !1, this.bIsFirstFrame = !0, this.iInputMaxBufSize = 5242880, this.bIsInput = !1, this.bIsInputBufOver = !1, this.iInputDataLen = 20480; var f = this; this.iLastErrorCode = 1, this.setCallBack = function (e, t, n, i, r) { var a = b; a.id = s, a.cmd = t, a.data = n, a.errorCode = i, a.status = r, e.fnCallBack(a) }, this._loadRenderFiles(), this.convertErrorCode = function (e) { switch (e) { case 1: return this.iLastErrorCode = 1; case 98: return this.iLastErrorCode = 0; default: return this.iLastErrorCode = e } }, this.arrayBufferCopy = function (e) { for (var t = e.byteLength, n = new Uint8Array(t), i = new Uint8Array(e), r = 0, r = 0; r < t; r++)n[r] = i[r]; return n }, this.inputDataFun = function () { var e = 0; if (f.bIsGetYUV = !1, f.bIsInputBufOver) { k && console.log(">>>JS inputDataFun over!"); var t = new Uint8Array(1), n = { command: "InputData", data: new Uint8Array(t).buffer, dataSize: 0 }; f.decodeWorker.postMessage(n, [n.data]) } else if (f.bPlay && (!f.bPause || f.bOnebyOne) || this.bOnlyPlaySound) { for (; 0 < f.aInputDataLens.length && !((e += f.aInputDataLens.shift()) > f.iInputDataLen);); k && console.log(">>>JS inputDataFun-len:%d,totalSize:%d", e, f.aInputDataBuffer.length), t = f.aInputDataBuffer.splice(0, e); n = { command: "InputData", data: new Uint8Array(t).buffer, dataSize: e }; f.decodeWorker.postMessage(n, [n.data]) } t = null }, this.getPic = function (e, t) { if (null == this.decodeWorker || null == this.oSuperRender) return this.iLastErrorCode = 2; if (!this.bPlay) return this.iLastErrorCode = 2; if (!e || "function" != typeof e) return this.iLastErrorCode = 0; var n; if (this.dataCallBackFun = e, 0 === this.iZoomNum) this.stYUVRect.left = 0, this.stYUVRect.top = 0, this.stYUVRect.right = 0, this.stYUVRect.bottom = 0; else if (0 === this.iCanvasWidth || 0 === this.iCanvasHeight ? (this.stYUVRect.left = 0, this.stYUVRect.top = 0, this.stYUVRect.right = 0, this.stYUVRect.bottom = 0) : (n = this.nWidth / this.iCanvasWidth, e = this.nHeight / this.iCanvasHeight, this.stYUVRect.left = Math.round(this.stDisplayRect.left * n), this.stYUVRect.top = Math.round(this.stDisplayRect.top * e), this.stYUVRect.right = Math.round(this.stDisplayRect.right * n), this.stYUVRect.bottom = Math.round(this.stDisplayRect.bottom * e)), this.stYUVRect.right - this.stYUVRect.left < 32 || this.stYUVRect.bottom - this.stYUVRect.top < 32) return this.iLastErrorCode = 0; if (null == this.aDisplayBuf) return this.iLastErrorCode = 2; t = { command: t, data: this.arrayBufferCopy(this.aDisplayBuf).buffer, width: this.nWidth, height: this.nHeight, rect: this.stYUVRect }; return k && console.log(">>>JS capture nWidth = %d,nWidth = %d", this.nWidth, this.nHeight), this.decodeWorker.postMessage(t), this.iLastErrorCode = 1 }, this.createWorker = function (_) { if (window.Worker) { if (null == this.decodeWorker && (this.decodeWorker = new Worker(f.szBasePath + "DecodeWorker.js"), k && console.log(">>>JS  createWorker success!!!!!!!!!!!!!!!!!!!!!!!!!"), null == this.decodeWorker)) return this.iLastErrorCode = 60; this.decodeWorker.onmessage = function (e) { var t, n = null, i = e.data; switch (i.function) { case "printLog": console.log("print JSPlayerSDK log failed"); break; case "loaded": _.setCallBack(_, n = "loaded", 0, 0, !0); break; case "SetStreamOpenMode": n = "SetStreamOpenMode"; break; case "OpenStream": if (n = "OpenStream", 1 === i.errorCode) return void (f.bOpenStream = !0); break; case "InputData": n = "InputData", 11 === i.errorCode && (f.bIsInputBufOver = !0, f.inputDataFun(), k && console.log(">>>JS InputData PLAYM4_BUF_OVER")), 31 === i.errorCode && (f.bIsInputBufOver = !1, k && console.log(">>>JS InputData PLAYM4_NEED_MORE_DATA")); break; case "GetFrameData": if (n = "GetFrameData", !f.bOnlyPlaySound) { if (k && console.log(">>>JS mainthread display GetFrameData 1-1"), null != i.data && null != i.frameInfo && (i.frameInfo.width, i.frameInfo.height), !f.bPlay) return; if (!f.bIsFirstFrame && 31 === i.errorCode) { f.bIsInputBufOver = !1, setTimeout(f.inputDataFun(), 5); break } f.bIsInputBufOver ? f.inputDataFun() : "videoType" === i.type && (0 < f.aInputDataLens.length && f.bIsInput ? (f.inputDataFun(), f.bIsInput = !1) : f.bIsGetYUV = !0, f.bIsFirstFrame = !1) } if (k && console.log(">>>JS mainthread display GetFrameData bVisibility:" + f.bVisibility), f.bVisibility) if (1 === i.errorCode) switch (i.type) { case "videoType": if (k && console.log(">>>JS mainthread display GetFrameData type:" + i.type), null == i.data || null == i.frameInfo) return this.iLastErrorCode = 0; if (null != f.DecCallBackFun && (k && console.log(">>>JS MainThread-GetYUVData"), f.DecInfoYUV.height = i.frameInfo.height, f.DecInfoYUV.width = i.frameInfo.width, f.DecInfoYUV.frameNum = i.frameInfo.frameNum, f.DecInfoYUV.yuvData = new Uint8Array(i.data), f.DecCallBackFun(f.DecInfoYUV)), f.bIsFirstFrame = !1, _.nWidth = i.frameInfo.width, _.nHeight = i.frameInfo.height, _.nSPSCropLeft = i.frameInfo.cropLeft, _.nSPSCropRight = i.frameInfo.cropRight, _.nSPSCropTop = i.frameInfo.cropTop, _.nSPSCropBottom = i.frameInfo.cropBottom, (u = new Object).data = i.data, u.osdTime = i.osd, u.nWidth = i.frameInfo.width, u.nHeight = i.frameInfo.height, u.frameNum = i.frameInfo.frameNum, u.timeStamp = i.frameInfo.timeStamp, _.bWriteYUVData) { for (var r = new Uint8Array(i.data), a = _.aVideoYUVBuffer.length, s = 0, o = r.length; s < o; s++)_.aVideoYUVBuffer[a + s] = r[s]; _.iYUV10size++, r = null } _.bWriteYUVData && 20 <= _.iYUV10size && (t = new Uint8Array(_.aVideoYUVBuffer), _.downloadFile(t, "videoYUV.data"), _.aVideoYUVBuffer.splice(0, _.aVideoYUVBuffer.length), _.bWriteYUVData = !1, _.iYUV10size = 0, t = null), k && console.log(">>>JS mainthread getVideoInfo Width:" + u.nWidth + ",height:" + u.nHeight + ",frameNum:" + u.frameNum), _.aVideoFrameBuffer.push(u); var u = null, u = _.aVideoFrameBuffer.length; if (5 < u && (k && console.log(">>>JS render loose frame iYUVNum:%d", u), _.bOnebyOne || _.aVideoFrameBuffer.splice(0, 2)), _.SetPlayPositionFlag && 1 === _.bSetPlayPositionType && (i.frameInfo.frameNum === _.iFrameNumOrTime || i.frameInfo.timeStamp === _.iFrameNumOrTime)) { _.setCallBack(_, "SetFrameNum", 0, 0, !1), _.bIsFirstFrame = !0; break } if (_.bOnebyOne && 15 <= _.aVideoFrameBuffer.length) { _.setCallBack(_, "OnebyOne", 0, 0, !1), _.bIsFirstFrame = !0; break } break; case "audioType": if (k && console.log(">>>JS mainthread display GetFrameData 2-3 type:" + i.type + ",bPlaySound:" + _.bPlaySound + ",!bPlayRateChange:" + !_.bPlayRateChange + ",bOnlyPlaySound:" + f.bOnlyPlaySound), _.bPlaySound && !_.bPlayRateChange || f.bOnlyPlaySound) { k && console.log(">>>JS mainthread display GetFrameData 2-4 type" + i.type + "bOnlyPlaySound:" + f.bOnlyPlaySound), null != f.PCMCallBackFun && (k && console.log(">>>JS MainThread-GetYUVData"), f.DecInfoPCM.sampleRate = i.frameInfo.samplesPerSec, f.DecInfoPCM.channel = i.frameInfo.channels, f.DecInfoPCM.bitsPerSample = i.frameInfo.bitsPerSample, f.DecInfoPCM.pcmData = new Uint8Array(i.data), f.DecInfoPCM.length = f.DecInfoPCM.pcmData.length, f.PCMCallBackFun(f.DecInfoPCM)); for (r = new Uint8Array(i.data), a = _.aAudioBuffer.length, s = 0, o = r.length; s < o; s++)_.aAudioBuffer[a + s] = r[s]; if (_.iAudioBufferSize++, r = null, k && console.log(">>>JS play sound 1 iAudioBufferNum:%d, BufferLen:%d", _.iAudioBufferSize, _.aAudioBuffer.length), _.bWritePCMData) { for (r = new Uint8Array(i.data), a = _.aAudioPCMBuffer.length, s = 0, o = r.length; s < o; s++)_.aAudioPCMBuffer[a + s] = r[s]; console.log("audio_type num:" + _.iAudioBuffer500Size + ", len:" + r.length), _.iAudioBuffer500Size++, r = null } _.bWritePCMData && 100 <= _.iAudioBuffer500Size && (u = new Uint8Array(_.aAudioPCMBuffer), _.downloadFile(u, "audioPCM.data"), _.aAudioPCMBuffer.splice(0, _.aAudioPCMBuffer.length), _.bWritePCMData = !1, _.iAudioBuffer500Size = 0, u = null), 25 <= _.iAudioBufferSize && (k && console.log(">>>JS play sound 2 iAudioBufferNum:%d, BufferLen:%d", _.iAudioBufferSize, _.aAudioBuffer.length), _.audioRenderer.Play(_.aAudioBuffer, _.aAudioBuffer.length, i.frameInfo), k && console.log(">>>JS mainthread display Audio push 3 sysTime:" + ((new Date).getMonth() + 1) + "-" + (new Date).getDate() + " " + (new Date).getHours() + ":" + (new Date).getMinutes() + ":" + (new Date).getSeconds() + "." + (new Date).getMilliseconds()), _.aAudioBuffer.splice(0, _.aAudioBuffer.length), _.aAudioBuffer.length = 0, _.iAudioBufferSize = 0) } break; case "privateType": k && console.log(">>>JS mainthread display GetFrameData 2-5 type" + i.type + "bOnlyPlaySound:" + f.bOnlyPlaySound); break; default: k && console.log(">>>JS mainthread display GetFrameData 2-6 type:" + i.type + ",bOnlyPlaySound:" + f.bOnlyPlaySound) } else k && console.log(">>>JS mainthread GetFrameData is not Ok,errorCode:" + i.errorCode); break; case "GetRawData": if (n = "GetRawData", _.bWriteRawData) { for (var d = new Uint8Array(i.data), l = _.aRawDataBuffer.length, s = 0, o = d.length; s < o; s++)_.aRawDataBuffer[l + s] = d[s]; _.iRawDataSize++, d = null } _.bWriteRawData && 100 <= _.iRawDataSize && (h = new Uint8Array(_.aRawDataBuffer), _.downloadFile(h, "rawBuffer.data"), _.aRawDataBuffer.splice(0, _.aRawDataBuffer.length), _.bWriteRawData = !1, _.iRawDataSize = 0, h = null); break; case "PlaySound": n = "PlaySound"; break; case "SetPlayPosition": console.log(">>>JS mainthread SetPlayPosition error,errorCode:" + i.errorCode); break; case "GetJPEG": var n = "GetJPEG", h = i.data; _.dataCallBackFun(h); break; case "GetBMP": n = "GetBMP"; var c = i.data; _.dataCallBackFun(c); break; case "GetAudEncodeData": if (k && console.log(">>>JS MainThread-GetAudEncodeData 1"), n = "GetAudEncodeData", 1 === i.errorCode) { if (null != f.AudEncodeDataCBFun && (k && console.log(">>>JS  GetAudEncodeData 1 dataSize" + i.dataSize + ", nSysTime:" + (new Date).getMinutes() + ":" + (new Date).getSeconds() + "." + (new Date).getMilliseconds()), f.AudEncodeDataCBFun(new Uint8Array(i.data)), k && console.log(">>>JS  GetAudEncodeData 2 dataSize" + i.dataSize + ", nSysTime:" + (new Date).getMinutes() + ":" + (new Date).getSeconds() + "." + (new Date).getMilliseconds())), _.bWriteAudEnc) { for (r = new Uint8Array(i.data), a = _.aAudioEncBuffer.length, s = 0, o = r.length; s < o; s++)_.aAudioEncBuffer[a + s] = r[s]; _.iAudioEncBufferSize++, r = null } _.bWriteAudEnc && 200 <= _.iAudioEncBufferSize && (c = new Uint8Array(_.aAudioEncBuffer), _.downloadFile(c, "Enc.AAC"), _.aAudioEncBuffer.splice(0, _.aAudioEncBuffer.length), _.bWriteAudEnc = !1, _.iAudioEncBufferSize = 0, c = null) } else k && console.log(">>>JS MainThread-GetAudEncodeData 2 err") }"GetFrameData" === n && "GetAudEncodeData" === n && 16 !== i.errorCode && 101 !== i.errorCode && 100 !== i.errorCode && 48 !== i.errorCode || _.setCallBack(_, n, 0, _.convertErrorCode(i.errorCode), !0) } } }, this.createWorker(f), this.draw = function () { if (f.bPlay) { if (!f.bPause || f.bOnebyOne) { requestAnimationFrame(f.draw); var e = f.aVideoFrameBuffer.length; if (null != f.YUVBufSizeCBFun && f.YUVBufSizeCBFun(e), f.bOnebyOne) { if (e <= 8 && f.setCallBack(f, "OnebyOne", 0, 31, !0), e <= f.FrameForwardLen + 1) return void f.setCallBack(f, "OnebyOne", 0, 31, !0); for (var t = f.FrameForwardLen; 1 < t;) { f.aVideoFrameBuffer.shift(); t-- } f.bOnebyOne = !1 } if (k && console.log(">>>JS Draw aVideoFrameBuffer.length == " + e), e > f.YUVBufferSize) { var n = f.aVideoFrameBuffer.shift(); if (f.SetPlayPositionFlag) { if (k && console.log(">>>JS SetPlayPositionFlag frameNumOrTime:" + f.iFrameNumOrTime + ",currentFrameNum:" + n.frameNum), n.frameNum != f.iFrameNumOrTime) return void (k && console.log(">>>JS frameNum!= frameNumOrTime:" + n.frameNum)); 1 === f.bSetPlayPositionType && (f.bPause = !0), f.SetPlayPositionFlag = !1 } k && console.log(">>>after display frameNum:" + n.frameNum), f.aDisplayBuf = n.data; e = new Uint8Array(f.aDisplayBuf); k && console.log(">>>JS SR_DisplayFrameData 1 nWidth:%d, nHeight:%d, nWidth1:%d, nHeight1:%d", n.nWidth, n.nHeight, f.nWidth, f.nHeight), f.oSuperRender.SR_DisplayFrameData(n.nWidth, n.nHeight, e, n.nWidth - f.nSPSCropLeft - f.nSPSCropRight, n.nHeight - f.nSPSCropTop - f.nSPSCropBottom), null != f.DisplayCallBackFun && (k && console.log(">>>JS MainThread-DisplayCallBackFun"), f.DisplayInfoYUV.height = n.nHeight, f.DisplayInfoYUV.width = n.nWidth, f.DisplayInfoYUV.frameNum = n.frameNum, f.DisplayInfoYUV.yuvData = new Uint8Array(e), f.DisplayCallBackFun(f.DisplayInfoYUV)), k && f.bOnebyOne && console.log("OneByOne frameNum:" + n.frameNum), k && console.log(">>>JS SR_DisplayFrameData 2 nWidth:%d, nHeight:%d, nWidth1:%d, nHeight1:%d", n.nWidth, n.nHeight, f.nWidth, f.nHeight), e = null, f.szOSDTime = n.osdTime } else f.setCallBack(f, "Play", 0, 31, !0) } } else f.bPlay || (k && console.log(">>>JS mainThread stop play jsplaySDKInterface"), f.aVideoFrameBuffer.splice(0, f.aVideoFrameBuffer.length), f.aAudioBuffer.splice(0, f.aAudioBuffer.length)) }, this.checkAudioType = function (e) { var t, n = [e[12], e[13], 0, 0]; switch (255 & n[t = 0] | (255 & n[t + 1]) << 8 | (255 & n[t + 2]) << 16 | (255 & n[t + 3]) << 24) { case l: case d: case h: case m: case _: case c: case p: case y: case v: return this.iLastErrorCode = 1; default: return this.iLastErrorCode = 16 } } } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.JSTalkCtrl = void 0; var i = r(n(1)), n = r(n(2)); function r(e) { return e && e.__esModule ? e : { default: e } } var s = { id: null, cmd: null, data: null, errorCode: 0, status: null }, a = null; window.JSAUDIOCOM_EncodeDataCBFun = function (e, t, n, i) { a && null != a.AudEncodeDataCBFun && a.AudEncodeDataCBFun(new Uint8Array(t)) }, window.JSAUDIOCOM_DecodeDataCBFun = function (e, t, n, i) { a && null != a.AudDecodeDataCBFun && a.AudDecodeDataCBFun(new Uint8Array(t)) }; (0, n.default)(o, [{ key: "Talk_CreateAudEncode", value: function (e) { this.iTalkEncodePort = this.oTalkWASM._JSAUDIOCOM_CreateEncodeHandle(e), console.log("_JSAUDIOCOM_CreateEncodeHandle port :" + this.iTalkEncodePort) } }, { key: "Talk_SetAudEncodeParam", value: function (e, t, n, i) { var r; 0 == this.oTalkWASM._JSAUDIOCOM_RegisterEncodeDataCallBack(this.iTalkEncodePort, t, i, e, n) && (r = this.oTalkWASM._JSAUDIOCOM_GetLastError(this.iTalkEncodePort), console.log("resEncodeDataCallBack resError :" + r)), 1 !== this.oTalkWASM._JSAUDIOCOM_StartEncode(this.iTalkEncodePort) && (r = this.oTalkWASM._JSAUDIOCOM_GetLastError(this.iTalkEncodePort), console.log("_JSAUDIOCOM_StartEncode resError :" + r)) } }, { key: "Talk_RegisterAudEncodeCB", value: function (e) { return e && "function" == typeof e ? (this.AudEncodeDataCBFun = e, 1) : 0 } }, { key: "Talk_RegisterAudDecodeCB", value: function (e) { return e && "function" == typeof e ? (this.AudDecodeDataCBFun = e, 1) : 0 } }, { key: "Talk_InputAudEncodeData", value: function (e, t) { var n = this.oTalkWASM._malloc(t); if (null === n) return console.log("inputdata malloc failed!!!"), -1; e = new Uint8Array(e); this.oTalkWASM.writeArrayToMemory(e, n); e = void 0; try { e = this.oTalkWASM._JSAUDIOCOM_InputEncodeData(this.iTalkEncodePort, n, t) } catch (e) { console.error(e) } return 1 !== e && (e = this.oTalkWASM._JSAUDIOCOM_GetLastError(this.iTalkEncodePort), console.log("_JSAUDIOCOM_InputEncodeData resError :" + e)), null !== n && (this.oTalkWASM._free(n), n = null), 1 } }, { key: "Talk_DestroyAudEncode", value: function () { return this.oTalkWASM._JSAUDIOCOM_StopEncode(this.iTalkEncodePort), this.oTalkWASM._JSAUDIOCOM_ReleaseEncodeHandle(this.iTalkEncodePort), this.iTalkEncodePort = -1, 1 } }, { key: "Talk_CreateAuDecode", value: function () { this.oTalkWASM._JSAUDIOCOM_LoadLibrary(), this.oTalkWASM._JSAUDIOCOM_GetPlayDeviceNum(); var e = this.oTalkWASM._JSAUDIOCOM_GetOnePlayDeviceName(0); this.iTalkDecodePort = this.oTalkWASM._JSAUDIOCOM_CreatePlayHandle(), console.log("JSAUDIOCOM getNameRes:" + e + ", port:" + this.iTalkDecodePort) } }, { key: "Talk_SetAudDecodeParam", value: function (e, t, n, i, r) { 1 !== this.oTalkWASM._JSAUDIOCOM_OpenStream(this.iTalkDecodePort, t, i, e, n, r) && (r = this.oTalkWASM._JSAUDIOCOM_GetLastError(this.iTalkDecodePort), console.log("_JSAUDIOCOM_OpenStream resError :" + r)), this.oTalkWASM._JSAUDIOCOM_RegisterDecodeDataCallBack(this.iTalkDecodePort) } }, { key: "Talk_OpenStreamDecodeData", value: function () { var e; 1 !== this.oTalkWASM._JSAUDIOCOM_StartPlay(this.iTalkDecodePort) && (e = this.oTalkWASM._JSAUDIOCOM_GetLastError(this.iTalkDecodePort), console.log("_JSAUDIOCOM_StartPlay resError :" + e)) } }, { key: "Talk_InputAudDecodeData", value: function (e, t) { var n = this.oTalkWASM._malloc(t); if (null === n) return console.log("inputdata malloc failed!!!"), -1; e = new Uint8Array(e); return this.oTalkWASM.writeArrayToMemory(e, n), 1 !== this.oTalkWASM._JSAUDIOCOM_InputStreamData(this.iTalkDecodePort, n, t) && (t = this.oTalkWASM._JSAUDIOCOM_GetLastError(this.iTalkDecodePort), console.log("_JSAUDIOCOM_InputStreamData resError :" + t)), null !== n && (this.oTalkWASM._free(n), 0), 1 } }, { key: "Talk_DestroyAudDecode", value: function () { this.oTalkWASM._JSAUDIOCOM_StopPlay(this.iTalkDecodePort), this.oTalkWASM._JSAUDIOCOM_ReleasePlayHandle(this.iTalkDecodePort), this.iTalkDecodePort = -1 } }, { key: "Talk_SetTalkLogFlag", value: function (e) { this.oTalkWASM._JSAUDIOCOM_SetPrintLogFlag(this.iTalkDecodePort, e), this.oTalkWASM._JSAUDIOCOM_SetPrintLogFlag(this.iTalkEncodePort, e) } }, { key: "Talk_SetVolume", value: function (e) { return this.oTalkWASM._JSAUDIOCOM_SetVolume(this.iTalkDecodePort, e) } }, { key: "Talk_GetVolume", value: function (e) { if (e && "function" == typeof e) return e(this.oTalkWASM._JSAUDIOCOM_GetVolume(this.iTalkDecodePort)), RETURN_OK } }, { key: "Talk_GetLastError", value: function () { return this.oTalkWASM._JSAUDIOCOM_GetLastError(this.iTalkDecodePort) } }]), n = o; function o(e, t) { var n = this; (0, i.default)(this, o), a = this, t && "function" == typeof t && (this.fnCallBack = t), this.setCallBack = function (e, t, n, i, r) { var a = s; a.cmd = t, a.data = n, a.errorCode = i, a.status = r, e.fnCallBack(a) }, this.iTalkEncodePort = -1, this.iTalkDecodePort = -1, this.AudEncodeDataCBFun = null, this.AudDecodeDataCBFun = null, this.oTalkWASM = null; t = e, e = document.createElement("script"); e.type = "text/javascript", e.src = t, e.onload = function () { JSAudioInterComModule().then(function (e) { n.oTalkWASM = e, n.setCallBack(n, "loaded") }) }, document.body.appendChild(e) } t.JSTalkCtrl = n }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.StorageManager = void 0; var i = h(n(53)), r = h(n(54)), u = h(n(11)), o = h(n(1)), a = h(n(2)), d = h(n(87)), s = n(86), l = h(n(55)); function h(e) { return e && e.__esModule ? e : { default: e } } var c = new Uint8Array([1, 2, 3, 4]); window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem, window.URL = window.URL || window.webkitURL; var _ = ((0, a.default)(f, [{ key: "init", value: function () { var n = this; 0 === this.iStreamType ? this.szPath = "Web/RecordFiles/" : 1 === this.iStreamType && (this.szPath = "Web/PlaybackFiles/"), this.szPath += this.getDateDir(); var i = this.szPath.split("/"); return new u.default(function (t) { window.requestFileSystem(window.TEMPORARY, n.options.iFileSize, function (e) { n.createDir(e.root, i, function () { t() }) }, n.errorHandler) }) } }, { key: "getDateDir", value: function () { return s.oTool.dateFormat(new Date, "yyyy-MM-dd") } }, { key: "createDir", value: function (e, t, n) { var i = this; t.length ? e.getDirectory(t[0], { create: !0 }, function (e) { i.createDir(e, t.slice(1), n) }, this.errorHandler) : n() } }, { key: "errorHandler", value: function () { } }, { key: "openFile", value: function () { var t = this; window.requestFileSystem(window.TEMPORARY, this.options.iFileSize, function (e) { e.root.getFile(t.szPath + "/" + t.szFileName, { create: !0 }, function (e) { e.createWriter(function (e) { e.onwriteend = function () { t.writeFile(e) }, e.onerror = function () { } }, t.errorHandler) }, t.errorHandler) }, this.errorHandler) } }, { key: "writeFileHeader", value: function (n) { var i = this; window.requestFileSystem(window.TEMPORARY, this.options.iFileSize, function (e) { e.root.getFile(i.szFileName, { create: !0 }, function (e) { e.createWriter(function (e) { i.bStart = !0, e.onwriteend = function () { i.writeFile(e) }, e.onerror = function () { }, e.seek(e.length); var t = new Blob([n]); e.write(t) }, i.errorHandler) }, function (e) { console.log("getFile error:", e.message) }) }, this.errorHandler) } }, { key: "writeFileContent", value: function (e) { this.aStreamList.push(e) } }, { key: "writeFile", value: function (e) { var t = this; if (0 < this.aStreamList.length) { var n = this.aStreamList.shift(); if (e.seek(e.length), e.length >= this.options.iFileSize) return void (this.options.cbEventHandler && this.options.cbEventHandler(3001, this.szUUID)); n = new Blob([n]); e.write(n) } else !1 === this.bStop && setTimeout(function () { t.writeFile(e) }, 500); 5 !== this.iPackType && 0 === this.aStreamList.length && !0 === this.bStop && this.bStart && (this.bStart = !1, this.stopWriteFile()), this.getStopData && 0 === this.aStreamList.length && (this.bStart = !1, this.stopWriteFile(), this.getStopData = !1) } }, { key: "stopWriteFile", value: function () { var t, a = this; return new u.default((t = (0, r.default)(i.default.mark(function e(r) { return i.default.wrap(function (e) { for (; ;)switch (e.prev = e.next) { case 0: if (a.bStop) { e.next = 2; break } return e.abrupt("return", r()); case 2: if ((!a.getStopData || 0 < a.aStreamList.length) && 5 === a.iPackType) return e.abrupt("return", r()); e.next = 4; break; case 4: if (0 < a.aStreamList.length && 5 !== a.iPackType) return e.abrupt("return", r()); e.next = 6; break; case 6: return a.options.cbStreamCB && a.options.cbStreamCB(c), a.options.cbStreamCB = null, e.next = 10, window.requestFileSystem(window.TEMPORARY, a.options.iFileSize, function (e) { e.root.getFile(a.szFileName, { create: !1 }, function (i) { i.file(function (e) { var t, n; r(), t = i.toURL(), n = e.name, (e = window.document.createElement("a")).href = t, e.download = n, (n = document.createEvent("MouseEvents")).initEvent("click", !0, !0), e.dispatchEvent(n), a.bStop = !1 }) }, a.errorHandler) }, a.errorHandler); case 10: case "end": return e.stop() } }, e, a) })), function (e) { return t.apply(this, arguments) })) } }]), f); function f(e, t, n, i, r) { (0, o.default)(this, f), this.szUUID = e, this.szFileName = t, this.iStreamType = n, this.szPath = "", this.bStart = !1, this.getStopData = !1, this.aStreamList = [], this.options = r, this.iPackType = i, this.bStop = !1 } var m = ((0, a.default)(p, [{ key: "init", value: function () { var n = this; return new u.default(function (e, t) { n.initFileSystem().then(function () { !0 === n.isTranse ? n.initWorker().then(function () { e(n.szUUID) }, function (e) { t(e) }) : e(n.szUUID) }, function (e) { t(e) }) }) } }, { key: "initFileSystem", value: function () { var n = this; return new u.default(function (e, t) { 2 !== n.options.irecordType && (n.oFileSystem = new _(n.szUUID, n.szFileName, n.iStreamType, n.iPackType, n.options), n.oFileSystem.init().then(function () { e() }, function (e) { t(e) })), e() }) } }, { key: "initWorker", value: function () { var i = this; return new u.default(function (n) { i.oWorker = new Worker(i.szBasePath + "systemTransform-worker.js"), i.oWorker.onmessage = function (e) { var t = e.data, e = i.iPackType; 1 === i.options.iPackage && (e = 12), "loaded" === t.type ? i.oWorker.postMessage({ type: "create", buf: i.aHeadBuf.buffer, len: 40, packType: e }) : "created" === t.type ? n() : "outputData" === t.type && (e = new Uint8Array(t.buf), 2 !== i.options.irecordType && (1 === t.dType ? i.oFileSystem.writeFileHeader(e) : i.oFileSystem.writeFileContent(e), 6 === t.dType && (i.oFileSystem.getStopData = !0)), 1 !== i.options.irecordType && (i.options.cbStreamCB && i.options.cbStreamCB(e), 6 === t.dType && 2 === i.options.irecordType && (i.options.cbStreamCB && i.options.cbStreamCB(c), i.options.cbStreamCB = null))) } }) } }, { key: "inputData", value: function (e) { var t; !0 === this.isTranse ? this.oWorker && (t = new Uint8Array(e), this.oWorker.postMessage({ type: "inputData", buf: t.buffer, len: t.length })) : (2 !== this.options.irecordType && (!0 === this.bHead ? (1 === this.iPackType ? (this.oFileSystem.writeFileHeader(this.aHeadBuf), this.oFileSystem.writeFileContent(e)) : this.oFileSystem.writeFileHeader(e), this.bHead = !1) : this.oFileSystem.writeFileContent(e)), 1 !== this.options.irecordType && (!0 === this.bHead && (this.options.cbStreamCB && this.options.cbStreamCB(this.aHeadBuf), this.bHead = !1), this.options.cbStreamCB && this.options.cbStreamCB(e))) } }, { key: "stopRecord", value: function () { var n = this; return new u.default(function (e, t) { !0 === n.isTranse && (n.oWorker ? n.oWorker.postMessage({ type: "release" }) : t()), n.oFileSystem ? (n.oFileSystem.bStop = !0, n.oFileSystem.stopWriteFile().then(function () { n.bHead = !0, e() }, function () { t() })) : (5 !== n.iPackType && (n.options.cbStreamCB && n.options.cbStreamCB(c), n.options.cbStreamCB = null), e()) }) } }]), p); function p(e, t, n, i, r, a, s) { (0, o.default)(this, p), this.szBasePath = e, this.szUUID = t, this.szFileName = n, this.aHeadBuf = new Uint8Array(i), this.iPackType = r, this.iStreamType = a, this.oWorker = null, this.oFileSystem = null, this.options = s, this.bHead = !0, this.isTranse = !0, (2 === i[8] && 0 === i[9] && 2 === r || "audio" === i || 1 === r) && (this.isTranse = !1) } (0, a.default)(y, [{ key: "startRecord", value: function (e, t, n, i, r) { var a = this, s = d.default.v4(), r = l.default.extend(this.options, r), o = new m(this.szBasePath, s, e, t, n, i, r); return new u.default(function (t, n) { o.init().then(function (e) { a.oStorageList[e] = o, t(e) }, function (e) { n(e) }) }) } }, { key: "inputData", value: function (e, t) { e = this.oStorageList[e]; e && e.inputData(t) } }, { key: "stopRecord", value: function (i) { var r = this; return new u.default(function (e, t) { var n = r.oStorageList[i]; n ? n.stopRecord().then(function () { delete r.oStorageList[i], e() }, function () { t() }) : t() }) } }]), a = y; function y(e, t) { (0, o.default)(this, y), this.szBasePath = e, this.oStorageList = {}, this.options = { iFileSize: 1073741824, irecordType: 1, cbStreamCB: null } } t.StorageManager = a }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.ESCanvas = void 0; var i = function (e, t, n) { return t && r(e.prototype, t), n && r(e, n), e }; function r(e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) } } var a, s = n(55), o = (a = s) && a.__esModule ? a : { default: a }; function u(e, t) { if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !t || "object" != typeof t && "function" != typeof t ? e : t } function d(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t); e.prototype = Object.create(t && t.prototype, { constructor: { value: e, enumerable: !1, writable: !0, configurable: !0 } }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t) } function l(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") } var m, h, c, _, f, p, y, i = (m = null, i(L, [{ key: "draw", value: function () { } }, { key: "drag", value: function (e, t) { for (var n = this.m_aPoint.length, i = 0, i = 0; i < n; i++)if (this.m_aPoint[i][0] + e - this.m_iDriftStartX > m.m_iCanvasWidth || this.m_aPoint[i][1] + t - this.m_iDriftStartY > m.m_iCanvasHeight || this.m_aPoint[i][0] + e - this.m_iDriftStartX < 0 || this.m_aPoint[i][1] + t - this.m_iDriftStartY < 0) return this.m_iDriftStartX = e, void (this.m_iDriftStartY = t); for (i = 0; i < n; i++)this.m_aPoint[i][0] = this.m_aPoint[i][0] + e - this.m_iDriftStartX, this.m_aPoint[i][1] = this.m_aPoint[i][1] + t - this.m_iDriftStartY; this.m_iDriftStartX = e, this.m_iDriftStartY = t, this.setPointInfo(this.m_aPoint), v() } }, { key: "stretch", value: function (e, t) { 0 === this.m_iEditType && (-1 !== this.m_iIndexChoosePoint && (this.m_aPoint[this.m_iIndexChoosePoint][0] = e, this.m_aPoint[this.m_iIndexChoosePoint][1] = t), this.setPointInfo(this.m_aPoint), v()) } }, { key: "inShape", value: function (e, t) { for (var n = !1, i = this.m_aPoint.length, r = 0, a = i - 1; r < i; a = r++)this.m_aPoint[r][1] > t != this.m_aPoint[a][1] > t && e < (this.m_aPoint[a][0] - this.m_aPoint[r][0]) * (t - this.m_aPoint[r][1]) / (this.m_aPoint[a][1] - this.m_aPoint[r][1]) + this.m_aPoint[r][0] && (n = !n); return n } }, { key: "inArc", value: function (e, t, n) { for (var i = !1, r = 0, a = this.m_aPoint.length; r < a; r++)if (Math.sqrt((e - this.m_aPoint[r][0]) * (e - this.m_aPoint[r][0]) + (t - this.m_aPoint[r][1]) * (t - this.m_aPoint[r][1])) < n) { i = !0, this.m_iIndexChoosePoint = r; break } return i } }, { key: "getMouseDownPoints", value: function (e, t) { this.m_iDriftStartX = e, this.m_iDriftStartY = t } }, { key: "getPointInfo", value: function () { return this.m_aPoint } }, { key: "setPointInfo", value: function (e) { null != e && 0 < e.length && (this.m_aPoint = e, this.setEdgePoints(e)) } }, { key: "addPoint", value: function (e, t) { this.m_aPoint.length < this.m_iMaxPointNum && this.m_aPoint.push([e, t]), this.m_aPoint.length === this.m_iMaxPointNum && this.setPointInfo(this.m_aPoint) } }, { key: "setEdgePoints", value: function (e) { for (var t = 0, n = e.length; t < n; t++)0 === t ? (this.m_oEdgePoints.top.x = e[t][0], this.m_oEdgePoints.top.y = e[t][1], this.m_oEdgePoints.left.x = e[t][0], this.m_oEdgePoints.left.y = e[t][1], this.m_oEdgePoints.right.x = e[t][0], this.m_oEdgePoints.right.y = e[t][1], this.m_oEdgePoints.bottom.x = e[t][0], this.m_oEdgePoints.bottom.y = e[t][1]) : (e[t][1] < this.m_oEdgePoints.top.y && (this.m_oEdgePoints.top.x = e[t][0], this.m_oEdgePoints.top.y = e[t][1]), e[t][0] > this.m_oEdgePoints.right.x && (this.m_oEdgePoints.right.x = e[t][0], this.m_oEdgePoints.right.y = e[t][1]), e[t][1] > this.m_oEdgePoints.bottom.y && (this.m_oEdgePoints.bottom.x = e[t][0], this.m_oEdgePoints.bottom.y = e[t][1]), e[t][0] < this.m_oEdgePoints.left.x && (this.m_oEdgePoints.left.x = e[t][0], this.m_oEdgePoints.left.y = e[t][1])) } }]), d(S, n = L), i(S, [{ key: "setPointInfo", value: function (e) { if (null != e) { for (var t = e[0][0], n = e[0][1], i = e[0][0], r = e[0][1], a = 0, s = e.length; a < s; a++)t > e[a][0] && (t = e[a][0]), n > e[a][1] && (n = e[a][1]), i < e[a][0] && (i = e[a][0]), r < e[a][1] && (r = e[a][1]); this.m_aPoint = [[t, n], [i, n], [i, r], [t, r]] } } }, { key: "draw", value: function () { m.oContext.fillStyle = this.m_szFillColor, m.oContext.strokeStyle = this.m_szDrawColor; var e = this.m_aPoint[0][0], t = this.m_aPoint[0][1], n = this.m_aPoint[2][0] - e, i = this.m_aPoint[2][1] - t; if (m.oContext.globalAlpha = this.m_iTranslucent, m.oContext.fillRect(e, t, n, i), m.oContext.globalAlpha = 1, m.oContext.fillText(this.m_szTips, (e + this.m_aPoint[2][0]) / 2, (t + this.m_aPoint[2][1]) / 2), this.m_bChoosed) { var r = Math.round(n / 2), a = Math.round(i / 2); if (0 === this.m_iEditType) for (var s = [e, e + r, e + n, e, e + n, e, e + r, e + n], o = [t, t, t, t + a, t + a, t + i, t + i, t + i], u = 0; u < 8; u++)m.oContext.beginPath(), m.oContext.arc(s[u], o[u], 3, 0, 360, !1), m.oContext.fillStyle = this.m_szDrawColor, m.oContext.closePath(), m.oContext.fill() } m.oContext.strokeRect(e, t, n, i) } }, { key: "stretch", value: function (e, t) { 0 === this.m_iEditType && (0 === this.m_iIndexChoosePoint ? e < this.m_aPoint[2][0] && t < this.m_aPoint[2][1] && (this.m_aPoint[0][0] = e, this.m_aPoint[0][1] = t, this.m_aPoint[3][0] = e, this.m_aPoint[1][1] = t) : 1 === this.m_iIndexChoosePoint ? t < this.m_aPoint[2][1] && (this.m_aPoint[0][1] = t, this.m_aPoint[1][1] = t) : 2 === this.m_iIndexChoosePoint ? e > this.m_aPoint[3][0] && t < this.m_aPoint[3][1] && (this.m_aPoint[1][0] = e, this.m_aPoint[1][1] = t, this.m_aPoint[2][0] = e, this.m_aPoint[0][1] = t) : 3 === this.m_iIndexChoosePoint ? e < this.m_aPoint[2][0] && (this.m_aPoint[0][0] = e, this.m_aPoint[3][0] = e) : 4 === this.m_iIndexChoosePoint ? e > this.m_aPoint[0][0] && (this.m_aPoint[1][0] = e, this.m_aPoint[2][0] = e) : 5 === this.m_iIndexChoosePoint ? e < this.m_aPoint[1][0] && t > this.m_aPoint[1][1] && (this.m_aPoint[3][0] = e, this.m_aPoint[3][1] = t, this.m_aPoint[0][0] = e, this.m_aPoint[2][1] = t) : 6 === this.m_iIndexChoosePoint ? t > this.m_aPoint[1][1] && (this.m_aPoint[2][1] = t, this.m_aPoint[3][1] = t) : 7 === this.m_iIndexChoosePoint && e > this.m_aPoint[0][0] && t > this.m_aPoint[0][1] && (this.m_aPoint[2][0] = e, this.m_aPoint[2][1] = t, this.m_aPoint[1][0] = e, this.m_aPoint[3][1] = t), v()) } }, { key: "move", value: function (e) { v(), this.m_bChoosed = !0; var t = e[0][0], n = e[0][1], i = e[1][0], e = e[1][1]; this.setPointInfo([[t, n], [i, n], [i, e], [t, e]]), this.draw() } }, { key: "inArc", value: function (e, t, n) { for (var i = this.m_aPoint[0][0], r = this.m_aPoint[0][1], a = this.m_aPoint[2][0] - i, s = this.m_aPoint[2][1] - r, o = Math.round(a / 2), u = Math.round(s / 2), d = [i, i + o, i + a, i, i + a, i, i + o, i + a], l = [r, r, r, r + u, r + u, r + s, r + s, r + s], h = 0; h < 8; h++)if (Math.sqrt((e - d[h]) * (e - d[h]) + (t - l[h]) * (t - l[h])) < n) return this.m_iIndexChoosePoint = h, !0; return !1 } }]), h = S, d(k, n), i(k, [{ key: "draw", value: function () { var e, t, n, i; "true" === this.m_szEnabled && (e = this.m_aPoint[0][0], t = this.m_aPoint[0][1], n = this.m_aPoint[2][0] - e, i = this.m_aPoint[2][1] - t, m.oContext.beginPath(), m.oContext.strokeStyle = this.m_szDrawColor, m.oContext.globalAlpha = 1, m.oContext.rect(e, t, n, i), m.oContext.font = "15px serif", m.oContext.strokeText(this.m_szText, e, t + 15), m.oContext.stroke()) } }, { key: "drag", value: function (e, t) { var n = this.m_aPoint.length, i = 0; if ("0" === this.m_szAlignment) { for (i = 0; i < n; i++)if (this.m_aPoint[i][1] + t - this.m_iDriftStartY > m.m_iCanvasHeight || this.m_aPoint[i][0] + e - this.m_iDriftStartX < 0 || this.m_aPoint[i][1] + t - this.m_iDriftStartY < 0) return this.m_iDriftStartX = e, void (this.m_iDriftStartY = t); for (i = 0; i < n; i++)this.m_aPoint[i][0] = this.m_aPoint[i][0] + e - this.m_iDriftStartX, this.m_aPoint[i][1] = this.m_aPoint[i][1] + t - this.m_iDriftStartY } else if ("1" === this.m_szAlignment || "2" === this.m_szAlignment) { for (i = 0; i < n; i++)if (this.m_aPoint[i][1] + t - this.m_iDriftStartY > m.m_iCanvasHeight || this.m_aPoint[i][1] + t - this.m_iDriftStartY < 0) return this.m_iDriftStartX = e, void (this.m_iDriftStartY = t); for (i = 0; i < n; i++)this.m_aPoint[i][1] = this.m_aPoint[i][1] + t - this.m_iDriftStartY } this.m_iDriftStartX = e, this.m_iDriftStartY = t, this.setEdgePoints(this.m_aPoint), v() } }, { key: "stretch", value: function () { } }]), c = k, d(b, n), i(b, [{ key: "draw", value: function () { for (var e = m.m_iCanvasWidth / this.m_iGridColNum, t = m.m_iCanvasHeight / this.m_iGridRowNum, n = "", i = 0; i < this.m_iGridRowNum; i++) { for (var r = this.m_szGridMap.substring(6 * i, 6 * i + 6), a = parseInt("f" + r, 16).toString(2).split("").slice(4), s = "", o = 0; o < this.m_iGridColNum; o++) { var u = "", u = "1" === a[o] ? (m.oContext.strokeStyle = this.m_szDrawColor, m.oContext.globalAlpha = 1, m.oContext.strokeRect(e * o, t * i, e, t), "1") : "0"; this.m_aAddGridMap.length && 1 === this.m_aAddGridMap[i][o] && (m.oContext.strokeStyle = this.m_szDrawColor, m.oContext.strokeRect(e * o, t * i, e, t), u = "1"), s += u } n += parseInt("1111" + s + "00", 2).toString(16).substring(1) } this.m_szGridMap = n } }, { key: "move", value: function (e, t, n, i) { for (var r = m.m_iCanvasWidth / this.m_iGridColNum, a = m.m_iCanvasHeight / this.m_iGridRowNum, s = Math.floor(e / r), o = Math.floor(t / a), u = Math.floor(Math.abs(n - e) / r), d = Math.floor(Math.abs(i - t) / a), l = 1, h = 1, l = 0 < n - e ? 1 : -1, h = 0 < i - t ? 1 : -1, c = [], _ = 0; _ < this.m_iGridRowNum; _++) { c[_] = []; for (var f = 0; f < this.m_iGridColNum; f++)c[_][f] = 1 === l ? 1 === h ? o <= _ && _ <= o + d && s <= f && f <= s + u ? 1 : 0 : _ <= o && o - d <= _ && s <= f && f <= s + u ? 1 : 0 : 1 === h ? o <= _ && _ <= o + d && f <= s && s - u <= f ? 1 : 0 : _ <= o && o - d <= _ && f <= s && s - u <= f ? 1 : 0 } this.m_aAddGridMap = c, this.draw() } }]), _ = b, d(w, n), i(w, [{ key: "draw", value: function () { 0 === this.m_iLineType ? this.drawNormalLine() : 1 === this.m_iLineType ? this.drawArrowLine() : 3 === this.m_iLineType ? this.drawCrossLine() : 4 === this.m_iLineType && this.drawLineCount() } }, { key: "drawNormalLine", value: function () { if (m.oContext.globalAlpha = 1, 0 < this.m_aPoint.length) { m.oContext.beginPath(), m.oContext.strokeStyle = this.m_szDrawColor, m.oContext.lineWidth = 2, m.oContext.moveTo(this.m_aPoint[0][0], this.m_aPoint[0][1]); for (var e = 1, t = this.m_aPoint.length; e < t; e++)m.oContext.lineTo(this.m_aPoint[e][0], this.m_aPoint[e][1]); if (m.oContext.stroke(), this.m_bChoosed) for (var n = 0, i = this.m_aPoint.length; n < i; n++)m.oContext.beginPath(), m.oContext.fillStyle = this.m_szDrawColor, m.oContext.arc(this.m_aPoint[n][0], this.m_aPoint[n][1], 3, 0, 2 * Math.PI, !0), m.oContext.closePath(), m.oContext.fill(); "" !== this.m_szTips && (m.oContext.strokeStyle = this.m_szDrawColor, m.oContext.fillText(this.m_szTips, this.m_aPoint[0][0] + 10, this.m_aPoint[0][1] + 4)) } } }, { key: "drawArrowLine", value: function (e, t, n, i, r, a, s, o) { a = void 0 !== a ? a : 30, s = void 0 !== s ? s : 10, o = void 0 !== o ? o : 1; var u = 180 * Math.atan2(n - r, t - i) / Math.PI, d = (u + a) * Math.PI / 180, l = (u - a) * Math.PI / 180, u = s * Math.cos(d), a = s * Math.sin(d), d = s * Math.cos(l), l = s * Math.sin(l); m.oContext.save(), m.oContext.beginPath(), m.oContext.moveTo(t - u, n - a), m.oContext.lineTo(t, n), m.oContext.lineTo(t - d, n - l), m.oContext.moveTo(t, n), m.oContext.lineTo(i, r), 1 === e && (m.oContext.moveTo(i + u, r + a), m.oContext.lineTo(i, r), m.oContext.lineTo(i + d, r + l)), m.oContext.strokeStyle = this.m_szDrawColor, m.oContext.lineWidth = o, m.oContext.stroke(), m.oContext.restore() } }, { key: "drawCrossLine", value: function () { this.drawNormalLine(); var e = (this.m_aPoint[0][0] + this.m_aPoint[1][0]) / 2, t = (this.m_aPoint[0][1] + this.m_aPoint[1][1]) / 2, n = 180 * Math.atan2(t - this.m_aPoint[0][1], e - this.m_aPoint[0][0]) / Math.PI, i = (90 + n) * Math.PI / 180, r = (n - 90) * Math.PI / 180, a = 25 * Math.cos(i), s = 25 * Math.sin(i), o = 25 * Math.cos(r), n = 25 * Math.sin(r), i = 0, r = 0, i = e - a, r = t - s, a = 0, s = 0, s = 0 === this.m_iDirection ? (a = -10, -15) : 1 === this.m_iDirection ? a = 10 : (a = 10, -15); 0 !== this.m_iDirection && this.drawArrowLine(0, i, r, e, t), m.oContext.strokeStyle = this.m_szDrawColor, m.oContext.font = "8px", m.oContext.strokeText("A", i + a, r + 4), i = e - o, r = t - n, 1 !== this.m_iDirection && this.drawArrowLine(0, i, r, e, t), m.oContext.strokeStyle = this.m_szDrawColor, m.oContext.font = "8px", m.oContext.strokeText("B", i + s, r + 4) } }, { key: "drawLineCount", value: function () { this.drawNormalLine(); var e = (this.m_aPoint[0][0] + this.m_aPoint[1][0]) / 2, t = (this.m_aPoint[0][1] + this.m_aPoint[1][1]) / 2, n = 180 * Math.atan2(t - this.m_aPoint[0][1], e - this.m_aPoint[0][0]) / Math.PI, i = (90 + n) * Math.PI / 180, r = (n - 90) * Math.PI / 180, a = 25 * Math.cos(i), s = 25 * Math.sin(i), o = 25 * Math.cos(r), n = 25 * Math.sin(r), i = 0, r = 0, i = e - a, r = t - s; 1 === this.m_iArrowType ? this.drawArrowLine(0, i = e - o, r = t - n, e, t) : 0 === this.m_iArrowType && this.drawArrowLine(0, i, r, e, t), this.m_aCrossArrowPoint = [[e, t], [i, r]] } }, { key: "inShape", value: function (e, t) { for (var n = !1, i = 0, r = this.m_aPoint.length - 1; i < r; i++) { var a = Math.sqrt((this.m_aPoint[i + 1][0] - this.m_aPoint[i][0]) * (this.m_aPoint[i + 1][0] - this.m_aPoint[i][0]) + (this.m_aPoint[i + 1][1] - this.m_aPoint[i][1]) * (this.m_aPoint[i + 1][1] - this.m_aPoint[i][1])); Math.sqrt((e - this.m_aPoint[i][0]) * (e - this.m_aPoint[i][0]) + (t - this.m_aPoint[i][1]) * (t - this.m_aPoint[i][1])) + Math.sqrt((e - this.m_aPoint[i + 1][0]) * (e - this.m_aPoint[i + 1][0]) + (t - this.m_aPoint[i + 1][1]) * (t - this.m_aPoint[i + 1][1])) - a < 1 && (n = !0) } return n } }]), f = w, d(D, n), i(D, [{ key: "setPointInfo", value: function (e) { if (null != e) { if (0 === this.m_iPolygonType) { for (var t = e[0][0], n = e[0][1], i = e[0][0], r = e[0][1], a = 0, s = e.length; a < s; a++)t > e[a][0] && (t = e[a][0]), n > e[a][1] && (n = e[a][1]), i < e[a][0] && (i = e[a][0]), r < e[a][1] && (r = e[a][1]); this.m_aPoint = [[t, n], [i, n], [i, r], [t, r]] } else this.m_iPolygonType, this.m_aPoint = e; this.setEdgePoints(e) } } }, { key: "draw", value: function () { if (0 < this.m_aPoint.length) { m.oContext.fillStyle = this.m_szFillColor, m.oContext.strokeStyle = this.m_szDrawColor, m.oContext.globalAlpha = 1; var e = 0, t = 0; if (this.m_bChoosed) for (e = 0, t = this.m_aPoint.length; e < t; e++)m.oContext.beginPath(), m.oContext.arc(this.m_aPoint[e][0], this.m_aPoint[e][1], 3, 0, 360, !1), m.oContext.fillStyle = this.m_szDrawColor, m.oContext.closePath(), m.oContext.fill(); for (m.oContext.beginPath(), m.oContext.moveTo(this.m_aPoint[0][0], this.m_aPoint[0][1]), e = 0, t = this.m_aPoint.length; e < t; e++)0 !== e && m.oContext.lineTo(this.m_aPoint[e][0], this.m_aPoint[e][1]); m.oContext.stroke(), this.m_bClosed && (m.oContext.fillText(this.m_szTips, (this.m_oEdgePoints.left.x + this.m_oEdgePoints.right.x) / 2, (this.m_oEdgePoints.top.y + this.m_oEdgePoints.bottom.y) / 2), m.oContext.closePath(), m.oContext.stroke(), m.oContext.globalAlpha = this.m_iTranslucent, m.oContext.fill()) } } }, { key: "move", value: function (e, t, n, i) { if (1 === this.m_iPolygonType) { if (this.m_aPoint.length < this.m_iMaxPointNum && 0 < this.m_aPoint.length) { m.oContext.fillStyle = this.m_szFillColor, m.oContext.strokeStyle = this.m_szDrawColor, m.oContext.globalAlpha = 1; for (var r = 0, a = 0, r = 0, a = this.m_aPoint.length; r < a; r++)m.oContext.beginPath(), m.oContext.arc(this.m_aPoint[r][0], this.m_aPoint[r][1], 3, 0, 360, !1), m.oContext.fillStyle = this.m_szDrawColor, m.oContext.closePath(), m.oContext.fill(); for (m.oContext.beginPath(), m.oContext.moveTo(this.m_aPoint[0][0], this.m_aPoint[0][1]), r = 0, a = this.m_aPoint.length; r < a; r++)0 !== r && m.oContext.lineTo(this.m_aPoint[r][0], this.m_aPoint[r][1]); m.oContext.lineTo(e, t), m.oContext.closePath(), m.oContext.stroke() } } else 0 === this.m_iPolygonType && (this.m_bChoosed = !0, this.setPointInfo([[n, i], [e, i], [e, t], [n, t]]), this.draw()) } }, { key: "stretch", value: function (e, t) { 0 === this.m_iEditType && (1 === this.m_iPolygonType ? -1 !== this.m_iIndexChoosePoint && (this.m_aPoint[this.m_iIndexChoosePoint][0] = e, this.m_aPoint[this.m_iIndexChoosePoint][1] = t) : 0 === this.m_iIndexChoosePoint ? e < this.m_aPoint[2][0] && t < this.m_aPoint[2][1] && (this.m_aPoint[0][0] = e, this.m_aPoint[0][1] = t, this.m_aPoint[3][0] = e, this.m_aPoint[1][1] = t) : 1 === this.m_iIndexChoosePoint ? e > this.m_aPoint[3][0] && t < this.m_aPoint[3][1] && (this.m_aPoint[1][0] = e, this.m_aPoint[1][1] = t, this.m_aPoint[2][0] = e, this.m_aPoint[0][1] = t) : 2 === this.m_iIndexChoosePoint ? e > this.m_aPoint[0][0] && t > this.m_aPoint[0][1] && (this.m_aPoint[2][0] = e, this.m_aPoint[2][1] = t, this.m_aPoint[1][0] = e, this.m_aPoint[3][1] = t) : 3 === this.m_iIndexChoosePoint && e < this.m_aPoint[1][0] && t > this.m_aPoint[1][1] && (this.m_aPoint[3][0] = e, this.m_aPoint[3][1] = t, this.m_aPoint[0][0] = e, this.m_aPoint[2][1] = t), this.setPointInfo(this.m_aPoint), v()) } }]), p = D, d(T, n), i(T, [{ key: "draw", value: function () { m.oContext.beginPath(), m.oContext.fillStyle = this.m_szDrawColor, m.oContext.globalAlpha = 1, m.oContext.arc(this.m_aPoint[0][0], this.m_aPoint[0][1], 10, 0, 2 * Math.PI, !0), m.oContext.closePath(), m.oContext.fill() } }, { key: "drag", value: function () { } }, { key: "stretch", value: function () { } }]), y = T, i(E, [{ key: "setDrawMutiShapeOneTime", value: function (e) { this.bDrawShapeMultiOneTime = e } }, { key: "setMaxShapeSupport", value: function (e) { this.iMaxShapeNumSupport = e } }, { key: "getMaxShapeSupport", value: function () { return this.iMaxShapeNumSupport } }, { key: "setDrawStatus", value: function (e, t) { this.bDrawStatus = e, t && e && (this.oEventCallback = t), e || (this.oEventCallback = null) } }, { key: "setShapeType", value: function (e) { this.szShapeType = e, v() } }, { key: "setCurrentShapeInfo", value: function (e) { this.oCurrentShapeInfo = e || { szId: "", szTips: "", iMinClosed: 3, iMaxPointNum: 11, iPolygonType: 1, iRedrawMode: 0 } } }, { key: "getShapeType", value: function () { return this.szShapeType } }, { key: "getAllShapesInfo", value: function () { for (var e = [], t = 0, n = this.aShapes.length; t < n; t++)"Grid" === this.aShapes[t].m_szType ? e.push({ szType: this.aShapes[t].m_szType, szGridMap: this.aShapes[t].m_szGridMap, iGridColNum: this.aShapes[t].m_iGridColNum, iGridRowNum: this.aShapes[t].m_iGridRowNum }) : "RectOSD" === this.aShapes[t].m_szType ? e.push({ szType: this.aShapes[t].m_szType, szText: this.aShapes[t].m_szText, szEnabled: this.aShapes[t].m_szEnabled, szOSDType: this.aShapes[t].m_szOSDType, iPositionX: this.aShapes[t].m_aPoint[0][0], iPositionY: this.aShapes[t].m_aPoint[0][1], szDateStyle: this.aShapes[t].m_szDateStyle, szClockType: this.aShapes[t].m_szClockType, szDisplayWeek: this.aShapes[t].m_szDisplayWeek, szId: this.aShapes[t].m_szId, szAlignment: this.aShapes[t].m_szAlignment }) : e.push({ szType: this.aShapes[t].m_szType, aPoint: this.aShapes[t].m_aPoint, szId: this.aShapes[t].m_szId, bChoosed: this.aShapes[t].m_bChoosed }); return e } }, { key: "deleteRepeatPolyonById", value: function (e) { var t = this.getAllShapesInfo(), n = t.length; if (0 < n) for (var i = 0; i < n; i++)"Polygon" === t[i].szType && t[i].szId === e && this.deleteShape(i) } }, { key: "getShapesInfoByType", value: function (e) { for (var t = [], n = 0, i = this.aShapes.length; n < i; n++)this.aShapes[n].m_szType === e && ("Grid" === this.aShapes[n].m_szType ? t.push({ szType: this.aShapes[n].m_szType, szGridMap: this.aShapes[n].m_szGridMap, iGridColNum: this.aShapes[n].m_iGridColNum, iGridRowNum: this.aShapes[n].m_iGridRowNum }) : "RectOSD" === this.aShapes[n].m_szType ? t.push({ szType: this.aShapes[n].m_szType, szText: this.aShapes[n].m_szText, szEnabled: this.aShapes[n].m_szEnabled, szOSDType: this.aShapes[n].m_szOSDType, iPositionX: this.aShapes[n].m_aPoint[0][0], iPositionY: this.aShapes[n].m_aPoint[0][1], szDateStyle: this.aShapes[n].m_szDateStyle, szClockType: this.aShapes[n].m_szClockType, szDisplayWeek: this.aShapes[n].m_szDisplayWeek, szId: this.aShapes[n].m_szId, szAlignment: this.aShapes[n].m_szAlignment }) : "Polygon" === e ? t.push({ szType: this.aShapes[n].m_szType, szId: this.aShapes[n].m_szId, iPolygonType: this.aShapes[n].m_iPolygonType, iMinClosed: this.aShapes[n].m_iMinClosed, iMaxPointNum: this.aShapes[n].m_iMaxPointNum, iEditType: this.aShapes[n].m_iEditType, aPoint: this.aShapes[n].m_aPoint, bClosed: this.aShapes[n].m_bClosed, szTips: this.aShapes[n].m_szTips, szDrawColor: this.aShapes[n].m_szDrawColor, szFillColor: this.aShapes[n].m_szFillColor, iTranslucent: this.aShapes[n].m_iTranslucent }) : "Line" === e ? t.push({ szType: this.aShapes[n].m_szType, szId: this.aShapes[n].m_szId, aPoint: this.aShapes[n].m_aPoint, szTips: this.aShapes[n].m_szTips, iLineType: this.aShapes[n].m_iLineType, iDirection: this.aShapes[n].m_iDirection, iArrowType: this.aShapes[n].m_iArrowType, szDrawColor: this.aShapes[n].m_szDrawColor, aCrossArrowPoint: this.aShapes[n].m_aCrossArrowPoint }) : "Rect" === e ? t.push({ szType: this.aShapes[n].m_szType, iEditType: this.aShapes[n].m_iEditType, aPoint: this.aShapes[n].m_aPoint, szTips: this.aShapes[n].m_szTips, szDrawColor: this.aShapes[n].m_szDrawColor, szFillColor: this.aShapes[n].m_szFillColor, iTranslucent: this.aShapes[n].m_iTranslucent }) : t.push({ szType: this.aShapes[n].m_szType, aPoint: this.aShapes[n].m_aPoint })); return t } }, { key: "setShapesInfoByType", value: function (e, t) { t = t || []; var n = null; if ("Rect" === e || "Polygon" === e || "Line" === e || "Point" === e) for (var i = 0, r = t.length; i < r; i++)"Rect" === e ? ((n = new h).m_iEditType = t[i].iEditType, n.m_szTips = t[i].szTips || "", n.m_szDrawColor = t[i].szDrawColor, n.m_szFillColor = t[i].szFillColor, n.m_iTranslucent = t[i].iTranslucent, n.m_iRedrawMode = t[i].iRedrawMode) : "Polygon" === e ? (n = new p, 0 === t[i].iPolygonType ? n.m_bClosed = !0 : n.m_bClosed = t[i].bClosed, n.m_szTips = t[i].szTips || "", n.m_szId = t[i].szId || "", n.m_iPolygonType = t[i].iPolygonType, n.m_iMinClosed = t[i].iMinClosed || 3, n.m_iMaxPointNum = t[i].iMaxPointNum || 11, n.m_iEditType = t[i].iEditType, n.m_szDrawColor = t[i].szDrawColor, n.m_szFillColor = t[i].szFillColor, n.m_iTranslucent = t[i].iTranslucent, n.m_iRedrawMode = t[i].iRedrawMode) : "Line" === e ? ((n = new f).m_iLineType = t[i].iLineType, n.m_szTips = t[i].szTips || "", n.m_szId = t[i].szId, n.m_iDirection = t[i].iDirection, n.m_iArrowType = t[i].iArrowType, n.m_szDrawColor = t[i].szDrawColor, n.setPointInfo(t[i].aPoint)) : "Point" === e && ((n = new y).m_szId = t[i].szId, n.m_szDrawColor = t[i].szDrawColor, n.setPointInfo(t[i].aPoint)), n.setPointInfo(t[i].aPoint), 0 === i && (n.m_bChoosed = !0), g(n); else "Grid" === e && ((n = new _).m_szGridMap = t[0].szGridMap || "", n.m_iGridColNum = t[0].iGridColNum || 22, n.m_iGridRowNum = t[0].iGridRowNum || 18, g(n)); v() } }, { key: "addOSDShape", value: function (e, t, n, i, r) { n || i || (i = n = 0), r = r || {}; t = new c(e, t), e = 10 * e.length; t.m_szOSDType = r.szOSDType || "", t.m_szDateStyle = r.szDateStyle || "", t.m_szClockType = r.szClockType || "", t.m_szDisplayWeek = r.szDisplayWeek || "", t.m_szId = r.szId || "", t.m_szAlignment = "" + r.szAlignment || "0", "0" === t.m_szAlignment ? t.m_aPoint = [[n, i], [e + n, i], [e + n, i + 20], [n, i + 20]] : "1" === t.m_szAlignment ? t.m_aPoint = [[0, i], [e, i], [e, i + 20], [0, i + 20]] : "2" === t.m_szAlignment ? t.m_aPoint = [[this.m_iCanvasWidth - e, i], [this.m_iCanvasWidth, i], [this.m_iCanvasWidth, i + 20], [this.m_iCanvasWidth - e, i + 20]] : t.m_aPoint = [[n, i], [e + n, i], [e + n, i + 20], [n, i + 20]], g(t), v() } }, { key: "selectShapeById", value: function (e, t) { for (var n = 0, i = m.aShapes.length; n < i; n++)e === m.aShapes[n].m_szType && (t === m.aShapes[n].m_szId ? m.aShapes[n].m_bChoosed = !0 : m.aShapes[n].m_bChoosed = !1); v() } }, { key: "setCanvasSize", value: function (e, t) { 0 < e && 0 < t && (this.m_iCanvasWidth = e, this.m_iCanvasHeight = t, v()) } }, { key: "setDrawStyle", value: function (e, t, n) { this.oShapeStyle = { szDrawColor: e, szFillColor: t, iTranslucent: n } } }, { key: "clearAllShape", value: function () { this.aShapes.length = 0, m.bPolygonDrawing = !1, v() } }, { key: "clearShapeByType", value: function (e) { for (var t = this.aShapes.length; 0 < t; t--)this.aShapes[t - 1].m_szType === e && ("Grid" === e ? (this.aShapes[t - 1].m_szGridMap = "", this.aShapes[t - 1].m_aAddGridMap = []) : this.aShapes.splice(t - 1, 1)); "Polygon" === e && (m.bPolygonDrawing = !1), v() } }, { key: "deleteShape", value: function (e) { this.aShapes.length > e && this.aShapes.splice(e, 1), v() } }, { key: "updateCanvas", value: function (e) { this.oCanvas = (0, o.default)("#" + e), this.oContext = this.oCanvas[0].getContext("2d"), this.m_iCanvasWidth = this.oCanvas.width(), this.m_iCanvasHeight = this.oCanvas.height(), M() } }, { key: "resizeCanvas", value: function () { this.m_iCanvasWidth = this.oCanvas.width(), this.m_iCanvasHeight = this.oCanvas.height() } }, { key: "canvasRedraw", value: function () { v() } }]), E); function v() { m.oContext.clearRect(0, 0, m.m_iCanvasWidth, m.m_iCanvasHeight); for (var e = 0, t = m.aShapes.length; e < t; e++)m.aShapes[e].draw() } function g(e) { m.aShapes.length < m.iMaxShapeNumSupport && m.aShapes.push(e) } function M() { var r = !1, a = 0, s = 0, o = "draw", u = null; function d() { for (var e = -1, t = 0, n = m.aShapes.length; t < n; t++)if (m.aShapes[t].m_bChoosed) { e = t; break } return e } m.oCanvas[0].oncontextmenu = function () { return !1 }, m.oCanvas[0].onselectstart = function () { return !1 }, m.oCanvas.unbind(), m.oCanvas.bind("mousedown", function (e) { if (m.oCanvas[0].id === e.target.id) if (2 === e.button) m.bPolygonDrawing && u && u.m_aPoint.length >= u.m_iMinClosed && (u.m_bClosed = !0, m.bPolygonDrawing = !1, u.setPointInfo(u.m_aPoint), g(u), v(), r = !1, m.bDrawShapeMultiOneTime || (m.bDrawStatus = !1), window.onDrawShapeEvent && window.onDrawShapeEvent(u.m_szType, "onDrawEnd", u.m_szId)); else if (0 === e.button) { if (a = e.offsetX, s = e.offsetY, o = "draw", !m.bPolygonDrawing) { var t = d(); if ("stretch" !== (o = -1 !== t && m.aShapes[t].inArc(e.offsetX, e.offsetY, 5) ? "stretch" : o)) for (var n = 0, i = m.aShapes.length; n < i; n++)m.aShapes[n].inShape(e.offsetX, e.offsetY) ? (m.aShapes[n].m_bChoosed = !0, m.aShapes[n].getMouseDownPoints(e.offsetX, e.offsetY), o = "drag", window.onDrawShapeEvent && window.onDrawShapeEvent(m.aShapes[n].m_szType, "onChoose", m.aShapes[n].m_szId)) : m.aShapes[n].m_bChoosed = !1; m.oCanvas[0].style.cursor = "drag" === o ? "move" : "default", "draw" === o && 1 === m.aShapes.length && 1 === m.aShapes[0].m_iRedrawMode && (m.deleteRepeatPolyonById(m.aShapes[0].m_szId), m.bDrawStatus = !0), m.bDrawStatus && !m.bDrawShapeMultiOneTime && (o = "draw") } if ("draw" === o && m.bDrawStatus) { if (m.iMaxShapeNumSupport <= m.aShapes.length && "Grid" !== m.szShapeType && "Point" !== m.szShapeType) return; "Rect" === m.szShapeType ? u = new h : "Grid" === m.szShapeType ? 0 === m.aShapes.length && g(u = new _) : "Polygon" === m.szShapeType ? (m.bPolygonDrawing || (m.bPolygonDrawing = !0, (u = new p).m_szId = m.oCurrentShapeInfo.szId || "", u.m_szTips = m.oCurrentShapeInfo.szTips || "", u.m_iMinClosed = m.oCurrentShapeInfo.iMinClosed || 3, u.m_iMaxPointNum = m.oCurrentShapeInfo.iMaxPointNum || 11, u.m_iPolygonType = m.oCurrentShapeInfo.iPolygonType, u.m_szDrawColor = m.oCurrentShapeInfo.szDrawColor, u.m_szFillColor = m.oCurrentShapeInfo.szFillColor, u.m_iTranslucent = m.oCurrentShapeInfo.iTranslucent, u.m_iRedrawMode = m.oCurrentShapeInfo.iRedrawMode), 1 === u.m_iPolygonType && (u.addPoint(a, s), u.m_aPoint.length === u.m_iMaxPointNum && (u.m_bClosed = !0, m.bPolygonDrawing = !1, g(u), v(), r = !1, m.bDrawShapeMultiOneTime || (m.bDrawStatus = !1), window.onDrawShapeEvent && window.onDrawShapeEvent(u.m_szType, "onDrawEnd", u.m_szId)))) : "Point" === m.szShapeType && (m.clearShapeByType("Point"), (u = new y).m_szId = m.oCurrentShapeInfo.szId || "", u.m_szDrawColor = m.oCurrentShapeInfo.szDrawColor, u.setPointInfo([[a, s]]), g(u), v()) } r = !0 } }), m.oCanvas.bind("mousemove", function (e) { var t; m.bPolygonDrawing ? m.bDrawStatus && r && ("Polygon" === m.szShapeType && 0 === u.m_iPolygonType && (u.m_bClosed = !0), v(), u.move(e.offsetX, e.offsetY, a, s)) : -1 < (t = d()) ? r && ("drag" === o ? (m.aShapes[t].drag(e.offsetX, e.offsetY), window.onDrawShapeEvent && window.onDrawShapeEvent(m.aShapes[t].m_szType, "onDrag", m.aShapes[t].m_szId)) : "stretch" === o && (m.aShapes[t].stretch(e.offsetX, e.offsetY), window.onDrawShapeEvent && window.onDrawShapeEvent(m.aShapes[t].m_szType, "onStretch", m.aShapes[t].m_szId))) : m.bDrawStatus && r && ("Rect" === m.szShapeType ? u.move([[a, s], [e.offsetX, e.offsetY]]) : "Grid" === m.szShapeType && m.aShapes[0].move(a, s, e.offsetX, e.offsetY)) }), m.oCanvas.bind("mouseup", function (e) { var t; m.oCanvas[0].style.cursor = "default", null != u && "draw" === o && ("Rect" === m.szShapeType ? (2 < Math.abs(e.offsetX - a) && 2 < Math.abs(e.offsetY - s) && (g(u), m.bDrawShapeMultiOneTime || (m.bDrawStatus = !1)), m.oEventCallback && (t = { startPos: [], endPos: [] }, e.offsetX > a && e.offsetY > s ? (t.startPos = u.m_aPoint[0] || [e.offsetX, e.offsetY], t.endPos = u.m_aPoint[2] || [e.offsetX, e.offsetY]) : (t.startPos = u.m_aPoint[2] || [e.offsetX, e.offsetY], t.endPos = u.m_aPoint[0] || [e.offsetX, e.offsetY]), m.oEventCallback && m.oEventCallback(t), m.clearAllShape()), u = null) : "Polygon" === m.szShapeType && 0 === u.m_iPolygonType && m.bPolygonDrawing && 2 < Math.abs(e.offsetX - a) && 2 < Math.abs(e.offsetY - s) && (g(u), m.bPolygonDrawing = !1, m.bDrawShapeMultiOneTime || (m.bDrawStatus = !1), window.onDrawShapeEvent && window.onDrawShapeEvent(u.m_szType, "onDrawEnd", u.m_szId))), r = !!m.bPolygonDrawing, m.bPolygonDrawing || v() }), m.oCanvas.bind("dblclick", function () { m.bDrawStatus && "Grid" === m.szShapeType && (m.aShapes[0].m_szGridMap = "fffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffcfffffc", v()) }), m.oCanvas.bind("mouseout", function () { m.oCanvas[0].style.cursor = "default", r = !!m.bPolygonDrawing }) } function L() { l(this, L), this.m_szId = "", this.m_aPoint = [], this.m_bChoosed = !1, this.m_szDrawColor = m.oShapeStyle.szDrawColor, this.m_szFillColor = m.oShapeStyle.szFillColor, this.m_iTranslucent = m.oShapeStyle.iTranslucent, this.m_iIndexChoosePoint = -1, this.m_iDriftStartX = 0, this.m_iDriftStartY = 0, this.m_oEdgePoints = { top: { x: 0, y: 0 }, left: { x: 0, y: 0 }, right: { x: 0, y: 0 }, bottom: { x: 0, y: 0 } }, this.m_szTips = "", this.m_iEditType = 0, this.m_iMinClosed = 3, this.m_iMaxPointNum = 11, this.m_bClosed = !1, this.m_iRedrawMode = 0 } function S() { l(this, S); var e = u(this, (S.__proto__ || Object.getPrototypeOf(S)).call(this)); return e.m_szType = "Rect", e } function k(e, t) { l(this, k); var n = u(this, (k.__proto__ || Object.getPrototypeOf(k)).call(this)); return n.m_szType = "RectOSD", n.m_szOSDType = "overlay-date", n.m_szText = e || "", n.m_szEnabled = t || "", n.m_szDateStyle = "", n.m_szClockType = "", n.m_szDisplayWeek = "", n.m_szId = "", n.m_szAlignment = "0", n } function b() { l(this, b); var e = u(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this)); return e.m_szType = "Grid", e.m_iGridColNum = 22, e.m_iGridRowNum = 18, e.m_szGridMap = "", e.m_aAddGridMap = [], e } function w() { l(this, w); var e = u(this, (w.__proto__ || Object.getPrototypeOf(w)).call(this)); return e.m_szType = "Line", e.m_iLineType = 0, e.m_iDirection = 0, e.m_iArrowType = 0, e.m_aCrossArrowPoint = [], e } function D() { l(this, D); var e = u(this, (D.__proto__ || Object.getPrototypeOf(D)).call(this)); return e.m_szType = "Polygon", e.m_iPolygonType = 1, e } function T() { l(this, T); var e = u(this, (T.__proto__ || Object.getPrototypeOf(T)).call(this)); return e.m_szType = "Point", e.m_szId = "", e } function E(e) { l(this, E), (m = this).oCanvas = (0, o.default)("#" + e), this.oContext = this.oCanvas[0].getContext("2d"), this.aShapes = [], this.bDrawStatus = !1, this.szShapeType = "Rect", this.iMaxShapeNumSupport = 10, this.bDrawShapeMultiOneTime = !0, this.oCurrentShapeInfo = {}, this.oEventCallback = null, this.oShapeStyle = { szDrawColor: "#ff0000", szFillColor: "#343434", iTranslucent: .7 }, this.bPolygonDrawing = !1, this.m_iCanvasWidth = this.oCanvas.width(), this.m_iCanvasHeight = this.oCanvas.height(), this.m_iHorizontalResolution = 0, this.m_iVerticalResolution = 0, this.m_szDisplayMode = "", this.m_szVideoFormat = "", M(), this.aShapes.length = 0 } t.ESCanvas = i }, function (e, t, n) { "use strict"; e.exports = n(291).default }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = _(n(9)), r = _(n(227)), a = _(n(301)), s = n(15), o = _(n(317)), u = _(n(333)), d = _(n(39)), l = n(234), h = _(n(64)), c = n(5); function _(e) { return e && e.__esModule ? e : { default: e } } r.default.install(); r = { createPlayer: function (e, t) { if (null == e || "object" !== (void 0 === e ? "undefined" : (0, i.default)(e))) throw new c.InvalidArgumentException("MediaDataSource must be an javascript object!"); if (!e.hasOwnProperty("type")) throw new c.InvalidArgumentException("MediaDataSource must has type field to indicate video file type!"); return new ("flv" !== e.type ? u : o).default(e, t) }, isSupported: function () { return a.default.supportMSEH264Playback() }, getFeatureList: function () { return a.default.getFeatureList() } }; r.BaseLoader = s.BaseLoader, r.LoaderStatus = s.LoaderStatus, r.LoaderErrors = s.LoaderErrors, r.Events = d.default, r.ErrorTypes = l.ErrorTypes, r.ErrorDetails = l.ErrorDetails, r.FlvPlayer = o.default, r.NativePlayer = u.default, r.LoggingControl = h.default, Object.defineProperty(r, "version", { enumerable: !0, get: function () { return "__VERSION__" } }), t.default = r }, function (e, t, n) { n(293), e.exports = n(3).Object.assign }, function (e, t, n) { var i = n(8); i(i.S + i.F, "Object", { assign: n(294) }) }, function (e, t, n) { "use strict"; var c = n(14), _ = n(30), f = n(59), m = n(37), p = n(24), y = n(72), r = Object.assign; e.exports = !r || n(23)(function () { var e = {}, t = {}, n = Symbol(), i = "abcdefghijklmnopqrst"; return e[n] = 7, i.split("").forEach(function (e) { t[e] = e }), 7 != r({}, e)[n] || Object.keys(r({}, t)).join("") != i }) ? function (e, t) { for (var n = p(e), i = arguments.length, r = 1, a = f.f, s = m.f; r < i;)for (var o, u = y(arguments[r++]), d = a ? _(u).concat(a(u)) : _(u), l = d.length, h = 0; h < l;)o = d[h++], c && !s.call(u, o) || (n[o] = u[o]); return n } : r }, function (e, t, n) { n(296), e.exports = n(3).Object.setPrototypeOf }, function (e, t, n) { var i = n(8); i(i.S, "Object", { setPrototypeOf: n(297).set }) }, function (e, t, r) { function a(e, t) { if (i(e), !n(t) && null !== t) throw TypeError(t + ": can't set as prototype!") } var n = r(16), i = r(13); e.exports = { set: Object.setPrototypeOf || ("__proto__" in {} ? function (e, n, i) { try { (i = r(22)(Function.call, r(60).f(Object.prototype, "__proto__").set, 2))(e, []), n = !(e instanceof Array) } catch (e) { n = !0 } return function (e, t) { return a(e, t), n ? e.__proto__ = t : i(e, t), e } }({}, !1) : void 0), check: a } }, function (e, t, n) {
        !function (ie, re) {
            /*!
             * @overview es6-promise - a tiny implementation of Promises/A+.
             * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
             * @license   Licensed under MIT license
             *            See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
             * @version   v4.2.8+1e68dce6
             */
            e.exports = function () { "use strict"; function i(e) { var t = typeof e; return e !== null && (t === "object" || t === "function") } function u(e) { return typeof e === "function" } var e = void 0; if (Array.isArray) e = Array.isArray; else e = function (e) { return Object.prototype.toString.call(e) === "[object Array]" }; var n = e, r = 0, t = void 0, a = void 0, s = function e(t, n) { M[r] = t; M[r + 1] = n; r += 2; if (r === 2) if (a) a(L); else k() }; function o(e) { a = e } function d(e) { s = e } var l = typeof window !== "undefined" ? window : undefined, h = l || {}, c = h.MutationObserver || h.WebKitMutationObserver, _ = typeof self === "undefined" && typeof ie !== "undefined" && {}.toString.call(ie) === "[object process]", f = typeof Uint8ClampedArray !== "undefined" && typeof importScripts !== "undefined" && typeof MessageChannel !== "undefined"; function m() { return function () { return ie.nextTick(L) } } function p() { if (typeof t !== "undefined") return function () { t(L) }; return g() } function y() { var e = 0; var t = new c(L); var n = document.createTextNode(""); t.observe(n, { characterData: true }); return function () { n.data = e = ++e % 2 } } function v() { var e = new MessageChannel; e.port1.onmessage = L; return function () { return e.port2.postMessage(0) } } function g() { var e = setTimeout; return function () { return e(L, 1) } } var M = new Array(1e3); function L() { for (var e = 0; e < r; e += 2) { var t = M[e]; var n = M[e + 1]; t(n); M[e] = undefined; M[e + 1] = undefined } r = 0 } function S() { try { var e = Function("return this")().require("vertx"); t = e.runOnLoop || e.runOnContext; return p() } catch (e) { return g() } } var k = void 0; if (_) k = m(); else if (c) k = y(); else if (f) k = v(); else if (l === undefined && "function" === "function") k = S(); else k = g(); function b(e, t) { var n = this; var i = new this.constructor(T); if (i[D] === undefined) J(i); var r = n._state; if (r) { var a = arguments[r - 1]; s(function () { return z(r, i, a, n._result) }) } else B(n, i, e, t); return i } function w(e) { var t = this; if (e && typeof e === "object" && e.constructor === t) return e; var n = new t(T); W(n, e); return n } var D = Math.random().toString(36).substring(2); function T() { } var E = void 0, Y = 1, P = 2; function C() { return new TypeError("You cannot resolve a promise with itself") } function A() { return new TypeError("A promises callback cannot return that same promise.") } function R(e, t, n, i) { try { e.call(t, n, i) } catch (e) { return e } } function x(e, i, r) { s(function (t) { var n = false; var e = R(r, i, function (e) { if (n) return; n = true; if (i !== e) W(t, e); else j(t, e) }, function (e) { if (n) return; n = true; F(t, e) }, "Settle: " + (t._label || " unknown promise")); if (!n && e) { n = true; F(t, e) } }, e) } function O(t, e) { if (e._state === Y) j(t, e._result); else if (e._state === P) F(t, e._result); else B(e, undefined, function (e) { return W(t, e) }, function (e) { return F(t, e) }) } function I(e, t, n) { if (t.constructor === e.constructor && n === b && t.constructor.resolve === w) O(e, t); else if (n === undefined) j(e, t); else if (u(n)) x(e, t, n); else j(e, t) } function W(t, e) { if (t === e) F(t, C()); else if (i(e)) { var n = void 0; try { n = e.then } catch (e) { F(t, e); return } I(t, e, n) } else j(t, e) } function H(e) { if (e._onerror) e._onerror(e._result); N(e) } function j(e, t) { if (e._state !== E) return; e._result = t; e._state = Y; if (e._subscribers.length !== 0) s(N, e) } function F(e, t) { if (e._state !== E) return; e._state = P; e._result = t; s(H, e) } function B(e, t, n, i) { var r = e._subscribers; var a = r.length; e._onerror = null; r[a] = t; r[a + Y] = n; r[a + P] = i; if (a === 0 && e._state) s(N, e) } function N(e) { var t = e._subscribers; var n = e._state; if (t.length === 0) return; var i = void 0, r = void 0, a = e._result; for (var s = 0; s < t.length; s += 3) { i = t[s]; r = t[s + n]; if (i) z(n, i, r, a); else r(a) } e._subscribers.length = 0 } function z(e, t, n, i) { var r = u(n), a = void 0, s = void 0, o = true; if (r) { try { a = n(i) } catch (e) { o = false; s = e } if (t === a) { F(t, A()); return } } else a = i; if (t._state !== E); else if (r && o) W(t, a); else if (o === false) F(t, s); else if (e === Y) j(t, a); else if (e === P) F(t, a) } function U(n, e) { try { e(function e(t) { W(n, t) }, function e(t) { F(n, t) }) } catch (e) { F(n, e) } } var V = 0; function G() { return V++ } function J(e) { e[D] = V++; e._state = undefined; e._result = undefined; e._subscribers = [] } function q() { return new Error("Array Methods must be provided an Array") } var K = function () { function e(e, t) { this._instanceConstructor = e; this.promise = new e(T); if (!this.promise[D]) J(this.promise); if (n(t)) { this.length = t.length; this._remaining = t.length; this._result = new Array(this.length); if (this.length === 0) j(this.promise, this._result); else { this.length = this.length || 0; this._enumerate(t); if (this._remaining === 0) j(this.promise, this._result) } } else F(this.promise, q()) } e.prototype._enumerate = function e(t) { for (var n = 0; this._state === E && n < t.length; n++)this._eachEntry(t[n], n) }; e.prototype._eachEntry = function e(t, n) { var i = this._instanceConstructor; var r = i.resolve; if (r === w) { var a = void 0; var s = void 0; var o = false; try { a = t.then } catch (e) { o = true; s = e } if (a === b && t._state !== E) this._settledAt(t._state, n, t._result); else if (typeof a !== "function") { this._remaining--; this._result[n] = t } else if (i === te) { var u = new i(T); if (o) F(u, s); else I(u, t, a); this._willSettleAt(u, n) } else this._willSettleAt(new i(function (e) { return e(t) }), n) } else this._willSettleAt(r(t), n) }; e.prototype._settledAt = function e(t, n, i) { var r = this.promise; if (r._state === E) { this._remaining--; if (t === P) F(r, i); else this._result[n] = i } if (this._remaining === 0) j(r, this._result) }; e.prototype._willSettleAt = function e(t, n) { var i = this; B(t, undefined, function (e) { return i._settledAt(Y, n, e) }, function (e) { return i._settledAt(P, n, e) }) }; return e }(); function X(e) { return new K(this, e).promise } function Z(r) { var a = this; if (!n(r)) return new a(function (e, t) { return t(new TypeError("You must pass an array to race.")) }); else return new a(function (e, t) { var n = r.length; for (var i = 0; i < n; i++)a.resolve(r[i]).then(e, t) }) } function $(e) { var t = this; var n = new t(T); F(n, e); return n } function Q() { throw new TypeError("You must pass a resolver function as the first argument to the promise constructor") } function ee() { throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.") } var te = function () { function t(e) { this[D] = G(); this._result = this._state = undefined; this._subscribers = []; if (T !== e) { typeof e !== "function" && Q(); this instanceof t ? U(this, e) : ee() } } t.prototype.catch = function e(t) { return this.then(null, t) }; t.prototype.finally = function e(t) { var n = this; var i = n.constructor; if (u(t)) return n.then(function (e) { return i.resolve(t()).then(function () { return e }) }, function (e) { return i.resolve(t()).then(function () { throw e }) }); return n.then(t, t) }; return t }(); function ne() { var e = void 0; if (typeof re !== "undefined") e = re; else if (typeof self !== "undefined") e = self; else try { e = Function("return this")() } catch (e) { throw new Error("polyfill failed because global object is unavailable in this environment") } var t = e.Promise; if (t) { var n = null; try { n = Object.prototype.toString.call(t.resolve()) } catch (e) { } if (n === "[object Promise]" && !t.cast) return } e.Promise = te } return te.prototype.then = b, te.all = X, te.race = Z, te.resolve = w, te.reject = $, te._setScheduler = o, te._setAsap = d, te._asap = s, te.polyfill = ne, te.Promise = te }()
        }.call(this, n(299), n(300))
    }, function (e, t) { var n, i, e = e.exports = {}; function r() { throw new Error("setTimeout has not been defined") } function a() { throw new Error("clearTimeout has not been defined") } function s(t) { if (n === setTimeout) return setTimeout(t, 0); if ((n === r || !n) && setTimeout) return n = setTimeout, setTimeout(t, 0); try { return n(t, 0) } catch (e) { try { return n.call(null, t, 0) } catch (e) { return n.call(this, t, 0) } } } !function () { try { n = "function" == typeof setTimeout ? setTimeout : r } catch (e) { n = r } try { i = "function" == typeof clearTimeout ? clearTimeout : a } catch (e) { i = a } }(); var o, u = [], d = !1, l = -1; function h() { d && o && (d = !1, o.length ? u = o.concat(u) : l = -1, u.length && c()) } function c() { if (!d) { var e = s(h); d = !0; for (var t = u.length; t;) { for (o = u, u = []; ++l < t;)o && o[l].run(); l = -1, t = u.length } o = null, d = !1, function (t) { if (i === clearTimeout) return clearTimeout(t); if ((i === a || !i) && clearTimeout) return i = clearTimeout, clearTimeout(t); try { i(t) } catch (e) { try { return i.call(null, t) } catch (e) { return i.call(this, t) } } }(e) } } function _(e, t) { this.fun = e, this.array = t } function f() { } e.nextTick = function (e) { var t = new Array(arguments.length - 1); if (1 < arguments.length) for (var n = 1; n < arguments.length; n++)t[n - 1] = arguments[n]; u.push(new _(e, t)), 1 !== u.length || d || s(c) }, _.prototype.run = function () { this.fun.apply(null, this.array) }, e.title = "browser", e.browser = !0, e.env = {}, e.argv = [], e.version = "", e.versions = {}, e.on = f, e.addListener = f, e.once = f, e.off = f, e.removeListener = f, e.removeAllListeners = f, e.emit = f, e.prependListener = f, e.prependOnceListener = f, e.listeners = function (e) { return [] }, e.binding = function (e) { throw new Error("process.binding is not supported") }, e.cwd = function () { return "/" }, e.chdir = function (e) { throw new Error("process.chdir is not supported") }, e.umask = function () { return 0 } }, function (e, t) { var n = function () { return this }(); try { n = n || new Function("return this")() } catch (e) { "object" == typeof window && (n = window) } e.exports = n }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = o(n(1)), r = o(n(2)), a = o(n(228)), s = n(63); function o(e) { return e && e.__esModule ? e : { default: e } } (0, r.default)(u, null, [{ key: "supportMSEH264Playback", value: function () { return window.MediaSource && window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"') } }, { key: "supportNetworkStreamIO", value: function () { var e = new a.default({}, (0, s.createDefaultConfig)()), t = e.loaderType; return e.destroy(), "fetch-stream-loader" == t || "xhr-moz-chunked-loader" == t } }, { key: "getNetworkLoaderTypeName", value: function () { var e = new a.default({}, (0, s.createDefaultConfig)()), t = e.loaderType; return e.destroy(), t } }, { key: "supportNativeMediaPlayback", value: function (e) { e = (u.videoElement = null == u.videoElement ? window.document.createElement("video") : u.videoElement).canPlayType(e); return "probably" === e || "maybe" == e } }, { key: "getFeatureList", value: function () { var e = { mseFlvPlayback: !1, mseLiveFlvPlayback: !1, networkStreamIO: !1, networkLoaderName: "", nativeMP4H264Playback: !1, nativeWebmVP8Playback: !1, nativeWebmVP9Playback: !1 }; return e.mseFlvPlayback = u.supportMSEH264Playback(), e.networkStreamIO = u.supportNetworkStreamIO(), e.networkLoaderName = u.getNetworkLoaderTypeName(), e.mseLiveFlvPlayback = e.mseFlvPlayback && e.networkStreamIO, e.nativeMP4H264Playback = u.supportNativeMediaPlayback('video/mp4; codecs="avc1.42001E, mp4a.40.2"'), e.nativeWebmVP8Playback = u.supportNativeMediaPlayback('video/webm; codecs="vp8.0, vorbis"'), e.nativeWebmVP9Playback = u.supportNativeMediaPlayback('video/webm; codecs="vp9"'), e } }]), r = u; function u() { (0, i.default)(this, u) } t.default = r }, function (e, t, n) { n(303), e.exports = n(3).Object.getPrototypeOf }, function (e, t, n) { var i = n(24), r = n(74); n(52)("getPrototypeOf", function () { return function (e) { return r(i(e)) } }) }, function (e, t, n) { e.exports = { default: n(305), __esModule: !0 } }, function (e, t, n) { n(306); var i = n(3).Object; e.exports = function (e, t) { return i.create(e, t) } }, function (e, t, n) { var i = n(8); i(i.S, "Object", { create: n(46) }) }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var d = _(n(9)), i = _(n(21)), r = _(n(1)), a = _(n(25)), s = _(n(32)), o = _(n(2)), u = _(n(26)), l = (_(n(4)), _(n(33))), h = n(15), c = n(5); function _(e) { return e && e.__esModule ? e : { default: e } } n = h.BaseLoader, (0, u.default)(f, n), (0, o.default)(f, null, [{ key: "isSupported", value: function () { try { var e = l.default.msedge && 15048 <= l.default.version.minor, t = !l.default.msedge || e; return self.fetch && self.ReadableStream && t } catch (e) { return !1 } } }]), (0, o.default)(f, [{ key: "destroy", value: function () { this.isWorking() && this.abort(), (0, s.default)(f.prototype.__proto__ || (0, i.default)(f.prototype), "destroy", this).call(this) } }, { key: "open", value: function (e, t) { var n = this; this._dataSource = e, this._range = t; var i = e.url; this._config.reuseRedirectedURL && null != e.redirectedURL && (i = e.redirectedURL); var r = this._seekHandler.getConfig(i, t), a = new self.Headers; if ("object" === (0, d.default)(r.headers)) { var s, o = r.headers; for (s in o) o.hasOwnProperty(s) && a.append(s, o[s]) } t = { method: "GET", headers: a, mode: "cors", cache: "default", referrerPolicy: "no-referrer-when-downgrade" }; if ("object" === (0, d.default)(this._config.headers)) for (var u in this._config.headers) a.append(u, this._config.headers[u]); !1 === e.cors && (t.mode = "same-origin"), e.withCredentials && (t.credentials = "include"), e.referrerPolicy && (t.referrerPolicy = e.referrerPolicy), this._status = h.LoaderStatus.kConnecting, self.fetch(r.url, t).then(function (e) { if (n._requestAbort) return n._requestAbort = !1, void (n._status = h.LoaderStatus.kIdle); if (e.ok && 200 <= e.status && e.status <= 299) { e.url !== r.url && n._onURLRedirect && (t = n._seekHandler.removeURLParameters(e.url), n._onURLRedirect(t)); var t = e.headers.get("Content-Length"); return null != t && (n._contentLength = parseInt(t), 0 !== n._contentLength && n._onContentLengthKnown && n._onContentLengthKnown(n._contentLength)), n._pump.call(n, e.body.getReader()) } if (n._status = h.LoaderStatus.kError, !n._onError) throw new c.RuntimeException("FetchStreamLoader: Http code invalid, " + e.status + " " + e.statusText); n._onError(h.LoaderErrors.HTTP_STATUS_CODE_INVALID, { code: e.status, msg: e.statusText }) }).catch(function (e) { if (n._status = h.LoaderStatus.kError, !n._onError) throw e; n._onError(h.LoaderErrors.EXCEPTION, { code: -1, msg: e.message }) }) } }, { key: "abort", value: function () { this._requestAbort = !0 } }, { key: "_pump", value: function (i) { var r = this; return i.read().then(function (e) { if (e.done) if (null !== r._contentLength && r._receivedLength < r._contentLength) { r._status = h.LoaderStatus.kError; var t = h.LoaderErrors.EARLY_EOF, n = { code: -1, msg: "Fetch stream meet Early-EOF" }; if (!r._onError) throw new c.RuntimeException(n.msg); r._onError(t, n) } else r._status = h.LoaderStatus.kComplete, r._onComplete && r._onComplete(r._range.from, r._range.from + r._receivedLength - 1); else { if (!0 === r._requestAbort) return r._requestAbort = !1, r._status = h.LoaderStatus.kComplete, i.cancel(); r._status = h.LoaderStatus.kBuffering; n = e.value.buffer, e = r._range.from + r._receivedLength; r._receivedLength += n.byteLength, r._onDataArrival && r._onDataArrival(n, e, r._receivedLength), r._pump(i) } }).catch(function (e) { if (11 !== e.code || !l.default.msedge) { r._status = h.LoaderStatus.kError; var t = 0, n = null, n = 19 !== e.code && "network error" !== e.message || !(null === r._contentLength || null !== r._contentLength && r._receivedLength < r._contentLength) ? (t = h.LoaderErrors.EXCEPTION, { code: e.code, msg: e.message }) : (t = h.LoaderErrors.EARLY_EOF, { code: e.code, msg: "Fetch stream meet Early-EOF" }); if (!r._onError) throw new c.RuntimeException(n.msg); r._onError(t, n) } }) } }]), o = f; function f(e, t) { (0, r.default)(this, f); var n = (0, a.default)(this, (f.__proto__ || (0, i.default)(f)).call(this, "fetch-stream-loader")); return n.TAG = "FetchStreamLoader", n._seekHandler = e, n._config = t, n._needStash = !0, n._requestAbort = !1, n._contentLength = null, n._receivedLength = 0, n } t.default = o }, function (e, t, n) { e.exports = { default: n(309), __esModule: !0 } }, function (e, t, n) { n(310); var i = n(3).Object; e.exports = function (e, t) { return i.getOwnPropertyDescriptor(e, t) } }, function (e, t, n) { var i = n(19), r = n(60).f; n(52)("getOwnPropertyDescriptor", function () { return function (e, t) { return r(i(e), t) } }) }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var u = _(n(9)), i = _(n(21)), r = _(n(1)), a = _(n(25)), s = _(n(32)), o = _(n(2)), d = _(n(26)), l = _(n(4)), h = n(15), c = n(5); function _(e) { return e && e.__esModule ? e : { default: e } } n = h.BaseLoader, (0, d.default)(f, n), (0, o.default)(f, null, [{ key: "isSupported", value: function () { try { var e = new XMLHttpRequest; return e.open("GET", "https://example.com", !0), (e.responseType = "moz-chunked-arraybuffer") === e.responseType } catch (e) { return l.default.w("MozChunkedLoader", e.message), !1 } } }]), (0, o.default)(f, [{ key: "destroy", value: function () { this.isWorking() && this.abort(), this._xhr && (this._xhr.onreadystatechange = null, this._xhr.onprogress = null, this._xhr.onloadend = null, this._xhr.onerror = null, this._xhr = null), (0, s.default)(f.prototype.__proto__ || (0, i.default)(f.prototype), "destroy", this).call(this) } }, { key: "open", value: function (e, t) { this._dataSource = e, this._range = t; var n = e.url; this._config.reuseRedirectedURL && null != e.redirectedURL && (n = e.redirectedURL); t = this._seekHandler.getConfig(n, t); this._requestURL = t.url; var i = this._xhr = new XMLHttpRequest; if (i.open("GET", t.url, !0), i.responseType = "moz-chunked-arraybuffer", i.onreadystatechange = this._onReadyStateChange.bind(this), i.onprogress = this._onProgress.bind(this), i.onloadend = this._onLoadEnd.bind(this), i.onerror = this._onXhrError.bind(this), e.withCredentials && (i.withCredentials = !0), "object" === (0, u.default)(t.headers)) { var r, a = t.headers; for (r in a) a.hasOwnProperty(r) && i.setRequestHeader(r, a[r]) } if ("object" === (0, u.default)(this._config.headers)) { var s, o = this._config.headers; for (s in o) o.hasOwnProperty(s) && i.setRequestHeader(s, o[s]) } this._status = h.LoaderStatus.kConnecting, i.send() } }, { key: "abort", value: function () { this._requestAbort = !0, this._xhr && this._xhr.abort(), this._status = h.LoaderStatus.kComplete } }, { key: "_onReadyStateChange", value: function (e) { var t = e.target; if (2 === t.readyState) if (null != t.responseURL && t.responseURL !== this._requestURL && this._onURLRedirect && (e = this._seekHandler.removeURLParameters(t.responseURL), this._onURLRedirect(e)), 0 !== t.status && (t.status < 200 || 299 < t.status)) { if (this._status = h.LoaderStatus.kError, !this._onError) throw new c.RuntimeException("MozChunkedLoader: Http code invalid, " + t.status + " " + t.statusText); this._onError(h.LoaderErrors.HTTP_STATUS_CODE_INVALID, { code: t.status, msg: t.statusText }) } else this._status = h.LoaderStatus.kBuffering } }, { key: "_onProgress", value: function (e) { var t; this._status !== h.LoaderStatus.kError && (null === this._contentLength && null !== e.total && 0 !== e.total && (this._contentLength = e.total, this._onContentLengthKnown && this._onContentLengthKnown(this._contentLength)), t = e.target.response, e = this._range.from + this._receivedLength, this._receivedLength += t.byteLength, this._onDataArrival && this._onDataArrival(t, e, this._receivedLength)) } }, { key: "_onLoadEnd", value: function (e) { !0 !== this._requestAbort ? this._status !== h.LoaderStatus.kError && (this._status = h.LoaderStatus.kComplete, this._onComplete && this._onComplete(this._range.from, this._range.from + this._receivedLength - 1)) : this._requestAbort = !1 } }, { key: "_onXhrError", value: function (e) { this._status = h.LoaderStatus.kError; var t = 0, n = null, n = this._contentLength && e.loaded < this._contentLength ? (t = h.LoaderErrors.EARLY_EOF, { code: -1, msg: "Moz-Chunked stream meet Early-Eof" }) : (t = h.LoaderErrors.EXCEPTION, { code: -1, msg: e.constructor.name + " " + e.type }); if (!this._onError) throw new c.RuntimeException(n.msg); this._onError(t, n) } }]), o = f; function f(e, t) { (0, r.default)(this, f); var n = (0, a.default)(this, (f.__proto__ || (0, i.default)(f)).call(this, "xhr-moz-chunked-loader")); return n.TAG = "MozChunkedLoader", n._seekHandler = e, n._config = t, n._needStash = !0, n._xhr = null, n._requestAbort = !1, n._contentLength = null, n._receivedLength = 0, n } t.default = o }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var u = _(n(9)), i = _(n(21)), r = _(n(1)), a = _(n(25)), s = _(n(32)), o = _(n(2)), d = _(n(26)), l = _(n(4)), h = n(15), c = n(5); function _(e) { return e && e.__esModule ? e : { default: e } } n = h.BaseLoader, (0, d.default)(f, n), (0, o.default)(f, null, [{ key: "isSupported", value: function () { try { if (void 0 === self.MSStream || void 0 === self.MSStreamReader) return !1; var e = new XMLHttpRequest; return e.open("GET", "https://example.com", !0), (e.responseType = "ms-stream") === e.responseType } catch (e) { return l.default.w("MSStreamLoader", e.message), !1 } } }]), (0, o.default)(f, [{ key: "destroy", value: function () { this.isWorking() && this.abort(), this._reader && (this._reader.onprogress = null, this._reader.onload = null, this._reader.onerror = null, this._reader = null), this._xhr && (this._xhr.onreadystatechange = null, this._xhr = null), (0, s.default)(f.prototype.__proto__ || (0, i.default)(f.prototype), "destroy", this).call(this) } }, { key: "open", value: function (e, t) { this._internalOpen(e, t, !1) } }, { key: "_internalOpen", value: function (e, t, n) { this._dataSource = e, n ? this._currentRange = t : this._totalRange = t; n = e.url; this._config.reuseRedirectedURL && (null != this._currentRedirectedURL ? n = this._currentRedirectedURL : null != e.redirectedURL && (n = e.redirectedURL)); n = this._seekHandler.getConfig(n, t); this._currentRequestURL = n.url; t = this._reader = new self.MSStreamReader; t.onprogress = this._msrOnProgress.bind(this), t.onload = this._msrOnLoad.bind(this), t.onerror = this._msrOnError.bind(this); var i = this._xhr = new XMLHttpRequest; if (i.open("GET", n.url, !0), i.responseType = "ms-stream", i.onreadystatechange = this._xhrOnReadyStateChange.bind(this), i.onerror = this._xhrOnError.bind(this), e.withCredentials && (i.withCredentials = !0), "object" === (0, u.default)(n.headers)) { var r, a = n.headers; for (r in a) a.hasOwnProperty(r) && i.setRequestHeader(r, a[r]) } if ("object" === (0, u.default)(this._config.headers)) { var s, o = this._config.headers; for (s in o) o.hasOwnProperty(s) && i.setRequestHeader(s, o[s]) } this._isReconnecting ? this._isReconnecting = !1 : this._status = h.LoaderStatus.kConnecting, i.send() } }, { key: "abort", value: function () { this._internalAbort(), this._status = h.LoaderStatus.kComplete } }, { key: "_internalAbort", value: function () { this._reader && (1 === this._reader.readyState && this._reader.abort(), this._reader.onprogress = null, this._reader.onload = null, this._reader.onerror = null, this._reader = null), this._xhr && (this._xhr.abort(), this._xhr.onreadystatechange = null, this._xhr = null) } }, { key: "_xhrOnReadyStateChange", value: function (e) { e = e.target; if (2 === e.readyState) if (200 <= e.status && e.status <= 299) { this._status = h.LoaderStatus.kBuffering, null != e.responseURL && (t = this._seekHandler.removeURLParameters(e.responseURL), e.responseURL !== this._currentRequestURL && t !== this._currentRedirectedURL && (this._currentRedirectedURL = t, this._onURLRedirect && this._onURLRedirect(t))); var t = e.getResponseHeader("Content-Length"); null == t || null != this._contentLength || 0 < (t = parseInt(t)) && (this._contentLength = t, this._onContentLengthKnown && this._onContentLengthKnown(this._contentLength)) } else { if (this._status = h.LoaderStatus.kError, !this._onError) throw new c.RuntimeException("MSStreamLoader: Http code invalid, " + e.status + " " + e.statusText); this._onError(h.LoaderErrors.HTTP_STATUS_CODE_INVALID, { code: e.status, msg: e.statusText }) } else 3 === e.readyState && 200 <= e.status && e.status <= 299 && (this._status = h.LoaderStatus.kBuffering, e = e.response, this._reader.readAsArrayBuffer(e)) } }, { key: "_xhrOnError", value: function (e) { this._status = h.LoaderStatus.kError; var t = h.LoaderErrors.EXCEPTION, e = { code: -1, msg: e.constructor.name + " " + e.type }; if (!this._onError) throw new c.RuntimeException(e.msg); this._onError(t, e) } }, { key: "_msrOnProgress", value: function (e) { var t, n = e.target.result; null != n ? (t = n.slice(this._lastTimeBufferSize), this._lastTimeBufferSize = n.byteLength, e = this._totalRange.from + this._receivedLength, this._receivedLength += t.byteLength, this._onDataArrival && this._onDataArrival(t, e, this._receivedLength), n.byteLength >= this._bufferLimit && (l.default.v(this.TAG, "MSStream buffer exceeded max size near " + (e + t.byteLength) + ", reconnecting..."), this._doReconnectIfNeeded())) : this._doReconnectIfNeeded() } }, { key: "_doReconnectIfNeeded", value: function () { var e; (null == this._contentLength || this._receivedLength < this._contentLength) && (this._isReconnecting = !0, this._lastTimeBufferSize = 0, this._internalAbort(), e = { from: this._totalRange.from + this._receivedLength, to: -1 }, this._internalOpen(this._dataSource, e, !0)) } }, { key: "_msrOnLoad", value: function (e) { this._status = h.LoaderStatus.kComplete, this._onComplete && this._onComplete(this._totalRange.from, this._totalRange.from + this._receivedLength - 1) } }, { key: "_msrOnError", value: function (e) { this._status = h.LoaderStatus.kError; var t = 0, n = null, n = this._contentLength && this._receivedLength < this._contentLength ? (t = h.LoaderErrors.EARLY_EOF, { code: -1, msg: "MSStream meet Early-Eof" }) : (t = h.LoaderErrors.EARLY_EOF, { code: -1, msg: e.constructor.name + " " + e.type }); if (!this._onError) throw new c.RuntimeException(n.msg); this._onError(t, n) } }]), o = f; function f(e, t) { (0, r.default)(this, f); var n = (0, a.default)(this, (f.__proto__ || (0, i.default)(f)).call(this, "xhr-msstream-loader")); return n.TAG = "MSStreamLoader", n._seekHandler = e, n._config = t, n._needStash = !0, n._xhr = null, n._reader = null, n._totalRange = null, n._currentRange = null, n._currentRequestURL = null, n._currentRedirectedURL = null, n._contentLength = null, n._receivedLength = 0, n._bufferLimit = 16777216, n._lastTimeBufferSize = 0, n._isReconnecting = !1, n } t.default = o }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var u = f(n(9)), i = f(n(21)), r = f(n(1)), a = f(n(25)), s = f(n(32)), o = f(n(2)), d = f(n(26)), l = f(n(4)), h = f(n(62)), c = n(15), _ = n(5); function f(e) { return e && e.__esModule ? e : { default: e } } n = c.BaseLoader, (0, d.default)(m, n), (0, o.default)(m, null, [{ key: "isSupported", value: function () { try { var e = new XMLHttpRequest; return e.open("GET", "https://example.com", !0), (e.responseType = "arraybuffer") === e.responseType } catch (e) { return l.default.w("RangeLoader", e.message), !1 } } }]), (0, o.default)(m, [{ key: "destroy", value: function () { this.isWorking() && this.abort(), this._xhr && (this._xhr.onreadystatechange = null, this._xhr.onprogress = null, this._xhr.onload = null, this._xhr.onerror = null, this._xhr = null), (0, s.default)(m.prototype.__proto__ || (0, i.default)(m.prototype), "destroy", this).call(this) } }, { key: "open", value: function (e, t) { this._dataSource = e, this._range = t, this._status = c.LoaderStatus.kConnecting; t = !1; null != this._dataSource.filesize && 0 !== this._dataSource.filesize && (t = !0, this._totalLength = this._dataSource.filesize), this._totalLengthReceived || t ? this._openSubRange() : (this._waitForTotalLength = !0, this._internalOpen(this._dataSource, { from: 0, to: -1 })) } }, { key: "_openSubRange", value: function () { var e = 1024 * this._currentChunkSizeKB, t = this._range.from + this._receivedLength, e = t + e; null != this._contentLength && e - this._range.from >= this._contentLength && (e = this._range.from + this._contentLength - 1), this._currentRequestRange = { from: t, to: e }, this._internalOpen(this._dataSource, this._currentRequestRange) } }, { key: "_internalOpen", value: function (e, t) { this._lastTimeLoaded = 0; var n = e.url; this._config.reuseRedirectedURL && (null != this._currentRedirectedURL ? n = this._currentRedirectedURL : null != e.redirectedURL && (n = e.redirectedURL)); t = this._seekHandler.getConfig(n, t); this._currentRequestURL = t.url; var i = this._xhr = new XMLHttpRequest; if (i.open("GET", t.url, !0), i.responseType = "arraybuffer", i.onreadystatechange = this._onReadyStateChange.bind(this), i.onprogress = this._onProgress.bind(this), i.onload = this._onLoad.bind(this), i.onerror = this._onXhrError.bind(this), e.withCredentials && (i.withCredentials = !0), "object" === (0, u.default)(t.headers)) { var r, a = t.headers; for (r in a) a.hasOwnProperty(r) && i.setRequestHeader(r, a[r]) } if ("object" === (0, u.default)(this._config.headers)) { var s, o = this._config.headers; for (s in o) o.hasOwnProperty(s) && i.setRequestHeader(s, o[s]) } i.send() } }, { key: "abort", value: function () { this._requestAbort = !0, this._internalAbort(), this._status = c.LoaderStatus.kComplete } }, { key: "_internalAbort", value: function () { this._xhr && (this._xhr.onreadystatechange = null, this._xhr.onprogress = null, this._xhr.onload = null, this._xhr.onerror = null, this._xhr.abort(), this._xhr = null) } }, { key: "_onReadyStateChange", value: function (e) { var t = e.target; if (2 === t.readyState) if (null != t.responseURL && (e = this._seekHandler.removeURLParameters(t.responseURL), t.responseURL !== this._currentRequestURL && e !== this._currentRedirectedURL && (this._currentRedirectedURL = e, this._onURLRedirect && this._onURLRedirect(e))), 200 <= t.status && t.status <= 299) this._waitForTotalLength || (this._status = c.LoaderStatus.kBuffering); else { if (this._status = c.LoaderStatus.kError, !this._onError) throw new _.RuntimeException("RangeLoader: Http code invalid, " + t.status + " " + t.statusText); this._onError(c.LoaderErrors.HTTP_STATUS_CODE_INVALID, { code: t.status, msg: t.statusText }) } } }, { key: "_onProgress", value: function (e) { if (this._status !== c.LoaderStatus.kError) { if (null === this._contentLength) { var t, n = !1; if (this._waitForTotalLength && (this._waitForTotalLength = !1, n = this._totalLengthReceived = !0, t = e.total, this._internalAbort(), null != t & 0 !== t && (this._totalLength = t)), -1 === this._range.to ? this._contentLength = this._totalLength - this._range.from : this._contentLength = this._range.to - this._range.from + 1, n) return void this._openSubRange(); this._onContentLengthKnown && this._onContentLengthKnown(this._contentLength) } n = e.loaded - this._lastTimeLoaded; this._lastTimeLoaded = e.loaded, this._speedSampler.addBytes(n) } } }, { key: "_normalizeSpeed", value: function (e) { var t, n = this._chunkSizeKBList, i = n.length - 1, r = 0, a = i; if (e < n[0]) return n[0]; for (; r <= a;) { if ((t = r + Math.floor((a - r) / 2)) === i || e >= n[t] && e < n[t + 1]) return n[t]; n[t] < e ? r = t + 1 : a = t - 1 } } }, { key: "_onLoad", value: function (e) { var t, n; this._status !== c.LoaderStatus.kError && (this._waitForTotalLength ? this._waitForTotalLength = !1 : ((this._lastTimeLoaded = 0) === (t = this._speedSampler.lastSecondKBps) && (this._zeroSpeedChunkCount++, 3 <= this._zeroSpeedChunkCount && (t = this._speedSampler.currentKBps)), 0 !== t && (n = this._normalizeSpeed(t), this._currentSpeedNormalized !== n && (this._currentSpeedNormalized = n, this._currentChunkSizeKB = n)), t = e.target.response, n = this._range.from + this._receivedLength, this._receivedLength += t.byteLength, e = !1, null != this._contentLength && this._receivedLength < this._contentLength ? this._openSubRange() : e = !0, this._onDataArrival && this._onDataArrival(t, n, this._receivedLength), e && (this._status = c.LoaderStatus.kComplete, this._onComplete && this._onComplete(this._range.from, this._range.from + this._receivedLength - 1)))) } }, { key: "_onXhrError", value: function (e) { this._status = c.LoaderStatus.kError; var t = 0, n = null, n = this._contentLength && 0 < this._receivedLength && this._receivedLength < this._contentLength ? (t = c.LoaderErrors.EARLY_EOF, { code: -1, msg: "RangeLoader meet Early-Eof" }) : (t = c.LoaderErrors.EXCEPTION, { code: -1, msg: e.constructor.name + " " + e.type }); if (!this._onError) throw new _.RuntimeException(n.msg); this._onError(t, n) } }, { key: "currentSpeed", get: function () { return this._speedSampler.lastSecondKBps } }]), o = m; function m(e, t) { (0, r.default)(this, m); var n = (0, a.default)(this, (m.__proto__ || (0, i.default)(m)).call(this, "xhr-range-loader")); return n.TAG = "RangeLoader", n._seekHandler = e, n._config = t, n._needStash = !1, n._chunkSizeKBList = [128, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 5120, 6144, 7168, 8192], n._currentChunkSizeKB = 384, n._currentSpeedNormalized = 0, n._zeroSpeedChunkCount = 0, n._xhr = null, n._speedSampler = new h.default, n._requestAbort = !1, n._waitForTotalLength = !1, n._totalLengthReceived = !1, n._currentRequestURL = null, n._currentRedirectedURL = null, n._currentRequestRange = null, n._totalLength = null, n._contentLength = null, n._receivedLength = 0, n._lastTimeLoaded = 0, n } t.default = o }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = h(n(21)), r = h(n(1)), a = h(n(25)), s = h(n(32)), o = h(n(2)), u = h(n(26)), d = (h(n(4)), n(15)), l = n(5); function h(e) { return e && e.__esModule ? e : { default: e } } n = d.BaseLoader, (0, u.default)(c, n), (0, o.default)(c, null, [{ key: "isSupported", value: function () { try { return void 0 !== self.WebSocket } catch (e) { return !1 } } }]), (0, o.default)(c, [{ key: "destroy", value: function () { this._ws && this.abort(), (0, s.default)(c.prototype.__proto__ || (0, i.default)(c.prototype), "destroy", this).call(this) } }, { key: "open", value: function (e) { try { var t = this._ws = new self.WebSocket(e.url); t.binaryType = "arraybuffer", t.onopen = this._onWebSocketOpen.bind(this), t.onclose = this._onWebSocketClose.bind(this), t.onmessage = this._onWebSocketMessage.bind(this), t.onerror = this._onWebSocketError.bind(this), this._status = d.LoaderStatus.kConnecting } catch (e) { this._status = d.LoaderStatus.kError; t = { code: e.code, msg: e.message }; if (!this._onError) throw new l.RuntimeException(t.msg); this._onError(d.LoaderErrors.EXCEPTION, t) } } }, { key: "abort", value: function () { var e = this._ws; !e || 0 !== e.readyState && 1 !== e.readyState || (this._requestAbort = !0, e.close()), this._ws = null, this._status = d.LoaderStatus.kComplete } }, { key: "_onWebSocketOpen", value: function (e) { this._status = d.LoaderStatus.kBuffering } }, { key: "_onWebSocketClose", value: function (e) { !0 !== this._requestAbort ? (this._status = d.LoaderStatus.kComplete, this._onComplete && this._onComplete(0, this._receivedLength - 1)) : this._requestAbort = !1 } }, { key: "_onWebSocketMessage", value: function (e) { var t = this; if (e.data instanceof ArrayBuffer) this._dispatchArrayBuffer(e.data); else if (e.data instanceof Blob) { var n = new FileReader; n.onload = function () { t._dispatchArrayBuffer(n.result) }, n.readAsArrayBuffer(e.data) } else { this._status = d.LoaderStatus.kError; e = { code: -1, msg: "Unsupported WebSocket message type: " + e.data.constructor.name }; if (!this._onError) throw new l.RuntimeException(e.msg); this._onError(d.LoaderErrors.EXCEPTION, e) } } }, { key: "_dispatchArrayBuffer", value: function (e) { var t = e, e = this._receivedLength; this._receivedLength += t.byteLength, this._onDataArrival && this._onDataArrival(t, e, this._receivedLength) } }, { key: "_onWebSocketError", value: function (e) { this._status = d.LoaderStatus.kError; e = { code: e.code, msg: e.message }; if (!this._onError) throw new l.RuntimeException(e.msg); this._onError(d.LoaderErrors.EXCEPTION, e) } }]), o = c; function c() { (0, r.default)(this, c); var e = (0, a.default)(this, (c.__proto__ || (0, i.default)(c)).call(this, "websocket-loader")); return e.TAG = "WebSocketLoader", e._needStash = !0, e._ws = null, e._requestAbort = !1, e._receivedLength = 0, e } t.default = o }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = r(n(1)); function r(e) { return e && e.__esModule ? e : { default: e } } (0, r(n(2)).default)(a, [{ key: "getConfig", value: function (e, t) { var n, i = {}; return 0 !== t.from || -1 !== t.to ? (n = void 0, n = -1 !== t.to ? "bytes=" + t.from.toString() + "-" + t.to.toString() : "bytes=" + t.from.toString() + "-", i.Range = n) : this._zeroStart && (i.Range = "bytes=0-"), { url: e, headers: i } } }, { key: "removeURLParameters", value: function (e) { return e } }]), n = a; function a(e) { (0, i.default)(this, a), this._zeroStart = e || !1 } t.default = n }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = r(n(1)); function r(e) { return e && e.__esModule ? e : { default: e } } (0, r(n(2)).default)(a, [{ key: "getConfig", value: function (e, t) { var n = e; return 0 === t.from && -1 === t.to || (e = !0, -1 === n.indexOf("?") && (n += "?", e = !1), e && (n += "&"), n += this._startName + "=" + t.from.toString(), -1 !== t.to && (n += "&" + this._endName + "=" + t.to.toString())), { url: n, headers: {} } } }, { key: "removeURLParameters", value: function (e) { var t = e.split("?")[0], n = void 0, i = e.indexOf("?"), r = ""; if (null != (n = -1 !== i ? e.substring(i + 1) : n) && 0 < n.length) for (var a = n.split("&"), s = 0; s < a.length; s++) { var o = a[s].split("="); o[0] !== this._startName && o[0] !== this._endName && (0 < s && (r += "&"), r += a[s]) } return 0 === r.length ? t : t + "?" + r } }]), n = a; function a(e, t) { (0, i.default)(this, a), this._startName = e, this._endName = t } t.default = n }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = M(n(11)), r = M(n(20)), a = M(n(9)), s = M(n(1)), o = M(n(2)), u = M(n(10)), d = M(n(4)), l = M(n(33)), h = (M(n(62)), M(n(39))), c = M(n(318)), _ = M(n(40)), f = M(n(332)), m = M(n(232)), p = n(234), y = n(63), v = n(5), g = M(n(233)); function M(e) { return e && e.__esModule ? e : { default: e } } (0, o.default)(L, [{ key: "destroy", value: function () { null != this._progressChecker && (window.clearInterval(this._progressChecker), this._progressChecker = null), this._transmuxer && this.unload(), this._mediaElement && this.detachMediaElement(), this.e = null, this._mediaDataSource = null, this._emitter && (this._emitter.removeAllListeners(), this._emitter = null) } }, { key: "on", value: function (e, t) { var n = this; e === h.default.MEDIA_INFO ? null != this._mediaInfo && i.default.resolve().then(function () { n._emitter.emit(h.default.MEDIA_INFO, n.mediaInfo) }) : e === h.default.STATISTICS_INFO && null != this._statisticsInfo && i.default.resolve().then(function () { n._emitter.emit(h.default.STATISTICS_INFO, n.statisticsInfo) }), this._emitter.addListener(e, t) } }, { key: "off", value: function (e, t) { this._emitter.removeListener(e, t) } }, { key: "attachMediaElement", value: function (e) { var t = this; if ((this._mediaElement = e).addEventListener("loadedmetadata", this.e.onvLoadedMetadata), e.addEventListener("seeking", this.e.onvSeeking), e.addEventListener("canplay", this.e.onvCanPlay), e.addEventListener("stalled", this.e.onvStalled), e.addEventListener("progress", this.e.onvProgress), e.addEventListener("timeupdate", this.e.onvTimeUpdate), this._msectl = new f.default(this._config), this._msectl.on(m.default.UPDATE_END, this._onmseUpdateEnd.bind(this)), this._msectl.on(m.default.BUFFER_FULL, this._onmseBufferFull.bind(this)), this._msectl.on(m.default.SOURCE_OPEN, function () { if (t._mseSourceOpened = !0, t._hasPendingLoad) for (t._hasPendingLoad = !1, t.load(), 0 < t._stashArray.length && console.warn("stash before source open", t._stashArray.length); 0 < t._stashArray.length;) { var e = t._stashArray.shift(); t._onLoaderChunkArrival(e.data, e.byteStart) } }), this._msectl.on(m.default.SOURCE_END, function () { t._emitter.emit(h.default.MEDIA_SOURCE_ENDED) }), this._msectl.on(m.default.SOURCE_CLOSE, function () { t._mseSourceOpened = !1, t._emitter.emit(h.default.MEDIA_SOURCE_CLOSE) }), this._msectl.on(m.default.ERROR, function (e) { t._emitter.emit(h.default.ERROR, p.ErrorTypes.MEDIA_ERROR, p.ErrorDetails.MEDIA_MSE_ERROR, e) }), this._msectl.on(m.default.SOURCE_ADD_ERROR, function () { t._emitter.emit(h.default.MEDIA_SOURCE_ADD_ERROR) }), this._msectl.attachMediaElement(e), null != this._pendingSeekTime) try { e.currentTime = this._pendingSeekTime, this._pendingSeekTime = null } catch (e) { } } }, { key: "detachMediaElement", value: function () { this._mediaElement && (this._msectl.detachMediaElement(), this._mediaElement.removeEventListener("loadedmetadata", this.e.onvLoadedMetadata), this._mediaElement.removeEventListener("seeking", this.e.onvSeeking), this._mediaElement.removeEventListener("canplay", this.e.onvCanPlay), this._mediaElement.removeEventListener("stalled", this.e.onvStalled), this._mediaElement.removeEventListener("progress", this.e.onvProgress), this._mediaElement.removeEventListener("timeupdate", this.e.onvTimeUpdate), this._mediaElement = null), this._msectl && (this._msectl.destroy(), this._msectl = null), this._stashArray = [] } }, { key: "load", value: function () { var i = this; if (!this._mediaElement) throw new v.IllegalStateException("HTMLMediaElement must be attached before load()!"); if (this._transmuxer) throw new v.IllegalStateException("FlvPlayer.load() has been called, please call unload() first!"); this._hasPendingLoad || (this._config.deferLoadAfterSourceOpen && !1 === this._mseSourceOpened ? this._hasPendingLoad = !0 : (0 < this._mediaElement.readyState && (this._requestSetTime = !0, this._mediaElement.currentTime = 0), this.openLatencyMonitor(), this._transmuxer = new c.default(this._mediaDataSource, this._config), this._transmuxer.on(_.default.INIT_SEGMENT, function (e, t) { i._msectl.appendInitSegment(t) }), this._transmuxer.on(_.default.MEDIA_SEGMENT, function (e, t) { var n; i._msectl.appendMediaSegment(t), i._config.lazyLoad && !i._config.isLive && (n = i._mediaElement.currentTime, t.info.endDts >= 1e3 * (n + i._config.lazyLoadMaxDuration) && null == i._progressChecker && (d.default.v(i.TAG, "Maximum buffering duration exceeded, suspend transmuxing task"), i._suspendTransmuxer())) }), this._transmuxer.on(_.default.LOADING_COMPLETE, function () { i._msectl.endOfStream(), i._emitter.emit(h.default.LOADING_COMPLETE) }), this._transmuxer.on(_.default.RECOVERED_EARLY_EOF, function () { i._emitter.emit(h.default.RECOVERED_EARLY_EOF) }), this._transmuxer.on(_.default.IO_ERROR, function (e, t) { i._emitter.emit(h.default.ERROR, p.ErrorTypes.NETWORK_ERROR, e, t) }), this._transmuxer.on(_.default.DEMUX_ERROR, function (e, t) { i._emitter.emit(h.default.ERROR, p.ErrorTypes.MEDIA_ERROR, e, { code: -1, msg: t }) }), this._transmuxer.on(_.default.MEDIA_INFO, function (e) { i._mediaInfo = e, i._emitter.emit(h.default.MEDIA_INFO, (0, r.default)({}, e)) }), this._transmuxer.on(_.default.METADATA_ARRIVED, function (e) { i._emitter.emit(h.default.METADATA_ARRIVED, e) }), this._transmuxer.on(_.default.SCRIPTDATA_ARRIVED, function (e) { i._emitter.emit(h.default.SCRIPTDATA_ARRIVED, e) }), this._transmuxer.on(_.default.STATISTICS_INFO, function (e) { i._statisticsInfo = i._fillStatisticsInfo(e), i._emitter.emit(h.default.STATISTICS_INFO, (0, r.default)({}, i._statisticsInfo)) }), this._transmuxer.on(_.default.RECOMMEND_SEEKPOINT, function (e) { i._mediaElement && !i._config.accurateSeek && (i._requestSetTime = !0, i._mediaElement.currentTime = e / 1e3) }), this._transmuxer.on(_.default.VIDEO_RESOLUTION_CHANGED, function (e) { i._emitter.emit(h.default.VIDEO_RESOLUTION_CHANGED, e) }), this._transmuxer.on(_.default.PARSEDDATA_ARRIVED, function (e, t) { i._onParsedData(e, t, i.iWndNum) }), this._transmuxer.open())) } }, { key: "unload", value: function () { this._mediaElement && this._mediaElement.pause(), this._msectl && this._msectl.seek(0), this._transmuxer && (this._transmuxer.close(), this._transmuxer.destroy(), this._transmuxer = null), this._durationMonitor && (self.clearInterval(this._durationMonitor), this._durationMonitor = null), this._latencyDetectTimer && (self.clearInterval(this._latencyDetectTimer), this._latencyDetectTimer = null, this._latencyAdjustCount = 0, d.default.i(this.TAG, "--== Total latency adjust count : " + this._latencyAdjustCountTotal), this._latencyAdjustCountTotal = 0), this._forzenTimes = 0, this._lastDecodedFrames = 0 } }, { key: "play", value: function () { return this._mediaElement.play() } }, { key: "pause", value: function () { this._mediaElement.pause() } }, { key: "openFileSystem", value: function (e) { this._isRecord = !0, this._fs = new g.default(e, this._initSegment.data) } }, { key: "downloadFile", value: function () { if (!this._isRecord || !this._fs) throw new Error("FileSystem is not ready"); this._fs.download(), this._isRecord = !1, this._fs = null } }, { key: "setRecordFlag", value: function (e) { this._transmuxer.setRecordFlag(e) } }, { key: "CleanCache", value: function () { this._transmuxer.CleanCache() } }, { key: "_onLoaderChunkArrival", value: function (e, t, n) { this._transmuxer.feed(e, t, n) } }, { key: "onLoaderChunkArrival", value: function (e, t, n) { this._mseSourceOpened ? (0 < this._stashArray.length && this._stashArray.push({ data: e, byteStart: t }), this._onLoaderChunkArrival(e, t, n)) : this._stashArray.push({ data: e, byteStart: t }) } }, { key: "_fillStatisticsInfo", value: function (e) { if (e.playerType = this._type, !(this._mediaElement instanceof HTMLVideoElement)) return e; var t, n = !0, i = 0, r = 0; return this._mediaElement.getVideoPlaybackQuality ? (i = (t = this._mediaElement.getVideoPlaybackQuality()).totalVideoFrames, r = t.droppedVideoFrames) : null != this._mediaElement.webkitDecodedFrameCount ? (i = this._mediaElement.webkitDecodedFrameCount, r = this._mediaElement.webkitDroppedFrameCount) : n = !1, n && (e.decodedFrames = i, e.droppedFrames = r), e } }, { key: "enableVideoStateMonitor", value: function (e) { this._enableDurationMonitor = e, this._enableVideoFrozenMonitor = e } }, { key: "_increaseLatency", value: function (e) { this._curLatencyThreshold += e, this._curLatencyThreshold > this._config.highLatencyThreshold && (this._curLatencyThreshold = this._config.highLatencyThreshold), d.default.i(this.TAG, "latency +" + this._curLatencyThreshold) } }, { key: "_decreaseLatency", value: function (e) { this._curLatencyThreshold -= e, this._curLatencyThreshold < this._config.lowLatencyThreshold && (this._curLatencyThreshold = this._config.lowLatencyThreshold), d.default.i(this.TAG, "latency -" + this._curLatencyThreshold) } }, { key: "_updateCurrentLatencyThreshold", value: function (e) { this._curLatencyThreshold = e, this._curLatencyThreshold < this._config.lowLatencyThreshold && (this._curLatencyThreshold = this._config.lowLatencyThreshold), this._curLatencyThreshold > this._config.highLatencyThreshold && (this._curLatencyThreshold = this._config.highLatencyThreshold), d.default.i(this.TAG, "update current latency threshold : " + this._curLatencyThreshold) } }, { key: "_adjustDurationGap", value: function () { this._latencyAdjustCount < this._latencyDetectThreshold ? this._decreaseLatency(this._latencyDetectAdjustStep) : this._latencyAdjustCount > this._latencyDetectThreshold && this._increaseLatency(5 * this._latencyDetectAdjustStep), this._latencyAdjustCount = 0 } }, { key: "_doDurationMonitor", value: function () { if (this._enableDurationMonitor && this._mseSourceOpened && (!this._msectl || !this._msectl.checkSourceBufferNull())) { var e = this._mediaElement.buffered, t = this._mediaElement.currentTime, n = this._mediaElement.paused; if (null != e && 0 != e.length) { e = e.end(0), t = e - t; if (!n && t > this._curLatencyThreshold && (e = e - this._decreaseDurationStep, d.default.w(this.TAG, "high latency gap {" + t + "}, decrease " + this._decreaseDurationStep + " and set to " + e), this._mediaElement.currentTime = e, this._requestSetTime = !0, this._latencyAdjustCountTotal++, 2 < this._latencyAdjustCountTotal && (++this._latencyAdjustCount, i = t + this._latencyDetectAdjustStep, this._updateCurrentLatencyThreshold(i))), this._enableVideoFrozenMonitor) { var i = 0; if (this._mediaElement.getVideoPlaybackQuality) i = this._mediaElement.getVideoPlaybackQuality().totalVideoFrames; else { if (null == this._mediaElement.webkitDecodedFrameCount) return; i = this._mediaElement.webkitDecodedFrameCount } 0 != this._lastDecodedFrames && (this._lastDecodedFrames == i ? this._forzenTimes++ : this._forzenTimes = 0), this._lastDecodedFrames = i, this._forzenTimes >= this._frozenTimesThreshold && (d.default.w(this.TAG, "Report video frozen event"), this._emitter.emit(h.default.VIDEO_FROZEN), this._forzenTimes = 0) } } } } }, { key: "openLatencyMonitor", value: function () { this._enableDurationMonitor && null == this._durationMonitor && (this._durationMonitor = self.setInterval(this._doDurationMonitor.bind(this), this._videoStateMonitorInterval), this._forzenTimes = 0, this._lastDecodedFrames = 0, this._latencyDetectTimer = self.setInterval(this._adjustDurationGap.bind(this), this._latencyDetectInterval)) } }, { key: "closeLatencyMonitor", value: function () { this._durationMonitor && (clearInterval(this._durationMonitor), this._durationMonitor = null), this._latencyDetectTimer && (clearInterval(this._latencyDetectTimer), this._latencyDetectTimer = null), this._emitter.listeners("timeupdate") && this._mediaElement.removeEventListener("timeupdate", this.e.onvTimeUpdate) } }, { key: "_onmseUpdateEnd", value: function () { if (this._config.lazyLoad && !this._config.isLive) { for (var e = this._mediaElement.buffered, t = this._mediaElement.currentTime, n = 0, i = 0; i < e.length; i++) { var r = e.start(i), a = e.end(i); if (r <= t && t < a) { n = a; break } } n >= t + this._config.lazyLoadMaxDuration && null == this._progressChecker && (d.default.v(this.TAG, "Maximum buffering duration exceeded, suspend transmuxing task"), this._suspendTransmuxer()) } } }, { key: "_onmseBufferFull", value: function () { d.default.v(this.TAG, "MSE SourceBuffer is full, suspend transmuxing task"), null == this._progressChecker && this._suspendTransmuxer(), this._emitter.emit(h.default.MS_BUFFER_FULL) } }, { key: "_suspendTransmuxer", value: function () { this._transmuxer && (this._transmuxer.pause(), null == this._progressChecker && (this._progressChecker = window.setInterval(this._checkProgressAndResume.bind(this), 1e3))) } }, { key: "_checkProgressAndResume", value: function () { for (var e = this._mediaElement.currentTime, t = this._mediaElement.buffered, n = !1, i = 0; i < t.length; i++) { var r = t.start(i), a = t.end(i); if (r <= e && e < a) { e >= a - this._config.lazyLoadRecoverDuration && (n = !0); break } } n && (window.clearInterval(this._progressChecker), this._progressChecker = null, n && (d.default.v(this.TAG, "Continue loading from paused position"), this._transmuxer.resume())) } }, { key: "_isTimepointBuffered", value: function (e) { for (var t = this._mediaElement.buffered, n = 0; n < t.length; n++) { var i = t.start(n), r = t.end(n); if (i <= e && e < r) return !0 } return !1 } }, { key: "_internalSeek", value: function (e) { var t, n = this._isTimepointBuffered(e), i = !1, r = 0; e < 1 && 0 < this._mediaElement.buffered.length && (((t = this._mediaElement.buffered.start(0)) < 1 && e < t || l.default.safari) && (i = !0, r = l.default.safari ? .1 : t)), i ? (this._requestSetTime = !0, this._mediaElement.currentTime = r) : n ? (this._alwaysSeekKeyframe ? (n = this._msectl.getNearestKeyframe(Math.floor(1e3 * e)), this._requestSetTime = !0, this._mediaElement.currentTime = null != n ? n.dts / 1e3 : e) : (this._requestSetTime = !0, this._mediaElement.currentTime = e), null != this._progressChecker && this._checkProgressAndResume()) : (null != this._progressChecker && (window.clearInterval(this._progressChecker), this._progressChecker = null), this._msectl.seek(e), this._transmuxer.seek(Math.floor(1e3 * e)), this._config.accurateSeek && (this._requestSetTime = !0, this._mediaElement.currentTime = e)) } }, { key: "_checkAndApplyUnbufferedSeekpoint", value: function () { var e; this._seekpointRecord && (this._seekpointRecord.recordTime <= this._now() - 100 ? (e = this._mediaElement.currentTime, this._seekpointRecord = null, this._isTimepointBuffered(e) || (null != this._progressChecker && (window.clearTimeout(this._progressChecker), this._progressChecker = null), this._msectl.seek(e), this._transmuxer.seek(Math.floor(1e3 * e)), this._config.accurateSeek && (this._requestSetTime = !0, this._mediaElement.currentTime = e))) : window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this), 50)) } }, { key: "_checkAndResumeStuckPlayback", value: function (e) { var t = this._mediaElement; e || !this._receivedCanPlay || t.readyState < 2 ? 0 < (e = t.buffered).length && t.currentTime < e.start(0) && (d.default.w(this.TAG, "Playback seems stuck at " + t.currentTime + ", seek to " + e.start(0)), this._requestSetTime = !0, this._mediaElement.currentTime = e.start(0), this._mediaElement.removeEventListener("progress", this.e.onvProgress)) : this._mediaElement.removeEventListener("progress", this.e.onvProgress) } }, { key: "_onvLoadedMetadata", value: function (e) { null != this._pendingSeekTime && (this._mediaElement.currentTime = this._pendingSeekTime, this._pendingSeekTime = null), this._emitter.emit(h.default.LOADED_META_DATA) } }, { key: "_onvSeeking", value: function (e) { var t = this._mediaElement.currentTime, n = this._mediaElement.buffered; if (this._requestSetTime) this._requestSetTime = !1; else { if (t < 1 && 0 < n.length) { var i = n.start(0); if (i < 1 && t < i || l.default.safari) return this._requestSetTime = !0, void (this._mediaElement.currentTime = l.default.safari ? .1 : i) } if (this._isTimepointBuffered(t)) return !this._alwaysSeekKeyframe || null != (i = this._msectl.getNearestKeyframe(Math.floor(1e3 * t))) && (this._requestSetTime = !0, this._mediaElement.currentTime = i.dts / 1e3), void (null != this._progressChecker && this._checkProgressAndResume()); this._seekpointRecord = { seekPoint: t, recordTime: this._now() }, window.setTimeout(this._checkAndApplyUnbufferedSeekpoint.bind(this), 50) } } }, { key: "_onvCanPlay", value: function (e) { var t; this._receivedCanPlay = !0, this._mediaElement.removeEventListener("canplay", this.e.onvCanPlay), this._mediaElement.play(), this._enableAudioGain && (g_audioSource || (t = this._mediaElement, g_audioSource = g_audioCtx.createMediaElementSource(t)), g_audioSource.connect(g_audioGain), d.default.d(this.TAG, "Enable audio gain, level = " + this._audioGainLevel)) } }, { key: "_onvStalled", value: function (e) { this._checkAndResumeStuckPlayback(!0) } }, { key: "_onvProgress", value: function (e) { this._checkAndResumeStuckPlayback() } }, { key: "_onvTimeUpdate", value: function (e) { var t, n, i = e.target; i.currentTime && i.seekable && i.playbackRate && 0 != i.seekable.length && this._enableDurationMonitor && (n = i.currentTime, t = i.seekable.end(0), e = i.playbackRate, (n = t - n) > this._fastvalue && 1 === e && (i.playbackRate = 1.2), n < this._slowvalue && 1 < e && (i.playbackRate = 1)) } }, { key: "type", get: function () { return this._type } }, { key: "buffered", get: function () { return this._mediaElement.buffered } }, { key: "duration", get: function () { return this._mediaElement.duration } }, { key: "volume", get: function () { return this._mediaElement.volume }, set: function (e) { this._mediaElement.volume = e } }, { key: "muted", get: function () { return this._mediaElement.muted }, set: function (e) { this._mediaElement.muted = e } }, { key: "currentTime", get: function () { return this._mediaElement ? this._mediaElement.currentTime : 0 }, set: function (e) { this._mediaElement ? this._internalSeek(e) : this._pendingSeekTime = e } }, { key: "mediaInfo", get: function () { return (0, r.default)({}, this._mediaInfo) } }, { key: "statisticsInfo", get: function () { return null == this._statisticsInfo && (this._statisticsInfo = {}), this._statisticsInfo = this._fillStatisticsInfo(this._statisticsInfo), (0, r.default)({}, this._statisticsInfo) } }, { key: "onParsedData", set: function (e) { this._onParsedData = e } }]), o = L; function L(e, t) { if ((0, s.default)(this, L), this.TAG = "FlvPlayer", this._type = "FlvPlayer", this._emitter = new u.default, this._config = (0, y.createDefaultConfig)(), "object" === (void 0 === t ? "undefined" : (0, a.default)(t)) && (0, r.default)(this._config, t), "flv" !== e.type.toLowerCase()) throw new v.InvalidArgumentException("FlvPlayer requires an flv MediaDataSource input!"); !0 === e.isLive && (this._config.isLive = !0), this.e = { onvLoadedMetadata: this._onvLoadedMetadata.bind(this), onvSeeking: this._onvSeeking.bind(this), onvCanPlay: this._onvCanPlay.bind(this), onvStalled: this._onvStalled.bind(this), onvProgress: this._onvProgress.bind(this), onvTimeUpdate: this._onvTimeUpdate.bind(this) }, self.performance && self.performance.now ? this._now = self.performance.now.bind(self.performance) : this._now = Date.now, this._pendingSeekTime = null, this._requestSetTime = !1, this._seekpointRecord = null, this._progressChecker = null, this._mediaDataSource = e, this._mediaElement = null, this._msectl = null, this._transmuxer = null, this._fastvalue = 1.5, this._slowvalue = .5, 0 < e.stashInitialSize && (this._fastvalue = 4, this._slowvalue = 2.5), this._stashArray = [], this._mseSourceOpened = !1, this._hasPendingLoad = !1, this._receivedCanPlay = !1, this._mediaInfo = null, this._statisticsInfo = null; e = l.default.chrome && (l.default.version.major < 50 || 50 === l.default.version.major && l.default.version.build < 2661); this._alwaysSeekKeyframe = !!(e || l.default.msedge || l.default.msie), this._alwaysSeekKeyframe && (this._config.accurateSeek = !1), this._videoStateMonitorInterval = this._config.videoStateMonitorInterval, this._enableDurationMonitor = this._config.enableDurationMonitor, this._curLatencyThreshold = this._config.lowLatencyThreshold, this._decreaseDurationStep = this._config.decreaseDurationStep, this._durationMonitor = null, this._enableVideoFrozenMonitor = this._config.enableVideoFrozenMonitor, this._frozenTimesThreshold = this._config.frozenTimesThreshold, this._forzenTimes = 0, this._lastDecodedFrames = 0, this._latencyDetectInterval = this._config.latencyDetectInterval, this._latencyDetectThreshold = this._config.latencyDetectThreshold, this._latencyDetectAdjustStep = this._config.latencyDetectAdjustStep, this._latencyDetectTimer = null, this._latencyAdjustCount = 0, this._latencyAdjustCountTotal = 0, this._enableAudioGain = this._config.enableAudioGain, this._audioGainLevel = 0 < this._config.audioGainLevel ? this._config.audioGainLevel : 1, this.iWndNum = this._config.WDInfo.index } t.default = o }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = f(n(38)), a = f(n(11)), r = f(n(1)), s = f(n(2)), o = f(n(10)), u = f(n(4)), d = f(n(64)), l = f(n(229)), h = f(n(40)), c = (f(n(231)), f(n(65))), _ = f(n(331)); function f(e) { return e && e.__esModule ? e : { default: e } } (0, s.default)(m, [{ key: "destroy", value: function () { this._worker ? this._workerDestroying || (this._workerDestroying = !0, this._worker.postMessage({ cmd: "destroy" }), d.default.removeListener(this.e.onLoggingConfigChanged), this.e = null) : (this._controller.destroy(), this._controller = null), this._emitter.removeAllListeners(), this._emitter = null } }, { key: "on", value: function (e, t) { this._emitter.addListener(e, t) } }, { key: "off", value: function (e, t) { this._emitter.removeListener(e, t) } }, { key: "hasWorker", value: function () { return null != this._worker } }, { key: "open", value: function () { this._worker ? this._worker.postMessage({ cmd: "start" }) : this._controller.start() } }, { key: "close", value: function () { this._worker ? this._worker.postMessage({ cmd: "stop" }) : this._controller.stop() } }, { key: "seek", value: function (e) { this._worker ? this._worker.postMessage({ cmd: "seek", param: e }) : this._controller.seek(e) } }, { key: "pause", value: function () { this._worker ? this._worker.postMessage({ cmd: "pause" }) : this._controller.pause() } }, { key: "resume", value: function () { this._worker ? this._worker.postMessage({ cmd: "resume" }) : this._controller.resume() } }, { key: "feed", value: function (e, t, n) { this.hasWorker() ? this._worker.postMessage({ cmd: "feed", feedData: { data: e, byteStart: t, receivedLength: n } }) : this._controller._ioctl._onLoaderChunkArrival(e, t, n) } }, { key: "setRecordFlag", value: function (e) { this.hasWorker() ? this._worker.postMessage({ cmd: "set_record_flag", value: e }) : this._controller._demuxer.recordFlag = e } }, { key: "CleanCache", value: function () { this.hasWorker() ? this._worker.postMessage({ cmd: "cleancache" }) : this._controller._ioctl._flushStashBuffer(!0) } }, { key: "_onInitSegment", value: function (e, t) { var n = this; a.default.resolve().then(function () { null != n._emitter && n._emitter.emit(h.default.INIT_SEGMENT, e, t) }) } }, { key: "_onMediaSegment", value: function (e, t) { var n = this; a.default.resolve().then(function () { null != n._emitter && n._emitter.emit(h.default.MEDIA_SEGMENT, e, t) }) } }, { key: "_onLoadingComplete", value: function () { var e = this; a.default.resolve().then(function () { e._emitter.emit(h.default.LOADING_COMPLETE) }) } }, { key: "_onRecoveredEarlyEof", value: function () { var e = this; a.default.resolve().then(function () { e._emitter.emit(h.default.RECOVERED_EARLY_EOF) }) } }, { key: "_onMediaInfo", value: function (e) { var t = this; a.default.resolve().then(function () { null != t._emitter && t._emitter.emit(h.default.MEDIA_INFO, e) }) } }, { key: "_onMetaDataArrived", value: function (e) { var t = this; a.default.resolve().then(function () { null != t._emitter && t._emitter.emit(h.default.METADATA_ARRIVED, e) }) } }, { key: "_onScriptDataArrived", value: function (e) { var t = this; a.default.resolve().then(function () { null != t._emitter && t._emitter.emit(h.default.SCRIPTDATA_ARRIVED, e) }) } }, { key: "_onStatisticsInfo", value: function (e) { var t = this; a.default.resolve().then(function () { t._emitter.emit(h.default.STATISTICS_INFO, e) }) } }, { key: "_onIOError", value: function (e, t) { var n = this; a.default.resolve().then(function () { null != n._emitter && n._emitter.emit(h.default.IO_ERROR, e, t) }) } }, { key: "_onDemuxError", value: function (e, t) { var n = this; a.default.resolve().then(function () { null != n._emitter && n._emitter.emit(h.default.DEMUX_ERROR, e, t) }) } }, { key: "_onRecommendSeekpoint", value: function (e) { var t = this; a.default.resolve().then(function () { t._emitter.emit(h.default.RECOMMEND_SEEKPOINT, e) }) } }, { key: "_onLoggingConfigChanged", value: function (e) { this._worker && this._worker.postMessage({ cmd: "logging_config", param: e }) } }, { key: "_onVideoResolutionChanged", value: function (e) { var t = this; a.default.resolve().then(function () { null != t._emitter && t._emitter.emit(h.default.VIDEO_RESOLUTION_CHANGED, e) }) } }, { key: "_onWorkerMessage", value: function (e) { var t = e.data, n = t.data; if ("destroyed" === t.msg || this._workerDestroying) return this._workerDestroying = !1, this._worker.terminate(), void (this._worker = null); switch (t.msg) { case h.default.INIT_SEGMENT: case h.default.MEDIA_SEGMENT: this._emitter.emit(t.msg, n.type, n.data); break; case h.default.LOADING_COMPLETE: case h.default.RECOVERED_EARLY_EOF: this._emitter.emit(t.msg); break; case h.default.MEDIA_INFO: (0, i.default)(n, c.default.prototype), this._emitter.emit(t.msg, n); break; case h.default.METADATA_ARRIVED: case h.default.SCRIPTDATA_ARRIVED: case h.default.STATISTICS_INFO: this._emitter.emit(t.msg, n); break; case h.default.IO_ERROR: case h.default.DEMUX_ERROR: this._emitter.emit(t.msg, n.type, n.info); break; case h.default.RECOMMEND_SEEKPOINT: this._emitter.emit(t.msg, n); break; case "logcat_callback": u.default.emitter.emit("log", n.type, n.logcat); break; case h.default.PARSEDDATA_ARRIVED: this._emitter.emit(t.msg, n.databuf, n.dataType) } } }, { key: "_parsedDataArrived", value: function (e, t, n, i) { var r = this; a.default.resolve().then(function () { r._emitter && r._emitter.emit(h.default.PARSEDDATA_ARRIVED, e, t, n, i) }) } }]), s = m; function m(t, n) { if ((0, r.default)(this, m), this.TAG = "Transmuxer", this._emitter = new o.default, n.enableWorker && "undefined" != typeof Worker) try { this._worker = (0, _.default)(231), this._workerDestroying = !1, this._worker.addEventListener("message", this._onWorkerMessage.bind(this)), this._worker.postMessage({ cmd: "init", param: [t, n] }), this.e = { onLoggingConfigChanged: this._onLoggingConfigChanged.bind(this) }, d.default.registerListener(this.e.onLoggingConfigChanged), this._worker.postMessage({ cmd: "logging_config", param: d.default.getConfig() }) } catch (e) { u.default.e(this.TAG, "Error while initialize transmuxing worker, fallback to inline transmuxing"), this._worker = null, this._controller = new l.default(t, n) } else this._controller = new l.default(t, n); this._controller && ((n = this._controller).on(h.default.IO_ERROR, this._onIOError.bind(this)), n.on(h.default.DEMUX_ERROR, this._onDemuxError.bind(this)), n.on(h.default.INIT_SEGMENT, this._onInitSegment.bind(this)), n.on(h.default.MEDIA_SEGMENT, this._onMediaSegment.bind(this)), n.on(h.default.LOADING_COMPLETE, this._onLoadingComplete.bind(this)), n.on(h.default.RECOVERED_EARLY_EOF, this._onRecoveredEarlyEof.bind(this)), n.on(h.default.MEDIA_INFO, this._onMediaInfo.bind(this)), n.on(h.default.METADATA_ARRIVED, this._onMetaDataArrived.bind(this)), n.on(h.default.SCRIPTDATA_ARRIVED, this._onScriptDataArrived.bind(this)), n.on(h.default.STATISTICS_INFO, this._onStatisticsInfo.bind(this)), n.on(h.default.RECOMMEND_SEEKPOINT, this._onRecommendSeekpoint.bind(this)), n.on(h.default.VIDEO_RESOLUTION_CHANGED, this._onVideoResolutionChanged.bind(this)), n.on(h.default.PARSEDDATA_ARRIVED, this._parsedDataArrived.bind(this))) } t.default = s }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var a = l(n(85)), s = l(n(20)), o = l(n(9)), p = l(n(320)), i = l(n(1)), r = l(n(2)), b = l(n(4)), u = l(n(324)), w = l(n(326)), D = l(n(66)), d = l(n(65)), y = n(5); function l(e) { return e && e.__esModule ? e : { default: e } } (0, r.default)(v, [{ key: "destroy", value: function () { this._mediaInfo = null, this._metadata = null, this._audioMetadata = null, this._videoMetadata = null, this._videoTrack = null, this._audioTrack = null, this._onError = null, this._onMediaInfo = null, this._onMetaDataArrived = null, this._onScriptDataArrived = null, this._onTrackMetadata = null, this._onDataAvailable = null, this._lastVideoDimension = null, this._recordFlag = !1, this._firstrVideo = !0, this._firstAudio = !0, this._flvHead = "", this._firstParseAudio = !0, this._bpsCalculator && (self.clearInterval(this._bpsCalculator), this._bpsCalculator = null, this._bpsInfo = null) } }, { key: "bindDataSource", value: function (e) { return e.onDataArrival = this.parseChunks.bind(this), this } }, { key: "resetMediaInfo", value: function () { this._mediaInfo = new d.default } }, { key: "_isInitialMetadataDispatched", value: function () { return this._hasAudio && this._hasVideo ? this._audioInitialMetadataDispatched && this._videoInitialMetadataDispatched : this._hasAudio && !this._hasVideo ? this._audioInitialMetadataDispatched : !(this._hasAudio || !this._hasVideo) && this._videoInitialMetadataDispatched } }, { key: "_calculateRealtimeBitrate", value: function () { this._bpsInfo && (this._bpsInfo.time_gap_factor < 1 && (this._bpsInfo.time_gap_factor = 1), 0 != this._bpsInfo.lastVideoBytes && (this._bpsInfo.bps_video = 8 * this._bpsInfo.lastVideoBytes / 1024 / this._bpsInfo.time_gap_factor, this._bpsInfo.lastVideoBytes = 0), 0 != this._bpsInfo.lastAudioBytes && (this._bpsInfo.bps_audio = 8 * this._bpsInfo.lastAudioBytes / 1024 / this._bpsInfo.time_gap_factor, this._bpsInfo.lastAudioBytes = 0), this._videoInfo.bitRate = this._bpsInfo.bps_video + this._bpsInfo.bps_audio) } }, { key: "parseChunks", value: function (e, t) { if (!(this._onError && this._onMediaInfo && this._onTrackMetadata && this._onDataAvailable)) throw new y.IllegalStateException("Flv: onError & onMediaInfo & onTrackMetadata & onDataAvailable callback must be specified"); var n = 0, i = this._littleEndian; if (0 === t) { if (!(13 < e.byteLength)) return 0; n = v.probe(e).dataOffset } else 4 === t && (n = 4); this._bpsCalculator || (this._bpsCalculator = self.setInterval(this._calculateRealtimeBitrate.bind(this), 1e3)), this._firstParse && (this._firstParse = !1, t + n !== this._dataOffset && b.default.w(this.TAG, "First time parsing but chunk byteStart invalid!"), 0 !== new DataView(e, n).getUint32(0, !i) && b.default.w(this.TAG, "PrevTagSize0 !== 0 !!!"), n += 4, this._flvHead = new Uint8Array(e, 0, 13)); for (var r, a = 0, s = 0; n < e.byteLength;) { this._dispatch = !0; var o = new DataView(e, n); if (n + 11 + 4 > e.byteLength) break; var u = o.getUint8(0), d = 16777215 & o.getUint32(0, !i); if (n + 11 + d + 4 > e.byteLength) break; if (8 === u || 9 === u || 18 === u || 191 === u) { var l = o.getUint8(4), h = o.getUint8(5), c = o.getUint8(6) | h << 8 | l << 16 | o.getUint8(7) << 24; 0 != (16777215 & o.getUint32(7, !i)) && b.default.w(this.TAG, "Meet tag which has StreamID != 0!"); var _, f = n + 11; switch (!this._recordFlag || 8 !== u && 9 !== u && 18 !== u || this._onParsedData(new Uint8Array(e, n, 11 + d + 4), 1), u) { case 8: this._firstAudio && (_ = (this._firstAudio = !1, p.default)(this._flvHead).concat((0, p.default)(new Uint8Array(e, n, 11 + d + 4))), this._flvHead = new Uint8Array(_), this._onParsedData(this._flvHead, 5)), this._parseAudioData(e, f, d, c), s += d; break; case 9: this._firstrVideo && (m = (this._firstrVideo = !1, p.default)(this._flvHead).concat((0, p.default)(new Uint8Array(e, n, 11 + d + 4))), this._flvHead = new Uint8Array(m), this._onParsedData(this._flvHead, 5), this._osdtimeInfo.flvstartTime = c), this._osdtimeInfo.flvduration = c - this._osdtimeInfo.flvstartTime, this._parseVideoData(e, f, d, c, t + n), a += d, this._recvGlobeTimeFlag && 1e3 <= c - this._recvPreTime && (this._osdtimeInfo.globalTime = this._osdtimeInfo.globalTime + 1e3, this._recvPreTime = c, this._onParsedData(this._osdtimeInfo, 2)); break; case 18: var m = (0, p.default)(this._flvHead).concat((0, p.default)(new Uint8Array(e, n, 11 + d + 4))); this._flvHead = new Uint8Array(m), this._parseScriptData(e, f, d); break; case 191: this._parsePrivateData(e, f, d, c) }o = o.getUint32(11 + d, !i); o !== 11 + d && (b.default.w(this.TAG, "Invalid PrevTagSize " + o), (2097152 < o || o < 16) && this._onParsedData("reset decoder", 11)), n += 11 + d + 4 } else b.default.w(this.TAG, "Unsupported tag type " + u + ", skipped"), n += 11 + d + 4 } return this._bpsInfo && (this._bpsInfo.lastAudioBytes += s, this._bpsInfo.lastVideoBytes += a, 0 != this._bpsInfo.data_updated_time && (r = (r = (this._now() - this._bpsInfo.data_updated_time) / 1e3) < 1 ? 1 : Math.round(r), this._bpsInfo.time_gap_factor = r), this._bpsInfo.data_updated_time = this._now()), this._isInitialMetadataDispatched() && this._dispatch && (this._audioTrack.length || this._videoTrack.length) && this._onDataAvailable(this._audioTrack, this._videoTrack), n } }, { key: "_parseScriptData", value: function (e, t, n) { t = u.default.parseScriptData(e, t, n); if (t.hasOwnProperty("onMetaData")) { if (null == t.onMetaData || "object" !== (0, o.default)(t.onMetaData)) return void b.default.w(this.TAG, "Invalid onMetaData structure!"); this._metadata && b.default.w(this.TAG, "Found another onMetaData tag!"), this._metadata = t; var i, r, n = this._metadata.onMetaData; this._onMetaDataArrived && this._onMetaDataArrived((0, s.default)({}, n)), "boolean" == typeof n.hasAudio && !1 === this._hasAudioFlagOverrided && (this._hasAudio = n.hasAudio, this._mediaInfo.hasAudio = this._hasAudio), "boolean" == typeof n.hasVideo && !1 === this._hasVideoFlagOverrided && (this._hasVideo = n.hasVideo, this._mediaInfo.hasVideo = this._hasVideo), "number" == typeof n.audiodatarate && (this._mediaInfo.audioDataRate = n.audiodatarate), "number" == typeof n.videodatarate && (this._mediaInfo.videoDataRate = n.videodatarate), "number" == typeof n.width && (this._mediaInfo.width = n.width), "number" == typeof n.height && (this._mediaInfo.height = n.height), "number" == typeof n.duration ? this._durationOverrided || (i = Math.floor(n.duration * this._timescale), this._duration = i, this._mediaInfo.duration = i) : this._mediaInfo.duration = 0, "number" != typeof n.framerate || 0 < (i = Math.floor(1e3 * n.framerate)) && (r = i / 1e3, this._referenceFrameRate.fixed = !0, this._referenceFrameRate.fps = r, this._referenceFrameRate.fps_num = i, this._referenceFrameRate.fps_den = 1e3, this._mediaInfo.fps = r), "object" === (0, o.default)(n.keyframes) ? (this._mediaInfo.hasKeyframesIndex = !0, r = n.keyframes, this._mediaInfo.keyframesIndex = this._parseKeyframesIndex(r), n.keyframes = null) : this._mediaInfo.hasKeyframesIndex = !1, this._dispatch = !1, this._mediaInfo.metadata = n, b.default.v(this.TAG, "Parsed onMetaData, hasAudio:" + this._mediaInfo.hasAudio + ", hasVideo:" + this._mediaInfo.hasVideo + ", video demension:" + this._mediaInfo.width + "x" + this._mediaInfo.height + "@" + this._mediaInfo.fps + " fps, hasKeyframesIndex=" + this._mediaInfo.hasKeyframesIndex + ", video_bitrate=" + this._mediaInfo.videoDataRate + ", audio_bitrate=" + this._mediaInfo.audioDataRate), this._mediaInfo.isComplete() && this._onMediaInfo(this._mediaInfo) } 0 < (0, a.default)(t).length && this._onScriptDataArrived && this._onScriptDataArrived((0, s.default)({}, t)) } }, { key: "_parseKeyframesIndex", value: function (e) { for (var t = [], n = [], i = 1; i < e.times.length; i++) { var r = this._timestampBase + Math.floor(1e3 * e.times[i]); t.push(r), n.push(e.filepositions[i]) } return { times: t, filepositions: n } } }, { key: "_parseAudioData", value: function (e, t, n, i) { if (n <= 1) b.default.w(this.TAG, "Flv: Invalid audio packet, missing SoundData payload!"); else if (!0 !== this._hasAudioFlagOverrided || !1 !== this._hasAudio) { this._littleEndian; var r = new DataView(e, t, n).getUint8(0), a = r >>> 4; if (2 == a || 10 == a) { var s = 0, o = (12 & r) >>> 2; if (0 <= o && o <= 4) { var s = this._flvSoundRateTable[o], u = 1 & r, d = this._audioMetadata, r = this._audioTrack; if (d || (!1 === this._hasAudio && !1 === this._hasAudioFlagOverrided && (this._hasAudio = !0, this._mediaInfo.hasAudio = !0), (d = this._audioMetadata = {}).type = "audio", d.id = r.id, d.timescale = this._timescale, d.duration = this._duration, d.audioSampleRate = s, d.channelCount = 0 == u ? 1 : 2), 10 == a) { var l = this._parseAACAudioData(e, t + 1, n - 1); if (null != l) { if (0 === l.packetType) { d.config && b.default.w(this.TAG, "Found another AudioSpecificConfig!"); var h = l.data; if (b.default.v(this.TAG, "old {channel:" + d.channelCount + ", codec:" + d.codec + ", sample rate:" + d.audioSampleRate + ", orignal codec:" + h.originalCodec + ", config:" + d.config + "}"), b.default.v(this.TAG, "new {channel:" + h.channelCount + ", codec:" + h.codec + ", sample rate:" + h.samplingRate + ", orignal codec:" + h.originalCodec + ", config:" + h.config + "}"), this._videoInfo.audioSampleRate = h.samplingRate, this._onParsedData(this._videoInfo, 3), d.channelCount === h.channelCount && d.audioSampleRate === h.samplingRate && d.codec === h.codec && d.originalCodec === h.originalCodec) return void b.default.w(this.TAG, "audio specific config do not changed, discard it."); d.audioSampleRate = h.samplingRate, d.channelCount = h.channelCount, d.codec = h.codec, d.originalCodec = h.originalCodec, d.config = h.config, d.refSampleDuration = 1024 / d.audioSampleRate * d.timescale, this._isInitialMetadataDispatched() ? this._dispatch && (this._audioTrack.length || this._videoTrack.length) && this._onDataAvailable(this._audioTrack, this._videoTrack) : this._audioInitialMetadataDispatched = !0, this._dispatch = !1, this._onTrackMetadata("audio", d); var h = this._mediaInfo; h.audioCodec = d.originalCodec, h.audioSampleRate = d.audioSampleRate, h.audioChannelCount = d.channelCount, h.hasVideo ? null != h.videoCodec && (h.mimeType = 'video/x-flv; codecs="' + h.videoCodec + "," + h.audioCodec + '"') : h.mimeType = 'video/x-flv; codecs="' + h.audioCodec + '"', h.isComplete() && this._onMediaInfo(h) } else 1 === l.packetType ? (h = this._timestampBase + i, h = { unit: l.data, length: l.data.byteLength, dts: h, pts: h }, r.samples.push(h), r.length += l.data.length) : b.default.e(this.TAG, "Flv: Unsupported AAC data type " + l.packetType); this._videoInfo.audioType = "AAC" } } else if (2 == a) { if (!d.codec) { l = this._parseMP3AudioData(e, t + 1, n - 1, !0); if (null == l) return; d.audioSampleRate = l.samplingRate, d.channelCount = l.channelCount, d.codec = l.codec, d.originalCodec = l.originalCodec, d.refSampleDuration = 1152 / d.audioSampleRate * d.timescale, b.default.v(this.TAG, "Parsed MPEG Audio Frame Header"), this._audioInitialMetadataDispatched = !0, this._onTrackMetadata("audio", d); var c = this._mediaInfo; c.audioCodec = d.codec, c.audioSampleRate = d.audioSampleRate, c.audioChannelCount = d.channelCount, c.audioDataRate = l.bitRate, c.hasVideo ? null != c.videoCodec && (c.mimeType = 'video/x-flv; codecs="' + c.videoCodec + "," + c.audioCodec + '"') : c.mimeType = 'video/x-flv; codecs="' + c.audioCodec + '"', c.isComplete() && this._onMediaInfo(c), this._videoInfo.audioType = "MP3" } c = this._parseMP3AudioData(e, t + 1, n - 1, !1); null != c && (i = this._timestampBase + i, i = { unit: c, length: c.byteLength, dts: i, pts: i }, r.samples.push(i), r.length += c.length) } } else this._onError(D.default.FORMAT_ERROR, "Flv: Invalid audio sample rate idx: " + o) } else this._onError(D.default.CODEC_UNSUPPORTED, "Flv: Unsupported audio codec idx: " + a) } else if (this._firstParseAudio) { this._firstParseAudio = !1; n = this._parseAACAudioData(e, t + 1, n - 1); if (null == n) return; this._videoInfo.audioType = "AAC", this._videoInfo.audioSampleRate = n.data.samplingRate } } }, { key: "_parseAACAudioData", value: function (e, t, n) { if (!(n <= 1)) { var i = {}, r = new Uint8Array(e, t, n); return i.packetType = r[0], 0 === r[0] ? i.data = this._parseAACAudioSpecificConfig(e, t + 1, n - 1) : i.data = r.subarray(1), i } b.default.w(this.TAG, "Flv: Invalid AAC packet, missing AACPacketType or/and Data!") } }, { key: "_parseAACAudioSpecificConfig", value: function (e, t, n) { var i, r = new Uint8Array(e, t, n), a = null, s = 0, o = 0, e = null, s = i = r[0] >>> 3; if ((o = (7 & r[0]) << 1 | r[1] >>> 7) < 0 || o >= this._mpegSamplingRates.length) this._onError(D.default.FORMAT_ERROR, "Flv: AAC invalid sampling frequency index!"); else { t = this._mpegSamplingRates[o], n = (120 & r[1]) >>> 3; if (!(n < 0 || 8 <= n)) { 5 === s && (e = (7 & r[1]) << 1 | r[2] >>> 7, r[2]); r = self.navigator.userAgent.toLowerCase(); return -1 !== r.indexOf("firefox") ? e = 6 <= o ? (s = 5, a = new Array(4), o - 3) : (s = 2, a = new Array(2), o) : -1 !== r.indexOf("android") ? (s = 2, a = new Array(2), e = o) : (s = 5, e = o, a = new Array(4), 6 <= o ? e = o - 3 : 1 == n && (s = 2, a = new Array(2), e = o)), a[0] = s << 3, a[0] |= (15 & o) >>> 1, a[1] = (15 & o) << 7, a[1] |= (15 & n) << 3, 5 === s && (a[1] |= (15 & e) >>> 1, a[2] = (1 & e) << 7, a[2] |= 8, a[3] = 0), { config: a, samplingRate: t, channelCount: n, codec: "mp4a.40." + s, originalCodec: "mp4a.40." + i } } this._onError(D.default.FORMAT_ERROR, "Flv: AAC invalid channel configuration") } } }, { key: "_parseMP3AudioData", value: function (e, t, n, i) { if (!(n < 4)) { this._littleEndian; var r = new Uint8Array(e, t, n), e = null; if (i) { if (255 !== r[0]) return; var t = r[1] >>> 3 & 3, n = (6 & r[1]) >> 1, a = (240 & r[2]) >>> 4, s = (12 & r[2]) >>> 2, i = 3 != (r[3] >>> 6 & 3) ? 2 : 1, o = 0, u = 0; switch (t) { case 0: o = this._mpegAudioV25SampleRateTable[s]; break; case 2: o = this._mpegAudioV20SampleRateTable[s]; break; case 3: o = this._mpegAudioV10SampleRateTable[s] }switch (n) { case 1: a < this._mpegAudioL3BitRateTable.length && (u = this._mpegAudioL3BitRateTable[a]); break; case 2: a < this._mpegAudioL2BitRateTable.length && (u = this._mpegAudioL2BitRateTable[a]); break; case 3: a < this._mpegAudioL1BitRateTable.length && (u = this._mpegAudioL1BitRateTable[a]) }e = { bitRate: u, samplingRate: o, channelCount: i, codec: "mp3", originalCodec: "mp3" } } else e = r; return e } b.default.w(this.TAG, "Flv: Invalid MP3 packet, header missing!") } }, { key: "_parseVideoData", value: function (e, t, n, i, r) { var a, s; n <= 1 ? b.default.w(this.TAG, "Flv: Invalid video packet, missing VideoData payload!") : !0 === this._hasVideoFlagOverrided && !1 === this._hasVideo || (7 == (s = 15 & (a = new Uint8Array(e, t, n)[0])) ? this._parseAVCVideoPacket(e, t + 1, n - 1, i, r, (240 & a) >>> 4) : this._onError(D.default.CODEC_UNSUPPORTED, "Flv: Unsupported codec in video frame: " + s)) } }, { key: "_parseAVCVideoPacket", value: function (e, t, n, i, r, a) { var s, o, u; n < 4 ? b.default.w(this.TAG, "Flv: Invalid AVC packet, missing AVCPacketType or/and CompositionTime") : (u = this._littleEndian, o = (s = new DataView(e, t, n)).getUint8(0), u = (16777215 & s.getUint32(0, !u)) << 8 >> 8, 0 === o ? this._parseAVCDecoderConfigurationRecord(e, t + 4, n - 4) : 1 === o ? this._parseAVCVideoData(e, t + 4, n - 4, i, r, a, u) : 2 === o || this._onError(D.default.FORMAT_ERROR, "Flv: Invalid video packet type " + o)) } }, { key: "_parseAVCDecoderConfigurationRecord", value: function (e, t, n) { if (n < 7) b.default.w(this.TAG, "Flv: Invalid AVCDecoderConfigurationRecord, lack of data!"); else { var i = this._videoMetadata, r = this._videoTrack, a = this._littleEndian, s = new DataView(e, t, n), o = !1; i ? void 0 !== i.avcc && (o = !0) : (!1 === this._hasVideo && !1 === this._hasVideoFlagOverrided && (this._hasVideo = !0, this._mediaInfo.hasVideo = !0), (i = this._videoMetadata = {}).type = "video", i.id = r.id, i.timescale = this._timescale, i.duration = this._duration); var u = s.getUint8(0), r = s.getUint8(1); s.getUint8(2), s.getUint8(3); if (1 === u && 0 !== r) if (this._naluLengthSize = 1 + (3 & s.getUint8(4)), 3 === this._naluLengthSize || 4 === this._naluLengthSize) { var d = 31 & s.getUint8(5); if (0 != d) { 1 < d && b.default.w(this.TAG, "Flv: Strange AVCDecoderConfigurationRecord: SPS Count = " + d); for (var l = !0, h = 6, c = 0; c < d; c++) { var _ = s.getUint16(h, !a); if (h += 2, 0 !== _) { var f = new Uint8Array(e, t + h, _); h += _; var m = w.default.parseSPS(f); if (0 === c) { l = m.codec_size.width >= m.codec_size.height; if (o && this._lastVideoDimension) { if (this._lastVideoDimension.width != m.codec_size.width || this._lastVideoDimension.height != m.codec_size.height) { this._resolutionChanged = !0, b.default.d(this.TAG, "video resolution changed from [" + this._lastVideoDimension.width + "x" + this._lastVideoDimension.height + "] to [" + m.codec_size.width + "x" + m.codec_size.height + "]"), this._lastVideoDimension.width = m.codec_size.width, this._lastVideoDimension.height = m.codec_size.height, this._lastVideoDimension.profile = m.profile_string, this._lastVideoDimension.level = m.level_string; var p = {}; p.width = m.codec_size.width, p.height = m.codec_size.height, this._onVideoResolutionChanged(p) } else if (this._lastVideoDimension.profile == m.profile_string && this._lastVideoDimension.level == m.level_string) return } else this._lastVideoDimension.width = m.codec_size.width, this._lastVideoDimension.height = m.codec_size.height, this._lastVideoDimension.profile = m.profile_string, this._lastVideoDimension.level = m.level_string, b.default.d(this.TAG, "got new video dimension: [" + this._lastVideoDimension.width + "x" + this._lastVideoDimension.height + "]"); i.codecWidth = m.codec_size.width, i.codecHeight = m.codec_size.height, i.presentWidth = m.present_size.width, i.presentHeight = m.present_size.height, i.profile = m.profile_string, i.level = m.level_string, i.bitDepth = m.bit_depth, i.chromaFormat = m.chroma_format, i.sarRatio = m.sar_ratio, i.frameRate = m.frame_rate, !1 !== m.frame_rate.fixed && 0 !== m.frame_rate.fps_num && 0 !== m.frame_rate.fps_den || (i.frameRate = this._referenceFrameRate); _ = i.frameRate.fps_den, p = i.frameRate.fps_num; i.refSampleDuration = i.timescale * (_ / p); for (var y = f.subarray(1, 4), v = "avc1.", g = 0; g < 3; g++) { var M = y[g].toString(16); v += M = M.length < 2 ? "0" + M : M } i.codec = v; f = this._mediaInfo; f.width = i.codecWidth, f.height = i.codecHeight, f.fps = i.frameRate.fps, f.profile = i.profile, f.level = i.level, f.refFrames = m.ref_frames, f.chromaFormat = m.chroma_format_string, f.sarNum = i.sarRatio.width, f.sarDen = i.sarRatio.height, f.videoCodec = v, f.hasAudio ? null != f.audioCodec && (f.mimeType = 'video/x-flv; codecs="' + f.videoCodec + "," + f.audioCodec + '"') : f.mimeType = 'video/x-flv; codecs="' + f.videoCodec + '"', f.isComplete() && this._onMediaInfo(f) } } } var L = s.getUint8(h); if (0 !== L) { 1 < L && b.default.w(this.TAG, "Flv: Strange AVCDecoderConfigurationRecord: PPS Count = " + L), h++; for (var S = 0; S < L; S++) { var k = s.getUint16(h, !a); h += 2, 0 !== k && (h += k) } i.avcc = new Uint8Array(n), i.avcc.set(new Uint8Array(e, t, n), 0), b.default.v(this.TAG, "Parsed AVCDecoderConfigurationRecord done, " + i.codecWidth + "x" + i.codecHeight + "@" + i.frameRate.fps + " fps, profile=" + i.profile + ", level=" + i.level), this._isInitialMetadataDispatched() ? this._dispatch && (this._audioTrack.length || this._videoTrack.length) && this._onDataAvailable(this._audioTrack, this._videoTrack) : this._videoInitialMetadataDispatched = !0, this._dispatch = !1, this._config.enableConstVideoViewSize && (b.default.w(this.TAG, "--== const video view size enabled, use {" + this._config.constVideoViewWidth + "x" + this._config.constVideoViewHeight + "} ==--"), i.codecWidth = l ? this._config.constVideoViewWidth : this._config.constVideoViewHeight, i.codecHeight = l ? this._config.constVideoViewHeight : this._config.constVideoViewWidth), this._onTrackMetadata("video", i), this._videoInfo.bitRate = this._mediaInfo.videoDataRate, this._videoInfo.frameRate = i.frameRate.fps, this._videoInfo.width = i.codecWidth, this._videoInfo.height = i.codecHeight, this._onParsedData(this._videoInfo, 3) } else this._onError(D.default.FORMAT_ERROR, "Flv: Invalid AVCDecoderConfigurationRecord: No PPS") } else this._onError(D.default.FORMAT_ERROR, "Flv: Invalid AVCDecoderConfigurationRecord: No SPS") } else this._onError(D.default.FORMAT_ERROR, "Flv: Strange NaluLengthSizeMinusOne: " + (this._naluLengthSize - 1)); else this._onError(D.default.FORMAT_ERROR, "Flv: Invalid AVCDecoderConfigurationRecord") } } }, { key: "_parseAVCVideoData", value: function (e, t, n, i, r, a, s) { for (var o = this._littleEndian, u = new DataView(e, t, n), d = [], l = 0, h = 0, c = this._naluLengthSize, _ = this._timestampBase + i, f = 1 === a; h < n;) { if (n <= h + 4) { b.default.w(this.TAG, "Malformed Nalu near timestamp " + _ + ", offset = " + h + ", dataSize = " + n); break } var m = u.getUint32(h, !o); if (3 === c && (m >>>= 8), n - c < m) return void b.default.w(this.TAG, "Malformed Nalus near timestamp " + _ + ", NaluSize > DataSize!"); var p = 31 & u.getUint8(h + c); 5 == p && (f = !0); var y = new Uint8Array(e, t + h, c + m); d.push({ type: p, data: y }), l += y.byteLength, h += c + m } f && this._onParsedData(this._osdtimeInfo, 2), d.length && (a = this._videoTrack, s = { units: d, length: l, isKeyframe: f, dts: _, cts: s, pts: _ + s }, f && (s.fileposition = r), a.samples.push(s), a.length += l) } }, { key: "_parsePrivateData", value: function (e, t, n, i) { var r, a, s = new Uint8Array(e, t, n); 64 === s[0] && 14 === s[1] && (this._firstTimeStamp = !1, r = s[6] + 2e3, a = s[7] >> 4, e = (15 & s[7]) << 1 | s[8] >> 7, t = s[8] >> 2 & 31, n = (3 & s[8]) << 4 | s[9] >> 4, s = (15 & s[9]) << 2 | s[10] >> 6, this._osdtimeInfo.globalTime = new Date(r + "-" + a + "-" + e + " " + t + ":" + n + ":" + s).getTime(), this._recvGlobeTimeFlag = !0, this._recvPreTime = i) } }, { key: "recordFlag", get: function () { return this._recordFlag }, set: function (e) { e && this._onParsedData(this._flvHead, 1), this._recordFlag = e } }, { key: "onTrackMetadata", get: function () { return this._onTrackMetadata }, set: function (e) { this._onTrackMetadata = e } }, { key: "onMediaInfo", get: function () { return this._onMediaInfo }, set: function (e) { this._onMediaInfo = e } }, { key: "onMetaDataArrived", get: function () { return this._onMetaDataArrived }, set: function (e) { this._onMetaDataArrived = e } }, { key: "onScriptDataArrived", get: function () { return this._onScriptDataArrived }, set: function (e) { this._onScriptDataArrived = e } }, { key: "onError", get: function () { return this._onError }, set: function (e) { this._onError = e } }, { key: "onDataAvailable", get: function () { return this._onDataAvailable }, set: function (e) { this._onDataAvailable = e } }, { key: "timestampBase", get: function () { return this._timestampBase }, set: function (e) { this._timestampBase = e } }, { key: "overridedDuration", get: function () { return this._duration }, set: function (e) { this._durationOverrided = !0, this._duration = e, this._mediaInfo.duration = e } }, { key: "overridedHasAudio", set: function (e) { this._hasAudioFlagOverrided = !0, this._hasAudio = e, this._mediaInfo.hasAudio = e } }, { key: "overridedHasVideo", set: function (e) { this._hasVideoFlagOverrided = !0, this._hasVideo = e, this._mediaInfo.hasVideo = e } }, { key: "onVideoResolutionChanged", get: function () { return this._onVideoResolutionChanged }, set: function (e) { this._onVideoResolutionChanged = e } }, { key: "onParsedData", set: function (e) { this._onParsedData = e } }], [{ key: "probe", value: function (e) { var t = new Uint8Array(e), n = { match: !1 }; if (70 !== t[0] || 76 !== t[1] || 86 !== t[2] || 1 !== t[3]) return n; var i = (4 & t[4]) >>> 2 != 0, r = 0 != (1 & t[4]), e = t[e = 5] << 24 | t[e + 1] << 16 | t[e + 2] << 8 | t[e + 3]; return e < 9 ? n : { match: !0, consumed: e, dataOffset: e, hasAudioTrack: i, hasVideoTrack: r } } }]), r = v; function v(e, t) { (0, i.default)(this, v), this.TAG = "FLVDemuxer", this._config = t, this._onError = null, this._onMediaInfo = null, this._onMetaDataArrived = null, this._onScriptDataArrived = null, this._onTrackMetadata = null, this._onDataAvailable = null, this._onVideoResolutionChanged = null, this._onParsedData = null, this._dataOffset = e.dataOffset, this._firstParse = !0, this._dispatch = !1, this._hasAudio = !1, this._hasVideo = e.hasVideoTrack, this._hasAudioFlagOverrided = !1, this._hasVideoFlagOverrided = !1, this._audioInitialMetadataDispatched = !1, this._videoInitialMetadataDispatched = !1, this._mediaInfo = new d.default, this._mediaInfo.hasAudio = this._hasAudio, this._mediaInfo.hasVideo = this._hasVideo, this._metadata = null, this._audioMetadata = null, this._videoMetadata = null, this._naluLengthSize = 4, this._timestampBase = 0, this._timescale = 1e3, this._duration = 0, this._durationOverrided = !1, this._referenceFrameRate = { fixed: !0, fps: 23.976, fps_num: 23976, fps_den: 1e3 }, this._flvSoundRateTable = [5500, 11025, 22050, 44100, 48e3], this._mpegSamplingRates = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350], this._lastVideoDimension = { width: -1, height: -1, profile: "", level: "" }, this._bpsCalculator = null, this._bpsInfo = { lastVideoBytes: 0, lastAudioBytes: 0, bps_video: 0, bps_audio: 0, data_updated_time: 0, time_gap_factor: 1 }, this._resolutionChanged = !1, self.performance && self.performance.now ? this._now = self.performance.now.bind(self.performance) : this._now = Date.now, this._mpegAudioV10SampleRateTable = [44100, 48e3, 32e3, 0], this._mpegAudioV20SampleRateTable = [22050, 24e3, 16e3, 0], this._mpegAudioV25SampleRateTable = [11025, 12e3, 8e3, 0], this._mpegAudioL1BitRateTable = [0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, -1], this._mpegAudioL2BitRateTable = [0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, -1], this._mpegAudioL3BitRateTable = [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1], this._videoTrack = { type: "video", id: 1, sequenceNumber: 0, samples: [], length: 0 }, this._audioTrack = { type: "audio", id: 2, sequenceNumber: 0, samples: [], length: 0 }, this._littleEndian = (e = new ArrayBuffer(2), new DataView(e).setInt16(0, 256, !0), 256 === new Int16Array(e)[0]), this._recordFlag = !1, this._firstrVideo = !0, this._firstAudio = !0, this._firstTimeStamp = !0, this._flvHead = "", this._videoInfo = { VideType: "H264", audioType: "without", width: 0, height: 0, frameRate: 25, bitRate: 0, systemFormt: "flv", audioSampleRate: 0 }, this._firstParseAudio = !0, this._osdtimeInfo = { flvstartTime: 0, globalTime: 0, flvduration: 0 } } t.default = r }, function (e, t, n) { e.exports = { default: n(321), __esModule: !0 } }, function (e, t, n) { n(41), n(322), e.exports = n(3).Array.from }, function (e, t, n) { "use strict"; var h = n(22), i = n(8), c = n(24), _ = n(77), f = n(78), m = n(47), p = n(323), y = n(79); i(i.S + i.F * !n(84)(function (e) { Array.from(e) }), "Array", { from: function (e) { var t, n, i, r, a = c(e), s = "function" == typeof this ? this : Array, o = arguments.length, u = 1 < o ? arguments[1] : void 0, d = void 0 !== u, l = 0, e = y(a); if (d && (u = h(u, 2 < o ? arguments[2] : void 0, 2)), null == e || s == Array && f(e)) for (n = new s(t = m(a.length)); l < t; l++)p(n, l, d ? u(a[l], l) : a[l]); else for (r = e.call(a), n = new s; !(i = r.next()).done; l++)p(n, l, d ? _(r, u, [i.value, l], !0) : i.value); return n.length = l, n } }) }, function (e, t, n) { "use strict"; var i = n(12), r = n(28); e.exports = function (e, t, n) { t in e ? i.f(e, t, r(0, n)) : e[t] = n } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = s(n(1)), r = s(n(2)), v = s(n(4)), a = s(n(325)), g = n(5); function s(e) { return e && e.__esModule ? e : { default: e } } var M = (n = new ArrayBuffer(2), new DataView(n).setInt16(0, 256, !0), 256 === new Int16Array(n)[0]), r = ((0, r.default)(L, null, [{ key: "parseScriptData", value: function (e, t, n) { var i = {}; try { var r = L.parseValue(e, t, n), a = L.parseValue(e, t + r.size, n - r.size); i[r.data] = a.data } catch (e) { v.default.e("AMF", e.toString()) } return i } }, { key: "parseObject", value: function (e, t, n) { if (n < 3) throw new g.IllegalStateException("Data not enough when parse ScriptDataObject"); var i = L.parseString(e, t, n), t = L.parseValue(e, t + i.size, n - i.size), n = t.objectEnd; return { data: { name: i.data, value: t.data }, size: i.size + t.size, objectEnd: n } } }, { key: "parseVariable", value: function (e, t, n) { return L.parseObject(e, t, n) } }, { key: "parseString", value: function (e, t, n) { if (n < 2) throw new g.IllegalStateException("Data not enough when parse String"); n = new DataView(e, t, n).getUint16(0, !M); return { data: 0 < n ? (0, a.default)(new Uint8Array(e, t + 2, n)) : "", size: 2 + n } } }, { key: "parseLongString", value: function (e, t, n) { if (n < 4) throw new g.IllegalStateException("Data not enough when parse LongString"); n = new DataView(e, t, n).getUint32(0, !M); return { data: 0 < n ? (0, a.default)(new Uint8Array(e, t + 4, n)) : "", size: 4 + n } } }, { key: "parseDate", value: function (e, t, n) { if (n < 10) throw new g.IllegalStateException("Data size invalid when parse Date"); t = new DataView(e, t, n), n = t.getFloat64(0, !M); return n += 60 * t.getInt16(8, !M) * 1e3, { data: new Date(n), size: 10 } } }, { key: "parseValue", value: function (e, t, n) { if (n < 1) throw new g.IllegalStateException("Data not enough when parse Value"); var i = new DataView(e, t, n), r = 1, a = i.getUint8(0), s = void 0, o = !1; try { switch (a) { case 0: s = i.getFloat64(1, !M), r += 8; break; case 1: s = !!i.getUint8(1); r += 1; break; case 2: var u = L.parseString(e, t + 1, n - 1); s = u.data, r += u.size; break; case 3: s = {}; var d = 0; for (9 == (16777215 & i.getUint32(n - 4, !M)) && (d = 3); r < n - 4;) { var l = L.parseObject(e, t + r, n - r - d); if (l.objectEnd) break; s[l.data.name] = l.data.value, r += l.size } r <= n - 3 && 9 == (16777215 & i.getUint32(r - 1, !M)) && (r += 3); break; case 8: s = {}, r += 4; var h = 0; for (9 == (16777215 & i.getUint32(n - 4, !M)) && (h = 3); r < n - 8;) { var c = L.parseVariable(e, t + r, n - r - h); if (c.objectEnd) break; s[c.data.name] = c.data.value, r += c.size } r <= n - 3 && 9 == (16777215 & i.getUint32(r - 1, !M)) && (r += 3); break; case 9: r = 1, o = !(s = void 0); break; case 10: s = []; var _ = i.getUint32(1, !M); r += 4; for (var f = 0; f < _; f++) { var m = L.parseValue(e, t + r, n - r); s.push(m.data), r += m.size } break; case 11: var p = L.parseDate(e, t + 1, n - 1); s = p.data, r += p.size; break; case 12: var y = L.parseString(e, t + 1, n - 1); s = y.data, r += y.size; break; default: r = n, v.default.w("AMF", "Unsupported AMF value type " + a) } } catch (e) { v.default.e("AMF", e.toString()) } return { data: s, size: r, objectEnd: o } } }]), L); function L() { (0, i.default)(this, L) } t.default = r }, function (e, t, n) { "use strict"; function o(e, t, n) { var i = e; if (t + n < i.length) { for (; n--;)if (128 != (192 & i[++t])) return; return 1 } } Object.defineProperty(t, "__esModule", { value: !0 }), t.default = function (e) { for (var t = [], n = e, i = 0, r = e.length; i < r;)if (n[i] < 128) t.push(String.fromCharCode(n[i])), ++i; else { if (!(n[i] < 192)) if (n[i] < 224) { if (o(n, i, 1)) { var a = (31 & n[i]) << 6 | 63 & n[i + 1]; if (128 <= a) { t.push(String.fromCharCode(65535 & a)), i += 2; continue } } } else if (n[i] < 240) { if (o(n, i, 2)) { var s = (15 & n[i]) << 12 | (63 & n[i + 1]) << 6 | 63 & n[i + 2]; if (2048 <= s && 55296 != (63488 & s)) { t.push(String.fromCharCode(65535 & s)), i += 3; continue } } } else if (n[i] < 248 && o(n, i, 3)) { s = (7 & n[i]) << 18 | (63 & n[i + 1]) << 12 | (63 & n[i + 2]) << 6 | 63 & n[i + 3]; if (65536 < s && s < 1114112) { s -= 65536, t.push(String.fromCharCode(s >>> 10 | 55296)), t.push(String.fromCharCode(1023 & s | 56320)), i += 4; continue } } t.push(String.fromCharCode(65533)), ++i } return t.join("") } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = a(n(1)), r = a(n(2)), T = a(n(327)); function a(e) { return e && e.__esModule ? e : { default: e } } (0, r.default)(E, null, [{ key: "_ebsp2rbsp", value: function (e) { for (var t = e, n = t.byteLength, i = new Uint8Array(n), r = 0, a = 0; a < n; a++)2 <= a && 3 === t[a] && 0 === t[a - 1] && 0 === t[a - 2] || (i[r] = t[a], r++); return new Uint8Array(i.buffer, 0, r) } }, { key: "parseSPS", value: function (e) { var t = E._ebsp2rbsp(e), n = new T.default(t); n.readByte(); var i = n.readByte(); n.readByte(); var r = n.readByte(); n.readUEG(); var a = E.getProfileString(i), s = E.getLevelString(r), o = 1, u = 420, d = 8; if ((100 === i || 110 === i || 122 === i || 244 === i || 44 === i || 83 === i || 86 === i || 118 === i || 128 === i || 138 === i || 144 === i) && (3 === (o = n.readUEG()) && n.readBits(1), o <= 3 && (u = [0, 420, 422, 444][o]), d = n.readUEG() + 8, n.readUEG(), n.readBits(1), n.readBool())) for (var l = 3 !== o ? 8 : 12, h = 0; h < l; h++)n.readBool() && E._skipScalingList(n, h < 6 ? 16 : 64); n.readUEG(); var c = n.readUEG(); if (0 === c) n.readUEG(); else if (1 === c) { n.readBits(1), n.readSEG(), n.readSEG(); for (var _ = n.readUEG(), f = 0; f < _; f++)n.readSEG() } var m = n.readUEG(); n.readBits(1); var p = n.readUEG(), y = n.readUEG(), v = n.readBits(1); 0 === v && n.readBits(1), n.readBits(1); var g = 0, M = 0, L = 0, S = 0; n.readBool() && (g = n.readUEG(), M = n.readUEG(), L = n.readUEG(), S = n.readUEG()); var k = 1, e = 1, t = 0, r = !0, i = 0, c = 0; n.readBool() && (n.readBool() && (0 < (b = n.readByte()) && b < 16 ? (k = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2][b - 1], e = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1][b - 1]) : 255 === b && (k = n.readByte() << 8 | n.readByte(), e = n.readByte() << 8 | n.readByte())), n.readBool() && n.readBool(), n.readBool() && (n.readBits(4), n.readBool() && n.readBits(24)), n.readBool() && (n.readUEG(), n.readUEG()), n.readBool() && (D = n.readBits(32), w = n.readBits(32), r = n.readBool(), t = (i = w) / (c = 2 * D))); var b = 1; 1 === k && 1 === e || (b = k / e); var w = 0, D = 0; D = 0 === o ? (w = 1, 2 - v) : (w = 3 === o ? 1 : 2, (1 === o ? 2 : 1) * (2 - v)); p = 16 * (p + 1), v = 16 * (y + 1) * (2 - v); p -= (g + M) * w, v -= (L + S) * D; b = Math.ceil(p * b); return n.destroy(), n = null, { profile_string: a, level_string: s, bit_depth: d, ref_frames: m, chroma_format: u, chroma_format_string: E.getChromaFormatString(u), frame_rate: { fixed: r, fps: t, fps_den: c, fps_num: i }, sar_ratio: { width: k, height: e }, codec_size: { width: p, height: v }, present_size: { width: b, height: v } } } }, { key: "_skipScalingList", value: function (e, t) { for (var n = 8, i = 8, r = 0; r < t; r++)n = 0 === (i = 0 !== i ? (n + e.readSEG() + 256) % 256 : i) ? n : i } }, { key: "getProfileString", value: function (e) { switch (e) { case 66: return "Baseline"; case 77: return "Main"; case 88: return "Extended"; case 100: return "High"; case 110: return "High10"; case 122: return "High422"; case 244: return "High444"; default: return "Unknown" } } }, { key: "getLevelString", value: function (e) { return (e / 10).toFixed(1) } }, { key: "getChromaFormatString", value: function (e) { switch (e) { case 420: return "4:2:0"; case 422: return "4:2:2"; case 444: return "4:4:4"; default: return "Unknown" } } }]), r = E; function E() { (0, i.default)(this, E) } t.default = r }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = s(n(1)), r = s(n(2)), a = n(5); function s(e) { return e && e.__esModule ? e : { default: e } } (0, r.default)(o, [{ key: "destroy", value: function () { this._buffer = null } }, { key: "_fillCurrentWord", value: function () { var e = this._total_bytes - this._buffer_index; if (e <= 0) throw new a.IllegalStateException("ExpGolomb: _fillCurrentWord() but no bytes available"); var t = Math.min(4, e), e = new Uint8Array(4); e.set(this._buffer.subarray(this._buffer_index, this._buffer_index + t)), this._current_word = new DataView(e.buffer).getUint32(0, !1), this._buffer_index += t, this._current_word_bits_left = 8 * t } }, { key: "readBits", value: function (e) { if (32 < e) throw new a.InvalidArgumentException("ExpGolomb: readBits() bits exceeded max 32bits!"); if (e <= this._current_word_bits_left) { var t = this._current_word >>> 32 - e; return this._current_word <<= e, this._current_word_bits_left -= e, t } var n = this._current_word_bits_left ? this._current_word : 0; n >>>= 32 - this._current_word_bits_left; t = e - this._current_word_bits_left; this._fillCurrentWord(); e = Math.min(t, this._current_word_bits_left), t = this._current_word >>> 32 - e; return this._current_word <<= e, this._current_word_bits_left -= e, n = n << e | t } }, { key: "readBool", value: function () { return 1 === this.readBits(1) } }, { key: "readByte", value: function () { return this.readBits(8) } }, { key: "_skipLeadingZero", value: function () { for (var e = void 0, e = 0; e < this._current_word_bits_left; e++)if (0 != (this._current_word & 2147483648 >>> e)) return this._current_word <<= e, this._current_word_bits_left -= e, e; return this._fillCurrentWord(), e + this._skipLeadingZero() } }, { key: "readUEG", value: function () { var e = this._skipLeadingZero(); return this.readBits(e + 1) - 1 } }, { key: "readSEG", value: function () { var e = this.readUEG(); return 1 & e ? e + 1 >>> 1 : -1 * (e >>> 1) } }]), r = o; function o(e) { (0, i.default)(this, o), this.TAG = "ExpGolomb", this._buffer = e, this._buffer_index = 0, this._total_bytes = e.byteLength, this._total_bits = 8 * e.byteLength, this._current_word = 0, this._current_word_bits_left = 0 } t.default = r }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = s(n(1)), r = s(n(2)), O = s(n(4)), I = s(n(329)), W = s(n(330)), H = s(n(33)), j = n(230), a = n(5); function s(e) { return e && e.__esModule ? e : { default: e } } (0, r.default)(o, [{ key: "destroy", value: function () { this._dtsBase = -1, this._dtsBaseInited = !1, this._audioMeta = null, this._videoMeta = null, this._audioSegmentInfoList.clear(), this._audioSegmentInfoList = null, this._videoSegmentInfoList.clear(), this._videoSegmentInfoList = null, this._onInitSegment = null, this._onMediaSegment = null } }, { key: "bindDataSource", value: function (e) { return e.onDataAvailable = this.remux.bind(this), e.onTrackMetadata = this._onTrackMetadataReceived.bind(this), this } }, { key: "insertDiscontinuity", value: function () { this._audioNextDts = this._videoNextDts = void 0 } }, { key: "seek", value: function (e) { this._audioStashedLastSample = null, this._videoStashedLastSample = null, this._videoSegmentInfoList.clear(), this._audioSegmentInfoList.clear() } }, { key: "remux", value: function (e, t) { if (!this._onMediaSegment) throw new a.IllegalStateException("MP4Remuxer: onMediaSegment callback must be specificed!"); this._dtsBaseInited || this._calculateDtsBase(e, t), this._remuxVideo(t), this._remuxAudio(e) } }, { key: "_onTrackMetadataReceived", value: function (e, t) { var n = null, i = "mp4", r = t.codec; if ("audio" === e) n = "mp3" === (this._audioMeta = t).codec && this._mp3UseMpegAudio ? (i = "mpeg", r = "", new Uint8Array) : I.default.generateInitSegment(t); else { if ("video" !== e) return; this._videoMeta = t, n = I.default.generateInitSegment(t) } if (!this._onInitSegment) throw new a.IllegalStateException("MP4Remuxer: onInitSegment callback must be specified!"); this._onInitSegment(e, { type: e, data: n.buffer, codec: r, container: e + "/" + i, mediaDuration: t.duration }) } }, { key: "_calculateDtsBase", value: function (e, t) { this._dtsBaseInited || (e.samples && e.samples.length && (this._audioDtsBase = e.samples[0].dts), t.samples && t.samples.length && (this._videoDtsBase = t.samples[0].dts), this._dtsBase = Math.min(this._audioDtsBase, this._videoDtsBase), this._dtsBaseInited = !0) } }, { key: "flushStashedSamples", value: function () { var e = this._videoStashedLastSample, t = this._audioStashedLastSample, n = { type: "video", id: 1, sequenceNumber: 0, samples: [], length: 0 }; null != e && (n.samples.push(e), n.length = e.length); e = { type: "audio", id: 2, sequenceNumber: 0, samples: [], length: 0 }; null != t && (e.samples.push(t), e.length = t.length), this._videoStashedLastSample = null, this._audioStashedLastSample = null, this._remuxVideo(n, !0), this._remuxAudio(e, !0) } }, { key: "_remuxAudio", value: function (e, t) { if (null != this._audioMeta) { var n = e, i = n.samples, r = void 0, a = -1, s = this._audioMeta.refSampleDuration, o = "mp3" === this._audioMeta.codec && this._mp3UseMpegAudio, u = this._dtsBaseInited && void 0 === this._audioNextDts, e = !1; if (i && 0 !== i.length && (1 !== i.length || t)) { var d = 0, l = null, h = 0, h = o ? (d = 0, n.length) : (d = 8) + n.length, c = null; 1 < i.length && (h -= (c = i.pop()).length), null != this._audioStashedLastSample && (m = this._audioStashedLastSample, this._audioStashedLastSample = null, i.unshift(m), h += m.length), null != c && (this._audioStashedLastSample = c); var _, f, m = i[0].dts - this._dtsBase; this._audioNextDts ? r = m - this._audioNextDts : this._audioSegmentInfoList.isEmpty() ? (r = 0, this._fillSilentAfterSeek && !this._videoSegmentInfoList.isEmpty() && "mp3" !== this._audioMeta.originalCodec && (e = !0)) : r = null != (_ = this._audioSegmentInfoList.getLastSampleBefore(m)) ? (f = m - (_.originalDts + _.duration), m - (_.dts + _.duration + (f = f <= 3 ? 0 : f))) : 0, e && (_ = m - r, null != (f = this._videoSegmentInfoList.getLastSegmentBefore(m)) && f.beginDts < _ ? (R = W.default.getSilentFrame(this._audioMeta.originalCodec, this._audioMeta.channelCount)) && (m = f.beginDts, f = _ - f.beginDts, O.default.v(this.TAG, "InsertPrefixSilentAudio: dts: " + m + ", duration: " + f), i.unshift({ unit: R, dts: m, pts: m }), h += R.byteLength) : e = !1); for (var p = [], y = 0; y < i.length; y++) { var v = i[y], g = v.unit, M = v.dts - this._dtsBase, L = M, S = !1, k = null, b = 0; if (!(M < -.001)) { if ("mp3" !== this._audioMeta.codec) { var w = M; if ((r = M - (w = this._audioNextDts ? this._audioNextDts : w)) <= -5 * s) { O.default.w(this.TAG, "Dropping 1 audio frame (originalDts: " + M + " ms ,curRefDts: " + w + " ms)  due to dtsCorrection: " + r + " ms overlap."); continue } if (5 * s <= r && this._fillAudioTimestampGap && !H.default.safari) { var S = !0, D = Math.floor(r / s); O.default.w(this.TAG, "Large audio timestamp gap detected, may cause AV sync to drift. Silent frames will be generated to avoid unsync.\noriginalDts: " + M + " ms, curRefDts: " + w + " ms, dtsCorrection: " + Math.round(r) + " ms, generate: " + D + " frames"); var L = Math.floor(w), b = Math.floor(w + s) - L, T = W.default.getSilentFrame(this._audioMeta.originalCodec, this._audioMeta.channelCount); null == T && (O.default.w(this.TAG, "Unable to generate silent frame for " + this._audioMeta.originalCodec + " with " + this._audioMeta.channelCount + " channels, repeat last frame"), T = g); for (var k = [], E = 0; E < D; E++) { w += s; var Y = Math.floor(w), P = Math.floor(w + s) - Y, P = { dts: Y, pts: Y, cts: 0, unit: T, size: T.byteLength, duration: P, originalDts: M, flags: { isLeading: 0, dependsOn: 1, isDependedOn: 0, hasRedundancy: 0 } }; k.push(P), h += g.byteLength } this._audioNextDts = w + s } else L = Math.floor(w), b = Math.floor(w + s) - L, this._audioNextDts = w + s } else L = M - r, b = y !== i.length - 1 ? i[y + 1].dts - this._dtsBase - r - L : null != c ? c.dts - this._dtsBase - r - L : 1 <= p.length ? p[p.length - 1].duration : Math.floor(s), this._audioNextDts = L + b; -1 === a && (a = L), p.push({ dts: L, pts: L, cts: 0, unit: v.unit, size: v.unit.byteLength, duration: b, originalDts: M, flags: { isLeading: 0, dependsOn: 1, isDependedOn: 0, hasRedundancy: 0 } }), S && p.push.apply(p, k) } } if (0 === p.length) return n.samples = [], void (n.length = 0); o ? l = new Uint8Array(h) : ((l = new Uint8Array(h))[0] = h >>> 24 & 255, l[1] = h >>> 16 & 255, l[2] = h >>> 8 & 255, l[3] = 255 & h, l.set(I.default.types.mdat, 4)); for (var C = 0; C < p.length; C++) { var A = p[C].unit; l.set(A, d), d += A.byteLength } var R = p[p.length - 1], x = R.dts + R.duration, e = new j.MediaSegmentInfo; e.beginDts = a, e.endDts = x, e.beginPts = a, e.endPts = x, e.originalBeginDts = p[0].originalDts, e.originalEndDts = R.originalDts + R.duration, e.firstSample = new j.SampleInfo(p[0].dts, p[0].pts, p[0].duration, p[0].originalDts, !1), e.lastSample = new j.SampleInfo(R.dts, R.pts, R.duration, R.originalDts, !1), this._isLive || this._audioSegmentInfoList.append(e), n.samples = p, n.sequenceNumber++; R = null, R = o ? new Uint8Array : I.default.moof(n, a); n.samples = [], n.length = 0; e = { type: "audio", data: this._mergeBoxes(R, l).buffer, sampleCount: p.length, info: e }; o && u && (e.timestampOffset = a), this._onMediaSegment("audio", e) } } } }, { key: "_remuxVideo", value: function (e, t) { if (null != this._videoMeta) { var n = e, i = n.samples, r = void 0, a = -1, s = -1; if (i && 0 !== i.length && (1 !== i.length || t)) { var o = 8, u = null, t = 8 + e.length, d = null; 1 < i.length && (t -= (d = i.pop()).length), null != this._videoStashedLastSample && (h = this._videoStashedLastSample, this._videoStashedLastSample = null, i.unshift(h), t += h.length), null != d && (this._videoStashedLastSample = d); var l, h, e = i[0].dts - this._dtsBase; r = this._videoNextDts ? e - this._videoNextDts : !this._videoSegmentInfoList.isEmpty() && null != (l = this._videoSegmentInfoList.getLastSampleBefore(e)) ? (h = e - (l.originalDts + l.duration), e - (l.dts + l.duration + (h = h <= 3 ? 0 : h))) : 0; for (var c = new j.MediaSegmentInfo, _ = [], f = 0; f < i.length; f++) { var m = i[f], p = m.dts - this._dtsBase, y = m.isKeyframe, v = p - r, g = m.cts, M = v + g; -1 === a && (a = v, s = M); var L, S = 0; S = f !== i.length - 1 ? i[f + 1].dts - this._dtsBase - r - v : null != d ? d.dts - this._dtsBase - r - v : 1 <= _.length ? _[_.length - 1].duration : Math.floor(this._videoMeta.refSampleDuration), y && ((L = new j.SampleInfo(v, M, S, m.dts, !0)).fileposition = m.fileposition, c.appendSyncPoint(L)), _.push({ dts: v, pts: M, cts: g, units: m.units, size: m.length, isKeyframe: y, duration: S, originalDts: p, flags: { isLeading: 0, dependsOn: y ? 2 : 1, isDependedOn: y ? 1 : 0, hasRedundancy: 0, isNonSync: y ? 0 : 1 } }) } (u = new Uint8Array(t))[0] = t >>> 24 & 255, u[1] = t >>> 16 & 255, u[2] = t >>> 8 & 255, u[3] = 255 & t, u.set(I.default.types.mdat, 4); for (var k = 0; k < _.length; k++)for (var b = _[k].units; b.length;) { var w = b.shift().data; u.set(w, o), o += w.byteLength } var t = _[_.length - 1], D = t.dts + t.duration, T = t.pts + t.duration; this._videoNextDts = D, c.beginDts = a, c.endDts = D, c.beginPts = s, c.endPts = T, c.originalBeginDts = _[0].originalDts, c.originalEndDts = t.originalDts + t.duration, c.firstSample = new j.SampleInfo(_[0].dts, _[0].pts, _[0].duration, _[0].originalDts, _[0].isKeyframe), c.lastSample = new j.SampleInfo(t.dts, t.pts, t.duration, t.originalDts, t.isKeyframe), this._isLive || this._videoSegmentInfoList.append(c), n.samples = _, n.sequenceNumber++, this._forceFirstIDR && ((E = _[0].flags).dependsOn = 2, E.isNonSync = 0); var E = I.default.moof(n, a); n.samples = [], n.length = 0, this._onMediaSegment("video", { type: "video", data: this._mergeBoxes(E, u).buffer, sampleCount: _.length, info: c }) } } } }, { key: "_mergeBoxes", value: function (e, t) { var n = new Uint8Array(e.byteLength + t.byteLength); return n.set(e, 0), n.set(t, e.byteLength), n } }, { key: "onInitSegment", get: function () { return this._onInitSegment }, set: function (e) { this._onInitSegment = e } }, { key: "onMediaSegment", get: function () { return this._onMediaSegment }, set: function (e) { this._onMediaSegment = e } }]), r = o; function o(e) { (0, i.default)(this, o), this.TAG = "MP4Remuxer", this._config = e, this._isLive = !0 === e.isLive, this._dtsBase = -1, this._dtsBaseInited = !1, this._audioDtsBase = 1 / 0, this._videoDtsBase = 1 / 0, this._audioNextDts = void 0, this._videoNextDts = void 0, this._audioStashedLastSample = null, this._videoStashedLastSample = null, this._audioMeta = null, this._videoMeta = null, this._audioSegmentInfoList = new j.MediaSegmentInfoList("audio"), this._videoSegmentInfoList = new j.MediaSegmentInfoList("video"), this._onInitSegment = null, this._onMediaSegment = null, this._forceFirstIDR = !(!H.default.chrome || !(H.default.version.major < 50 || 50 === H.default.version.major && H.default.version.build < 2661)), this._fillSilentAfterSeek = H.default.msedge || H.default.msie, this._mp3UseMpegAudio = !H.default.firefox, this._fillAudioTimestampGap = this._config.fixAudioTimestampGap } t.default = r }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = r(n(1)); function r(e) { return e && e.__esModule ? e : { default: e } } (0, r(n(2)).default)(l, null, [{ key: "init", value: function () { for (var e in l.types = { avc1: [], avcC: [], btrt: [], dinf: [], dref: [], esds: [], ftyp: [], hdlr: [], mdat: [], mdhd: [], mdia: [], mfhd: [], minf: [], moof: [], moov: [], mp4a: [], mvex: [], mvhd: [], sdtp: [], stbl: [], stco: [], stsc: [], stsd: [], stsz: [], stts: [], tfdt: [], tfhd: [], traf: [], trak: [], trun: [], trex: [], tkhd: [], vmhd: [], smhd: [], ".mp3": [] }) l.types.hasOwnProperty(e) && (l.types[e] = [e.charCodeAt(0), e.charCodeAt(1), e.charCodeAt(2), e.charCodeAt(3)]); var t = l.constants = {}; t.FTYP = new Uint8Array([105, 115, 111, 109, 0, 0, 0, 1, 105, 115, 111, 109, 97, 118, 99, 49]), t.STSD_PREFIX = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1]), t.STTS = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]), t.STSC = t.STCO = t.STTS, t.STSZ = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), t.HDLR_VIDEO = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 105, 100, 101, 111, 72, 97, 110, 100, 108, 101, 114, 0]), t.HDLR_AUDIO = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 115, 111, 117, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 111, 117, 110, 100, 72, 97, 110, 100, 108, 101, 114, 0]), t.DREF = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 117, 114, 108, 32, 0, 0, 0, 1]), t.SMHD = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]), t.VMHD = new Uint8Array([0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]) } }, { key: "box", value: function (e) { for (var t = 8, n = null, i = Array.prototype.slice.call(arguments, 1), r = i.length, a = 0; a < r; a++)t += i[a].byteLength; (n = new Uint8Array(t))[0] = t >>> 24 & 255, n[1] = t >>> 16 & 255, n[2] = t >>> 8 & 255, n[3] = 255 & t, n.set(e, 4); for (var s = 8, o = 0; o < r; o++)n.set(i[o], s), s += i[o].byteLength; return n } }, { key: "generateInitSegment", value: function (e) { var t = l.box(l.types.ftyp, l.constants.FTYP), n = l.moov(e), e = new Uint8Array(t.byteLength + n.byteLength); return e.set(t, 0), e.set(n, t.byteLength), e } }, { key: "moov", value: function (e) { var t = l.mvhd(e.timescale, e.duration), n = l.trak(e), e = l.mvex(e); return l.box(l.types.moov, t, n, e) } }, { key: "mvhd", value: function (e, t) { return l.box(l.types.mvhd, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, e >>> 24 & 255, e >>> 16 & 255, e >>> 8 & 255, 255 & e, t >>> 24 & 255, t >>> 16 & 255, t >>> 8 & 255, 255 & t, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255])) } }, { key: "trak", value: function (e) { return l.box(l.types.trak, l.tkhd(e), l.mdia(e)) } }, { key: "tkhd", value: function (e) { var t = e.id, n = e.duration, i = e.presentWidth, e = e.presentHeight; return l.box(l.types.tkhd, new Uint8Array([0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, t >>> 24 & 255, t >>> 16 & 255, t >>> 8 & 255, 255 & t, 0, 0, 0, 0, n >>> 24 & 255, n >>> 16 & 255, n >>> 8 & 255, 255 & n, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, i >>> 8 & 255, 255 & i, 0, 0, e >>> 8 & 255, 255 & e, 0, 0])) } }, { key: "mdia", value: function (e) { return l.box(l.types.mdia, l.mdhd(e), l.hdlr(e), l.minf(e)) } }, { key: "mdhd", value: function (e) { var t = e.timescale, e = e.duration; return l.box(l.types.mdhd, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, t >>> 24 & 255, t >>> 16 & 255, t >>> 8 & 255, 255 & t, e >>> 24 & 255, e >>> 16 & 255, e >>> 8 & 255, 255 & e, 85, 196, 0, 0])) } }, { key: "hdlr", value: function (e) { var t = null, t = "audio" === e.type ? l.constants.HDLR_AUDIO : l.constants.HDLR_VIDEO; return l.box(l.types.hdlr, t) } }, { key: "minf", value: function (e) { var t = null, t = "audio" === e.type ? l.box(l.types.smhd, l.constants.SMHD) : l.box(l.types.vmhd, l.constants.VMHD); return l.box(l.types.minf, t, l.dinf(), l.stbl(e)) } }, { key: "dinf", value: function () { return l.box(l.types.dinf, l.box(l.types.dref, l.constants.DREF)) } }, { key: "stbl", value: function (e) { return l.box(l.types.stbl, l.stsd(e), l.box(l.types.stts, l.constants.STTS), l.box(l.types.stsc, l.constants.STSC), l.box(l.types.stsz, l.constants.STSZ), l.box(l.types.stco, l.constants.STCO)) } }, { key: "stsd", value: function (e) { return "audio" === e.type ? "mp3" === e.codec ? l.box(l.types.stsd, l.constants.STSD_PREFIX, l.mp3(e)) : l.box(l.types.stsd, l.constants.STSD_PREFIX, l.mp4a(e)) : l.box(l.types.stsd, l.constants.STSD_PREFIX, l.avc1(e)) } }, { key: "mp3", value: function (e) { var t = e.channelCount, e = e.audioSampleRate, e = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, t, 0, 16, 0, 0, 0, 0, e >>> 8 & 255, 255 & e, 0, 0]); return l.box(l.types[".mp3"], e) } }, { key: "mp4a", value: function (e) { var t = e.channelCount, n = e.audioSampleRate, n = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, t, 0, 16, 0, 0, 0, 0, n >>> 8 & 255, 255 & n, 0, 0]); return l.box(l.types.mp4a, n, l.esds(e)) } }, { key: "esds", value: function (e) { var t = e.config || [], e = t.length, t = new Uint8Array([0, 0, 0, 0, 3, 23 + e, 0, 1, 0, 4, 15 + e, 64, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5].concat([e]).concat(t).concat([6, 1, 2])); return l.box(l.types.esds, t) } }, { key: "avc1", value: function (e) { var t = e.avcc, n = e.codecWidth, e = e.codecHeight, e = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, n >>> 8 & 255, 255 & n, e >>> 8 & 255, 255 & e, 0, 72, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1, 10, 120, 113, 113, 47, 102, 108, 118, 46, 106, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 255, 255]); return l.box(l.types.avc1, e, l.box(l.types.avcC, t)) } }, { key: "mvex", value: function (e) { return l.box(l.types.mvex, l.trex(e)) } }, { key: "trex", value: function (e) { e = e.id, e = new Uint8Array([0, 0, 0, 0, e >>> 24 & 255, e >>> 16 & 255, e >>> 8 & 255, 255 & e, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1]); return l.box(l.types.trex, e) } }, { key: "moof", value: function (e, t) { return l.box(l.types.moof, l.mfhd(e.sequenceNumber), l.traf(e, t)) } }, { key: "mfhd", value: function (e) { e = new Uint8Array([0, 0, 0, 0, e >>> 24 & 255, e >>> 16 & 255, e >>> 8 & 255, 255 & e]); return l.box(l.types.mfhd, e) } }, { key: "traf", value: function (e, t) { var n = e.id, i = l.box(l.types.tfhd, new Uint8Array([0, 0, 0, 0, n >>> 24 & 255, n >>> 16 & 255, n >>> 8 & 255, 255 & n])), n = l.box(l.types.tfdt, new Uint8Array([0, 0, 0, 0, t >>> 24 & 255, t >>> 16 & 255, t >>> 8 & 255, 255 & t])), t = l.sdtp(e), e = l.trun(e, t.byteLength + 16 + 16 + 8 + 16 + 8 + 8); return l.box(l.types.traf, i, n, e, t) } }, { key: "sdtp", value: function (e) { for (var t = e.samples || [], n = t.length, i = new Uint8Array(4 + n), r = 0; r < n; r++) { var a = t[r].flags; i[r + 4] = a.isLeading << 6 | a.dependsOn << 4 | a.isDependedOn << 2 | a.hasRedundancy } return l.box(l.types.sdtp, i) } }, { key: "trun", value: function (e, t) { var n = e.samples || [], i = n.length, e = 12 + 16 * i, r = new Uint8Array(e); r.set([0, 0, 15, 1, i >>> 24 & 255, i >>> 16 & 255, i >>> 8 & 255, 255 & i, (t += 8 + e) >>> 24 & 255, t >>> 16 & 255, t >>> 8 & 255, 255 & t], 0); for (var a = 0; a < i; a++) { var s = n[a].duration, o = n[a].size, u = n[a].flags, d = n[a].cts; r.set([s >>> 24 & 255, s >>> 16 & 255, s >>> 8 & 255, 255 & s, o >>> 24 & 255, o >>> 16 & 255, o >>> 8 & 255, 255 & o, u.isLeading << 2 | u.dependsOn, u.isDependedOn << 6 | u.hasRedundancy << 4 | u.isNonSync, 0, 0, d >>> 24 & 255, d >>> 16 & 255, d >>> 8 & 255, 255 & d], 12 + 16 * a) } return l.box(l.types.trun, r) } }, { key: "mdat", value: function (e) { return l.box(l.types.mdat, e) } }]), n = l; function l() { (0, i.default)(this, l) } n.init(), t.default = n }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = r(n(1)); function r(e) { return e && e.__esModule ? e : { default: e } } (0, r(n(2)).default)(a, null, [{ key: "getSilentFrame", value: function (e, t) { if ("mp4a.40.2" === e) { if (1 === t) return new Uint8Array([0, 200, 0, 128, 35, 128]); if (2 === t) return new Uint8Array([33, 0, 73, 144, 2, 25, 0, 35, 128]); if (3 === t) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 142]); if (4 === t) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 128, 44, 128, 8, 2, 56]); if (5 === t) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 56]); if (6 === t) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 0, 178, 0, 32, 8, 224]) } else { if (1 === t) return new Uint8Array([1, 64, 34, 128, 163, 78, 230, 128, 186, 8, 0, 0, 0, 28, 6, 241, 193, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]); if (2 === t) return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]); if (3 === t) return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]) } return null } }]), n = a; function a() { (0, i.default)(this, a) } t.default = n }, function (e, t, h) { function a(n) { var i = {}; function r(e) { if (i[e]) return i[e].exports; var t = i[e] = { i: e, l: !1, exports: {} }; return n[e].call(t.exports, t, t.exports, r), t.l = !0, t.exports } r.m = n, r.c = i, r.i = function (e) { return e }, r.d = function (e, t, n) { r.o(e, t) || Object.defineProperty(e, t, { configurable: !1, enumerable: !0, get: n }) }, r.r = function (e) { Object.defineProperty(e, "__esModule", { value: !0 }) }, r.n = function (e) { var t = e && e.__esModule ? function () { return e.default } : function () { return e }; return r.d(t, "a", t), t }, r.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, r.p = "/", r.oe = function (e) { throw console.error(e), e }; var e = r(r.s = ENTRY_MODULE); return e.default || e } var c = "[\\.|\\-|\\+|\\w|/|@]+", _ = "\\(\\s*(/\\*.*?\\*/)?\\s*.*?(" + c + ").*?\\)"; function f(e) { return (e + "").replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&") } function m(e, t, n) { var i = {}; i[n] = []; var r = t.toString(), t = r.match(/^function\s?\w*\(\w+,\s*\w+,\s*(\w+)\)/); if (!t) return i; for (var a, t = t[1], s = new RegExp("(\\\\n|\\W)" + f(t) + _, "g"); a = s.exec(r);)"dll-reference" !== a[3] && i[n].push(a[3]); for (s = new RegExp("\\(" + f(t) + '\\("(dll-reference\\s(' + c + '))"\\)\\)' + _, "g"); a = s.exec(r);)e[a[2]] || (i[n].push(a[1]), e[a[2]] = h(a[1]).m), i[a[2]] = i[a[2]] || [], i[a[2]].push(a[4]); for (var o, u = Object.keys(i), d = 0; d < u.length; d++)for (var l = 0; l < i[u[d]].length; l++)o = i[u[d]][l], isNaN(+o) || (i[u[d]][l] = +i[u[d]][l]); return i } function s(e, t) { for (var n = { main: [t] }, i = { main: [] }, r = { main: {} }; function (n) { return Object.keys(n).reduce(function (e, t) { return e || 0 < n[t].length }, !1) }(n);)for (var a = Object.keys(n), s = 0; s < a.length; s++) { var o = a[s], u = n[o].pop(); if (r[o] = r[o] || {}, !r[o][u] && e[o][u]) { r[o][u] = !0, i[o] = i[o] || [], i[o].push(u); for (var d = m(e, e[o][u], o), l = Object.keys(d), h = 0; h < l.length; h++)n[l[h]] = n[l[h]] || [], n[l[h]] = n[l[h]].concat(d[l[h]]) } } return i } e.exports = function (e, t) { var n = { main: h.m }, i = (t = t || {}).all ? { main: Object.keys(n.main) } : s(n, e), r = ""; Object.keys(i).filter(function (e) { return "main" !== e }).forEach(function (t) { for (var e = 0; i[t][e];)e++; i[t].push(e), n[t][e] = "(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })", r = r + "var " + t + " = (" + a.toString().replace("ENTRY_MODULE", JSON.stringify(e)) + ")({" + i[t].map(function (e) { return JSON.stringify(e) + ": " + n[t][e].toString() }).join(",") + "});\n" }); r = r + "new ((" + a.toString().replace("ENTRY_MODULE", JSON.stringify(e)) + ")({" + i.main.map(function (e) { return JSON.stringify(e) + ": " + n.main[e].toString() }).join(",") + "}))(self);", e = new window.Blob([r], { type: "text/javascript" }); if (t.bare) return e; t = (window.URL || window.webkitURL || window.mozURL || window.msURL).createObjectURL(e), e = new window.Worker(t); return e.objectURL = t, e } }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = c(n(1)), r = c(n(2)), a = c(n(10)), o = c(n(4)), u = c(n(33)), s = c(n(232)), d = n(230), l = n(5), h = (c(n(233)), c(n(0))); function c(e) { return e && e.__esModule ? e : { default: e } } (0, r.default)(_, [{ key: "destroy", value: function () { (this._mediaElement || this._mediaSource) && this.detachMediaElement(), this.e = null, this._emitter.removeAllListeners(), this._emitter = null } }, { key: "on", value: function (e, t) { this._emitter.addListener(e, t) } }, { key: "off", value: function (e, t) { this._emitter.removeListener(e, t) } }, { key: "attachMediaElement", value: function (e) { if (this._mediaSource) throw new l.IllegalStateException("MediaSource has been attached to an HTMLMediaElement!"); var t = this._mediaSource = new window.MediaSource; t.addEventListener("sourceopen", this.e.onSourceOpen), t.addEventListener("sourceended", this.e.onSourceEnded), t.addEventListener("sourceclose", this.e.onSourceClose), this._mediaElement = e, this._mediaSourceObjectURL = window.URL.createObjectURL(this._mediaSource), e.src = this._mediaSourceObjectURL } }, { key: "detachMediaElement", value: function () { if (this._mediaSource) { var e, t = this._mediaSource; for (e in this._sourceBuffers) { var n = this._pendingSegments[e]; n.splice(0, n.length), this._pendingSegments[e] = null, this._pendingRemoveRanges[e] = null, this._lastInitSegments[e] = null; n = this._sourceBuffers[e]; if (n) { if ("closed" !== t.readyState) { try { t.removeSourceBuffer(n) } catch (e) { o.default.e(this.TAG, e.message) } n.removeEventListener("error", this.e.onSourceBufferError), n.removeEventListener("updateend", this.e.onSourceBufferUpdateEnd) } this._mimeTypes[e] = null, this._sourceBuffers[e] = null } } if ("open" === t.readyState) try { t.endOfStream() } catch (e) { o.default.e(this.TAG, e.message) } t.removeEventListener("sourceopen", this.e.onSourceOpen), t.removeEventListener("sourceended", this.e.onSourceEnded), t.removeEventListener("sourceclose", this.e.onSourceClose), this._pendingSourceBufferInit = [], this._isBufferFull = !1, this._idrList.clear(), this._mediaSource = null } this._mediaElement && (this._mediaElement.src = "", this._mediaElement.removeAttribute("src"), this._mediaElement = null), this._mediaSourceObjectURL && (window.URL.revokeObjectURL(this._mediaSourceObjectURL), this._mediaSourceObjectURL = null), this._hasAudio = !0 } }, { key: "checkAudioSourceBufferInit", value: function (e) { return this._sourceBuffers.audio || "audio" === e.type || !this._hasAudio } }, { key: "_onAudioSourceBufferInited", value: function () { if (0 < this._pendingSourceBufferInit.length) for (var e = this._pendingSourceBufferInit; e.length;) { var t = e.shift(); this.appendInitSegment(t, !0) } this._hasPendingSegments() && this._doAppendSegments(), this._emitter.emit(s.default.SOURCE_OPEN) } }, { key: "checkMediaSource", value: function (e) { return !(!this._mediaSource || "open" !== this._mediaSource.readyState) } }, { key: "appendInitSegment", value: function (e, t) { if (!this.checkMediaSource("appendInitSegment") || !this.checkAudioSourceBufferInit(e)) return this._pendingSourceBufferInit.push(e), void this._pendingSegments[e.type].push(e); var n = e, i = "" + n.container; n.codec && 0 < n.codec.length && (i += ";codecs=" + n.codec); e = !1; if (this._lastInitSegments[n.type] = n, i !== this._mimeTypes[n.type]) { if (this._mimeTypes[n.type]) o.default.v(this.TAG, "Notice: " + n.type + " mimeType changed, origin: " + this._mimeTypes[n.type] + ", target: " + i); else { e = !0, console.info("[debug] %c" + (0, h.default)().format("YYYY-MM-DD HH:mm:ss.SSS") + "%c appendInitSegment", "color: blue", "color: black", this._mediaElement.readyState, i); try { var r = this._sourceBuffers[n.type] = this._mediaSource.addSourceBuffer(i); r.addEventListener("error", this.e.onSourceBufferError), r.addEventListener("updateend", this.e.onSourceBufferUpdateEnd), "audio" === n.type && this._onAudioSourceBufferInited() } catch (e) { return o.default.e(this.TAG, e.message, this._mediaElement.error), void this._emitter.emit(s.default.SOURCE_ADD_ERROR, { code: e.code, msg: e.message }) } } this._mimeTypes[n.type] = i } t || this._pendingSegments[n.type].push(n), e || this._sourceBuffers[n.type] && !this._sourceBuffers[n.type].updating && this._doAppendSegments(), u.default.safari && "audio/mpeg" === n.container && 0 < n.mediaDuration && (this._requireSetMediaDuration = !0, this._pendingMediaDuration = n.mediaDuration / 1e3, this._updateMediaSourceDuration()) } }, { key: "appendMediaSegment", value: function (e) { var t; this.checkMediaSource("appendMediaSegment") && (this._pendingSegments[(t = e).type].push(t), this._config.autoCleanupSourceBuffer && this._needCleanupSourceBuffer() && this._doCleanupSourceBuffer(), !(e = this._sourceBuffers[t.type]) || e.updating || this._hasPendingRemoveRanges() ? this._hasAudio && 30 < this._pendingSegments[t.type].length && (this._hasAudio = !1, this._onAudioSourceBufferInited()) : this._doAppendSegments()) } }, { key: "seek", value: function (e) { if (this.checkMediaSource("seek")) for (var t in this._sourceBuffers) if (this._sourceBuffers[t]) { var n = this._sourceBuffers[t]; if ("open" === this._mediaSource.readyState) try { n.abort() } catch (e) { o.default.e(this.TAG, e.message) } this._idrList.clear(); var i = this._pendingSegments[t]; if (i.splice(0, i.length), "closed" !== this._mediaSource.readyState) { for (var r = 0; r < n.buffered.length; r++) { var a = n.buffered.start(r), s = n.buffered.end(r); this._pendingRemoveRanges[t].push({ start: a, end: s }) } n.updating || this._doRemoveRanges("seek"), !u.default.safari || (i = this._lastInitSegments[t]) && (this._pendingSegments[t].push(i), n.updating || this._doAppendSegments()) } } } }, { key: "endOfStream", value: function () { var e = this._mediaSource, t = this._sourceBuffers; e && "open" === e.readyState ? t.video && t.video.updating || t.audio && t.audio.updating ? this._hasPendingEos = !0 : (this._hasPendingEos = !1, e.endOfStream()) : e && "closed" === e.readyState && this._hasPendingSegments() && (this._hasPendingEos = !0) } }, { key: "getNearestKeyframe", value: function (e) { return this._idrList.getLastSyncPointBeforeDts(e) } }, { key: "checkSourceBufferNull", value: function () { var e, t = !0; for (e in this._sourceBuffers) if (null != this._sourceBuffers[e]) { t = !1; break } return t } }, { key: "_needCleanupSourceBuffer", value: function () { if (!this._config.autoCleanupSourceBuffer) return !1; if (!this.checkMediaSource("_needCleanupSourceBuffer")) return !1; var e, t = this._mediaElement.currentTime; for (e in this._sourceBuffers) { var n = this._sourceBuffers[e]; if (n) { n = n.buffered; if (1 <= n.length && t - n.start(0) >= this._config.autoCleanupMaxBackwardDuration) return !0 } } return !1 } }, { key: "_doCleanupSourceBuffer", value: function () { var e = this._mediaElement.currentTime; if (this.checkMediaSource("_doCleanupSourceBuffer")) for (var t in this._sourceBuffers) { var n = this._sourceBuffers[t]; if (n) { for (var i = n.buffered, r = !1, a = 0; a < i.length; a++) { var s, o = i.start(a), u = i.end(a); o <= e && e < u + 3 ? e - o >= this._config.autoCleanupMaxBackwardDuration && (r = !0, s = e - this._config.autoCleanupMinBackwardDuration, this._pendingRemoveRanges[t].push({ start: o, end: s })) : u < e && (r = !0, this._pendingRemoveRanges[t].push({ start: o, end: u })) } r && !n.updating && this._doRemoveRanges("_doCleanupSourceBuffer") } } } }, { key: "_updateMediaSourceDuration", value: function () { var e, t; this.checkMediaSource("_updateMediaSourceDuration") && (t = this._sourceBuffers, 0 !== this._mediaElement.readyState && "open" === this._mediaSource.readyState && (t.video && t.video.updating || t.audio && t.audio.updating || (e = this._mediaSource.duration, 0 < (t = this._pendingMediaDuration) && (isNaN(e) || e < t) && (o.default.v(this.TAG, "Update MediaSource duration from " + e + " to " + t), this._mediaSource.duration = t), this._requireSetMediaDuration = !1, this._pendingMediaDuration = 0))) } }, { key: "_doRemoveRanges", value: function (e) { if (this.checkMediaSource("_doRemoveRanges")) for (var t in this._pendingRemoveRanges) if (this._sourceBuffers[t] && !this._sourceBuffers[t].updating) for (var n = this._sourceBuffers[t], i = this._pendingRemoveRanges[t]; i.length && !n.updating;) { var r = i.shift(); n.remove(r.start, r.end) } } }, { key: "_doAppendSegments", value: function () { if (this.checkMediaSource("_doAppendSegments")) { var t, e = this._pendingSegments; for (t in e) if (this._sourceBuffers[t] && !this._sourceBuffers[t].updating && 0 < e[t].length) { var n, i, r = e[t].shift(); if (r.timestampOffset && (n = this._sourceBuffers[t].timestampOffset, i = r.timestampOffset / 1e3, .1 < Math.abs(n - i) && (o.default.v(this.TAG, "Update MPEG audio timestampOffset from " + n + " to " + i), this._sourceBuffers[t].timestampOffset = i), delete r.timestampOffset), r.data && 0 !== r.data.byteLength) try { this._sourceBuffers[t].appendBuffer(r.data), this._isBufferFull = !1, "video" === t && r.hasOwnProperty("info") && this._idrList.appendArray(r.info.syncPoints) } catch (e) { this._pendingSegments[t].unshift(r), 22 === e.code ? (this._isBufferFull || this._emitter.emit(s.default.BUFFER_FULL), this._isBufferFull = !0) : (o.default.e(this.TAG, e.message, this._mediaElement.error), this._emitter.emit(s.default.ERROR, { code: e.code, msg: e.message })) } } } } }, { key: "_onSourceOpen", value: function () { if (o.default.v(this.TAG, "MediaSource onSourceOpen"), this._mediaSource.removeEventListener("sourceopen", this.e.onSourceOpen), 0 < this._pendingSourceBufferInit.length) for (var e = this._pendingSourceBufferInit; e.length;) { var t = e.shift(); this.appendInitSegment(t, !0) } this._hasPendingSegments() && this._doAppendSegments(), this._emitter.emit(s.default.SOURCE_OPEN) } }, { key: "_onSourceEnded", value: function () { o.default.v(this.TAG, "MediaSource onSourceEnded"), this._emitter.emit(s.default.SOURCE_END) } }, { key: "_onSourceClose", value: function () { o.default.v(this.TAG, "MediaSource onSourceClose"), this._mediaSource && null != this.e && (this._mediaSource.removeEventListener("sourceopen", this.e.onSourceOpen), this._mediaSource.removeEventListener("sourceended", this.e.onSourceEnded), this._mediaSource.removeEventListener("sourceclose", this.e.onSourceClose)), this._emitter.emit(s.default.SOURCE_CLOSE) } }, { key: "_hasPendingSegments", value: function () { var e = this._pendingSegments; return 0 < e.video.length || 0 < e.audio.length } }, { key: "_hasPendingRemoveRanges", value: function () { var e = this._pendingRemoveRanges; return 0 < e.video.length || 0 < e.audio.length } }, { key: "_onSourceBufferUpdateEnd", value: function () { this._requireSetMediaDuration ? this._updateMediaSourceDuration() : this._hasPendingRemoveRanges() ? this._doRemoveRanges("_onSourceBufferUpdateEnd") : this._hasPendingSegments() ? this._doAppendSegments() : this._hasPendingEos && this.endOfStream(), this._emitter.emit(s.default.UPDATE_END) } }, { key: "_onSourceBufferError", value: function (e) { o.default.e(this.TAG, "SourceBuffer Error: ", e), this._emitter.emit(s.default.ERROR, { code: e.code, msg: e.message }) } }]), r = _; function _(e) { (0, i.default)(this, _), this.TAG = "MSEController", this._config = e, this._emitter = new a.default, this._config.isLive && null == this._config.autoCleanupSourceBuffer && (this._config.autoCleanupSourceBuffer = !0), this.e = { onSourceOpen: this._onSourceOpen.bind(this), onSourceEnded: this._onSourceEnded.bind(this), onSourceClose: this._onSourceClose.bind(this), onSourceBufferError: this._onSourceBufferError.bind(this), onSourceBufferUpdateEnd: this._onSourceBufferUpdateEnd.bind(this) }, this._mediaSource = null, this._mediaSourceObjectURL = null, this._mediaElement = null, this._hasAudio = !0, this._isBufferFull = !1, this._hasPendingEos = !1, this._requireSetMediaDuration = !1, this._pendingMediaDuration = 0, this._pendingSourceBufferInit = [], this._mimeTypes = { video: null, audio: null }, this._sourceBuffers = { video: null, audio: null }, this._lastInitSegments = { video: null, audio: null }, this._pendingSegments = { video: [], audio: [] }, this._pendingRemoveRanges = { video: [], audio: [] }, this._idrList = new d.IDRSampleList } t.default = r }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = c(n(11)), r = c(n(20)), a = c(n(9)), s = c(n(1)), o = c(n(2)), u = c(n(10)), d = c(n(39)), l = n(63), h = n(5); function c(e) { return e && e.__esModule ? e : { default: e } } (0, o.default)(_, [{ key: "destroy", value: function () { this._mediaElement && (this.unload(), this.detachMediaElement()), this.e = null, this._mediaDataSource = null, this._emitter.removeAllListeners(), this._emitter = null } }, { key: "on", value: function (e, t) { var n = this; e === d.default.MEDIA_INFO ? null != this._mediaElement && 0 !== this._mediaElement.readyState && i.default.resolve().then(function () { n._emitter.emit(d.default.MEDIA_INFO, n.mediaInfo) }) : e === d.default.STATISTICS_INFO && null != this._mediaElement && 0 !== this._mediaElement.readyState && i.default.resolve().then(function () { n._emitter.emit(d.default.STATISTICS_INFO, n.statisticsInfo) }), this._emitter.addListener(e, t) } }, { key: "off", value: function (e, t) { this._emitter.removeListener(e, t) } }, { key: "attachMediaElement", value: function (e) { if ((this._mediaElement = e).addEventListener("loadedmetadata", this.e.onvLoadedMetadata), null != this._pendingSeekTime) try { e.currentTime = this._pendingSeekTime, this._pendingSeekTime = null } catch (e) { } } }, { key: "detachMediaElement", value: function () { this._mediaElement && (this._mediaElement.src = "", this._mediaElement.removeAttribute("src"), this._mediaElement.removeEventListener("loadedmetadata", this.e.onvLoadedMetadata), this._mediaElement = null), null != this._statisticsReporter && (window.clearInterval(this._statisticsReporter), this._statisticsReporter = null) } }, { key: "load", value: function () { if (!this._mediaElement) throw new h.IllegalStateException("HTMLMediaElement must be attached before load()!"); this._mediaElement.src = this._mediaDataSource.url, 0 < this._mediaElement.readyState && (this._mediaElement.currentTime = 0), this._mediaElement.preload = "auto", this._mediaElement.load(), this._statisticsReporter = window.setInterval(this._reportStatisticsInfo.bind(this), this._config.statisticsInfoReportInterval) } }, { key: "unload", value: function () { this._mediaElement && (this._mediaElement.src = "", this._mediaElement.removeAttribute("src")), null != this._statisticsReporter && (window.clearInterval(this._statisticsReporter), this._statisticsReporter = null) } }, { key: "play", value: function () { return this._mediaElement.play() } }, { key: "pause", value: function () { this._mediaElement.pause() } }, { key: "_onvLoadedMetadata", value: function (e) { null != this._pendingSeekTime && (this._mediaElement.currentTime = this._pendingSeekTime, this._pendingSeekTime = null), this._emitter.emit(d.default.MEDIA_INFO, this.mediaInfo) } }, { key: "_reportStatisticsInfo", value: function () { this._emitter.emit(d.default.STATISTICS_INFO, this.statisticsInfo) } }, { key: "type", get: function () { return this._type } }, { key: "buffered", get: function () { return this._mediaElement.buffered } }, { key: "duration", get: function () { return this._mediaElement.duration } }, { key: "volume", get: function () { return this._mediaElement.volume }, set: function (e) { this._mediaElement.volume = e } }, { key: "muted", get: function () { return this._mediaElement.muted }, set: function (e) { this._mediaElement.muted = e } }, { key: "currentTime", get: function () { return this._mediaElement ? this._mediaElement.currentTime : 0 }, set: function (e) { this._mediaElement ? this._mediaElement.currentTime = e : this._pendingSeekTime = e } }, { key: "mediaInfo", get: function () { var e = { mimeType: (this._mediaElement instanceof HTMLAudioElement ? "audio/" : "video/") + this._mediaDataSource.type }; return this._mediaElement && (e.duration = Math.floor(1e3 * this._mediaElement.duration), this._mediaElement instanceof HTMLVideoElement && (e.width = this._mediaElement.videoWidth, e.height = this._mediaElement.videoHeight)), e } }, { key: "statisticsInfo", get: function () { var e = { playerType: this._type, url: this._mediaDataSource.url }; if (!(this._mediaElement instanceof HTMLVideoElement)) return e; var t, n = !0, i = 0, r = 0; return this._mediaElement.getVideoPlaybackQuality ? (i = (t = this._mediaElement.getVideoPlaybackQuality()).totalVideoFrames, r = t.droppedVideoFrames) : null != this._mediaElement.webkitDecodedFrameCount ? (i = this._mediaElement.webkitDecodedFrameCount, r = this._mediaElement.webkitDroppedFrameCount) : n = !1, n && (e.decodedFrames = i, e.droppedFrames = r), e } }]), o = _; function _(e, t) { if ((0, s.default)(this, _), this.TAG = "NativePlayer", this._type = "NativePlayer", this._emitter = new u.default, this._config = (0, l.createDefaultConfig)(), "object" === (void 0 === t ? "undefined" : (0, a.default)(t)) && (0, r.default)(this._config, t), "flv" === e.type.toLowerCase()) throw new h.InvalidArgumentException("NativePlayer does't support flv MediaDataSource input!"); if (e.hasOwnProperty("segments")) throw new h.InvalidArgumentException("NativePlayer(" + e.type + ") doesn't support multipart playback!"); this.e = { onvLoadedMetadata: this._onvLoadedMetadata.bind(this) }, this._pendingSeekTime = null, this._statisticsReporter = null, this._mediaDataSource = e, this._mediaElement = null } t.default = o }, function (e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var i = r(n(1)); function r(e) { return e && e.__esModule ? e : { default: e } } (0, r(n(2)).default)(a, [{ key: "_start", value: function () { this._checkSystem(), this._checkPlatform(), this._checkEngine(), this._checkSupporter(), this._checkShell() } }, { key: "_checkUa", value: function (e) { return e.test(this._ua) } }, { key: "_getVersion", value: function (e) { e = e.exec(this._ua); return e ? e.shift().split(/\s|\/|:/gi).pop() : null } }, { key: "_checkSystem", value: function () { var t = this, n = this._checkUa.bind(this), e = [{ sys: "windows", re: /windows|win32|win64|wow32|wow64/gi }, { sys: "osx", re: /macintosh|macintel/gi }, { sys: "linux", re: /x11/gi }, { sys: "android", re: /android|adr/gi }, { sys: "ios", re: /ios|iphone|ipad|iwatch/gi }].find(function (e) { return n(e.re) }); this._system = e ? e.sys : void 0, this._systemByte = n(/win32|wow32|x32/gi) ? 32 : 64; var i = [{ sys: "osx", re: /os x [\d(.|_)]+/gi }, { sys: "android", re: /android [\d(.|_)]+/gi }, { sys: "ios", re: /os [\d(.|_)]+/gi }].find(function (e) { return e.sys === t._system }); "windows" === this._system ? (e = [{ vs: "2000", re: /windows nt 5.0|windows 2000/gi }, { vs: "xp", re: /windows nt 5.1|windows 2000/gi }, { vs: "2003", re: /windows nt 5.2|windows 2003/gi }, { vs: "vista", re: /windows nt 6.0|windows vista/gi }, { vs: "7", re: /windows nt 6.1|windows 7/gi }, { vs: "8", re: /windows nt 6.2|windows 8/gi }, { vs: "8.1", re: /windows nt 6.3|windows 8.1/gi }, { vs: "10", re: /windows nt 10.0|windows 10/gi }].find(function (e) { return n(e.re) }), this._systemVersion = e ? e.vs : void 0) : this._systemVersion = i ? this._getVersion(i.re) : void 0 } }, { key: "_checkPlatform", value: function () { var t = this;["windows", "osx"].find(function (e) { return e === t._system }) ? this._platform = "desktop" : ["ios", "android", "linux"].find(function (e) { return e === t._system }) && (this._platform = "mobile") } }, { key: "_checkEngine", value: function () { var t = this._checkUa.bind(this), e = [{ eng: "webkit", re: /applewebkit/gi, vre: /applewebkit\/[\d(.|_)]+/gi }, { eng: "presto", re: /presto/gi, vre: /presto\/[\d(.|_)]+/gi }, { eng: "trident", re: /trident|compatible|msie/gi, vre: /(trident|compatible|msie)\/[\d(.|_)]+/gi }, { eng: "gecko", re: /gecko|firefox/gi, vre: /(gecko|firefox)\/[\d(.|_)]+/gi }].find(function (e) { return t(e.re) }); e && (this._engine = e.eng, this._engineVersion = this._getVersion(e.vre)) } }, { key: "_checkSupporter", value: function () { var t = this._checkUa.bind(this), e = this._system, n = this._engine; "android" !== e || "webkit" !== n ? "webkit" === n ? (e = [{ sp: "edge", re: /edge/gi, vre: /edge\/[\d(.|_)]+/gi }, { sp: "opera", re: /opr/gi, vre: /opr\/[\d(.|_)]+/gi }, { sp: "chrome", re: /chrome|crios/gi, vre: /(chrome|crios)\/[\d(.|_)]+/gi }, { sp: "safari", re: /safari/gi, vre: /version\/[\d(.|_)]+/gi }].find(function (e) { return t(e.re) })) && (this._supporter = e.sp, this._supporterVersion = this._getVersion(e.vre)) : "presto" === n ? (this.supporter = "opera", this._supporterVersion = this._getVersion(/opera\/[\d(.|_)]+/gi)) : "trident" === n ? (this._supporter = "ie", this._supporterVersion = this._getVersion(/rv:[\d(.|_)]+/gi)) : "gecko" === n && (this._supporter = "firefox", this._supporterVersion = this._getVersion(/(rv:|firefox\/)[\d(.|_)]+/gi)) : (n = this._ua.match(/chrome\/\d+[\.\d+]+/gi)) && (n = n.pop().split("/"), this._supporterVersion = n.pop(), this._supporter = n.pop()) } }, { key: "_checkShell", value: function () { var e, t = this._checkUa.bind(this), n = this._system, i = this._engine; "android" !== n && "linux" !== n || "webkit" !== i ? (e = [{ sl: "weChat", re: /micromessenger/gi, vre: /micromessenger\/[\d(.|_)]+/gi }, { sl: "qq", re: /qqbrowser/gi, vre: /micromessenger\/[\d(.|_)]+/gi }, { sl: "uc", re: /ucbrowser/gi, vre: /ucbrowser\/[\d(.|_)]+/gi }, { sl: "baidu", re: /baidu(boxapp|browser)/gi, vre: /baidu(boxapp|browser)\/[\d(.|_)]+/gi }].find(function (e) { return t(e.re) })) && (this._shell = e.sl, this._shellVersion = this._getVersion(e.vre)) : (e = this._ua.match(/[\w|\/]+Browser\/\d+[\.\d+]+/gi)) && (e = e.pop().split("/"), this._shellVersion = e.pop(), this._shell = e.pop()) } }, { key: "system", get: function () { return this._system } }, { key: "systemVersion", get: function () { return this._systemVersion } }, { key: "systemByte", get: function () { return this._systemByte } }, { key: "platform", get: function () { return this._platform } }, { key: "engine", get: function () { return this._engine } }, { key: "engineVersion", get: function () { return this._engineVersion } }, { key: "supporter", get: function () { return this._supporter } }, { key: "supporterVersion", get: function () { return this._supporterVersion } }, { key: "shell", get: function () { return this._shell } }, { key: "shellVersion", get: function () { return this._shellVersion } }]), n = a; function a() { (0, i.default)(this, a), this._ua = self.navigator.userAgent.toLowerCase(), this._system = void 0, this._systemVersion = void 0, this._systemByte = void 0, this._platform = void 0, this._engine = void 0, this._engineVersion = void 0, this._supporter = void 0, this._supporterVersion = void 0, this._shell = void 0, this._shellVersion = void 0, this._start() } t.default = n }, function (e) { e.exports = JSON.parse('{"name":"h5player","version":"2.1.2build202211","description":"player for h5 page without plugin","main":"./dist/h5player.min.js","scripts":{"start":"webpack --config build/webpack.dev.js --watch","dev":"webpack-dev-server --config build/webpack.dev.js","dev:https":"webpack-dev-server --config build/webpack.dev.js --https --coop","build":"npm run prod && npm run backup","build:dev":"webpack --config build/webpack.dev.js","prod":"webpack --config build/webpack.prod.js","backup":"webpack --config build/webpack.backup.js","http":"node dev/http.js","https":"node dev/https.js","preinstall":"node ./bin/preinstall.js","postinstall":"node ./bin/postinstall.js","preuninstall":"node ./bin/preuninstall.js","prepublishOnly":"npm run prod"},"author":"hezhuen","license":"MIT","dependencies":{"chalk":"^4.1.2","inquirer":"^8.2.0","shelljs":"^0.8.4","ws":"^8.8.1"},"devDependencies":{"@babel/polyfill":"^7.12.1","babel-core":"^6.26.3","babel-eslint":"^8.2.6","babel-loader":"^7.1.5","babel-plugin-syntax-dynamic-import":"^6.18.0","babel-plugin-transform-runtime":"^6.23.0","babel-preset-env":"^1.7.0","babel-preset-es2015":"^6.24.1","babel-runtime":"^6.26.0","copy-webpack-plugin":"^4.5.2","css-loader":"^1.0.0","es6-promise":"^4.2.8","eslint":"^5.1.0","eslint-loader":"^2.1.0","html-loader":"^0.5.5","jquery":"^3.6.0","json-loader":"^0.5.7","less":"^3.7.1","less-loader":"^4.1.0","mime":"^2.5.2","moment":"^2.0.0","style-loader":"^0.21.0","uglifyjs-webpack-plugin":"^2.2.0","url-loader":"^1.0.1","uuid":"^3.3.3","webpack":"^4.16.1","webpack-cli":"^3.1.0","webpack-dev-server":"^3.11.2","webpack-merge":"^5.7.3","webworkify":"^1.5.0","webworkify-webpack":"^2.1.5"},"publishConfig":{"registry":"https://af.hikvision.com.cn/artifactory/api/npm/npm-fsdmdept/","access":"public"},"files":["dist","bin"]}') }], a = {}, r.m = n, r.c = a, r.d = function (e, t, n) { r.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: n }) }, r.r = function (e) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) }, r.t = function (t, e) { if (1 & e && (t = r(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var i in t) r.d(n, i, function (e) { return t[e] }.bind(null, i)); return n }, r.n = function (e) { var t = e && e.__esModule ? function () { return e.default } : function () { return e }; return r.d(t, "a", t), t }, r.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t) }, r.p = "", r(r.s = 235); function r(e) { if (a[e]) return a[e].exports; var t = a[e] = { i: e, l: !1, exports: {} }; return n[e].call(t.exports, t, t.exports, r), t.l = !0, t.exports } var n, a
});