@sgrsoft/vpe-core-sdk 0.23.2 → 0.23.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vpe-core-sdk.cjs.js +1 -1
- package/dist/vpe-core-sdk.es.js +734 -732
- package/package.json +1 -1
package/dist/vpe-core-sdk.es.js
CHANGED
|
@@ -1,118 +1,116 @@
|
|
|
1
|
-
function
|
|
2
|
-
var x = ["
|
|
3
|
-
return
|
|
1
|
+
function _e() {
|
|
2
|
+
var x = ["Player Execution Failed", "1196943CXgfZb", "Window Color", "minute(s)", "This video may be inappropriate for children under 15 and requires parental guidance.", "Auto", "Text Opacity", "Normal", "Required module was not loaded. (dash.js)", "FairPlay certificate validation failed.", "Turn on captions", "Background Color", "Text Edge Style", "Semi Bold", "Magenta", "This feature requires the Standard plan.", "652WGbYpf", "Auto Skip Ending", "Cannot play DASH video on iOS.", "Monthly basic API calls exceeded. Please switch to a paid version.", "Auto Skip Opening/Ending", "day", "Subtitle Style", "Next video", "261224oSflDw", "Settings", "The video could not be played.", "License", "None", "seconds until auto-play", "Auto Skip Intro", "Unsupported format.", "Invalid DRM token.", "Cancel", "Video will start in {timeTxt}.", "Turn off captions", "1857728skqNKQ", "Font Color", "Scheduled", "Player Startup Failed", "Background Opacity", "Previous video", "Violence", "Font Weight", "This video may be inappropriate for children under 12 and requires parental guidance.", "Fullscreen", "Black", "Playback speed", "Imitation risk", "Thin", "Screen capture / screen recording has been detected.", "Extra Bold", "Window Opacity", "Next video will play in {timeTxt} seconds.", "Blue", "7462350askMbe", "hour", "Depressed", "Replay", "Drugs", "986972XQCzBu", "Skip Opening", "Raised", "Font Size", "White", "LIVE", "12735lzGilz", "Exit fullscreen", "Required module was not loaded. (hls.js)", "17417610racAKJ", "Mute", "Provocative content", "You do not have permission to play this video.", "Play", "Subtitles not available", "Change text, color, and background styles", "hour(s)", "Skip Intro", "Uniform", "Cannot play video", "182LVdhEJ", "second(s)", "Subtitles", "Skip Ending", "In a moment", "Quality", "min", "Default"];
|
|
3
|
+
return _e = function() {
|
|
4
4
|
return x;
|
|
5
|
-
},
|
|
5
|
+
}, _e();
|
|
6
6
|
}
|
|
7
|
-
function
|
|
8
|
-
x = x -
|
|
9
|
-
var e =
|
|
7
|
+
function D0(x, t) {
|
|
8
|
+
x = x - 175;
|
|
9
|
+
var e = _e(), i = e[x];
|
|
10
10
|
return i;
|
|
11
11
|
}
|
|
12
|
-
var b =
|
|
12
|
+
var b = D0;
|
|
13
13
|
(function(x, t) {
|
|
14
|
-
for (var e =
|
|
14
|
+
for (var e = D0, i = x(); ; )
|
|
15
15
|
try {
|
|
16
|
-
var
|
|
17
|
-
if (
|
|
16
|
+
var a = parseInt(e(242)) / 1 + -parseInt(e(218)) / 2 + parseInt(e(183)) / 3 + parseInt(e(198)) / 4 * (parseInt(e(248)) / 5) + -parseInt(e(237)) / 6 + -parseInt(e(262)) / 7 * (parseInt(e(206)) / 8) + parseInt(e(251)) / 9;
|
|
17
|
+
if (a === t) break;
|
|
18
18
|
i.push(i.shift());
|
|
19
19
|
} catch {
|
|
20
20
|
i.push(i.shift());
|
|
21
21
|
}
|
|
22
|
-
})(
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
return
|
|
28
|
-
return x;
|
|
29
|
-
}, Te();
|
|
22
|
+
})(_e, 714837);
|
|
23
|
+
const q0 = { common: { cancel: b(215), auto: b(187), normal: b(189), notUse: "Not used", prev: b(223), next: b(205), delayText: b(211), license: b(209), play: b(255), pause: "Pause", replay: b(240), fullOn: b(227), fullOff: b(249), muteOn: b(252), muteOff: "Unmute", captionOff: b(217), captionOn: b(192), setting: b(207), live: b(247), miniPlayer: "Mini player", isMute: "You are muted.", subtitle: b(176), subtitleNot: b(256) }, settings: { autoplay: "Autoplay", playbackRate: b(229), captions: b(176), quality: b(179) }, skip: { introSkip: b(259), openingSkip: b(243), endingSkip: b(177), autoSkipIntro: b(212), autoSkipOpening: "Auto Skip Opening", autoSkipEnding: b(199), autoSkipOpeningEnding: b(202) }, ageRating: { noticeAll: "This video is rated for all audiences.", notice12: b(226), notice15: b(186), notice19: "This video may be inappropriate for minors." }, contentWarning: { sexuality: "Sexuality", violence: b(224), language: "Language", drugs: b(241), horror: "Horror", imitation: b(230), provocative: b(253) }, error: { "01": { title: "Cannot play video", desc: "Invalid access. Please check your access_key." }, "02": { title: b(261), desc: b(254) }, "03": { title: "Authentication Failed", desc: "The network connection is unstable." }, "04": { title: b(261), desc: b(208) }, "05": { title: "Cannot play video", desc: "The license is not valid." }, "06": { title: b(261), desc: b(201) }, "07": { title: "Cannot play video", desc: b(213) }, "08": { title: b(261), desc: "Invalid URL format." }, "09": { title: b(261), desc: "The live stream is OFFLINE." }, 10: { title: b(261), desc: b(200) }, 11: { title: "Cannot play video", desc: b(214) }, 12: { title: "Cannot play video", desc: "Failed to communicate with the DRM license server." }, 13: { title: b(261), desc: b(191) }, 14: { title: b(261), desc: b(232) }, 15: { title: b(182), desc: b(250) }, 16: { title: b(182), desc: b(190) }, 17: { title: b(221), desc: b(197) } }, tv: { default: b(181), quality: "Quality", subtitleStyle: b(204), subtitleStyleDesc: b(257), applyDefaultStyle: "Apply Default Style", fontColor: b(219), fontSize: b(245), textOpacity: b(188), edgeStyle: b(194), bgColor: b(193), bgOpacity: b(222), windowColor: b(184), windowOpacity: b(234), fontWeight: b(225), weight: { thin: b(231), normal: "Normal", semiBold: b(195), bold: "Bold", extraBold: b(233) }, color: { white: b(246), black: b(228), red: "Red", green: "Green", blue: b(236), yellow: "Yellow", magenta: b(196), cyan: "Cyan" }, edge: { none: b(210), dropShadow: "Drop Shadow", raised: b(244), depressed: b(239), uniform: b(260) } }, alternative: { hour: b(258), minute: b(185), second: b(175), after: b(178), afterMin: b(180), afterHour: b(238), afterDay: b(203), startPlay: b(216), nextPlay: b(235), afterPlay: b(220) } };
|
|
24
|
+
function M0(x, t) {
|
|
25
|
+
x = x - 363;
|
|
26
|
+
var e = Ee(), i = e[x];
|
|
27
|
+
return i;
|
|
30
28
|
}
|
|
29
|
+
var w = M0;
|
|
31
30
|
(function(x, t) {
|
|
32
|
-
for (var e =
|
|
31
|
+
for (var e = M0, i = x(); ; )
|
|
33
32
|
try {
|
|
34
|
-
var
|
|
35
|
-
if (
|
|
33
|
+
var a = parseInt(e(416)) / 1 + parseInt(e(379)) / 2 + -parseInt(e(407)) / 3 * (-parseInt(e(413)) / 4) + parseInt(e(410)) / 5 * (-parseInt(e(430)) / 6) + -parseInt(e(365)) / 7 + parseInt(e(431)) / 8 + parseInt(e(425)) / 9;
|
|
34
|
+
if (a === t) break;
|
|
36
35
|
i.push(i.shift());
|
|
37
36
|
} catch {
|
|
38
37
|
i.push(i.shift());
|
|
39
38
|
}
|
|
40
|
-
})(
|
|
41
|
-
function
|
|
42
|
-
x =
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
})(Ee, 481127);
|
|
40
|
+
function Ee() {
|
|
41
|
+
var x = ["동영상을 재생할 권한이 없습니다.", "동영상을 재생할 수 없음", "엔딩 자동 스킵", "음소거 상태입니다.", "텍스트, 색상, 배경 스타일 변경", "모방위험", "네트워크 연결이 원활하지 않습니다.", "오프닝 건너뛰기", "라이선스", "노란색", "URL 형식이 잘못되었습니다.", "초 뒤 자동재생", "텍스트 불투명도", "다시보기", "해상도", "자극적 장면", "초록색", "라이선스가 유효하지 않습니다.", "오프닝 자동 스킵", "필수 모듈이 로드되지 않았습니다. (hls.js)", "이 영상은 전체 관람가 영상입니다.", "빨간색", "3OReyjr", "{timeTxt} 후 영상이 시작됩니다.", "DRM 토큰이 잘못되었습니다.", "792095jxDseY", "음소거", "글자 테두리 스타일", "466976gOKhoi", "자홍색", "전체화면 해제", "532593gmoZWW", "배경 색상", "잘못된 접근입니다. access_key를 확인해주세요.", "창 불투명도", "파란색", "사용안함", "음소거 해제", "다음 동영상", "엔딩 건너뛰기", "2782098NEhKFR", "창 색상", "그림자", "글꼴 크기", "배경 불투명도", "30lvPIgY", "3836312KlGMQp", "자막끄기", "미니플레이어", "인증 실패", "라이브스트림이 OFFLINE 입니다.", "자막 스타일", "약간 굵게", "자동재생", "5364625QKClfR", "검정색", "인트로 건너뛰기", "자막 사용 불가", "DRM 라이선스 서버와 통신에 실패하였습니다.", "{timeTxt}초 후 다음 영상이 재생됩니다.", "전체화면", "글꼴 색상", "재생 속도", "iOS에서 Dash 비디오를 재생할 수 없습니다.", "자막켜기", "기본 스타일 적용", "글자 굵기", "월 기본 제공 호출 건수를 초과하였습니다. 유료 버전으로 전환 후 사용 부탁 드립니다.", "1203198xGhLfT", "성적 표현", "지원하지 않는 형식입니다.", "플레이어 구동 실패", "이 영상은 청소년이 시청하기에 부적절한 영상입니다.", "동영상을 재생할 수 없습니다."];
|
|
42
|
+
return Ee = function() {
|
|
43
|
+
return x;
|
|
44
|
+
}, Ee();
|
|
45
45
|
}
|
|
46
|
-
const
|
|
47
|
-
var g =
|
|
48
|
-
function
|
|
49
|
-
x = x -
|
|
50
|
-
var e =
|
|
46
|
+
const J0 = { common: { cancel: "취소", auto: "자동", normal: "보통", notUse: w(421), prev: "이전 동영상", next: w(423), delayText: w(396), license: w(393), play: "재생", pause: "일시정지", replay: w(398), fullOn: w(371), fullOff: w(415), muteOn: w(411), muteOff: w(422), captionOff: w(432), captionOn: w(375), setting: "설정", live: "실시간", miniPlayer: w(433), isMute: w(388), subtitle: "자막", subtitleNot: w(368) }, settings: { autoplay: w(364), playbackRate: w(373), captions: "자막", quality: w(399) }, skip: { introSkip: w(367), openingSkip: w(392), endingSkip: w(424), autoSkipIntro: "인트로 자동 스킵", autoSkipOpening: w(403), autoSkipEnding: w(387), autoSkipOpeningEnding: "오프닝/엔딩 자동 스킵" }, ageRating: { noticeAll: w(405), notice12: "이 영상은 12세 미만의 청소년이 시청하기에 부적절하므로 보호자의 시청지도가 필요한 영상입니다.", notice15: "이 영상은 15세 미만의 청소년이 시청하기에 부적절하므로 보호자의 시청지도가 필요한 영상입니다.", notice19: w(383) }, contentWarning: { sexuality: w(380), violence: "폭력", language: "욕설", drugs: "약물", horror: "공포", imitation: w(390), provocative: w(400) }, error: { "01": { title: "동영상을 재생할 수 없음", desc: w(418) }, "02": { title: w(386), desc: w(385) }, "03": { title: w(434), desc: w(391) }, "04": { title: w(386), desc: w(384) }, "05": { title: w(386), desc: w(402) }, "06": { title: w(386), desc: w(378) }, "07": { title: w(386), desc: w(381) }, "08": { title: w(386), desc: w(395) }, "09": { title: w(386), desc: w(435) }, 10: { title: w(386), desc: w(374) }, 11: { title: "동영상을 재생할 수 없음", desc: w(409) }, 12: { title: w(386), desc: w(369) }, 13: { title: w(386), desc: "FairPlay 인증서 검증에 실패하였습니다." }, 14: { title: w(386), desc: "화면 캡쳐 / 화면 녹화가 감지되었습니다." }, 15: { title: "플레이어 실행 실패", desc: w(404) }, 16: { title: "플레이어 실행 실패", desc: "필수 모듈이 로드되지 않았습니다. (dash.js)" }, 17: { title: w(382), desc: "Standard 요금제가 필요한 기능입니다." } }, tv: { default: "기본", quality: "화질", subtitleStyle: w(436), subtitleStyleDesc: w(389), applyDefaultStyle: w(376), fontColor: w(372), fontSize: w(428), textOpacity: w(397), edgeStyle: w(412), bgColor: w(417), bgOpacity: w(429), windowColor: w(426), windowOpacity: w(419), fontWeight: w(377), weight: { thin: "얇게", normal: "보통", semiBold: w(363), bold: "굵게", extraBold: "매우 굵게" }, color: { white: "흰색", black: w(366), red: w(406), green: w(401), blue: w(420), yellow: w(394), magenta: w(414), cyan: "청록색" }, edge: { none: "없음", dropShadow: w(427), raised: "양각", depressed: "음각", uniform: "균일" } }, alternative: { hour: "시", minute: "분", second: "초", after: "잠시 ", afterMin: "분 ", afterHour: "시간 ", afterDay: "일 ", startPlay: w(408), nextPlay: w(370), afterPlay: "예정" } };
|
|
47
|
+
var g = R0;
|
|
48
|
+
function R0(x, t) {
|
|
49
|
+
x = x - 381;
|
|
50
|
+
var e = Te(), i = e[x];
|
|
51
51
|
return i;
|
|
52
52
|
}
|
|
53
53
|
(function(x, t) {
|
|
54
|
-
for (var e =
|
|
54
|
+
for (var e = R0, i = x(); ; )
|
|
55
55
|
try {
|
|
56
|
-
var
|
|
57
|
-
if (
|
|
56
|
+
var a = parseInt(e(441)) / 1 * (-parseInt(e(393)) / 2) + parseInt(e(406)) / 3 * (parseInt(e(429)) / 4) + parseInt(e(452)) / 5 + parseInt(e(405)) / 6 * (parseInt(e(412)) / 7) + -parseInt(e(385)) / 8 * (-parseInt(e(445)) / 9) + -parseInt(e(413)) / 10 + parseInt(e(415)) / 11;
|
|
57
|
+
if (a === t) break;
|
|
58
58
|
i.push(i.shift());
|
|
59
59
|
} catch {
|
|
60
60
|
i.push(i.shift());
|
|
61
61
|
}
|
|
62
|
-
})(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return Ce = function() {
|
|
62
|
+
})(Te, 746818);
|
|
63
|
+
function Te() {
|
|
64
|
+
var x = ["フォント色", "キャンセル", "この映像は12歳未満の視聴には不適切な内容を含むため、保護者の指導が必要です。", "1569522MFJyEq", "3ApVRAB", "イントロをスキップ", "必須モジュールが読み込まれていません。(dash.js)", "動画を再生できません", "フォントサイズ", "ミニプレーヤー", "7LdnhCM", "13868870jTNARS", "文字エッジスタイル", "12995532ryVUjm", "URLの形式が正しくありません。", "再生速度", "ネットワーク接続が不安定です。", "秒後に自動再生", "字幕をオフにする", "この映像は未成年者の視聴には不適切な内容を含みます。", "刺激的な場面", "デフォルトスタイルを適用", "デフォルト", "OP/ED自動スキップ", "DRMトークンが無効です。", "沈み込み", "FairPlay証明書の検証に失敗しました。", "3679252jQfzYd", "ミュート", "イントロ自動スキップ", "字幕は利用できません", "ライセンス", "字幕をオンにする", "次の動画", "背景不透明度", "不正なアクセスです。access_keyを確認してください。", "前の動画", "{timeTxt}秒後に次の動画が再生されます。", "プレーヤーの起動に失敗しました", "16518TgxSDM", "オープニング自動スキップ", "模倣危険", "浮き出し", "36LtNZbY", "月間の基本提供呼び出し回数を超過しました。有料版に切り替えてご利用ください。", "iOSではDASHビデオを再生できません。", "使用しない", "この映像は15歳未満の視聴には不適切な内容を含むため、保護者の指導が必要です。", "オープニングをスキップ", "自動再生", "3721895SNgpSu", "この動画を再生する権限がありません。", "ライブストリームはオフラインです。", "ウィンドウ不透明度", "しばらくして", "728944wjyiqG", "認証に失敗しました", "シアン", "時間後", "動画を再生できませんでした。", "この機能にはStandardプランが必要です。", "{timeTxt}後に動画が始まります。", "やや太い", "162mMxCJy", "全画面表示", "ウィンドウ色", "リプレイ", "ライセンスが無効です。", "ミュート解除", "サポートされていない形式です。", "画面キャプチャ/画面録画が検出されました。", "ミュート状態です。"];
|
|
65
|
+
return Te = function() {
|
|
67
66
|
return x;
|
|
68
|
-
},
|
|
67
|
+
}, Te();
|
|
69
68
|
}
|
|
70
|
-
const
|
|
69
|
+
const X0 = { common: { cancel: g(403), auto: "自動", normal: "標準", notUse: g(448), prev: g(438), next: g(435), delayText: g(419), license: g(433), play: "再生", pause: "一時停止", replay: g(396), fullOn: g(394), fullOff: "全画面表示を終了", muteOn: g(430), muteOff: g(398), captionOff: g(420), captionOn: g(434), setting: "設定", live: "ライブ", miniPlayer: g(411), isMute: g(401), subtitle: "字幕", subtitleNot: g(432) }, settings: { autoplay: g(451), playbackRate: g(417), captions: "字幕", quality: "画質" }, skip: { introSkip: g(407), openingSkip: g(450), endingSkip: "エンディングをスキップ", autoSkipIntro: g(431), autoSkipOpening: g(442), autoSkipEnding: "エンディング自動スキップ", autoSkipOpeningEnding: g(425) }, ageRating: { noticeAll: "この映像は全年齢対象です。", notice12: g(404), notice15: g(449), notice19: g(421) }, contentWarning: { sexuality: "性的表現", violence: "暴力", language: "暴言", drugs: "薬物", horror: "恐怖", imitation: g(443), provocative: g(422) }, error: { "01": { title: g(409), desc: g(437) }, "02": { title: g(409), desc: g(381) }, "03": { title: g(386), desc: g(418) }, "04": { title: g(409), desc: g(389) }, "05": { title: g(409), desc: g(397) }, "06": { title: g(409), desc: g(446) }, "07": { title: g(409), desc: g(399) }, "08": { title: g(409), desc: g(416) }, "09": { title: "動画を再生できません", desc: g(382) }, 10: { title: g(409), desc: g(447) }, 11: { title: g(409), desc: g(426) }, 12: { title: g(409), desc: "DRMライセンスサーバーとの通信に失敗しました。" }, 13: { title: "動画を再生できません", desc: g(428) }, 14: { title: "動画を再生できません", desc: g(400) }, 15: { title: g(440), desc: "必須モジュールが読み込まれていません。(hls.js)" }, 16: { title: g(440), desc: g(408) }, 17: { title: "プレーヤーの起動に失敗しました", desc: g(390) } }, tv: { default: g(424), quality: "画質", subtitleStyle: "字幕スタイル", subtitleStyleDesc: "テキスト、色、背景スタイルを変更", applyDefaultStyle: g(423), fontColor: g(402), fontSize: g(410), textOpacity: "テキスト不透明度", edgeStyle: g(414), bgColor: "背景色", bgOpacity: g(436), windowColor: g(395), windowOpacity: g(383), fontWeight: "文字の太さ", weight: { thin: "細い", normal: "標準", semiBold: g(392), bold: "太い", extraBold: "極太" }, color: { white: "白", black: "黒", red: "赤", green: "緑", blue: "青", yellow: "黄", magenta: "マゼンタ", cyan: g(387) }, edge: { none: "なし", dropShadow: "ドロップシャドウ", raised: g(444), depressed: g(427), uniform: "均一" } }, alternative: { hour: "時間", minute: "分", second: "秒", after: g(384), afterMin: "分後", afterHour: g(388), afterDay: "日後", startPlay: g(391), nextPlay: g(439), afterPlay: "予定" } }, Ce = O0;
|
|
71
70
|
(function(x, t) {
|
|
72
|
-
const e =
|
|
71
|
+
const e = O0, i = x();
|
|
73
72
|
for (; ; )
|
|
74
73
|
try {
|
|
75
|
-
if (parseInt(e(
|
|
74
|
+
if (-parseInt(e(442)) / 1 * (-parseInt(e(438)) / 2) + parseInt(e(441)) / 3 + -parseInt(e(431)) / 4 * (parseInt(e(432)) / 5) + parseInt(e(437)) / 6 + -parseInt(e(443)) / 7 * (-parseInt(e(439)) / 8) + parseInt(e(433)) / 9 + -parseInt(e(436)) / 10 === t) break;
|
|
76
75
|
i.push(i.shift());
|
|
77
76
|
} catch {
|
|
78
77
|
i.push(i.shift());
|
|
79
78
|
}
|
|
80
|
-
})(Ae,
|
|
81
|
-
const Rt = { en: jt, ko: Jt, ja: Zt };
|
|
79
|
+
})(Ae, 828346);
|
|
82
80
|
function Ae() {
|
|
83
|
-
const x = ["
|
|
81
|
+
const x = ["12kSkrIN", "567505RqkHvb", "7560459XCeHiU", "split", "undefined", "16645080FlKfsJ", "1900104wxSjCR", "4226bUmOYS", "38904nmujJw", "language", "898656TQUWFY", "631tHuQdB", "63CVHpTq"];
|
|
84
82
|
return Ae = function() {
|
|
85
83
|
return x;
|
|
86
84
|
}, Ae();
|
|
87
85
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
const t = x.split("-")[0];
|
|
91
|
-
return t in Rt ? t : "en";
|
|
86
|
+
function O0(x, t) {
|
|
87
|
+
return x = x - 431, Ae()[x];
|
|
92
88
|
}
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
const P0 = { en: q0, ko: J0, ja: X0 }, Z0 = () => typeof navigator < "u" && typeof navigator[Ce(440)] !== Ce(435);
|
|
90
|
+
function Q0(x) {
|
|
91
|
+
const t = Ce, e = x[t(434)]("-")[0];
|
|
92
|
+
return e in P0 ? e : "en";
|
|
95
93
|
}
|
|
96
|
-
function
|
|
97
|
-
const t =
|
|
94
|
+
function Ze(x) {
|
|
95
|
+
const t = Ce;
|
|
98
96
|
let e = "en";
|
|
99
|
-
x ? e = x :
|
|
100
|
-
const i =
|
|
101
|
-
return
|
|
97
|
+
x ? e = x : Z0() && (e = navigator[t(440)]);
|
|
98
|
+
const i = Q0(e);
|
|
99
|
+
return P0[i];
|
|
102
100
|
}
|
|
103
|
-
|
|
104
|
-
var $
|
|
101
|
+
Ze();
|
|
102
|
+
var $0 = "2.0.9", et = 500, c0 = "user-agent", re = "", d0 = "?", E = {
|
|
105
103
|
FUNCTION: "function",
|
|
106
104
|
OBJECT: "object",
|
|
107
105
|
STRING: "string",
|
|
108
106
|
UNDEFINED: "undefined"
|
|
109
|
-
}, P = "browser",
|
|
107
|
+
}, P = "browser", z = "cpu", G = "device", B = "engine", N = "os", oe = "result", d = "name", s = "type", u = "vendor", l = "version", M = "architecture", be = "major", c = "model", Ie = "console", I = "mobile", k = "tablet", C = "smarttv", F = "wearable", ge = "xr", he = "embedded", tt = "fetcher", te = "inapp", i0 = "brands", Q = "formFactors", x0 = "fullVersionList", se = "platform", a0 = "platformVersion", Le = "bitness", J = "sec-ch-ua", it = J + "-full-version-list", xt = J + "-arch", at = J + "-" + Le, nt = J + "-form-factors", rt = J + "-" + I, ot = J + "-" + c, N0 = J + "-" + se, st = N0 + "-version", U0 = [i0, x0, I, c, se, a0, M, Q, Le], me = "Amazon", ie = "Apple", l0 = "ASUS", u0 = "BlackBerry", Z = "Google", p0 = "Huawei", Ve = "Lenovo", h0 = "Honor", ye = "LG", Ye = "Microsoft", ze = "Motorola", b0 = "Nvidia", f0 = "OnePlus", Ke = "OPPO", de = "Samsung", w0 = "Sharp", le = "Sony", We = "Xiaomi", je = "Zebra", g0 = "Chrome", m0 = "Chromium", W = "Chromecast", ke = "Edge", ue = "Firefox", xe = "Opera", qe = "Facebook", y0 = "Sogou", ae = "Mobile ", ne = " Browser", Qe = "Windows", ct = typeof window !== E.UNDEFINED, O = ct && window.navigator ? window.navigator : void 0, $ = O && O.userAgentData ? O.userAgentData : void 0, dt = function(x, t) {
|
|
110
108
|
var e = {}, i = t;
|
|
111
109
|
if (!De(t)) {
|
|
112
110
|
i = {};
|
|
113
|
-
for (var
|
|
114
|
-
for (var r in t[
|
|
115
|
-
i[r] = t[
|
|
111
|
+
for (var a in t)
|
|
112
|
+
for (var r in t[a])
|
|
113
|
+
i[r] = t[a][r].concat(i[r] ? i[r] : []);
|
|
116
114
|
}
|
|
117
115
|
for (var o in x)
|
|
118
116
|
e[o] = i[o] && i[o].length % 2 === 0 ? i[o].concat(x[o]) : x[o];
|
|
@@ -124,10 +122,10 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
124
122
|
}, $e = function(x, t) {
|
|
125
123
|
if (typeof x === E.OBJECT && x.length > 0) {
|
|
126
124
|
for (var e in x)
|
|
127
|
-
if (
|
|
125
|
+
if (j(t) == j(x[e])) return !0;
|
|
128
126
|
return !1;
|
|
129
127
|
}
|
|
130
|
-
return fe(x) ?
|
|
128
|
+
return fe(x) ? j(t) == j(x) : !1;
|
|
131
129
|
}, De = function(x, t) {
|
|
132
130
|
for (var e in x)
|
|
133
131
|
return /^(browser|cpu|device|engine|os)$/.test(e) || (t ? De(x[e]) : !1);
|
|
@@ -137,15 +135,15 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
137
135
|
if (x) {
|
|
138
136
|
for (var t = [], e = ce(/\\?\"/g, x).split(","), i = 0; i < e.length; i++)
|
|
139
137
|
if (e[i].indexOf(";") > -1) {
|
|
140
|
-
var
|
|
141
|
-
t[i] = { brand:
|
|
138
|
+
var a = Me(e[i]).split(";v=");
|
|
139
|
+
t[i] = { brand: a[0], version: a[1] };
|
|
142
140
|
} else
|
|
143
141
|
t[i] = Me(e[i]);
|
|
144
142
|
return t;
|
|
145
143
|
}
|
|
146
|
-
},
|
|
144
|
+
}, j = function(x) {
|
|
147
145
|
return fe(x) ? x.toLowerCase() : x;
|
|
148
|
-
},
|
|
146
|
+
}, e0 = function(x) {
|
|
149
147
|
return fe(x) ? ce(/[^\d\.]/g, x).split(".")[0] : void 0;
|
|
150
148
|
}, Y = function(x) {
|
|
151
149
|
for (var t in x)
|
|
@@ -160,14 +158,14 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
160
158
|
return ce(/\\?\"/g, x);
|
|
161
159
|
}, Me = function(x, t) {
|
|
162
160
|
return x = ce(/^\s\s*/, String(x)), typeof t === E.UNDEFINED ? x : x.substring(0, t);
|
|
163
|
-
},
|
|
161
|
+
}, t0 = function(x, t) {
|
|
164
162
|
if (!(!x || !t))
|
|
165
|
-
for (var e = 0, i,
|
|
166
|
-
var
|
|
167
|
-
for (i =
|
|
168
|
-
if (p =
|
|
163
|
+
for (var e = 0, i, a, r, o, p, h; e < t.length && !p; ) {
|
|
164
|
+
var v = t[e], S = t[e + 1];
|
|
165
|
+
for (i = a = 0; i < v.length && !p && v[i]; )
|
|
166
|
+
if (p = v[i++].exec(x), p)
|
|
169
167
|
for (r = 0; r < S.length; r++)
|
|
170
|
-
h = p[++
|
|
168
|
+
h = p[++a], o = S[r], typeof o === E.OBJECT && o.length > 0 ? o.length === 2 ? typeof o[1] == E.FUNCTION ? this[o[0]] = o[1].call(this, h) : this[o[0]] = o[1] : o.length >= 3 && (typeof o[1] === E.FUNCTION && !(o[1].exec && o[1].test) ? o.length > 3 ? this[o[0]] = h ? o[1].apply(this, o.slice(2)) : void 0 : this[o[0]] = h ? o[1].call(this, h, o[2]) : void 0 : o.length == 3 ? this[o[0]] = h ? h.replace(o[1], o[2]) : void 0 : o.length == 4 ? this[o[0]] = h ? o[3].call(this, h.replace(o[1], o[2])) : void 0 : o.length > 4 && (this[o[0]] = h ? o[3].apply(this, [h.replace(o[1], o[2])].concat(o.slice(4))) : void 0)) : this[o] = h || void 0;
|
|
171
169
|
e += 2;
|
|
172
170
|
}
|
|
173
171
|
}, U = function(x, t) {
|
|
@@ -175,11 +173,11 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
175
173
|
if (typeof t[e] === E.OBJECT && t[e].length > 0) {
|
|
176
174
|
for (var i = 0; i < t[e].length; i++)
|
|
177
175
|
if ($e(t[e][i], x))
|
|
178
|
-
return e ===
|
|
176
|
+
return e === d0 ? void 0 : e;
|
|
179
177
|
} else if ($e(t[e], x))
|
|
180
|
-
return e ===
|
|
178
|
+
return e === d0 ? void 0 : e;
|
|
181
179
|
return t.hasOwnProperty("*") ? t["*"] : x;
|
|
182
|
-
},
|
|
180
|
+
}, v0 = {
|
|
183
181
|
ME: "4.90",
|
|
184
182
|
"NT 3.51": "3.51",
|
|
185
183
|
"NT 4.0": "4.0",
|
|
@@ -191,7 +189,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
191
189
|
"8.1": "6.3",
|
|
192
190
|
10: ["6.4", "10.0"],
|
|
193
191
|
NT: ""
|
|
194
|
-
},
|
|
192
|
+
}, S0 = {
|
|
195
193
|
embedded: "Automotive",
|
|
196
194
|
mobile: "Mobile",
|
|
197
195
|
tablet: ["Tablet", "EInk"],
|
|
@@ -200,7 +198,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
200
198
|
xr: ["VR", "XR"],
|
|
201
199
|
"?": ["Desktop", "Unknown"],
|
|
202
200
|
"*": void 0
|
|
203
|
-
},
|
|
201
|
+
}, lt = {
|
|
204
202
|
Chrome: "Google Chrome",
|
|
205
203
|
Edge: "Microsoft Edge",
|
|
206
204
|
"Edge WebView2": "Microsoft Edge WebView2",
|
|
@@ -210,23 +208,23 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
210
208
|
"MIUI Browser": "Miui Browser",
|
|
211
209
|
"Opera Mobi": "OperaMobile",
|
|
212
210
|
Yandex: "YaBrowser"
|
|
213
|
-
},
|
|
211
|
+
}, I0 = {
|
|
214
212
|
browser: [
|
|
215
213
|
[
|
|
216
214
|
// Most common regardless engine
|
|
217
215
|
/\b(?:crmo|crios)\/([\w\.]+)/i
|
|
218
216
|
// Chrome for Android/iOS
|
|
219
217
|
],
|
|
220
|
-
[
|
|
218
|
+
[l, [d, ae + "Chrome"]],
|
|
221
219
|
[
|
|
222
220
|
/webview.+edge\/([\w\.]+)/i
|
|
223
221
|
// Microsoft Edge
|
|
224
222
|
],
|
|
225
|
-
[
|
|
223
|
+
[l, [d, ke + " WebView"]],
|
|
226
224
|
[
|
|
227
225
|
/edg(?:e|ios|a)?\/([\w\.]+)/i
|
|
228
226
|
],
|
|
229
|
-
[
|
|
227
|
+
[l, [d, "Edge"]],
|
|
230
228
|
[
|
|
231
229
|
// Presto based
|
|
232
230
|
/(opera mini)\/([-\w\.]+)/i,
|
|
@@ -236,33 +234,33 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
236
234
|
/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
|
|
237
235
|
// Opera
|
|
238
236
|
],
|
|
239
|
-
[
|
|
237
|
+
[d, l],
|
|
240
238
|
[
|
|
241
239
|
/opios[\/ ]+([\w\.]+)/i
|
|
242
240
|
// Opera mini on iphone >= 8.0
|
|
243
241
|
],
|
|
244
|
-
[
|
|
242
|
+
[l, [d, xe + " Mini"]],
|
|
245
243
|
[
|
|
246
244
|
/\bop(?:rg)?x\/([\w\.]+)/i
|
|
247
245
|
// Opera GX
|
|
248
246
|
],
|
|
249
|
-
[
|
|
247
|
+
[l, [d, xe + " GX"]],
|
|
250
248
|
[
|
|
251
249
|
/\bopr\/([\w\.]+)/i
|
|
252
250
|
// Opera Webkit
|
|
253
251
|
],
|
|
254
|
-
[
|
|
252
|
+
[l, [d, xe]],
|
|
255
253
|
[
|
|
256
254
|
// Mixed
|
|
257
255
|
/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
|
|
258
256
|
// Baidu
|
|
259
257
|
],
|
|
260
|
-
[
|
|
258
|
+
[l, [d, "Baidu"]],
|
|
261
259
|
[
|
|
262
260
|
/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i
|
|
263
261
|
// Maxthon
|
|
264
262
|
],
|
|
265
|
-
[
|
|
263
|
+
[l, [d, "Maxthon"]],
|
|
266
264
|
[
|
|
267
265
|
/(kindle)\/([\w\.]+)/i,
|
|
268
266
|
// Kindle
|
|
@@ -285,22 +283,22 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
285
283
|
/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i
|
|
286
284
|
// Ecosia/Weibo
|
|
287
285
|
],
|
|
288
|
-
[
|
|
286
|
+
[d, l],
|
|
289
287
|
[
|
|
290
288
|
/quark(?:pc)?\/([-\w\.]+)/i
|
|
291
289
|
// Quark
|
|
292
290
|
],
|
|
293
|
-
[
|
|
291
|
+
[l, [d, "Quark"]],
|
|
294
292
|
[
|
|
295
293
|
/\bddg\/([\w\.]+)/i
|
|
296
294
|
// DuckDuckGo
|
|
297
295
|
],
|
|
298
|
-
[
|
|
296
|
+
[l, [d, "DuckDuckGo"]],
|
|
299
297
|
[
|
|
300
298
|
/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
|
|
301
299
|
// UCBrowser
|
|
302
300
|
],
|
|
303
|
-
[
|
|
301
|
+
[l, [d, "UCBrowser"]],
|
|
304
302
|
[
|
|
305
303
|
/microm.+\bqbcore\/([\w\.]+)/i,
|
|
306
304
|
// WeChat Desktop for Windows Built-in Browser
|
|
@@ -308,107 +306,107 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
308
306
|
/micromessenger\/([\w\.]+)/i
|
|
309
307
|
// WeChat
|
|
310
308
|
],
|
|
311
|
-
[
|
|
309
|
+
[l, [d, "WeChat"]],
|
|
312
310
|
[
|
|
313
311
|
/konqueror\/([\w\.]+)/i
|
|
314
312
|
// Konqueror
|
|
315
313
|
],
|
|
316
|
-
[
|
|
314
|
+
[l, [d, "Konqueror"]],
|
|
317
315
|
[
|
|
318
316
|
/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
|
|
319
317
|
// IE11
|
|
320
318
|
],
|
|
321
|
-
[
|
|
319
|
+
[l, [d, "IE"]],
|
|
322
320
|
[
|
|
323
321
|
/ya(?:search)?browser\/([\w\.]+)/i
|
|
324
322
|
// Yandex
|
|
325
323
|
],
|
|
326
|
-
[
|
|
324
|
+
[l, [d, "Yandex"]],
|
|
327
325
|
[
|
|
328
326
|
/slbrowser\/([\w\.]+)/i
|
|
329
327
|
// Smart Lenovo Browser
|
|
330
328
|
],
|
|
331
|
-
[
|
|
329
|
+
[l, [d, "Smart " + Ve + ne]],
|
|
332
330
|
[
|
|
333
331
|
/(av(?:ast|g|ira))\/([\w\.]+)/i
|
|
334
332
|
// Avast/AVG/Avira Secure Browser
|
|
335
333
|
],
|
|
336
|
-
[[
|
|
334
|
+
[[d, /(.+)/, "$1 Secure" + ne], l],
|
|
337
335
|
[
|
|
338
336
|
/norton\/([\w\.]+)/i
|
|
339
337
|
// Norton Private Browser
|
|
340
338
|
],
|
|
341
|
-
[
|
|
339
|
+
[l, [d, "Norton Private" + ne]],
|
|
342
340
|
[
|
|
343
341
|
/\bfocus\/([\w\.]+)/i
|
|
344
342
|
// Firefox Focus
|
|
345
343
|
],
|
|
346
|
-
[
|
|
344
|
+
[l, [d, ue + " Focus"]],
|
|
347
345
|
[
|
|
348
346
|
/ mms\/([\w\.]+)$/i
|
|
349
347
|
// Opera Neon
|
|
350
348
|
],
|
|
351
|
-
[
|
|
349
|
+
[l, [d, xe + " Neon"]],
|
|
352
350
|
[
|
|
353
351
|
/ opt\/([\w\.]+)$/i
|
|
354
352
|
// Opera Touch
|
|
355
353
|
],
|
|
356
|
-
[
|
|
354
|
+
[l, [d, xe + " Touch"]],
|
|
357
355
|
[
|
|
358
356
|
/coc_coc\w+\/([\w\.]+)/i
|
|
359
357
|
// Coc Coc Browser
|
|
360
358
|
],
|
|
361
|
-
[
|
|
359
|
+
[l, [d, "Coc Coc"]],
|
|
362
360
|
[
|
|
363
361
|
/dolfin\/([\w\.]+)/i
|
|
364
362
|
// Dolphin
|
|
365
363
|
],
|
|
366
|
-
[
|
|
364
|
+
[l, [d, "Dolphin"]],
|
|
367
365
|
[
|
|
368
366
|
/coast\/([\w\.]+)/i
|
|
369
367
|
// Opera Coast
|
|
370
368
|
],
|
|
371
|
-
[
|
|
369
|
+
[l, [d, xe + " Coast"]],
|
|
372
370
|
[
|
|
373
371
|
/miuibrowser\/([\w\.]+)/i
|
|
374
372
|
// MIUI Browser
|
|
375
373
|
],
|
|
376
|
-
[
|
|
374
|
+
[l, [d, "MIUI" + ne]],
|
|
377
375
|
[
|
|
378
376
|
/fxios\/([\w\.-]+)/i
|
|
379
377
|
// Firefox for iOS
|
|
380
378
|
],
|
|
381
|
-
[
|
|
379
|
+
[l, [d, ae + ue]],
|
|
382
380
|
[
|
|
383
381
|
/\bqihoobrowser\/?([\w\.]*)/i
|
|
384
382
|
// 360
|
|
385
383
|
],
|
|
386
|
-
[
|
|
384
|
+
[l, [d, "360"]],
|
|
387
385
|
[
|
|
388
386
|
/\b(qq)\/([\w\.]+)/i
|
|
389
387
|
// QQ
|
|
390
388
|
],
|
|
391
|
-
[[
|
|
389
|
+
[[d, /(.+)/, "$1Browser"], l],
|
|
392
390
|
[
|
|
393
391
|
/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
|
|
394
392
|
],
|
|
395
|
-
[[
|
|
393
|
+
[[d, /(.+)/, "$1" + ne], l],
|
|
396
394
|
[
|
|
397
395
|
// Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
|
|
398
396
|
/samsungbrowser\/([\w\.]+)/i
|
|
399
397
|
// Samsung Internet
|
|
400
398
|
],
|
|
401
|
-
[
|
|
399
|
+
[l, [d, de + " Internet"]],
|
|
402
400
|
[
|
|
403
401
|
/metasr[\/ ]?([\d\.]+)/i
|
|
404
402
|
// Sogou Explorer
|
|
405
403
|
],
|
|
406
|
-
[
|
|
404
|
+
[l, [d, y0 + " Explorer"]],
|
|
407
405
|
[
|
|
408
406
|
/(sogou)mo\w+\/([\d\.]+)/i
|
|
409
407
|
// Sogou Mobile
|
|
410
408
|
],
|
|
411
|
-
[[
|
|
409
|
+
[[d, y0 + " Mobile"], l],
|
|
412
410
|
[
|
|
413
411
|
/(electron)\/([\w\.]+) safari/i,
|
|
414
412
|
// Electron-based App
|
|
@@ -417,23 +415,23 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
417
415
|
/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i
|
|
418
416
|
// QQ/2345
|
|
419
417
|
],
|
|
420
|
-
[
|
|
418
|
+
[d, l],
|
|
421
419
|
[
|
|
422
420
|
/(lbbrowser|luakit|rekonq|steam(?= (clie|tenf|gameo)))/i
|
|
423
421
|
// LieBao Browser/Luakit/Rekonq/Steam
|
|
424
422
|
],
|
|
425
|
-
[
|
|
423
|
+
[d],
|
|
426
424
|
[
|
|
427
425
|
/ome\/([\w\.]+).+(iron(?= saf)|360(?=[es]e$))/i
|
|
428
426
|
// Iron / 360
|
|
429
427
|
],
|
|
430
|
-
[
|
|
428
|
+
[l, d],
|
|
431
429
|
[
|
|
432
430
|
// WebView
|
|
433
431
|
/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
|
|
434
432
|
// Facebook App for iOS & Android
|
|
435
433
|
],
|
|
436
|
-
[[
|
|
434
|
+
[[d, qe], l, [s, te]],
|
|
437
435
|
[
|
|
438
436
|
/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
|
|
439
437
|
// Kakao App
|
|
@@ -454,111 +452,111 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
454
452
|
/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i
|
|
455
453
|
// Instagram/Snapchat/Klarna
|
|
456
454
|
],
|
|
457
|
-
[
|
|
455
|
+
[d, l, [s, te]],
|
|
458
456
|
[
|
|
459
457
|
/\bgsa\/([\w\.]+) .*safari\//i
|
|
460
458
|
// Google Search Appliance on iOS
|
|
461
459
|
],
|
|
462
|
-
[
|
|
460
|
+
[l, [d, "GSA"], [s, te]],
|
|
463
461
|
[
|
|
464
462
|
/(?:musical_ly|trill)(?:.+app_?version\/|_)([\w\.]+)/i
|
|
465
463
|
// TikTok
|
|
466
464
|
],
|
|
467
|
-
[
|
|
465
|
+
[l, [d, "TikTok"], [s, te]],
|
|
468
466
|
[
|
|
469
467
|
/\[(linkedin)app\]/i
|
|
470
468
|
// LinkedIn App for iOS & Android
|
|
471
469
|
],
|
|
472
|
-
[
|
|
470
|
+
[d, [s, te]],
|
|
473
471
|
[
|
|
474
472
|
/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i
|
|
475
473
|
// Zalo
|
|
476
474
|
],
|
|
477
|
-
[[
|
|
475
|
+
[[d, /(.+)/, "Zalo"], l, [s, te]],
|
|
478
476
|
[
|
|
479
477
|
/(chromium)[\/ ]([-\w\.]+)/i
|
|
480
478
|
// Chromium
|
|
481
479
|
],
|
|
482
|
-
[
|
|
480
|
+
[d, l],
|
|
483
481
|
[
|
|
484
482
|
/ome-(lighthouse)$/i
|
|
485
483
|
// Chrome Lighthouse
|
|
486
484
|
],
|
|
487
|
-
[
|
|
485
|
+
[d, [s, tt]],
|
|
488
486
|
[
|
|
489
487
|
/headlesschrome(?:\/([\w\.]+)| )/i
|
|
490
488
|
// Chrome Headless
|
|
491
489
|
],
|
|
492
|
-
[
|
|
490
|
+
[l, [d, g0 + " Headless"]],
|
|
493
491
|
[
|
|
494
492
|
/wv\).+chrome\/([\w\.]+).+edgw\//i
|
|
495
493
|
// Edge WebView2
|
|
496
494
|
],
|
|
497
|
-
[
|
|
495
|
+
[l, [d, ke + " WebView2"]],
|
|
498
496
|
[
|
|
499
497
|
/ wv\).+(chrome)\/([\w\.]+)/i
|
|
500
498
|
// Chrome WebView
|
|
501
499
|
],
|
|
502
|
-
[[
|
|
500
|
+
[[d, g0 + " WebView"], l],
|
|
503
501
|
[
|
|
504
502
|
/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
|
|
505
503
|
// Android Browser
|
|
506
504
|
],
|
|
507
|
-
[
|
|
505
|
+
[l, [d, "Android" + ne]],
|
|
508
506
|
[
|
|
509
507
|
/chrome\/([\w\.]+) mobile/i
|
|
510
508
|
// Chrome Mobile
|
|
511
509
|
],
|
|
512
|
-
[
|
|
510
|
+
[l, [d, ae + "Chrome"]],
|
|
513
511
|
[
|
|
514
512
|
/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
|
|
515
513
|
// Chrome/OmniWeb/Arora/Tizen/Nokia
|
|
516
514
|
],
|
|
517
|
-
[
|
|
515
|
+
[d, l],
|
|
518
516
|
[
|
|
519
517
|
/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i
|
|
520
518
|
// Safari Mobile
|
|
521
519
|
],
|
|
522
|
-
[
|
|
520
|
+
[l, [d, ae + "Safari"]],
|
|
523
521
|
[
|
|
524
522
|
/iphone .*mobile(?:\/\w+ | ?)safari/i
|
|
525
523
|
],
|
|
526
|
-
[[
|
|
524
|
+
[[d, ae + "Safari"]],
|
|
527
525
|
[
|
|
528
526
|
/version\/([\w\.\,]+) .*(safari)/i
|
|
529
527
|
// Safari
|
|
530
528
|
],
|
|
531
|
-
[
|
|
529
|
+
[l, d],
|
|
532
530
|
[
|
|
533
531
|
/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
|
|
534
532
|
// Safari < 3.0
|
|
535
533
|
],
|
|
536
|
-
[
|
|
534
|
+
[d, [l, "1"]],
|
|
537
535
|
[
|
|
538
536
|
/(webkit|khtml)\/([\w\.]+)/i
|
|
539
537
|
],
|
|
540
|
-
[
|
|
538
|
+
[d, l],
|
|
541
539
|
[
|
|
542
540
|
// Gecko based
|
|
543
541
|
/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i
|
|
544
542
|
// Firefox Mobile
|
|
545
543
|
],
|
|
546
|
-
[[
|
|
544
|
+
[[d, ae + ue], l],
|
|
547
545
|
[
|
|
548
546
|
/(navigator|netscape\d?)\/([-\w\.]+)/i
|
|
549
547
|
// Netscape
|
|
550
548
|
],
|
|
551
|
-
[[
|
|
549
|
+
[[d, "Netscape"], l],
|
|
552
550
|
[
|
|
553
551
|
/(wolvic|librewolf)\/([\w\.]+)/i
|
|
554
552
|
// Wolvic/LibreWolf
|
|
555
553
|
],
|
|
556
|
-
[
|
|
554
|
+
[d, l],
|
|
557
555
|
[
|
|
558
556
|
/mobile vr; rv:([\w\.]+)\).+firefox/i
|
|
559
557
|
// Firefox Reality
|
|
560
558
|
],
|
|
561
|
-
[
|
|
559
|
+
[l, [d, ue + " Reality"]],
|
|
562
560
|
[
|
|
563
561
|
/ekiohf.+(flow)\/([\w\.]+)/i,
|
|
564
562
|
// Flow
|
|
@@ -578,12 +576,12 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
578
576
|
/\b(links) \(([\w\.]+)/i
|
|
579
577
|
// Links
|
|
580
578
|
],
|
|
581
|
-
[
|
|
579
|
+
[d, [l, /_/g, "."]],
|
|
582
580
|
[
|
|
583
581
|
/(cobalt)\/([\w\.]+)/i
|
|
584
582
|
// Cobalt
|
|
585
583
|
],
|
|
586
|
-
[
|
|
584
|
+
[d, [l, /[^\d\.]+./, re]]
|
|
587
585
|
],
|
|
588
586
|
cpu: [
|
|
589
587
|
[
|
|
@@ -626,7 +624,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
626
624
|
/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i
|
|
627
625
|
// Alpha
|
|
628
626
|
],
|
|
629
|
-
[[M, /ower/, re,
|
|
627
|
+
[[M, /ower/, re, j]],
|
|
630
628
|
[
|
|
631
629
|
/mc680.0/i
|
|
632
630
|
],
|
|
@@ -644,13 +642,13 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
644
642
|
// Samsung
|
|
645
643
|
/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
|
|
646
644
|
],
|
|
647
|
-
[c, [u,
|
|
645
|
+
[c, [u, de], [s, k]],
|
|
648
646
|
[
|
|
649
647
|
/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
|
|
650
648
|
/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,
|
|
651
649
|
/sec-(sgh\w+)/i
|
|
652
650
|
],
|
|
653
|
-
[c, [u,
|
|
651
|
+
[c, [u, de], [s, I]],
|
|
654
652
|
[
|
|
655
653
|
// Apple
|
|
656
654
|
/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i
|
|
@@ -671,33 +669,33 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
671
669
|
// Sharp
|
|
672
670
|
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i
|
|
673
671
|
],
|
|
674
|
-
[c, [u,
|
|
672
|
+
[c, [u, w0], [s, I]],
|
|
675
673
|
[
|
|
676
674
|
// Honor
|
|
677
675
|
/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
|
|
678
676
|
],
|
|
679
|
-
[c, [u,
|
|
677
|
+
[c, [u, h0], [s, k]],
|
|
680
678
|
[
|
|
681
679
|
/honor([-\w ]+)[;\)]/i
|
|
682
680
|
],
|
|
683
|
-
[c, [u,
|
|
681
|
+
[c, [u, h0], [s, I]],
|
|
684
682
|
[
|
|
685
683
|
// Huawei
|
|
686
684
|
/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i
|
|
687
685
|
],
|
|
688
|
-
[c, [u,
|
|
686
|
+
[c, [u, p0], [s, k]],
|
|
689
687
|
[
|
|
690
688
|
/(?:huawei) ?([-\w ]+)[;\)]/i,
|
|
691
689
|
/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i
|
|
692
690
|
],
|
|
693
|
-
[c, [u,
|
|
691
|
+
[c, [u, p0], [s, I]],
|
|
694
692
|
[
|
|
695
693
|
// Xiaomi
|
|
696
694
|
/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
|
|
697
695
|
/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
|
|
698
696
|
// Mi Pad tablets
|
|
699
697
|
],
|
|
700
|
-
[[c, /_/g, " "], [u,
|
|
698
|
+
[[c, /_/g, " "], [u, We], [s, k]],
|
|
701
699
|
[
|
|
702
700
|
/\b; (\w+) build\/hm\1/i,
|
|
703
701
|
// Xiaomi Hongmi 'numeric' models
|
|
@@ -709,23 +707,23 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
709
707
|
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,
|
|
710
708
|
/ ([\w ]+) miui\/v?\d/i
|
|
711
709
|
],
|
|
712
|
-
[[c, /_/g, " "], [u,
|
|
710
|
+
[[c, /_/g, " "], [u, We], [s, I]],
|
|
713
711
|
[
|
|
714
712
|
// OnePlus
|
|
715
713
|
/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-l]\w[1m]10)\b/i,
|
|
716
714
|
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
|
|
717
715
|
],
|
|
718
|
-
[c, [u,
|
|
716
|
+
[c, [u, f0], [s, I]],
|
|
719
717
|
[
|
|
720
718
|
// OPPO
|
|
721
719
|
/; (\w+) bui.+ oppo/i,
|
|
722
720
|
/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
|
|
723
721
|
],
|
|
724
|
-
[c, [u,
|
|
722
|
+
[c, [u, Ke], [s, I]],
|
|
725
723
|
[
|
|
726
724
|
/\b(opd2(\d{3}a?))(?: bui|\))/i
|
|
727
725
|
],
|
|
728
|
-
[c, [u, U, { OnePlus: ["203", "304", "403", "404", "413", "415"], "*":
|
|
726
|
+
[c, [u, U, { OnePlus: ["203", "304", "403", "404", "413", "415"], "*": Ke }], [s, k]],
|
|
729
727
|
[
|
|
730
728
|
// BLU
|
|
731
729
|
/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i
|
|
@@ -759,11 +757,11 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
759
757
|
/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,
|
|
760
758
|
/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i
|
|
761
759
|
],
|
|
762
|
-
[c, [u,
|
|
760
|
+
[c, [u, ze], [s, I]],
|
|
763
761
|
[
|
|
764
762
|
/\b(mz60\d|xoom[2 ]{0,2}) build\//i
|
|
765
763
|
],
|
|
766
|
-
[c, [u,
|
|
764
|
+
[c, [u, ze], [s, k]],
|
|
767
765
|
[
|
|
768
766
|
// LG
|
|
769
767
|
/\b(?:lg)?([vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
|
|
@@ -790,12 +788,12 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
790
788
|
/(pixel (c|tablet))\b/i
|
|
791
789
|
// Google Pixel C/Tablet
|
|
792
790
|
],
|
|
793
|
-
[c, [u,
|
|
791
|
+
[c, [u, Z], [s, k]],
|
|
794
792
|
[
|
|
795
793
|
// Google Pixel
|
|
796
794
|
/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i
|
|
797
795
|
],
|
|
798
|
-
[c, [u,
|
|
796
|
+
[c, [u, Z], [s, I]],
|
|
799
797
|
[
|
|
800
798
|
/(google) (pixelbook( go)?)/i
|
|
801
799
|
],
|
|
@@ -804,12 +802,12 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
804
802
|
// Sony
|
|
805
803
|
/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
|
|
806
804
|
],
|
|
807
|
-
[c, [u,
|
|
805
|
+
[c, [u, le], [s, I]],
|
|
808
806
|
[
|
|
809
807
|
/sony tablet [ps]/i,
|
|
810
808
|
/\b(?:sony)?sgp\w+(?: bui|\))/i
|
|
811
809
|
],
|
|
812
|
-
[[c, "Xperia Tablet"], [u,
|
|
810
|
+
[[c, "Xperia Tablet"], [u, le], [s, k]],
|
|
813
811
|
[
|
|
814
812
|
// Amazon
|
|
815
813
|
/(alexa)webm/i,
|
|
@@ -834,16 +832,16 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
834
832
|
/\b((?:bb[a-f]|st[hv])100-\d)/i,
|
|
835
833
|
/(?:blackberry|\(bb10;) (\w+)/i
|
|
836
834
|
],
|
|
837
|
-
[c, [u,
|
|
835
|
+
[c, [u, u0], [s, I]],
|
|
838
836
|
[
|
|
839
837
|
// Asus
|
|
840
838
|
/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
|
|
841
839
|
],
|
|
842
|
-
[c, [u,
|
|
840
|
+
[c, [u, l0], [s, k]],
|
|
843
841
|
[
|
|
844
842
|
/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
|
|
845
843
|
],
|
|
846
|
-
[c, [u,
|
|
844
|
+
[c, [u, l0], [s, I]],
|
|
847
845
|
[
|
|
848
846
|
// HTC
|
|
849
847
|
/(nexus 9)/i
|
|
@@ -873,7 +871,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
873
871
|
// itel
|
|
874
872
|
/(itel) ((\w+))/i
|
|
875
873
|
],
|
|
876
|
-
[[u,
|
|
874
|
+
[[u, j], c, [s, U, { tablet: ["p10001l", "w7001"], "*": "mobile" }]],
|
|
877
875
|
[
|
|
878
876
|
// Acer
|
|
879
877
|
/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
|
|
@@ -976,7 +974,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
976
974
|
/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i
|
|
977
975
|
// Nvidia Tablets
|
|
978
976
|
],
|
|
979
|
-
[c, [u,
|
|
977
|
+
[c, [u, b0], [s, k]],
|
|
980
978
|
[
|
|
981
979
|
/(sprint) (\w+)/i
|
|
982
980
|
// Sprint Phones
|
|
@@ -991,11 +989,11 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
991
989
|
/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
|
|
992
990
|
// Zebra
|
|
993
991
|
],
|
|
994
|
-
[c, [u,
|
|
992
|
+
[c, [u, je], [s, k]],
|
|
995
993
|
[
|
|
996
994
|
/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
|
|
997
995
|
],
|
|
998
|
-
[c, [u,
|
|
996
|
+
[c, [u, je], [s, I]],
|
|
999
997
|
[
|
|
1000
998
|
///////////////////
|
|
1001
999
|
// SMARTTVS
|
|
@@ -1005,90 +1003,90 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1005
1003
|
/smart-tv.+(samsung)/i
|
|
1006
1004
|
// Samsung
|
|
1007
1005
|
],
|
|
1008
|
-
[u, [s,
|
|
1006
|
+
[u, [s, C]],
|
|
1009
1007
|
[
|
|
1010
1008
|
/hbbtv.+maple;(\d+)/i
|
|
1011
1009
|
],
|
|
1012
|
-
[[c, /^/, "SmartTV"], [u,
|
|
1010
|
+
[[c, /^/, "SmartTV"], [u, de], [s, C]],
|
|
1013
1011
|
[
|
|
1014
1012
|
/(vizio)(?: |.+model\/)(\w+-\w+)/i,
|
|
1015
1013
|
// Vizio
|
|
1016
1014
|
/tcast.+(lg)e?. ([-\w]+)/i
|
|
1017
1015
|
// LG SmartTV
|
|
1018
1016
|
],
|
|
1019
|
-
[u, c, [s,
|
|
1017
|
+
[u, c, [s, C]],
|
|
1020
1018
|
[
|
|
1021
1019
|
/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
|
|
1022
1020
|
],
|
|
1023
|
-
[[u, ye], [s,
|
|
1021
|
+
[[u, ye], [s, C]],
|
|
1024
1022
|
[
|
|
1025
1023
|
/(apple) ?tv/i
|
|
1026
1024
|
// Apple TV
|
|
1027
1025
|
],
|
|
1028
|
-
[u, [c, ie + " TV"], [s,
|
|
1026
|
+
[u, [c, ie + " TV"], [s, C]],
|
|
1029
1027
|
[
|
|
1030
1028
|
/crkey.*devicetype\/chromecast/i
|
|
1031
1029
|
// Google Chromecast Third Generation
|
|
1032
1030
|
],
|
|
1033
|
-
[[c,
|
|
1031
|
+
[[c, W + " Third Generation"], [u, Z], [s, C]],
|
|
1034
1032
|
[
|
|
1035
1033
|
/crkey.*devicetype\/([^/]*)/i
|
|
1036
1034
|
// Google Chromecast with specific device type
|
|
1037
1035
|
],
|
|
1038
|
-
[[c, /^/, "Chromecast "], [u,
|
|
1036
|
+
[[c, /^/, "Chromecast "], [u, Z], [s, C]],
|
|
1039
1037
|
[
|
|
1040
1038
|
/fuchsia.*crkey/i
|
|
1041
1039
|
// Google Chromecast Nest Hub
|
|
1042
1040
|
],
|
|
1043
|
-
[[c,
|
|
1041
|
+
[[c, W + " Nest Hub"], [u, Z], [s, C]],
|
|
1044
1042
|
[
|
|
1045
1043
|
/crkey/i
|
|
1046
1044
|
// Google Chromecast, Linux-based or unknown
|
|
1047
1045
|
],
|
|
1048
|
-
[[c,
|
|
1046
|
+
[[c, W], [u, Z], [s, C]],
|
|
1049
1047
|
[
|
|
1050
1048
|
/(portaltv)/i
|
|
1051
1049
|
// Facebook Portal TV
|
|
1052
1050
|
],
|
|
1053
|
-
[c, [u,
|
|
1051
|
+
[c, [u, qe], [s, C]],
|
|
1054
1052
|
[
|
|
1055
1053
|
/droid.+aft(\w+)( bui|\))/i
|
|
1056
1054
|
// Fire TV
|
|
1057
1055
|
],
|
|
1058
|
-
[c, [u, me], [s,
|
|
1056
|
+
[c, [u, me], [s, C]],
|
|
1059
1057
|
[
|
|
1060
1058
|
/(shield \w+ tv)/i
|
|
1061
1059
|
// Nvidia Shield TV
|
|
1062
1060
|
],
|
|
1063
|
-
[c, [u,
|
|
1061
|
+
[c, [u, b0], [s, C]],
|
|
1064
1062
|
[
|
|
1065
1063
|
/\(dtv[\);].+(aquos)/i,
|
|
1066
1064
|
/(aquos-tv[\w ]+)\)/i
|
|
1067
1065
|
// Sharp
|
|
1068
1066
|
],
|
|
1069
|
-
[c, [u,
|
|
1067
|
+
[c, [u, w0], [s, C]],
|
|
1070
1068
|
[
|
|
1071
1069
|
/(bravia[\w ]+)( bui|\))/i
|
|
1072
1070
|
// Sony
|
|
1073
1071
|
],
|
|
1074
|
-
[c, [u,
|
|
1072
|
+
[c, [u, le], [s, C]],
|
|
1075
1073
|
[
|
|
1076
1074
|
/(mi(tv|box)-?\w+) bui/i
|
|
1077
1075
|
// Xiaomi
|
|
1078
1076
|
],
|
|
1079
|
-
[c, [u,
|
|
1077
|
+
[c, [u, We], [s, C]],
|
|
1080
1078
|
[
|
|
1081
1079
|
/Hbbtv.*(technisat) (.*);/i
|
|
1082
1080
|
// TechniSAT
|
|
1083
1081
|
],
|
|
1084
|
-
[u, c, [s,
|
|
1082
|
+
[u, c, [s, C]],
|
|
1085
1083
|
[
|
|
1086
1084
|
/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
|
|
1087
1085
|
// Roku
|
|
1088
1086
|
/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
|
|
1089
1087
|
// HbbTV devices
|
|
1090
1088
|
],
|
|
1091
|
-
[[u, /.+\/(\w+)/, "$1", U, { LG: "lge" }], [c, Me], [s,
|
|
1089
|
+
[[u, /.+\/(\w+)/, "$1", U, { LG: "lge" }], [c, Me], [s, C]],
|
|
1092
1090
|
[
|
|
1093
1091
|
///////////////////
|
|
1094
1092
|
// CONSOLES
|
|
@@ -1096,12 +1094,12 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1096
1094
|
/(playstation \w+)/i
|
|
1097
1095
|
// Playstation
|
|
1098
1096
|
],
|
|
1099
|
-
[c, [u,
|
|
1097
|
+
[c, [u, le], [s, Ie]],
|
|
1100
1098
|
[
|
|
1101
1099
|
/\b(xbox(?: one)?(?!; xbox))[\); ]/i
|
|
1102
1100
|
// Microsoft Xbox
|
|
1103
1101
|
],
|
|
1104
|
-
[c, [u, Ye], [s,
|
|
1102
|
+
[c, [u, Ye], [s, Ie]],
|
|
1105
1103
|
[
|
|
1106
1104
|
/(ouya)/i,
|
|
1107
1105
|
// Ouya
|
|
@@ -1113,7 +1111,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1113
1111
|
/droid.+; ((shield|rgcube|gr0006))( bui|\))/i
|
|
1114
1112
|
// Nvidia Portable/Anbernic/Logitech
|
|
1115
1113
|
],
|
|
1116
|
-
[[u, U, { Nvidia: "Shield", Anbernic: "RGCUBE", Logitech: "GR0006" }], c, [s,
|
|
1114
|
+
[[u, U, { Nvidia: "Shield", Anbernic: "RGCUBE", Logitech: "GR0006" }], c, [s, Ie]],
|
|
1117
1115
|
[
|
|
1118
1116
|
///////////////////
|
|
1119
1117
|
// WEARABLES
|
|
@@ -1121,7 +1119,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1121
1119
|
/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
|
|
1122
1120
|
// Samsung Galaxy Watch
|
|
1123
1121
|
],
|
|
1124
|
-
[c, [u,
|
|
1122
|
+
[c, [u, de], [s, F]],
|
|
1125
1123
|
[
|
|
1126
1124
|
/((pebble))app/i,
|
|
1127
1125
|
// Pebble
|
|
@@ -1133,7 +1131,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1133
1131
|
/(ow(?:19|20)?we?[1-3]{1,3})/i
|
|
1134
1132
|
// Oppo Watch
|
|
1135
1133
|
],
|
|
1136
|
-
[c, [u,
|
|
1134
|
+
[c, [u, Ke], [s, F]],
|
|
1137
1135
|
[
|
|
1138
1136
|
/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
|
|
1139
1137
|
// Apple Watch
|
|
@@ -1143,17 +1141,17 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1143
1141
|
/(opwwe\d{3})/i
|
|
1144
1142
|
// OnePlus Watch
|
|
1145
1143
|
],
|
|
1146
|
-
[c, [u,
|
|
1144
|
+
[c, [u, f0], [s, F]],
|
|
1147
1145
|
[
|
|
1148
1146
|
/(moto 360)/i
|
|
1149
1147
|
// Motorola 360
|
|
1150
1148
|
],
|
|
1151
|
-
[c, [u,
|
|
1149
|
+
[c, [u, ze], [s, F]],
|
|
1152
1150
|
[
|
|
1153
1151
|
/(smartwatch 3)/i
|
|
1154
1152
|
// Sony SmartWatch
|
|
1155
1153
|
],
|
|
1156
|
-
[c, [u,
|
|
1154
|
+
[c, [u, le], [s, F]],
|
|
1157
1155
|
[
|
|
1158
1156
|
/(g watch r)/i
|
|
1159
1157
|
// LG G Watch R
|
|
@@ -1162,7 +1160,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1162
1160
|
[
|
|
1163
1161
|
/droid.+; (wt63?0{2,3})\)/i
|
|
1164
1162
|
],
|
|
1165
|
-
[c, [u,
|
|
1163
|
+
[c, [u, je], [s, F]],
|
|
1166
1164
|
[
|
|
1167
1165
|
///////////////////
|
|
1168
1166
|
// XR
|
|
@@ -1170,7 +1168,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1170
1168
|
/droid.+; (glass) \d/i
|
|
1171
1169
|
// Google Glass
|
|
1172
1170
|
],
|
|
1173
|
-
[c, [u,
|
|
1171
|
+
[c, [u, Z], [s, ge]],
|
|
1174
1172
|
[
|
|
1175
1173
|
/(pico) ([\w ]+) os\d/i
|
|
1176
1174
|
// Pico
|
|
@@ -1180,7 +1178,7 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1180
1178
|
/(quest( \d| pro)?s?).+vr/i
|
|
1181
1179
|
// Meta Quest
|
|
1182
1180
|
],
|
|
1183
|
-
[c, [u,
|
|
1181
|
+
[c, [u, qe], [s, ge]],
|
|
1184
1182
|
[
|
|
1185
1183
|
/mobile vr; rv.+firefox/i
|
|
1186
1184
|
// Unidentifiable VR device using Firefox Reality / Wolvic
|
|
@@ -1216,11 +1214,11 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1216
1214
|
/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i
|
|
1217
1215
|
// Unidentifiable SmartTV
|
|
1218
1216
|
],
|
|
1219
|
-
[c, [s,
|
|
1217
|
+
[c, [s, C]],
|
|
1220
1218
|
[
|
|
1221
1219
|
/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i
|
|
1222
1220
|
],
|
|
1223
|
-
[[s,
|
|
1221
|
+
[[s, C]],
|
|
1224
1222
|
[
|
|
1225
1223
|
/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i
|
|
1226
1224
|
],
|
|
@@ -1246,17 +1244,17 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1246
1244
|
/windows.+ edge\/([\w\.]+)/i
|
|
1247
1245
|
// EdgeHTML
|
|
1248
1246
|
],
|
|
1249
|
-
[
|
|
1247
|
+
[l, [d, ke + "HTML"]],
|
|
1250
1248
|
[
|
|
1251
1249
|
/(arkweb)\/([\w\.]+)/i
|
|
1252
1250
|
// ArkWeb
|
|
1253
1251
|
],
|
|
1254
|
-
[
|
|
1252
|
+
[d, l],
|
|
1255
1253
|
[
|
|
1256
1254
|
/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
|
|
1257
1255
|
// Blink
|
|
1258
1256
|
],
|
|
1259
|
-
[
|
|
1257
|
+
[l, [d, "Blink"]],
|
|
1260
1258
|
[
|
|
1261
1259
|
/(presto)\/([\w\.]+)/i,
|
|
1262
1260
|
// Presto
|
|
@@ -1271,16 +1269,16 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1271
1269
|
/\b(libweb)/i
|
|
1272
1270
|
// LibWeb
|
|
1273
1271
|
],
|
|
1274
|
-
[
|
|
1272
|
+
[d, l],
|
|
1275
1273
|
[
|
|
1276
1274
|
/ladybird\//i
|
|
1277
1275
|
],
|
|
1278
|
-
[[
|
|
1276
|
+
[[d, "LibWeb"]],
|
|
1279
1277
|
[
|
|
1280
1278
|
/rv\:([\w\.]{1,9})\b.+(gecko)/i
|
|
1281
1279
|
// Gecko
|
|
1282
1280
|
],
|
|
1283
|
-
[
|
|
1281
|
+
[l, d]
|
|
1284
1282
|
],
|
|
1285
1283
|
os: [
|
|
1286
1284
|
[
|
|
@@ -1288,24 +1286,24 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1288
1286
|
/(windows nt) (6\.[23]); arm/i
|
|
1289
1287
|
// Windows RT
|
|
1290
1288
|
],
|
|
1291
|
-
[[
|
|
1289
|
+
[[d, /N/, "R"], [l, U, v0]],
|
|
1292
1290
|
[
|
|
1293
1291
|
/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,
|
|
1294
1292
|
// Windows IoT/Mobile/Phone
|
|
1295
1293
|
// Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11
|
|
1296
1294
|
/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i
|
|
1297
1295
|
],
|
|
1298
|
-
[
|
|
1296
|
+
[d, l],
|
|
1299
1297
|
[
|
|
1300
1298
|
/windows nt ?([\d\.\)]*)(?!.+xbox)/i,
|
|
1301
1299
|
/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i
|
|
1302
1300
|
],
|
|
1303
|
-
[[
|
|
1301
|
+
[[l, /(;|\))/g, "", U, v0], [d, Qe]],
|
|
1304
1302
|
[
|
|
1305
1303
|
/(windows ce)\/?([\d\.]*)/i
|
|
1306
1304
|
// Windows CE
|
|
1307
1305
|
],
|
|
1308
|
-
[
|
|
1306
|
+
[d, l],
|
|
1309
1307
|
[
|
|
1310
1308
|
// iOS/macOS
|
|
1311
1309
|
/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
|
|
@@ -1314,100 +1312,100 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1314
1312
|
/\btvos ?([\w\.]+)/i,
|
|
1315
1313
|
/cfnetwork\/.+darwin/i
|
|
1316
1314
|
],
|
|
1317
|
-
[[
|
|
1315
|
+
[[l, /_/g, "."], [d, "iOS"]],
|
|
1318
1316
|
[
|
|
1319
1317
|
/(mac os x) ?([\w\. ]*)/i,
|
|
1320
1318
|
/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i
|
|
1321
1319
|
// Mac OS
|
|
1322
1320
|
],
|
|
1323
|
-
[[
|
|
1321
|
+
[[d, "macOS"], [l, /_/g, "."]],
|
|
1324
1322
|
[
|
|
1325
1323
|
// Google Chromecast
|
|
1326
1324
|
/android ([\d\.]+).*crkey/i
|
|
1327
1325
|
// Google Chromecast, Android-based
|
|
1328
1326
|
],
|
|
1329
|
-
[
|
|
1327
|
+
[l, [d, W + " Android"]],
|
|
1330
1328
|
[
|
|
1331
1329
|
/fuchsia.*crkey\/([\d\.]+)/i
|
|
1332
1330
|
// Google Chromecast, Fuchsia-based
|
|
1333
1331
|
],
|
|
1334
|
-
[
|
|
1332
|
+
[l, [d, W + " Fuchsia"]],
|
|
1335
1333
|
[
|
|
1336
1334
|
/crkey\/([\d\.]+).*devicetype\/smartspeaker/i
|
|
1337
1335
|
// Google Chromecast, Linux-based Smart Speaker
|
|
1338
1336
|
],
|
|
1339
|
-
[
|
|
1337
|
+
[l, [d, W + " SmartSpeaker"]],
|
|
1340
1338
|
[
|
|
1341
1339
|
/linux.*crkey\/([\d\.]+)/i
|
|
1342
1340
|
// Google Chromecast, Legacy Linux-based
|
|
1343
1341
|
],
|
|
1344
|
-
[
|
|
1342
|
+
[l, [d, W + " Linux"]],
|
|
1345
1343
|
[
|
|
1346
1344
|
/crkey\/([\d\.]+)/i
|
|
1347
1345
|
// Google Chromecast, unknown
|
|
1348
1346
|
],
|
|
1349
|
-
[
|
|
1347
|
+
[l, [d, W]],
|
|
1350
1348
|
[
|
|
1351
1349
|
// Mobile OSes
|
|
1352
1350
|
/droid ([\w\.]+)\b.+(android[- ]x86)/i
|
|
1353
1351
|
// Android-x86
|
|
1354
1352
|
],
|
|
1355
|
-
[
|
|
1353
|
+
[l, d],
|
|
1356
1354
|
[
|
|
1357
1355
|
/(ubuntu) ([\w\.]+) like android/i
|
|
1358
1356
|
// Ubuntu Touch
|
|
1359
1357
|
],
|
|
1360
|
-
[[
|
|
1358
|
+
[[d, /(.+)/, "$1 Touch"], l],
|
|
1361
1359
|
[
|
|
1362
1360
|
/(harmonyos)[\/ ]?([\d\.]*)/i,
|
|
1363
1361
|
// HarmonyOS
|
|
1364
1362
|
// Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
|
|
1365
1363
|
/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i
|
|
1366
1364
|
],
|
|
1367
|
-
[
|
|
1365
|
+
[d, l],
|
|
1368
1366
|
[
|
|
1369
1367
|
/\(bb(10);/i
|
|
1370
1368
|
// BlackBerry 10
|
|
1371
1369
|
],
|
|
1372
|
-
[
|
|
1370
|
+
[l, [d, u0]],
|
|
1373
1371
|
[
|
|
1374
1372
|
/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i
|
|
1375
1373
|
// Symbian
|
|
1376
1374
|
],
|
|
1377
|
-
[
|
|
1375
|
+
[l, [d, "Symbian"]],
|
|
1378
1376
|
[
|
|
1379
1377
|
/mozilla\/[\d\.]+ \((?:mobile[;\w ]*|tablet|tv|[^\)]*(?:viera|lg(?:l25|-d300)|alcatel ?o.+|y300-f1)); rv:([\w\.]+)\).+gecko\//i
|
|
1380
1378
|
// Firefox OS
|
|
1381
1379
|
],
|
|
1382
|
-
[
|
|
1380
|
+
[l, [d, ue + " OS"]],
|
|
1383
1381
|
[
|
|
1384
1382
|
/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,
|
|
1385
1383
|
// WebOS
|
|
1386
1384
|
/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i
|
|
1387
1385
|
],
|
|
1388
|
-
[
|
|
1386
|
+
[l, [d, "webOS"]],
|
|
1389
1387
|
[
|
|
1390
1388
|
/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i
|
|
1391
1389
|
// https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine
|
|
1392
1390
|
],
|
|
1393
|
-
[[
|
|
1391
|
+
[[l, U, { 25: "120", 24: "108", 23: "94", 22: "87", 6: "79", 5: "68", 4: "53", 3: "38", 2: "538", 1: "537", "*": "TV" }], [d, "webOS"]],
|
|
1394
1392
|
[
|
|
1395
1393
|
/watch(?: ?os[,\/ ]|\d,\d\/)([\d\.]+)/i
|
|
1396
1394
|
// watchOS
|
|
1397
1395
|
],
|
|
1398
|
-
[
|
|
1396
|
+
[l, [d, "watchOS"]],
|
|
1399
1397
|
[
|
|
1400
1398
|
// Google ChromeOS
|
|
1401
1399
|
/cros [\w]+(?:\)| ([\w\.]+)\b)/i
|
|
1402
1400
|
// Chromium OS
|
|
1403
1401
|
],
|
|
1404
|
-
[
|
|
1402
|
+
[l, [d, "Chrome OS"]],
|
|
1405
1403
|
[
|
|
1406
1404
|
// Smart TVs
|
|
1407
1405
|
/kepler ([\w\.]+); (aft|aeo)/i
|
|
1408
1406
|
// Vega OS
|
|
1409
1407
|
],
|
|
1410
|
-
[
|
|
1408
|
+
[l, [d, "Vega OS"]],
|
|
1411
1409
|
[
|
|
1412
1410
|
/(netrange)mmh/i,
|
|
1413
1411
|
// Netrange
|
|
@@ -1442,59 +1440,59 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1442
1440
|
/(haiku) ?(r\d)?/i
|
|
1443
1441
|
// Haiku
|
|
1444
1442
|
],
|
|
1445
|
-
[
|
|
1443
|
+
[d, l],
|
|
1446
1444
|
[
|
|
1447
1445
|
/(sunos) ?([\d\.]*)/i
|
|
1448
1446
|
// Solaris
|
|
1449
1447
|
],
|
|
1450
|
-
[[
|
|
1448
|
+
[[d, "Solaris"], l],
|
|
1451
1449
|
[
|
|
1452
1450
|
/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,
|
|
1453
1451
|
// BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS
|
|
1454
1452
|
/(unix) ?([\w\.]*)/i
|
|
1455
1453
|
// UNIX
|
|
1456
1454
|
],
|
|
1457
|
-
[
|
|
1455
|
+
[d, l]
|
|
1458
1456
|
]
|
|
1459
1457
|
}, ve = (function() {
|
|
1460
1458
|
var x = { init: {}, isIgnore: {}, isIgnoreRgx: {}, toString: {} };
|
|
1461
1459
|
return Y.call(x.init, [
|
|
1462
|
-
[P, [
|
|
1463
|
-
[
|
|
1464
|
-
[
|
|
1465
|
-
[B, [
|
|
1466
|
-
[N, [
|
|
1460
|
+
[P, [d, l, be, s]],
|
|
1461
|
+
[z, [M]],
|
|
1462
|
+
[G, [s, c, u]],
|
|
1463
|
+
[B, [d, l]],
|
|
1464
|
+
[N, [d, l]]
|
|
1467
1465
|
]), Y.call(x.isIgnore, [
|
|
1468
|
-
[P, [
|
|
1469
|
-
[B, [
|
|
1470
|
-
[N, [
|
|
1466
|
+
[P, [l, be]],
|
|
1467
|
+
[B, [l]],
|
|
1468
|
+
[N, [l]]
|
|
1471
1469
|
]), Y.call(x.isIgnoreRgx, [
|
|
1472
1470
|
[P, / ?browser$/i],
|
|
1473
1471
|
[N, / ?os$/i]
|
|
1474
1472
|
]), Y.call(x.toString, [
|
|
1475
|
-
[P, [
|
|
1476
|
-
[
|
|
1477
|
-
[
|
|
1478
|
-
[B, [
|
|
1479
|
-
[N, [
|
|
1473
|
+
[P, [d, l]],
|
|
1474
|
+
[z, [M]],
|
|
1475
|
+
[G, [u, c]],
|
|
1476
|
+
[B, [d, l]],
|
|
1477
|
+
[N, [d, l]]
|
|
1480
1478
|
]), x;
|
|
1481
|
-
})(),
|
|
1482
|
-
var e = ve.init[t], i = ve.isIgnore[t] || 0,
|
|
1479
|
+
})(), ut = function(x, t) {
|
|
1480
|
+
var e = ve.init[t], i = ve.isIgnore[t] || 0, a = ve.isIgnoreRgx[t] || 0, r = ve.toString[t] || 0;
|
|
1483
1481
|
function o() {
|
|
1484
1482
|
Y.call(this, e);
|
|
1485
1483
|
}
|
|
1486
1484
|
return o.prototype.getItem = function() {
|
|
1487
1485
|
return x;
|
|
1488
1486
|
}, o.prototype.withClientHints = function() {
|
|
1489
|
-
return $ ? $.getHighEntropyValues(
|
|
1490
|
-
return x.setCH(new
|
|
1487
|
+
return $ ? $.getHighEntropyValues(U0).then(function(p) {
|
|
1488
|
+
return x.setCH(new B0(p, !1)).parseCH().get();
|
|
1491
1489
|
}) : x.parseCH().get();
|
|
1492
1490
|
}, o.prototype.withFeatureCheck = function() {
|
|
1493
1491
|
return x.detectFeature().get();
|
|
1494
1492
|
}, t != oe && (o.prototype.is = function(p) {
|
|
1495
1493
|
var h = !1;
|
|
1496
|
-
for (var
|
|
1497
|
-
if (this.hasOwnProperty(
|
|
1494
|
+
for (var v in this)
|
|
1495
|
+
if (this.hasOwnProperty(v) && !$e(i, v) && j(a ? ce(a, this[v]) : this[v]) == j(a ? ce(a, p) : p)) {
|
|
1498
1496
|
if (h = !0, p != E.UNDEFINED) break;
|
|
1499
1497
|
} else if (p == E.UNDEFINED && h) {
|
|
1500
1498
|
h = !h;
|
|
@@ -1507,854 +1505,858 @@ var $t = "2.0.9", e0 = 500, st = "user-agent", re = "", ct = "?", E = {
|
|
|
1507
1505
|
typeof this[r[h]] !== E.UNDEFINED && (p += (p ? " " : re) + this[r[h]]);
|
|
1508
1506
|
return p || E.UNDEFINED;
|
|
1509
1507
|
}), o.prototype.then = function(p) {
|
|
1510
|
-
var h = this,
|
|
1511
|
-
for (var
|
|
1512
|
-
h.hasOwnProperty(
|
|
1508
|
+
var h = this, v = function() {
|
|
1509
|
+
for (var T in h)
|
|
1510
|
+
h.hasOwnProperty(T) && (this[T] = h[T]);
|
|
1513
1511
|
};
|
|
1514
|
-
|
|
1512
|
+
v.prototype = {
|
|
1515
1513
|
is: o.prototype.is,
|
|
1516
1514
|
toString: o.prototype.toString,
|
|
1517
1515
|
withClientHints: o.prototype.withClientHints,
|
|
1518
1516
|
withFeatureCheck: o.prototype.withFeatureCheck
|
|
1519
1517
|
};
|
|
1520
|
-
var S = new
|
|
1518
|
+
var S = new v();
|
|
1521
1519
|
return p(S), S;
|
|
1522
1520
|
}, new o();
|
|
1523
1521
|
};
|
|
1524
|
-
function
|
|
1525
|
-
if (x = x || {}, Y.call(this,
|
|
1522
|
+
function B0(x, t) {
|
|
1523
|
+
if (x = x || {}, Y.call(this, U0), t)
|
|
1526
1524
|
Y.call(this, [
|
|
1527
|
-
[
|
|
1528
|
-
[
|
|
1529
|
-
[I, /\?1/.test(x[
|
|
1530
|
-
[c, pe(x[
|
|
1531
|
-
[se, pe(x[
|
|
1532
|
-
[
|
|
1533
|
-
[M, pe(x[
|
|
1534
|
-
[Q, Je(x[
|
|
1535
|
-
[Le, pe(x[
|
|
1525
|
+
[i0, Je(x[J])],
|
|
1526
|
+
[x0, Je(x[it])],
|
|
1527
|
+
[I, /\?1/.test(x[rt])],
|
|
1528
|
+
[c, pe(x[ot])],
|
|
1529
|
+
[se, pe(x[N0])],
|
|
1530
|
+
[a0, pe(x[st])],
|
|
1531
|
+
[M, pe(x[xt])],
|
|
1532
|
+
[Q, Je(x[nt])],
|
|
1533
|
+
[Le, pe(x[at])]
|
|
1536
1534
|
]);
|
|
1537
1535
|
else
|
|
1538
1536
|
for (var e in x)
|
|
1539
1537
|
this.hasOwnProperty(e) && typeof x[e] !== E.UNDEFINED && (this[e] = x[e]);
|
|
1540
1538
|
}
|
|
1541
|
-
function
|
|
1539
|
+
function q(x, t, e, i) {
|
|
1542
1540
|
return Y.call(this, [
|
|
1543
1541
|
["itemType", x],
|
|
1544
1542
|
["ua", t],
|
|
1545
1543
|
["uaCH", i],
|
|
1546
1544
|
["rgxMap", e],
|
|
1547
|
-
["data",
|
|
1545
|
+
["data", ut(this, x)]
|
|
1548
1546
|
]), this;
|
|
1549
1547
|
}
|
|
1550
|
-
|
|
1548
|
+
q.prototype.get = function(x) {
|
|
1551
1549
|
return x ? this.data.hasOwnProperty(x) ? this.data[x] : void 0 : this.data;
|
|
1552
1550
|
};
|
|
1553
|
-
|
|
1551
|
+
q.prototype.set = function(x, t) {
|
|
1554
1552
|
return this.data[x] = t, this;
|
|
1555
1553
|
};
|
|
1556
|
-
|
|
1554
|
+
q.prototype.setCH = function(x) {
|
|
1557
1555
|
return this.uaCH = x, this;
|
|
1558
1556
|
};
|
|
1559
|
-
|
|
1557
|
+
q.prototype.detectFeature = function() {
|
|
1560
1558
|
if (O && O.userAgent == this.ua)
|
|
1561
1559
|
switch (this.itemType) {
|
|
1562
1560
|
case P:
|
|
1563
|
-
O.brave && typeof O.brave.isBrave == E.FUNCTION && this.set(
|
|
1561
|
+
O.brave && typeof O.brave.isBrave == E.FUNCTION && this.set(d, "Brave");
|
|
1564
1562
|
break;
|
|
1565
|
-
case
|
|
1563
|
+
case G:
|
|
1566
1564
|
!this.get(s) && $ && $[I] && this.set(s, I), this.get(c) == "Macintosh" && O && typeof O.standalone !== E.UNDEFINED && O.maxTouchPoints && O.maxTouchPoints > 2 && this.set(c, "iPad").set(s, k);
|
|
1567
1565
|
break;
|
|
1568
1566
|
case N:
|
|
1569
|
-
!this.get(
|
|
1567
|
+
!this.get(d) && $ && $[se] && this.set(d, $[se]);
|
|
1570
1568
|
break;
|
|
1571
1569
|
case oe:
|
|
1572
1570
|
var x = this.data, t = function(e) {
|
|
1573
1571
|
return x[e].getItem().detectFeature().get();
|
|
1574
1572
|
};
|
|
1575
|
-
this.set(P, t(P)).set(
|
|
1573
|
+
this.set(P, t(P)).set(z, t(z)).set(G, t(G)).set(B, t(B)).set(N, t(N));
|
|
1576
1574
|
}
|
|
1577
1575
|
return this;
|
|
1578
1576
|
};
|
|
1579
|
-
|
|
1580
|
-
switch (this.itemType != oe &&
|
|
1577
|
+
q.prototype.parseUA = function() {
|
|
1578
|
+
switch (this.itemType != oe && t0.call(this.data, this.ua, this.rgxMap), this.itemType) {
|
|
1581
1579
|
case P:
|
|
1582
|
-
this.set(be,
|
|
1580
|
+
this.set(be, e0(this.get(l)));
|
|
1583
1581
|
break;
|
|
1584
1582
|
case N:
|
|
1585
|
-
if (this.get(
|
|
1583
|
+
if (this.get(d) == "iOS" && this.get(l) == "18.6") {
|
|
1586
1584
|
var x = /\) Version\/([\d\.]+)/.exec(this.ua);
|
|
1587
|
-
x && parseInt(x[1].substring(0, 2), 10) >= 26 && this.set(
|
|
1585
|
+
x && parseInt(x[1].substring(0, 2), 10) >= 26 && this.set(l, x[1]);
|
|
1588
1586
|
}
|
|
1589
1587
|
break;
|
|
1590
1588
|
}
|
|
1591
1589
|
return this;
|
|
1592
1590
|
};
|
|
1593
|
-
|
|
1591
|
+
q.prototype.parseCH = function() {
|
|
1594
1592
|
var x = this.uaCH, t = this.rgxMap;
|
|
1595
1593
|
switch (this.itemType) {
|
|
1596
1594
|
case P:
|
|
1597
1595
|
case B:
|
|
1598
|
-
var e = x[
|
|
1596
|
+
var e = x[x0] || x[i0], i;
|
|
1599
1597
|
if (e)
|
|
1600
|
-
for (var
|
|
1601
|
-
var r = e[
|
|
1602
|
-
this.itemType == P && !/not.a.brand/i.test(r) && (!i || /Chrom/.test(i) && r !=
|
|
1598
|
+
for (var a = 0; a < e.length; a++) {
|
|
1599
|
+
var r = e[a].brand || e[a], o = e[a].version;
|
|
1600
|
+
this.itemType == P && !/not.a.brand/i.test(r) && (!i || /Chrom/.test(i) && r != m0 || i == ke && /WebView2/.test(r)) && (r = U(r, lt), i = this.get(d), i && !/Chrom/.test(i) && /Chrom/.test(r) || this.set(d, r).set(l, o).set(be, e0(o)), i = r), this.itemType == B && r == m0 && this.set(l, o);
|
|
1603
1601
|
}
|
|
1604
1602
|
break;
|
|
1605
|
-
case
|
|
1603
|
+
case z:
|
|
1606
1604
|
var p = x[M];
|
|
1607
|
-
p && (p && x[Le] == "64" && (p += "64"),
|
|
1605
|
+
p && (p && x[Le] == "64" && (p += "64"), t0.call(this.data, p + ";", t));
|
|
1608
1606
|
break;
|
|
1609
|
-
case
|
|
1607
|
+
case G:
|
|
1610
1608
|
if (x[I] && this.set(s, I), x[c] && (this.set(c, x[c]), !this.get(s) || !this.get(u))) {
|
|
1611
1609
|
var h = {};
|
|
1612
|
-
|
|
1610
|
+
t0.call(h, "droid 9; " + x[c] + ")", t), !this.get(s) && h.type && this.set(s, h.type), !this.get(u) && h.vendor && this.set(u, h.vendor);
|
|
1613
1611
|
}
|
|
1614
1612
|
if (x[Q]) {
|
|
1615
|
-
var
|
|
1613
|
+
var v;
|
|
1616
1614
|
if (typeof x[Q] != "string")
|
|
1617
|
-
for (var S = 0; !
|
|
1618
|
-
|
|
1615
|
+
for (var S = 0; !v && S < x[Q].length; )
|
|
1616
|
+
v = U(x[Q][S++], S0);
|
|
1619
1617
|
else
|
|
1620
|
-
|
|
1621
|
-
this.set(s,
|
|
1618
|
+
v = U(x[Q], S0);
|
|
1619
|
+
this.set(s, v);
|
|
1622
1620
|
}
|
|
1623
1621
|
break;
|
|
1624
1622
|
case N:
|
|
1625
|
-
var
|
|
1626
|
-
if (
|
|
1627
|
-
var R = x[
|
|
1628
|
-
|
|
1623
|
+
var T = x[se];
|
|
1624
|
+
if (T) {
|
|
1625
|
+
var R = x[a0];
|
|
1626
|
+
T == Qe && (R = parseInt(e0(R), 10) >= 13 ? "11" : "10"), this.set(d, T).set(l, R);
|
|
1629
1627
|
}
|
|
1630
|
-
this.get(
|
|
1628
|
+
this.get(d) == Qe && x[c] == "Xbox" && this.set(d, "Xbox").set(l, void 0);
|
|
1631
1629
|
break;
|
|
1632
1630
|
case oe:
|
|
1633
|
-
var
|
|
1634
|
-
return
|
|
1631
|
+
var X = this.data, H = function(V) {
|
|
1632
|
+
return X[V].getItem().setCH(x).parseCH().get();
|
|
1635
1633
|
};
|
|
1636
|
-
this.set(P,
|
|
1634
|
+
this.set(P, H(P)).set(z, H(z)).set(G, H(G)).set(B, H(B)).set(N, H(N));
|
|
1637
1635
|
}
|
|
1638
1636
|
return this;
|
|
1639
1637
|
};
|
|
1640
|
-
function
|
|
1638
|
+
function K(x, t, e) {
|
|
1641
1639
|
if (typeof x === E.OBJECT ? (De(x, !0) ? (typeof t === E.OBJECT && (e = t), t = x) : (e = x, t = void 0), x = void 0) : typeof x === E.STRING && !De(t, !0) && (e = t, t = void 0), e)
|
|
1642
1640
|
if (typeof e.append === E.FUNCTION) {
|
|
1643
1641
|
var i = {};
|
|
1644
|
-
e.forEach(function(S,
|
|
1645
|
-
i[String(
|
|
1642
|
+
e.forEach(function(S, T) {
|
|
1643
|
+
i[String(T).toLowerCase()] = S;
|
|
1646
1644
|
}), e = i;
|
|
1647
1645
|
} else {
|
|
1648
|
-
var
|
|
1646
|
+
var a = {};
|
|
1649
1647
|
for (var r in e)
|
|
1650
|
-
e.hasOwnProperty(r) && (
|
|
1651
|
-
e =
|
|
1648
|
+
e.hasOwnProperty(r) && (a[String(r).toLowerCase()] = e[r]);
|
|
1649
|
+
e = a;
|
|
1652
1650
|
}
|
|
1653
|
-
if (!(this instanceof
|
|
1654
|
-
return new
|
|
1651
|
+
if (!(this instanceof K))
|
|
1652
|
+
return new K(x, t, e).getResult();
|
|
1655
1653
|
var o = typeof x === E.STRING ? x : (
|
|
1656
1654
|
// Passed user-agent string
|
|
1657
|
-
e && e[
|
|
1655
|
+
e && e[c0] ? e[c0] : (
|
|
1658
1656
|
// User-Agent from passed headers
|
|
1659
1657
|
O && O.userAgent ? O.userAgent : (
|
|
1660
1658
|
// navigator.userAgent
|
|
1661
1659
|
re
|
|
1662
1660
|
)
|
|
1663
1661
|
)
|
|
1664
|
-
), p = new
|
|
1662
|
+
), p = new B0(e, !0), h = t ? dt(I0, t) : I0, v = function(S) {
|
|
1665
1663
|
return S == oe ? function() {
|
|
1666
|
-
return new
|
|
1664
|
+
return new q(S, o, h, p).set("ua", o).set(P, this.getBrowser()).set(z, this.getCPU()).set(G, this.getDevice()).set(B, this.getEngine()).set(N, this.getOS()).get();
|
|
1667
1665
|
} : function() {
|
|
1668
|
-
return new
|
|
1666
|
+
return new q(S, o, h[S], p).parseUA().get();
|
|
1669
1667
|
};
|
|
1670
1668
|
};
|
|
1671
1669
|
return Y.call(this, [
|
|
1672
|
-
["getBrowser",
|
|
1673
|
-
["getCPU",
|
|
1674
|
-
["getDevice",
|
|
1675
|
-
["getEngine",
|
|
1676
|
-
["getOS",
|
|
1677
|
-
["getResult",
|
|
1670
|
+
["getBrowser", v(P)],
|
|
1671
|
+
["getCPU", v(z)],
|
|
1672
|
+
["getDevice", v(G)],
|
|
1673
|
+
["getEngine", v(B)],
|
|
1674
|
+
["getOS", v(N)],
|
|
1675
|
+
["getResult", v(oe)],
|
|
1678
1676
|
["getUA", function() {
|
|
1679
1677
|
return o;
|
|
1680
1678
|
}],
|
|
1681
1679
|
["setUA", function(S) {
|
|
1682
|
-
return fe(S) && (o = Me(S,
|
|
1680
|
+
return fe(S) && (o = Me(S, et)), this;
|
|
1683
1681
|
}]
|
|
1684
1682
|
]).setUA(o), this;
|
|
1685
1683
|
}
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
const
|
|
1684
|
+
K.VERSION = $0;
|
|
1685
|
+
K.BROWSER = Fe([d, l, be, s]);
|
|
1686
|
+
K.CPU = Fe([M]);
|
|
1687
|
+
K.DEVICE = Fe([c, u, s, Ie, I, C, k, F, he]);
|
|
1688
|
+
K.ENGINE = K.OS = Fe([d, l]);
|
|
1689
|
+
const k0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1692
1690
|
__proto__: null,
|
|
1693
|
-
UAParser:
|
|
1691
|
+
UAParser: K
|
|
1694
1692
|
}, Symbol.toStringTag, { value: "Module" })), D = [];
|
|
1695
1693
|
for (let x = 0; x < 256; ++x)
|
|
1696
1694
|
D.push((x + 256).toString(16).slice(1));
|
|
1697
|
-
function
|
|
1695
|
+
function pt(x, t = 0) {
|
|
1698
1696
|
return (D[x[t + 0]] + D[x[t + 1]] + D[x[t + 2]] + D[x[t + 3]] + "-" + D[x[t + 4]] + D[x[t + 5]] + "-" + D[x[t + 6]] + D[x[t + 7]] + "-" + D[x[t + 8]] + D[x[t + 9]] + "-" + D[x[t + 10]] + D[x[t + 11]] + D[x[t + 12]] + D[x[t + 13]] + D[x[t + 14]] + D[x[t + 15]]).toLowerCase();
|
|
1699
1697
|
}
|
|
1700
|
-
let
|
|
1701
|
-
const
|
|
1702
|
-
function
|
|
1703
|
-
if (!
|
|
1698
|
+
let Xe;
|
|
1699
|
+
const ht = new Uint8Array(16);
|
|
1700
|
+
function bt() {
|
|
1701
|
+
if (!Xe) {
|
|
1704
1702
|
if (typeof crypto > "u" || !crypto.getRandomValues)
|
|
1705
1703
|
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
1706
|
-
|
|
1704
|
+
Xe = crypto.getRandomValues.bind(crypto);
|
|
1707
1705
|
}
|
|
1708
|
-
return
|
|
1706
|
+
return Xe(ht);
|
|
1709
1707
|
}
|
|
1710
|
-
const
|
|
1711
|
-
function
|
|
1708
|
+
const ft = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), _0 = { randomUUID: ft };
|
|
1709
|
+
function wt(x, t, e) {
|
|
1712
1710
|
x = x || {};
|
|
1713
|
-
const i = x.random ?? x.rng?.() ??
|
|
1711
|
+
const i = x.random ?? x.rng?.() ?? bt();
|
|
1714
1712
|
if (i.length < 16)
|
|
1715
1713
|
throw new Error("Random bytes length must be >= 16");
|
|
1716
|
-
return i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128,
|
|
1714
|
+
return i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128, pt(i);
|
|
1715
|
+
}
|
|
1716
|
+
function L0(x, t, e) {
|
|
1717
|
+
return _0.randomUUID && !x ? _0.randomUUID() : wt(x);
|
|
1717
1718
|
}
|
|
1718
|
-
function
|
|
1719
|
-
return
|
|
1719
|
+
function F0(x, t) {
|
|
1720
|
+
return x = x - 430, Re()[x];
|
|
1720
1721
|
}
|
|
1721
|
-
const
|
|
1722
|
+
const n = F0;
|
|
1722
1723
|
(function(x, t) {
|
|
1723
|
-
const e =
|
|
1724
|
+
const e = F0, i = x();
|
|
1724
1725
|
for (; ; )
|
|
1725
1726
|
try {
|
|
1726
|
-
if (-parseInt(e(
|
|
1727
|
+
if (-parseInt(e(506)) / 1 + parseInt(e(564)) / 2 + -parseInt(e(488)) / 3 + -parseInt(e(536)) / 4 + parseInt(e(585)) / 5 + parseInt(e(538)) / 6 * (parseInt(e(598)) / 7) + parseInt(e(597)) / 8 === t) break;
|
|
1727
1728
|
i.push(i.shift());
|
|
1728
1729
|
} catch {
|
|
1729
1730
|
i.push(i.shift());
|
|
1730
1731
|
}
|
|
1731
|
-
})(Re,
|
|
1732
|
-
const Lt = { AF: a(462), AX: a(473), AL: a(520), DZ: a(449), AS: a(581), AD: a(586), AO: a(614), AI: a(562), AQ: a(492), AG: a(621), AR: a(559), AM: a(527), AW: a(474), AU: a(531), AT: a(627), AZ: a(525), BS: a(583), BH: "Bahrain", BD: a(499), BB: a(626), BY: a(594), BE: a(605), BZ: a(554), BJ: a(595), BM: a(443), BT: a(490), BO: a(512), BQ: a(612), BA: a(468), BW: a(488), BV: "Bouvet Island", BR: a(574), IO: a(476), BN: a(518), BG: a(519), BF: a(534), BI: a(509), CV: a(544), KH: "Cambodia", CM: a(515), CA: a(563), KY: a(452), CF: a(498), TD: a(624), CL: "Chile", CN: a(532), CX: "Christmas Island", CC: a(642), CO: "Colombia", KM: a(568), CG: a(636), CD: a(606), CK: a(528), CR: a(530), CI: a(494), HR: a(567), CU: a(555), CW: "Curaçao", CY: a(571), CZ: "Czech Republic", DK: a(628), DJ: "Djibouti", DM: a(524), DO: a(486), EC: "Ecuador", EG: a(558), SV: "El Salvador", GQ: "Equatorial Guinea", ER: "Eritrea", EE: a(578), ET: "Ethiopia", FK: a(616), FO: a(593), FJ: a(543), FI: a(572), FR: a(450), GF: a(556), PF: "French Polynesia", TF: a(491), GA: a(561), GM: a(630), GE: a(623), DE: a(521), GH: a(579), GI: a(570), GR: a(529), GL: "Greenland", GD: a(446), GP: a(613), GU: a(644), GT: a(497), GG: "Guernsey", GN: a(601), GW: "Guinea-Bissau", GY: a(513), HT: a(480), HM: a(553), VA: a(651), HN: a(540), HK: a(547), HU: a(603), IS: a(508), IN: a(639), ID: a(551), IR: a(645), IQ: a(517), IE: a(503), IM: a(467), IL: "Israel", IT: "Italy", JM: a(647), JP: a(618), JE: a(477), JO: a(565), KZ: a(610), KE: a(619), KI: a(650), KP: a(633), KR: a(459), KW: a(481), KG: a(622), LA: a(548), LV: a(507), LB: a(599), LS: a(539), LR: a(638), LY: a(458), LI: a(587), LT: a(536), LU: a(465), MO: a(545), MK: a(590), MG: "Madagascar", MW: a(580), MY: a(455), MV: a(566), ML: "Mali", MT: "Malta", MH: "Marshall Islands", MQ: a(453), MR: "Mauritania", MU: a(479), YT: "Mayotte", MX: a(487), FM: a(646), MD: a(457), MC: a(641), MN: a(609), ME: "Montenegro", MS: "Montserrat", MA: a(461), MZ: a(478), MM: a(533), NA: a(549), NR: a(592), NP: a(634), NL: a(526), NC: "New Caledonia", NZ: a(464), NI: a(523), NE: a(652), NG: a(504), NU: a(625), NF: a(456), MP: a(632), NO: a(552), OM: a(514), PK: a(484), PW: "Palau", PS: a(541), PA: a(505), PG: a(640), PY: "Paraguay", PE: a(537), PH: a(471), PN: a(596), PL: a(600), PT: a(615), PR: a(546), QA: a(637), RE: a(631), RO: a(635), RU: a(550), RW: "Rwanda", BL: a(470), SH: a(447), KN: "Saint Kitts and Nevis", LC: a(591), MF: a(557), PM: a(496), VC: "Saint Vincent and the Grenadines", WS: a(588), SM: "San Marino", ST: a(483), SA: a(598), SN: "Senegal", RS: a(643), SC: a(482), SL: a(602), SG: a(463), SX: "Sint Maarten (Dutch part)", SK: a(506), SI: a(585), SB: a(538), SO: a(648), ZA: a(454), GS: a(510), SS: a(501), ES: a(511), LK: a(489), SD: a(535), SR: a(445), SJ: a(451), SZ: "Swaziland", SE: a(582), CH: a(575), SY: a(604), TW: a(577), TJ: a(608), TZ: "Tanzania, United Republic of", TH: "Thailand", TL: a(522), TG: "Togo", TK: a(597), TO: a(607), TT: a(611), TN: a(584), TR: a(560), TM: a(589), TC: a(495), TV: "Tuvalu", UG: a(617), UA: "Ukraine", AE: a(502), GB: a(466), US: a(485), UM: "United States Minor Outlying Islands", UY: a(569), UZ: a(564), VU: "Vanuatu", VE: "Venezuela (Bolivarian Republic of)", VN: a(460), VG: a(649), VI: a(448), WF: "Wallis and Futuna", EH: "Western Sahara", YE: a(573), ZM: a(500), ZW: a(620) };
|
|
1733
|
-
function Ft(x, t) {
|
|
1734
|
-
return x = x - 443, Re()[x];
|
|
1735
|
-
}
|
|
1732
|
+
})(Re, 502527);
|
|
1736
1733
|
function Re() {
|
|
1737
|
-
const x = ["
|
|
1734
|
+
const x = ["Jersey", "Guadeloupe", "Mozambique", "Burkina Faso", "Saint Barthélemy", "Iran (Islamic Republic of)", "Switzerland", "Rwanda", "Croatia", "Iceland", "Taiwan", "Mongolia", "South Africa", "France", "Liechtenstein", "595666IWDDtW", "Samoa", "New Caledonia", "Liberia", "Malaysia", "Kiribati", "Cyprus", "Mauritania", "Réunion", "Azerbaijan", "New Zealand", "Antarctica", "Cayman Islands", "Benin", "Kyrgyzstan", "Belize", "Lithuania", "Vanuatu", "Saint Helena, Ascension and Tristan da Cunha", "Albania", "Dominica", "Montenegro", "Viet Nam", "Netherlands", "Saint Martin (French part)", "Wallis and Futuna", "Singapore", "Guatemala", "Swaziland", "Tuvalu", "3659568IiYMPM", "Macedonia (the former Yugoslav Republic of)", "7530MtceuG", "Grenada", "Puerto Rico", "Botswana", "Bahamas", "Yemen", "Kazakhstan", "Timor-Leste", "Marshall Islands", "Saint Pierre and Miquelon", "Antigua and Barbuda", "Spain", "Solomon Islands", "Saint Kitts and Nevis", "Malta", "Equatorial Guinea", "Falkland Islands (Malvinas)", "Slovenia", "Saint Lucia", "South Sudan", "Mauritius", "Canada", "Barbados", "Bhutan", "Djibouti", "Argentina", "577606TMNJWM", "Monaco", "Sri Lanka", "United Kingdom", "Luxembourg", "Turks and Caicos Islands", "Bangladesh", "India", "Tokelau", "Venezuela (Bolivarian Republic of)", "Seychelles", "Niue", "Greece", "Afghanistan", "Cambodia", "Iraq", "Cameroon", "Ethiopia", "South Georgia and the South Sandwich Islands", "Tanzania, United Republic of", "Tunisia", "1406670HJjHoe", "Pitcairn", "Georgia", "Bulgaria", "Anguilla", "Honduras", "Cuba", "Moldova (Republic of)", "French Southern Territories", "Nepal", "San Marino", "Macao", "16547544FdRAFB", "2037KkBklc", "Heard Island and McDonald Islands", "Czech Republic", "Slovakia", "Faroe Islands", "Virgin Islands (U.S.)", "Bahrain", "Gabon", "Brazil", "United Arab Emirates", "Åland Islands", "Central African Republic", "Suriname", "French Polynesia", "Palestine, State of", "Niger", "Haiti", "Algeria", "Lesotho", "Peru", "Micronesia (Federated States of)", "Sweden", "United States Minor Outlying Islands", "Namibia", "El Salvador", "Curaçao", "Montserrat", "Mayotte", "Sint Maarten (Dutch part)", "Senegal", "Congo", "Angola", "Egypt", "Hungary", "Greenland", "Côte d'Ivoire", "Romania", "Chad", "Cook Islands", "Japan", "Uruguay", "Portugal", "Austria", "Svalbard and Jan Mayen", "Korea, Republic of", "Paraguay", "Indonesia", "Guernsey", "Somalia", "Panama", "Sudan", "Papua New Guinea", "Tonga", "Estonia", "Tajikistan", "Turkmenistan", "Guyana", "Syrian Arab Republic", "Bolivia (Plurinational State of)", "Gambia", "Fiji", "Poland", "Guinea-Bissau", "Israel", "Chile", "Qatar", "Nigeria", "Pakistan", "Congo (Democratic Republic of the)", "Bonaire, Sint Eustatius and Saba", "Martinique", "Brunei Darussalam", "Mali", "Nicaragua", "2972100aRNWzP", "Oman", "Colombia"];
|
|
1738
1735
|
return Re = function() {
|
|
1739
1736
|
return x;
|
|
1740
1737
|
}, Re();
|
|
1741
1738
|
}
|
|
1742
|
-
const _ =
|
|
1739
|
+
const G0 = { AF: n(577), AX: n(608), AL: n(525), DZ: n(431), AS: "American Samoa", AD: "Andorra", AO: n(445), AI: n(589), AQ: n(517), AG: n(548), AR: n(563), AM: "Armenia", AW: "Aruba", AU: "Australia", AT: n(456), AZ: n(515), BS: n(542), BH: n(604), BD: n(570), BB: n(560), BY: "Belarus", BE: "Belgium", BZ: n(521), BJ: n(519), BM: "Bermuda", BT: n(561), BO: n(472), BQ: n(483), BA: "Bosnia and Herzegovina", BW: n(541), BV: "Bouvet Island", BR: n(606), IO: "British Indian Ocean Territory", BN: n(485), BG: n(588), BF: n(494), BI: "Burundi", CV: "Cabo Verde", KH: n(578), CM: n(580), CA: n(559), KY: n(518), CF: n(609), TD: n(451), CL: n(478), CN: "China", CX: "Christmas Island", CC: "Cocos (Keeling) Islands", CO: n(490), KM: "Comoros", CG: n(444), CD: n(482), CK: n(452), CR: "Costa Rica", CI: n(449), HR: n(499), CU: n(591), CW: n(439), CY: n(512), CZ: n(600), DK: "Denmark", DJ: n(562), DM: n(526), DO: "Dominican Republic", EC: "Ecuador", EG: n(446), SV: n(438), GQ: n(553), ER: "Eritrea", EE: n(467), ET: n(581), FK: n(554), FO: n(602), FJ: n(474), FI: "Finland", FR: n(504), GF: "French Guiana", PF: n(611), TF: n(593), GA: n(605), GM: n(473), GE: n(587), DE: "Germany", GH: "Ghana", GI: "Gibraltar", GR: n(576), GL: n(448), GD: n(539), GP: n(492), GU: "Guam", GT: n(533), GG: n(461), GN: "Guinea", GW: n(476), GY: n(470), HT: n(430), HM: n(599), VA: "Holy See", HN: n(590), HK: "Hong Kong", HU: n(447), IS: n(500), IN: n(571), ID: n(460), IR: n(496), IQ: n(579), IE: "Ireland", IM: "Isle of Man", IL: n(477), IT: "Italy", JM: "Jamaica", JP: n(453), JE: n(491), JO: "Jordan", KZ: n(544), KE: "Kenya", KI: n(511), KP: "Korea (Democratic People's Republic of)", KR: n(458), KW: "Kuwait", KG: n(520), LA: "Lao People's Democratic Republic", LV: "Latvia", LB: "Lebanon", LS: n(432), LR: n(509), LY: "Libya", LI: n(505), LT: n(522), LU: n(568), MO: n(596), MK: n(537), MG: "Madagascar", MW: "Malawi", MY: n(510), MV: "Maldives", ML: n(486), MT: n(552), MH: n(546), MQ: n(484), MR: n(513), MU: n(558), YT: n(441), MX: "Mexico", FM: n(434), MD: n(592), MC: n(565), MN: n(502), ME: n(527), MS: n(440), MA: "Morocco", MZ: n(493), MM: "Myanmar", NA: n(437), NR: "Nauru", NP: n(594), NL: n(529), NC: n(508), NZ: n(516), NI: n(487), NE: n(613), NG: n(480), NU: n(575), NF: "Norfolk Island", MP: "Northern Mariana Islands", NO: "Norway", OM: n(489), PK: n(481), PW: "Palau", PS: n(612), PA: n(463), PG: n(465), PY: n(459), PE: n(433), PH: "Philippines", PN: n(586), PL: n(475), PT: n(455), PR: n(540), QA: n(479), RE: n(514), RO: n(450), RU: "Russian Federation", RW: n(498), BL: n(495), SH: n(524), KN: n(551), LC: n(556), MF: n(530), PM: n(547), VC: "Saint Vincent and the Grenadines", WS: n(507), SM: n(595), ST: "Sao Tome and Principe", SA: "Saudi Arabia", SN: n(443), RS: "Serbia", SC: n(574), SL: "Sierra Leone", SG: n(532), SX: n(442), SK: n(601), SI: n(555), SB: n(550), SO: n(462), ZA: n(503), GS: n(582), SS: n(557), ES: n(549), LK: n(566), SD: n(464), SR: n(610), SJ: n(457), SZ: n(534), SE: n(435), CH: n(497), SY: n(471), TW: n(501), TJ: n(468), TZ: n(583), TH: "Thailand", TL: n(545), TG: "Togo", TK: n(572), TO: n(466), TT: "Trinidad and Tobago", TN: n(584), TR: "Turkey", TM: n(469), TC: n(569), TV: n(535), UG: "Uganda", UA: "Ukraine", AE: n(607), GB: n(567), US: "United States of America", UM: n(436), UY: n(454), UZ: "Uzbekistan", VU: n(523), VE: n(573), VN: n(528), VG: "Virgin Islands (British)", VI: n(603), WF: n(531), EH: "Western Sahara", YE: n(543), ZM: "Zambia", ZW: "Zimbabwe" }, _ = r0;
|
|
1743
1740
|
(function(x, t) {
|
|
1744
|
-
const e =
|
|
1741
|
+
const e = r0, i = x();
|
|
1745
1742
|
for (; ; )
|
|
1746
1743
|
try {
|
|
1747
|
-
if (-parseInt(e(
|
|
1744
|
+
if (-parseInt(e(441)) / 1 + -parseInt(e(379)) / 2 + parseInt(e(433)) / 3 + parseInt(e(398)) / 4 + parseInt(e(432)) / 5 + parseInt(e(440)) / 6 + parseInt(e(430)) / 7 * (-parseInt(e(375)) / 8) === t) break;
|
|
1748
1745
|
i.push(i.shift());
|
|
1749
1746
|
} catch {
|
|
1750
1747
|
i.push(i.shift());
|
|
1751
1748
|
}
|
|
1752
|
-
})(Oe,
|
|
1753
|
-
const
|
|
1754
|
-
let
|
|
1755
|
-
const
|
|
1749
|
+
})(Oe, 348422);
|
|
1750
|
+
const Ge = { gov: { prod: { log: _(372), report: _(399) }, beta: { log: "https://papi.beta-vpe.gov-ntruss.com/player/maSync", report: "https://log.beta-vpe.gov-ntruss.com/stats" } }, pub: { prod: { log: "https://papi.vpe.naverncp.com/player/maSync", report: "https://log.vpe.naverncp.com/stats" }, beta: { log: _(391), report: _(435) } } };
|
|
1751
|
+
let A = { video: {}, browser: {}, device: {}, connection: {}, screen: {}, player_version: _(426), extra: { sessionId: null, playerType: _(378) }, log_type: _(377), privacy: { cookie_enabled: !0 } }, L = { platform: _(392), stage: _(400), sync: !1, syncResult: {} };
|
|
1752
|
+
const gt = (/* @__PURE__ */ new Date())[_(405)](), H0 = (x) => x;
|
|
1756
1753
|
function Se() {
|
|
1757
|
-
return
|
|
1754
|
+
return L0();
|
|
1758
1755
|
}
|
|
1759
|
-
function
|
|
1760
|
-
return
|
|
1756
|
+
function E0() {
|
|
1757
|
+
return L0();
|
|
1761
1758
|
}
|
|
1762
|
-
const
|
|
1763
|
-
const x = _, t = /* @__PURE__ */ new Date(), e = (o) => String(o)[x(
|
|
1764
|
-
return { logDate: i, logDateUnix:
|
|
1759
|
+
const V0 = () => {
|
|
1760
|
+
const x = _, t = /* @__PURE__ */ new Date(), e = (o) => String(o)[x(437)](2, "0"), i = t[x(410)]() + "-" + e(t[x(424)]() + 1) + "-" + e(t[x(382)]()) + " " + e(t[x(370)]()) + ":" + e(t[x(381)]()) + ":" + e(t[x(422)]()), a = Math[x(394)](t[x(405)]() / 1e3), r = (/* @__PURE__ */ new Date()).getTime() - gt;
|
|
1761
|
+
return { logDate: i, logDateUnix: a, thisSec: r };
|
|
1765
1762
|
};
|
|
1766
|
-
function
|
|
1767
|
-
|
|
1763
|
+
function mt(x) {
|
|
1764
|
+
const t = _;
|
|
1765
|
+
return typeof x === t(387) && x !== null && !Array[t(384)](x);
|
|
1768
1766
|
}
|
|
1769
|
-
function
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
})) : n != null && (x[i] = n);
|
|
1767
|
+
function n0(x, t) {
|
|
1768
|
+
Object.entries(t).forEach(([e, i]) => {
|
|
1769
|
+
const a = r0;
|
|
1770
|
+
mt(i) ? (!x[e] && (x[e] = {}), Object[a(404)](i)[a(386)](([r, o]) => {
|
|
1771
|
+
o != null && (x[e][r] = o);
|
|
1772
|
+
})) : i != null && (x[e] = i);
|
|
1776
1773
|
});
|
|
1777
1774
|
}
|
|
1778
|
-
function y0(x) {
|
|
1779
|
-
const t = _;
|
|
1780
|
-
return x[t(323)](t(301)) > -1 ? t(294) : x[t(323)](t(277)) > -1 ? t(341) : "mp4";
|
|
1781
|
-
}
|
|
1782
1775
|
function Oe() {
|
|
1783
|
-
const x = ["
|
|
1776
|
+
const x = ["timeupdate", "log_type", "vpeKey", "mp4", "MA config initialization failed:", "isp", "videoStartTime", "sync", "stringify", "getSeconds", "hls", "getMonth", "dash", "latest", "sendBeacon", "nation", "MA init report failed:", "15827cBzXoh", "UUID", "2673850BYdTmz", "1751244lyIZnu", "video", "https://log.beta-vpe.naverncp.com/stats", "Korea, Republic of", "padStart", "error", "POST", "3034278zbmDJE", "653697acwyvs", "------------------------------------------------", "actionType", "logDate", "MA vpe init", "vpePackageId", "platform", "type", "mpd", "actionDuration", "syncResult", "host", "created_at", "assign", "indexOf", "getHours", "seekedTime", "https://papi.vpe.gov-ntruss.com/player/maSync", "extra", "playerStartTime", "680vhkYOJ", "logDateUnix", "vpe", "VPE React Native", "934940BstXTb", "TID", "getMinutes", "getDate", "totalStartTime", "isArray", "log", "forEach", "object", "sessionId", "application/json", "m3u8", "https://papi.beta-vpe.naverncp.com/player/maSync", "pub", "push", "floor", "MA report failed:", "address", "country", "150172RuDoCv", "https://log.vpe.gov-ntruss.com/stats", "prod", "result", "1.0", "url", "entries", "getTime", "browser", "videoFormat", "parse", "report", "getFullYear", "stage", "geoLocation"];
|
|
1784
1777
|
return Oe = function() {
|
|
1785
1778
|
return x;
|
|
1786
1779
|
}, Oe();
|
|
1787
1780
|
}
|
|
1788
|
-
function
|
|
1781
|
+
function yt(x) {
|
|
1782
|
+
const t = _;
|
|
1783
|
+
return x[t(369)](t(390)) > -1 ? t(423) : x.indexOf(t(449)) > -1 ? t(425) : t(416);
|
|
1784
|
+
}
|
|
1785
|
+
function r0(x, t) {
|
|
1786
|
+
return x = x - 365, Oe()[x];
|
|
1787
|
+
}
|
|
1788
|
+
function vt(x) {
|
|
1789
1789
|
const t = _, e = [];
|
|
1790
|
-
return x?.r1 && e[t(
|
|
1790
|
+
return x?.r1 && e[t(393)](x.r1), x?.r2 && e[t(393)](x.r2), x?.r3 && e[t(393)](x.r3), e.join(" ");
|
|
1791
1791
|
}
|
|
1792
|
-
function
|
|
1792
|
+
function Y0(x) {
|
|
1793
1793
|
const t = _;
|
|
1794
|
-
x.actionDuration ===
|
|
1794
|
+
x.actionDuration === t(402) && (x[t(450)] = 0), x[t(450)] === void 0 && (x[t(450)] = 0), [t(374), t(419), t(383), t(371)].forEach((i) => {
|
|
1795
1795
|
x[i] === void 0 && (x[i] = 0);
|
|
1796
|
-
}), x
|
|
1796
|
+
}), x.type === void 0 && A.video?.[t(448)] && (x[t(448)] = A[t(434)].type), x[t(403)] === void 0 && A.video?.[t(403)] && (x[t(403)] = A[t(434)].url, x[t(407)] = yt(x.url));
|
|
1797
1797
|
}
|
|
1798
|
-
function
|
|
1798
|
+
function z0(x) {
|
|
1799
1799
|
const t = _;
|
|
1800
|
-
return !!(x
|
|
1800
|
+
return !!(x.UUID && x.TID && x[t(366)]);
|
|
1801
1801
|
}
|
|
1802
|
-
function
|
|
1802
|
+
function He(x) {
|
|
1803
1803
|
const t = _;
|
|
1804
1804
|
try {
|
|
1805
|
-
const e = L[t(
|
|
1806
|
-
e && (x[t(
|
|
1805
|
+
const e = L[t(365)]?.[t(412)];
|
|
1806
|
+
e && (x[t(396)] = vt(e), x[t(418)] = e.net || "", x.ip = L[t(365)]?.ip || "", x[t(428)] = e[t(397)] || "");
|
|
1807
1807
|
} catch {
|
|
1808
1808
|
}
|
|
1809
1809
|
}
|
|
1810
|
-
const
|
|
1810
|
+
const St = async (x) => {
|
|
1811
1811
|
const t = _;
|
|
1812
1812
|
if (!x) return;
|
|
1813
|
-
const { platform: e, stage: i } = L,
|
|
1813
|
+
const { platform: e, stage: i } = L, a = Ge[e][i][t(385)];
|
|
1814
1814
|
try {
|
|
1815
|
-
const r = await fetch(
|
|
1816
|
-
L[t(
|
|
1817
|
-
const { logDate: p, logDateUnix: h } =
|
|
1818
|
-
return
|
|
1815
|
+
const r = await fetch(a, { method: t(439), headers: { "Content-Type": t(389) }, body: JSON.stringify({ access_key: x }) }), o = await r.json();
|
|
1816
|
+
L[t(420)] = o[t(401)]?.[t(420)] || !1, L[t(365)] = o[t(401)] || {};
|
|
1817
|
+
const { logDate: p, logDateUnix: h } = V0();
|
|
1818
|
+
return A[t(373)].logDate = p, A[t(373)].logDateUnix = h, L.syncResult?.[t(412)] && He(A[t(373)]), o;
|
|
1819
1819
|
} catch (r) {
|
|
1820
|
-
return console[t(
|
|
1820
|
+
return console[t(438)](t(417), r), null;
|
|
1821
1821
|
}
|
|
1822
|
-
},
|
|
1823
|
-
const t = _, { platform: e, stage: i } = L,
|
|
1824
|
-
r[t(
|
|
1822
|
+
}, It = async (x) => {
|
|
1823
|
+
const t = _, { platform: e, stage: i } = L, a = H0(Ge[e][i][t(409)]), r = { ...x };
|
|
1824
|
+
r[t(414)] = t(377), He(r.extra);
|
|
1825
1825
|
try {
|
|
1826
|
-
await fetch(
|
|
1826
|
+
await fetch(a, { method: t(439), headers: { "Content-Type": t(389) }, body: JSON[t(421)](r) });
|
|
1827
1827
|
} catch (o) {
|
|
1828
|
-
console
|
|
1828
|
+
console[t(438)](t(429), o);
|
|
1829
1829
|
}
|
|
1830
|
-
},
|
|
1831
|
-
const t = _, { platform: e, stage: i } = L,
|
|
1832
|
-
if (
|
|
1830
|
+
}, kt = async (x) => {
|
|
1831
|
+
const t = _, { platform: e, stage: i } = L, a = H0(Ge[e][i][t(409)]), r = JSON[t(408)](JSON[t(421)](A));
|
|
1832
|
+
if (n0(r, x), r.log_type = "MA", He(r[t(373)]), Y0(r[t(373)]), !!z0(r[t(373)]))
|
|
1833
1833
|
try {
|
|
1834
|
-
r[t(
|
|
1834
|
+
r[t(448)] != t(413), await fetch(a, { method: "POST", headers: { "Content-Type": t(389) }, body: JSON.stringify(r) });
|
|
1835
1835
|
} catch (o) {
|
|
1836
|
-
console
|
|
1836
|
+
console.log(t(395), o);
|
|
1837
1837
|
}
|
|
1838
1838
|
};
|
|
1839
|
-
function
|
|
1840
|
-
return x = x - 261, Oe()[x];
|
|
1841
|
-
}
|
|
1842
|
-
async function _0(x, t, e, i, n) {
|
|
1839
|
+
async function _t(x, t, e, i, a) {
|
|
1843
1840
|
const r = _;
|
|
1844
|
-
L
|
|
1845
|
-
const { logDate: o, logDateUnix: p } =
|
|
1846
|
-
|
|
1841
|
+
L[r(447)] = x, L[r(411)] = t, n0(A, e), i && (A[r(373)][r(446)] = i), a && (A[r(373)][r(415)] = a), A[r(373)].nation ? A[r(406)][r(397)] = G0[A[r(373)][r(428)]] || r(436) : A[r(406)][r(397)] = r(436);
|
|
1842
|
+
const { logDate: o, logDateUnix: p } = V0();
|
|
1843
|
+
A[r(373)][r(444)] = o, A[r(373)][r(376)] = p, A.extra[r(367)] = p;
|
|
1847
1844
|
}
|
|
1848
|
-
async function
|
|
1849
|
-
const t = _, e = JSON[t(
|
|
1850
|
-
x[t(
|
|
1845
|
+
async function Et(x) {
|
|
1846
|
+
const t = _, e = JSON[t(408)](JSON[t(421)](A));
|
|
1847
|
+
x[t(373)] && Object[t(368)](e[t(373)], x.extra), e[t(434)] = x[t(434)], await It(e), console[t(385)](t(445));
|
|
1851
1848
|
}
|
|
1852
|
-
function
|
|
1853
|
-
const t = _, { platform: e, stage: i } = L,
|
|
1854
|
-
if (!
|
|
1855
|
-
const r = JSON
|
|
1856
|
-
if (
|
|
1849
|
+
function Tt(x) {
|
|
1850
|
+
const t = _, { platform: e, stage: i } = L, a = Ge[e]?.[i]?.report;
|
|
1851
|
+
if (!a) return !1;
|
|
1852
|
+
const r = JSON[t(408)](JSON[t(421)](A));
|
|
1853
|
+
if (n0(r, x), r.log_type = "MA", He(r[t(373)]), Y0(r.extra), !z0(r[t(373)])) return !1;
|
|
1857
1854
|
try {
|
|
1858
|
-
const o = new Blob([JSON
|
|
1859
|
-
return navigator[t(
|
|
1855
|
+
const o = new Blob([JSON.stringify(r)], { type: t(389) });
|
|
1856
|
+
return navigator[t(427)](a, o);
|
|
1860
1857
|
} catch {
|
|
1861
1858
|
return !1;
|
|
1862
1859
|
}
|
|
1863
1860
|
}
|
|
1864
|
-
|
|
1861
|
+
function o0(x, t) {
|
|
1862
|
+
return x = x - 442, Pe()[x];
|
|
1863
|
+
}
|
|
1864
|
+
const T0 = o0;
|
|
1865
1865
|
(function(x, t) {
|
|
1866
|
-
const e =
|
|
1866
|
+
const e = o0, i = x();
|
|
1867
1867
|
for (; ; )
|
|
1868
1868
|
try {
|
|
1869
|
-
if (
|
|
1869
|
+
if (parseInt(e(451)) / 1 + parseInt(e(446)) / 2 + parseInt(e(447)) / 3 + parseInt(e(448)) / 4 + -parseInt(e(455)) / 5 * (parseInt(e(458)) / 6) + -parseInt(e(450)) / 7 + -parseInt(e(444)) / 8 === t) break;
|
|
1870
1870
|
i.push(i.shift());
|
|
1871
1871
|
} catch {
|
|
1872
1872
|
i.push(i.shift());
|
|
1873
1873
|
}
|
|
1874
|
-
})(Pe,
|
|
1875
|
-
function rt(x, t) {
|
|
1876
|
-
return x = x - 285, Pe()[x];
|
|
1877
|
-
}
|
|
1874
|
+
})(Pe, 778188);
|
|
1878
1875
|
function Pe() {
|
|
1879
|
-
const x = ["
|
|
1876
|
+
const x = ["dropshadow", "4014715jhTmcB", "16/9", "watermarkConfig", "6PlnQfp", "progressBar", "captionStyle", "#009dff", "6227544tgWvzX", "all", "1421390cKCgSr", "2052051tdsbMQ", "1937720jgSViz", "controlBtn", "215348poWWvl", "511196GSoxRB", "#4299f5", "#ffffff"];
|
|
1880
1877
|
return Pe = function() {
|
|
1881
1878
|
return x;
|
|
1882
1879
|
}, Pe();
|
|
1883
1880
|
}
|
|
1884
|
-
const
|
|
1885
|
-
const e =
|
|
1886
|
-
if (t !==
|
|
1887
|
-
const
|
|
1888
|
-
return x
|
|
1889
|
-
},
|
|
1881
|
+
const Ct = (x = {}, t) => {
|
|
1882
|
+
const e = o0, i = { autostart: !0, muted: !1, aspectRatio: e(456), objectFit: "contain", controls: !0, keyboardShortcut: !0, startMutedInfoNotVisible: !1, allowsPictureInPicture: !1, staysActiveInBackground: !1, screenRecordingPrevention: !1, modalFullscreen: !1, seekingPreview: !0, lang: "ko", ui: "all", controlBtn: { play: !0, fullscreen: !0, progressBar: !0, volume: !1, times: !0, pictureInPicture: !0, setting: !0, subtitle: !0 }, progressBarColor: e(452), controlActiveTime: 3e3, playRateSetting: [0.5, 0.75, 1, 1.5, 2], autoPause: !1, repeat: !1, setStartTime: void 0, playIndex: 0, lowLatencyMode: !0, touchGestures: !0, descriptionNotVisible: !1, devTestAppId: void 0, token: "", visibleWatermark: !1, iosFullscreenNativeMode: !0, watermarkText: "NAVER CLOUD PLATFORM", watermarkConfig: { randPosition: !0, randPositionInterVal: 3e3, x: 10, y: 10, opacity: 0.5 }, captionStyle: { fontSize: 12, color: e(453), backgroundColor: "rgba(0, 0, 0, 0.4)", edgeStyle: e(454) }, override: null };
|
|
1883
|
+
if (t !== "pay") return { ...i, ...At };
|
|
1884
|
+
const a = { ...i, ...x };
|
|
1885
|
+
return x.controlBtn && (a.controlBtn = { ...i[e(449)], ...x[e(449)] }), x[e(457)] && (a[e(457)] = { ...i.watermarkConfig, ...x[e(457)] }), x[e(442)] && (a[e(442)] = { ...i[e(442)], ...x[e(442)] }), a[e(449)]?.[e(459)] === void 0 && (a[e(449)][e(459)] = !0), a;
|
|
1886
|
+
}, At = { free: !0, startMutedInfoNotVisible: !1, lowLatencyMode: !1, progressBarColor: T0(443), playRateSetting: [0.5, 0.75, 1, 1.5, 2], descriptionNotVisible: !0, seekingPreview: !1, controlActiveTime: 1500, ui: T0(445), token: "", setStartTime: null, controlBtn: { play: !0, fullscreen: !0, volume: !0, times: !0, setting: !1, pictureInPicture: !1, progressBar: !0 } };
|
|
1887
|
+
function Ne() {
|
|
1888
|
+
const x = ["Korea, Republic of", "prevUrl", "isPlainObject", "rebuffering", "1392795KUPhYM", "PREV_TRACK", "seeked", "extra", "prevQuality", "initTimeupdate", "83243uzaRJx", "getHours", "handlePlayerStart", "isPlaying", "handleRateChange", "handleBeforeUnload", "ERROR", "introSkip", "PAUSE", "latest", "state", "code", "getMinutes", "CANPLAY", "floor", "handleSeeking", "dispatchEvent", "pause", "372792FnmisG", "visibilitychange", "prevTrack", "PLAY", "handleVisibilityChange", "openingSkip", "QUALITY_CHANGE", "getTime", "VPE", "ENDED", "handleWaiting", "handleTimeUpdate", "browser", "contentDuration", "buildSessionMetrics", "seeking", "792654ZZVKVb", "REBUFFERING", "type", "padStart", "currentTime", "WAITING", "RATE_CHANGE", "SEEKING", "bufferingStart", "getSeconds", "message", "quality_change", "PLAYER_START", "data", "isSeeking", "fullscreenEnterTime", "waiting", "now", "seekCnt", "speedChangeCnt", "TID", "errorMessage", "getDate", "lastPlaybackSpeed", "startup", "isEnded", "seekStartTime", "handleCanplay", "pauseCnt", "Unknown Error", "intro_skip", "handleError", "waitingEnd", "player_start", "duration", "then", "toFixed", "isBuffering", "resetStateForNewTrack", "handleQualityChange", "timeupdateFocus", "isFullscreen", "watchPercent", "PAUSED", "firstPlay", "getFullYear", "3820wAoMQc", "nextTrack", "destroy", "country", "handlePlay", "endingSkip", "FULLSCREEN_CHANGE", "next", "playAttempt", "contentId", "handleEnded", "isArray", "PLAYING", "beaconSent", "bind", "handleStartup", "play", "initializeReportData", "OPENING_SKIP", "error", "boundVisibilityChange", "1200Codqwf", "boundBeforeUnload", "report", "object", "playbackRate", "isBounce", "1681687FfsacJ", "startTime", "4pOdxuM", "firstPlaying", "prevTime", "handlePause", "fullscreenYn", "handleTrackChange", "sessionId", "sendSessionBeacon", "WAITING_END", "loadingEnd", "percent", "visibilityState", "beforeunload", "video", "next_track", "quality", "ratechange", "playedTime", "forEach", "TIMEUPDATE_FOCUS", "removeEventListener", "vpe", "handleFullscreenChange", "4oxPUgg", "bufferingEnd", "handleAutoSkip", "opening_skip", "addEventListener", "canplay", "reportData", "558370VVKVGf", "prevAction", "handleSeeked", "fullscreenDuration", "errorCode", "suppressNextSeek", "maInit", "STARTUP", "isCompleted", "UUID", "firstError", "TIMEUPDATE", "stageData", "round", "entries", "watch_percent", "prev_track", "ended"];
|
|
1889
|
+
return Ne = function() {
|
|
1890
|
+
return x;
|
|
1891
|
+
}, Ne();
|
|
1892
|
+
}
|
|
1893
|
+
const f = K0;
|
|
1890
1894
|
(function(x, t) {
|
|
1891
|
-
const e =
|
|
1895
|
+
const e = K0, i = x();
|
|
1892
1896
|
for (; ; )
|
|
1893
1897
|
try {
|
|
1894
|
-
if (
|
|
1898
|
+
if (parseInt(e(582)) / 1 * (parseInt(e(524)) / 2) + parseInt(e(616)) / 3 * (-parseInt(e(547)) / 4) + parseInt(e(495)) / 5 * (-parseInt(e(516)) / 6) + parseInt(e(522)) / 7 + -parseInt(e(600)) / 8 + parseInt(e(576)) / 9 + parseInt(e(554)) / 10 === t) break;
|
|
1895
1899
|
i.push(i.shift());
|
|
1896
1900
|
} catch {
|
|
1897
1901
|
i.push(i.shift());
|
|
1898
1902
|
}
|
|
1899
|
-
})(Ne,
|
|
1900
|
-
function
|
|
1901
|
-
|
|
1902
|
-
return Ne = function() {
|
|
1903
|
-
return x;
|
|
1904
|
-
}, Ne();
|
|
1903
|
+
})(Ne, 153702);
|
|
1904
|
+
function K0(x, t) {
|
|
1905
|
+
return x = x - 464, Ne()[x];
|
|
1905
1906
|
}
|
|
1906
|
-
const
|
|
1907
|
-
class
|
|
1908
|
-
[f(
|
|
1909
|
-
[f(
|
|
1910
|
-
[f(
|
|
1911
|
-
[f(
|
|
1912
|
-
|
|
1913
|
-
|
|
1907
|
+
const C0 = "0p", Dt = 6e4, Mt = 1, y = { PLAYER_START: f(482), STARTUP: f(473), PLAY: f(511), PAUSE: "pause", PLAYING: "playing", PAUSED: f(599), SEEKING: f(615), SEEKED: f(578), WAITING: f(465), WAITING_END: f(481), CANPLAY: f(552), ENDED: f(571), NEXT_TRACK: f(538), PREV_TRACK: f(570), ERROR: f(514), QUALITY_CHANGE: f(627), REBUFFERING: f(575), TIMEUPDATE: "timeupdate", TIMEUPDATE_FOCUS: f(489), RATE_CHANGE: f(540), FULLSCREEN_CHANGE: "fullscreenchange", INTRO_SKIP: f(479), OPENING_SKIP: f(550), ENDING_SKIP: "ending_skip" };
|
|
1908
|
+
class Rt {
|
|
1909
|
+
[f(553)];
|
|
1910
|
+
[f(566)];
|
|
1911
|
+
[f(592)];
|
|
1912
|
+
[f(508)] = !1;
|
|
1913
|
+
boundBeforeUnload;
|
|
1914
|
+
[f(515)];
|
|
1914
1915
|
constructor(t, e, i) {
|
|
1915
|
-
const
|
|
1916
|
-
this[
|
|
1916
|
+
const a = f;
|
|
1917
|
+
this[a(566)] = { platform: t, stage: e, sync: !1, syncResult: {} }, this[a(553)] = { video: {}, browser: {}, device: {}, connection: {}, screen: {}, player_version: a(591), extra: { UUID: null, TID: null, sessionId: null, playerType: a(608), playAttempt: !1 }, log_type: a(545), privacy: { cookie_enabled: !0 } }, this[a(592)] = { prevAction: null, isPlaying: !1, isSeeking: !1, initTimeupdate: !1, isBuffering: !1, firstError: !1, isEnded: !1, firstPlay: !0, firstPlaying: !0, startTime: 0, prevTime: 0, startUpDuration: 0, prevUrl: "", prevQuality: C0, pauseCnt: 0, seekCnt: 0, speedChangeCnt: 0, lastPlaybackSpeed: 1, fullscreenYn: !1, fullscreenEnterTime: 0, fullscreenDuration: 0, contentId: null, contentDuration: 0, seekStartTime: 0, suppressNextSeek: !1 }, this[a(512)](i), this.stageData, this[a(517)] = this[a(587)].bind(this), this.boundVisibilityChange = this.handleVisibilityChange[a(509)](this), window[a(551)](a(536), this[a(517)]), document[a(551)](a(601), this.boundVisibilityChange);
|
|
1917
1918
|
}
|
|
1918
|
-
|
|
1919
|
+
initializeReportData(t) {
|
|
1919
1920
|
const e = f;
|
|
1920
|
-
this[e(
|
|
1921
|
+
this[e(553)] = { ...this[e(553)], ...t }, this.reportData[e(579)].nation ? this.reportData[e(612)][e(498)] = G0[this.reportData.extra.nation] || "Korea, Republic of" : this.reportData.browser[e(498)] = e(572);
|
|
1921
1922
|
}
|
|
1922
|
-
[f(
|
|
1923
|
-
const t = f, e = /* @__PURE__ */ new Date(), i = (o) => String(o)[t(
|
|
1924
|
-
return { logDate:
|
|
1923
|
+
[f(607)]() {
|
|
1924
|
+
const t = f, e = /* @__PURE__ */ new Date(), i = (o) => String(o)[t(619)](2, "0"), a = e[t(494)]() + "-" + i(e.getMonth() + 1) + "-" + i(e[t(471)]()) + " " + i(e[t(583)]()) + ":" + i(e[t(594)]()) + ":" + i(e[t(625)]()), r = Math[t(596)](e.getTime() / 1e3);
|
|
1925
|
+
return { logDate: a, logDateUnix: r };
|
|
1925
1926
|
}
|
|
1926
|
-
|
|
1927
|
+
isPlainObject(t) {
|
|
1927
1928
|
const e = f;
|
|
1928
|
-
return typeof t === e(
|
|
1929
|
+
return typeof t === e(519) && t !== null && !Array[e(506)](t);
|
|
1929
1930
|
}
|
|
1930
|
-
async [f(
|
|
1931
|
+
async [f(518)](t, e) {
|
|
1931
1932
|
const i = f;
|
|
1932
|
-
if (this[i(
|
|
1933
|
-
const { logDate:
|
|
1933
|
+
if (this[i(592)][i(564)]) return;
|
|
1934
|
+
const { logDate: a, logDateUnix: r } = this[i(607)](), o = Date[i(466)](), p = this[i(592)][i(526)] > 0 ? o - this[i(592)][i(526)] : 0, h = p, v = e && typeof e === i(519) && e[i(629)] ? e[i(629)] : {}, S = [i(504), i(613), i(534), i(569), i(491), i(562), i(521), i(477), i(467), i(468), i(472), i(528), "fullscreenDuration", "dropOffPosition", "seekedTime", i(558), "errorMessage", "code", i(626)], T = {};
|
|
1934
1935
|
for (const ee of S)
|
|
1935
|
-
|
|
1936
|
-
const R = this[i(
|
|
1937
|
-
this[i(
|
|
1936
|
+
v[ee] !== void 0 && (T[ee] = v[ee]);
|
|
1937
|
+
const R = this[i(592)][i(613)], X = R > 0 ? Math[i(596)](R / 1e3) : this[i(553)][i(579)][i(483)] || 0, H = this[i(553)].extra[i(620)] || 0, V = X > 0 ? Math[i(567)](H / X * 1e4) / 100 : 0, we = { ...this[i(553)], video: this[i(553)][i(537)], percent: V, extra: { ...this.reportData[i(579)], actionType: t, actionDuration: h ? h[i(485)](2) : 0, duration: X, contentDuration: R, percent: V, watch_percent: V, logDate: a, logDateUnix: r, ...T } };
|
|
1938
|
+
this[i(592)].prevTime = o, await kt(we);
|
|
1938
1939
|
}
|
|
1939
|
-
async [f(
|
|
1940
|
+
async [f(560)](t) {
|
|
1940
1941
|
const e = f;
|
|
1941
|
-
!this
|
|
1942
|
+
!this[e(553)][e(579)].sessionId && (this[e(553)][e(579)][e(530)] = E0(), this.reportData[e(579)][e(469)] = Se(), this.reportData[e(579)].UUID = Se()), t[e(579)][e(530)] = this.reportData.extra[e(530)], await Et(t);
|
|
1942
1943
|
}
|
|
1943
|
-
async
|
|
1944
|
+
async maSync(t) {
|
|
1944
1945
|
const e = f;
|
|
1945
|
-
!t || typeof t !== e(
|
|
1946
|
+
!t || typeof t !== e(519) || Object[e(568)](t)[e(542)](([i, a]) => {
|
|
1946
1947
|
const r = e;
|
|
1947
|
-
this[r(
|
|
1948
|
+
this[r(574)](a) ? Object[r(568)](a).forEach(([o, p]) => {
|
|
1948
1949
|
const h = r;
|
|
1949
|
-
p != null && (this[h(
|
|
1950
|
-
}) :
|
|
1950
|
+
p != null && (this[h(553)][i][o] = p);
|
|
1951
|
+
}) : a != null && (this[r(553)][i] = a);
|
|
1951
1952
|
});
|
|
1952
1953
|
}
|
|
1953
|
-
[f(
|
|
1954
|
-
const e = f, { type: i, data:
|
|
1955
|
-
switch (o && o > 0 && (this[e(
|
|
1956
|
-
case
|
|
1957
|
-
this
|
|
1954
|
+
[f(598)](t) {
|
|
1955
|
+
const e = f, { type: i, data: a } = t, r = { url: a?.url || this[e(592)][e(573)], type: a?.[e(618)], quality: a?.[e(539)] || this.state[e(580)], data: a }, o = a?.[e(579)]?.duration;
|
|
1956
|
+
switch (o && o > 0 && (this[e(592)][e(613)] = Math.round(o * 1e3)), i) {
|
|
1957
|
+
case y[e(628)]:
|
|
1958
|
+
this.handlePlayerStart(r, a);
|
|
1958
1959
|
break;
|
|
1959
|
-
case
|
|
1960
|
-
this[e(
|
|
1960
|
+
case y[e(561)]:
|
|
1961
|
+
this[e(510)](r, a);
|
|
1961
1962
|
break;
|
|
1962
|
-
case
|
|
1963
|
-
this
|
|
1963
|
+
case y[e(603)]:
|
|
1964
|
+
this[e(499)](r, a);
|
|
1964
1965
|
break;
|
|
1965
|
-
case
|
|
1966
|
-
this.handlePause(r,
|
|
1966
|
+
case y[e(590)]:
|
|
1967
|
+
this.handlePause(r, a);
|
|
1967
1968
|
break;
|
|
1968
|
-
case
|
|
1969
|
-
this[e(
|
|
1969
|
+
case y[e(565)]:
|
|
1970
|
+
this[e(611)](r, a);
|
|
1970
1971
|
break;
|
|
1971
|
-
case
|
|
1972
|
-
this.handleTimeUpdateFocus(r,
|
|
1972
|
+
case y[e(543)]:
|
|
1973
|
+
this.handleTimeUpdateFocus(r, a);
|
|
1973
1974
|
break;
|
|
1974
|
-
case
|
|
1975
|
-
this[e(
|
|
1975
|
+
case y[e(623)]:
|
|
1976
|
+
this[e(597)](r, a);
|
|
1976
1977
|
break;
|
|
1977
|
-
case
|
|
1978
|
-
this[e(
|
|
1978
|
+
case y.SEEKED:
|
|
1979
|
+
this[e(556)](r, a);
|
|
1979
1980
|
break;
|
|
1980
|
-
case
|
|
1981
|
-
case e(
|
|
1982
|
-
this[e(
|
|
1981
|
+
case y[e(621)]:
|
|
1982
|
+
case e(624):
|
|
1983
|
+
this[e(610)](r, a);
|
|
1983
1984
|
break;
|
|
1984
|
-
case
|
|
1985
|
-
case
|
|
1986
|
-
case
|
|
1987
|
-
this[e(
|
|
1985
|
+
case y[e(532)]:
|
|
1986
|
+
case e(548):
|
|
1987
|
+
case e(533):
|
|
1988
|
+
this[e(476)](r, a);
|
|
1988
1989
|
break;
|
|
1989
|
-
case
|
|
1990
|
-
this
|
|
1990
|
+
case y[e(595)]:
|
|
1991
|
+
this[e(476)](r, a);
|
|
1991
1992
|
break;
|
|
1992
|
-
case
|
|
1993
|
-
this.handleEnded(r,
|
|
1993
|
+
case y[e(609)]:
|
|
1994
|
+
this.handleEnded(r, a);
|
|
1994
1995
|
break;
|
|
1995
|
-
case
|
|
1996
|
-
case e(
|
|
1997
|
-
this[e(
|
|
1996
|
+
case e(496):
|
|
1997
|
+
case e(502):
|
|
1998
|
+
this[e(529)](y.NEXT_TRACK, r, a);
|
|
1998
1999
|
break;
|
|
1999
|
-
case e(
|
|
2000
|
-
case
|
|
2001
|
-
this[e(
|
|
2000
|
+
case e(602):
|
|
2001
|
+
case "prev":
|
|
2002
|
+
this[e(529)](y[e(577)], r, a);
|
|
2002
2003
|
break;
|
|
2003
|
-
case
|
|
2004
|
-
this[e(
|
|
2004
|
+
case y.ERROR:
|
|
2005
|
+
this[e(480)](r, a);
|
|
2005
2006
|
break;
|
|
2006
|
-
case
|
|
2007
|
-
this[e(
|
|
2007
|
+
case y[e(606)]:
|
|
2008
|
+
this[e(488)](r, a);
|
|
2008
2009
|
break;
|
|
2009
|
-
case
|
|
2010
|
-
this[e(
|
|
2010
|
+
case y[e(622)]:
|
|
2011
|
+
this[e(586)](r, a);
|
|
2011
2012
|
break;
|
|
2012
|
-
case
|
|
2013
|
-
this
|
|
2013
|
+
case y[e(501)]:
|
|
2014
|
+
this.handleFullscreenChange(r, a);
|
|
2014
2015
|
break;
|
|
2015
|
-
case e(
|
|
2016
|
-
this[e(
|
|
2016
|
+
case e(589):
|
|
2017
|
+
this[e(549)](y.INTRO_SKIP, r, a);
|
|
2017
2018
|
break;
|
|
2018
|
-
case e(
|
|
2019
|
-
this
|
|
2019
|
+
case e(605):
|
|
2020
|
+
this[e(549)](y[e(513)], r, a);
|
|
2020
2021
|
break;
|
|
2021
|
-
case e(
|
|
2022
|
-
this[e(
|
|
2022
|
+
case e(500):
|
|
2023
|
+
this[e(549)](y.ENDING_SKIP, r, a);
|
|
2023
2024
|
break;
|
|
2024
2025
|
}
|
|
2025
2026
|
}
|
|
2026
|
-
[f(
|
|
2027
|
-
const
|
|
2028
|
-
this[
|
|
2027
|
+
[f(549)](t, e, i) {
|
|
2028
|
+
const a = f;
|
|
2029
|
+
this[a(592)].suppressNextSeek = !0, this[a(518)](t, { ...e, data: i });
|
|
2029
2030
|
}
|
|
2030
|
-
[f(
|
|
2031
|
+
[f(584)](t, e) {
|
|
2031
2032
|
const i = f;
|
|
2032
|
-
!this
|
|
2033
|
+
!this[i(553)][i(579)][i(530)] && (this.reportData[i(579)][i(530)] = E0(), this[i(553)][i(579)][i(469)] = Se(), this[i(553)][i(579)][i(563)] = Se()), this.state[i(523)] = Date[i(466)](), this[i(592)][i(526)] = this[i(592)].startTime, this.report(y[i(628)], { ...t, data: e });
|
|
2033
2034
|
}
|
|
2034
|
-
[f(
|
|
2035
|
+
[f(510)](t, e) {
|
|
2035
2036
|
const i = f;
|
|
2036
|
-
if (this[i(
|
|
2037
|
-
const
|
|
2038
|
-
|
|
2037
|
+
if (this[i(592)][i(525)]) {
|
|
2038
|
+
const a = e?.[i(579)] || e || {};
|
|
2039
|
+
a?.[i(504)] && (this.state[i(504)] = a[i(504)]), this.state[i(585)] = !0, this[i(518)](y[i(561)], { ...t, data: { ...e, contentId: this[i(592)][i(504)], contentDuration: this[i(592)][i(613)] } }), this.state[i(525)] = !1;
|
|
2039
2040
|
}
|
|
2040
2041
|
}
|
|
2041
|
-
|
|
2042
|
+
handlePlay(t, e) {
|
|
2042
2043
|
const i = f;
|
|
2043
|
-
this[i(
|
|
2044
|
+
this[i(592)][i(585)] || (this[i(553)][i(579)][i(541)] = e?.playedTime, this.reportData.extra[i(534)] = e?.[i(534)], this[i(592)].isPlaying = !0, this.reportData[i(579)].playAttempt = !0, this[i(592)][i(493)] && (this[i(592)][i(493)] = !1), this[i(592)].prevAction === y.PAUSED && this.report(y[i(507)], { ...t, data: e }), this[i(592)][i(555)] = y.PLAYING);
|
|
2044
2045
|
}
|
|
2045
|
-
[f(
|
|
2046
|
+
[f(527)](t, e) {
|
|
2046
2047
|
const i = f;
|
|
2047
|
-
this
|
|
2048
|
+
this[i(592)][i(630)] || this[i(592)][i(486)] || !this[i(592)][i(585)] || (this[i(592)][i(477)]++, this[i(592)][i(585)] = !1, this[i(518)](y.PAUSED, { ...t, data: { ...e, pauseCnt: this[i(592)][i(477)] } }), this[i(592)][i(555)] = y[i(492)]);
|
|
2048
2049
|
}
|
|
2049
|
-
[f(
|
|
2050
|
+
[f(611)](t, e) {
|
|
2050
2051
|
const i = f;
|
|
2051
|
-
this[i(
|
|
2052
|
+
this[i(592)][i(585)] = !0, this[i(553)].extra[i(503)] = !0, !(this.reportData[i(579)][i(620)] < Mt) && (this.state[i(585)] && Date[i(466)]() - this[i(592)].prevTime > Dt && this[i(518)](y[i(507)], { ...t, data: e }), this[i(592)][i(573)] = t.url || "", this[i(592)][i(580)] = t[i(539)] || C0);
|
|
2052
2053
|
}
|
|
2053
|
-
|
|
2054
|
+
handleTimeUpdateFocus(t, e) {
|
|
2054
2055
|
const i = f;
|
|
2055
|
-
this[i(
|
|
2056
|
+
this.reportData[i(579)][i(620)] > 0 && (this.report(y[i(507)], { ...t, data: e }), this[i(592)][i(581)] = !0);
|
|
2056
2057
|
}
|
|
2057
|
-
|
|
2058
|
+
handleSeeking(t, e) {
|
|
2058
2059
|
const i = f;
|
|
2059
|
-
this[i(
|
|
2060
|
+
this.state[i(559)] || this[i(592)][i(630)] || (this[i(592)][i(467)]++, this[i(592)][i(630)] = !0, this[i(592)][i(475)] = Date[i(466)](), this[i(592)].isPlaying ? this[i(518)](y.PLAYING, { ...t, data: e }) : this.state[i(555)] === y[i(492)] && this.report(y[i(492)], { ...t, data: e }), this[i(592)].prevAction = y[i(623)]);
|
|
2060
2061
|
}
|
|
2061
|
-
[f(
|
|
2062
|
+
[f(556)](t, e) {
|
|
2062
2063
|
const i = f;
|
|
2063
|
-
if (this[i(
|
|
2064
|
+
if (this.state[i(559)]) {
|
|
2064
2065
|
this.state.suppressNextSeek = !1;
|
|
2065
2066
|
return;
|
|
2066
2067
|
}
|
|
2067
|
-
if (!this[i(
|
|
2068
|
-
const
|
|
2069
|
-
this[i(
|
|
2068
|
+
if (!this[i(592)][i(630)]) return;
|
|
2069
|
+
const a = this.state.seekStartTime > 0 ? Date.now() - this[i(592)].seekStartTime : 0;
|
|
2070
|
+
this[i(592)][i(475)] = 0, this.state.isSeeking = !1, this[i(518)](y[i(623)], { ...t, data: { ...e || {}, seekedTime: a } }), this[i(592)][i(555)] = this[i(592)].isPlaying ? y.PLAYING : y[i(492)];
|
|
2070
2071
|
}
|
|
2071
|
-
[f(
|
|
2072
|
+
[f(610)](t, e) {
|
|
2072
2073
|
const i = f;
|
|
2073
|
-
this[i(
|
|
2074
|
+
this[i(592)][i(630)] || this.state[i(486)] || (this[i(592)][i(486)] = !0, this[i(592)][i(585)] && this[i(518)](y[i(507)], { ...t, data: e }), this.state[i(555)] = y[i(617)]);
|
|
2074
2075
|
}
|
|
2075
|
-
[f(
|
|
2076
|
+
[f(476)](t, e) {
|
|
2076
2077
|
const i = f;
|
|
2077
|
-
this[i(
|
|
2078
|
+
this.state[i(486)] && (this[i(592)].isBuffering = !1, this[i(518)](y[i(617)], { ...t, data: e }), this.state[i(555)] = this[i(592)][i(585)] ? y[i(507)] : y.PAUSED);
|
|
2078
2079
|
}
|
|
2079
|
-
[f(
|
|
2080
|
+
[f(531)]() {
|
|
2080
2081
|
const t = f;
|
|
2081
|
-
if (this
|
|
2082
|
-
this[t(
|
|
2083
|
-
const { logDate: e, logDateUnix: i } = this[t(
|
|
2084
|
-
|
|
2082
|
+
if (this[t(508)] || this[t(592)][t(474)] || this[t(592)][t(564)] || !this.reportData[t(579)][t(563)] || !this.reportData[t(579)][t(469)]) return;
|
|
2083
|
+
this[t(508)] = !0;
|
|
2084
|
+
const { logDate: e, logDateUnix: i } = this[t(607)](), a = Date.now(), r = this.state[t(526)] > 0 ? a - this[t(592)][t(526)] : 0, o = (this.reportData[t(579)][t(620)] || 0) * 1e3, p = this[t(592)][t(613)], h = p > 0 ? Math.round(o / p * 1e4) / 100 : 0, v = this[t(553)][t(579)].playedTime || 0, S = { ...this[t(553)], video: this[t(553)][t(537)], percent: h, extra: { ...this[t(553)][t(579)], actionType: t(571), actionDuration: r ? r.toFixed(2) : 0, duration: p > 0 ? Math[t(596)](p / 1e3) : this[t(553)][t(579)][t(483)] || 0, logDate: e, logDateUnix: i, contentId: this[t(592)].contentId, contentDuration: p, percent: h, watch_percent: h, watchPercent: h, isCompleted: h >= 95, isBounce: v < 1e4, pauseCnt: this[t(592)][t(477)], seekCnt: this[t(592)][t(467)], speedChangeCnt: this[t(592)][t(468)], lastPlaybackSpeed: this[t(592)][t(472)], fullscreenYn: this[t(592)][t(528)], fullscreenDuration: this.state.fullscreenDuration + (this[t(592)].fullscreenEnterTime > 0 ? Date[t(466)]() - this[t(592)][t(464)] : 0), dropOffPosition: Math[t(567)](o) } };
|
|
2085
|
+
Tt(S);
|
|
2085
2086
|
}
|
|
2086
|
-
[f(
|
|
2087
|
-
this[f(
|
|
2087
|
+
[f(587)]() {
|
|
2088
|
+
this[f(531)]();
|
|
2088
2089
|
}
|
|
2089
|
-
[f(
|
|
2090
|
-
|
|
2091
|
-
document[t(524)] === t(408) && this.sendSessionBeacon();
|
|
2090
|
+
[f(604)]() {
|
|
2091
|
+
document[f(535)] === "hidden" && this.sendSessionBeacon();
|
|
2092
2092
|
}
|
|
2093
|
-
|
|
2093
|
+
[f(497)]() {
|
|
2094
2094
|
const t = f;
|
|
2095
|
-
window.removeEventListener(t(
|
|
2095
|
+
window.removeEventListener(t(536), this[t(517)]), document[t(544)]("visibilitychange", this[t(515)]);
|
|
2096
2096
|
}
|
|
2097
|
-
[f(
|
|
2098
|
-
const i = f,
|
|
2099
|
-
let
|
|
2100
|
-
return this
|
|
2097
|
+
[f(614)](t, e) {
|
|
2098
|
+
const i = f, a = e?.extra || e || {}, r = (a?.[i(620)] || 0) * 1e3, o = this[i(592)].contentDuration, p = o > 0 ? Math[i(567)](r / o * 1e4) / 100 : 0, h = this.reportData.extra[i(541)] || 0;
|
|
2099
|
+
let v = this[i(592)][i(557)];
|
|
2100
|
+
return this[i(592)].fullscreenEnterTime > 0 && (v += Date[i(466)]() - this[i(592)].fullscreenEnterTime), { ...t, data: { ...e, contentId: this[i(592)][i(504)], duration: o > 0 ? Math[i(596)](o / 1e3) : a?.duration || 0, contentDuration: o, percent: p, watch_percent: p, watchPercent: p, isCompleted: p >= 95, isBounce: h < 1e4, pauseCnt: this[i(592)][i(477)], seekCnt: this[i(592)][i(467)], speedChangeCnt: this[i(592)][i(468)], lastPlaybackSpeed: this.state[i(472)], fullscreenYn: this[i(592)].fullscreenYn, fullscreenDuration: v, dropOffPosition: Math[i(567)](r) } };
|
|
2101
2101
|
}
|
|
2102
|
-
[f(
|
|
2102
|
+
[f(505)](t, e) {
|
|
2103
2103
|
const i = f;
|
|
2104
|
-
this[i(
|
|
2104
|
+
this[i(592)][i(474)] || (this[i(592)][i(474)] = !0, this[i(592)][i(585)] = !1, this[i(508)] = !0, this[i(592)].prevAction !== y[i(492)] && this[i(518)](this[i(592)][i(555)] || y.PLAYING, { ...t, data: e }), this[i(518)](y[i(609)], this.buildSessionMetrics(t, e)));
|
|
2105
2105
|
}
|
|
2106
|
-
|
|
2107
|
-
const
|
|
2108
|
-
this[
|
|
2109
|
-
const r =
|
|
2110
|
-
this[r(
|
|
2111
|
-
this[r(
|
|
2106
|
+
handleTrackChange(t, e, i) {
|
|
2107
|
+
const a = f;
|
|
2108
|
+
this[a(518)](this[a(592)][a(555)] || y[a(507)], this[a(614)](e, i))[a(484)](() => {
|
|
2109
|
+
const r = a;
|
|
2110
|
+
this[r(518)](t, { ...e, data: i })[r(484)](() => {
|
|
2111
|
+
this[r(487)]();
|
|
2112
2112
|
});
|
|
2113
2113
|
});
|
|
2114
2114
|
}
|
|
2115
|
-
|
|
2115
|
+
handleError(t, e) {
|
|
2116
2116
|
const i = f;
|
|
2117
|
-
this[i(
|
|
2118
|
-
const
|
|
2119
|
-
this[i(
|
|
2117
|
+
this.state[i(555)] && !this[i(592)][i(525)] && this[i(518)](this[i(592)][i(555)], this[i(614)](t, e));
|
|
2118
|
+
const a = { errorCode: e?.errorCode || e?.[i(579)]?.[i(558)] || e?.[i(593)] || "E0000", errorMessage: e?.[i(470)] || e?.extra?.[i(470)] || e?.[i(626)] || i(478) };
|
|
2119
|
+
this[i(518)](y[i(588)], { ...t, data: { ...e, ...a } }), this[i(592)].firstError = !0;
|
|
2120
2120
|
}
|
|
2121
|
-
[f(
|
|
2121
|
+
[f(488)](t, e) {
|
|
2122
2122
|
const i = f;
|
|
2123
|
-
this[i(
|
|
2123
|
+
this.state.prevAction && !this[i(592)][i(630)] && !this[i(592)][i(486)] && !this.state[i(525)] && (this[i(592)].isSeeking = !0, this[i(518)](this[i(592)][i(555)], { ...t, data: e }), this[i(592)][i(555)] = y[i(623)]);
|
|
2124
2124
|
}
|
|
2125
|
-
|
|
2126
|
-
const i = f,
|
|
2127
|
-
|
|
2125
|
+
[f(586)](t, e) {
|
|
2126
|
+
const i = f, a = e?.[i(520)] || e?.[i(579)]?.[i(520)] || 1;
|
|
2127
|
+
a !== this[i(592)].lastPlaybackSpeed && (this[i(592)].speedChangeCnt++, this[i(592)][i(472)] = a, this.report(y[i(622)], { ...t, data: { ...e, speedChangeCnt: this[i(592)][i(468)], lastPlaybackSpeed: a } }));
|
|
2128
2128
|
}
|
|
2129
|
-
[f(
|
|
2129
|
+
[f(546)](t, e) {
|
|
2130
2130
|
const i = f;
|
|
2131
|
-
e?.[i(
|
|
2131
|
+
e?.[i(490)] || e?.[i(579)]?.[i(490)] ? (this.state.fullscreenYn = !0, this[i(592)][i(464)] = Date[i(466)]()) : this[i(592)].fullscreenEnterTime > 0 && (this[i(592)][i(557)] += Date[i(466)]() - this[i(592)][i(464)], this[i(592)][i(464)] = 0), this.report(y[i(501)], { ...t, data: { ...e, fullscreenYn: this[i(592)][i(528)], fullscreenDuration: this.state.fullscreenDuration } });
|
|
2132
2132
|
}
|
|
2133
|
-
[f(
|
|
2133
|
+
[f(487)]() {
|
|
2134
2134
|
const t = f;
|
|
2135
|
-
this
|
|
2135
|
+
this[t(592)][t(555)] = null, this.state.isPlaying = !1, this[t(592)][t(526)] = 0, this.state.firstPlaying = !0, this[t(592)][t(581)] = !1, this[t(592)].pauseCnt = 0, this.state.seekCnt = 0, this[t(592)][t(468)] = 0, this[t(592)][t(472)] = 1, this[t(592)][t(528)] = !1, this[t(592)][t(464)] = 0, this.state[t(557)] = 0, this[t(592)][t(504)] = null, this[t(592)][t(613)] = 0;
|
|
2136
2136
|
}
|
|
2137
2137
|
}
|
|
2138
|
-
|
|
2139
|
-
return x = x - 406, Ne()[x];
|
|
2140
|
-
}
|
|
2141
|
-
const v = qt;
|
|
2138
|
+
const m = W0;
|
|
2142
2139
|
(function(x, t) {
|
|
2143
|
-
const e =
|
|
2140
|
+
const e = W0, i = x();
|
|
2144
2141
|
for (; ; )
|
|
2145
2142
|
try {
|
|
2146
|
-
if (-parseInt(e(
|
|
2143
|
+
if (-parseInt(e(550)) / 1 * (parseInt(e(580)) / 2) + parseInt(e(503)) / 3 * (-parseInt(e(457)) / 4) + parseInt(e(456)) / 5 * (-parseInt(e(588)) / 6) + parseInt(e(551)) / 7 + -parseInt(e(549)) / 8 * (parseInt(e(622)) / 9) + -parseInt(e(485)) / 10 + parseInt(e(608)) / 11 === t) break;
|
|
2147
2144
|
i.push(i.shift());
|
|
2148
2145
|
} catch {
|
|
2149
2146
|
i.push(i.shift());
|
|
2150
2147
|
}
|
|
2151
|
-
})(Ue,
|
|
2152
|
-
const O0 = { gov: { prod: { config: v(409), report: v(281) }, beta: { config: "aHR0cHM6Ly9wYXBpLmJldGEtdnBlLmdvdi1udHJ1c3MuY29tL3BsYXllci9jb25maWc=", report: v(288) } }, pub: { prod: { config: v(414), report: "aHR0cHM6Ly9sb2cudnBlLm5hdmVybmNwLmNvbS9zdGF0cw==" }, beta: { config: v(372), report: v(339) } } };
|
|
2148
|
+
})(Ue, 748508);
|
|
2153
2149
|
function Ue() {
|
|
2154
|
-
const x = ["
|
|
2150
|
+
const x = ["includes", "pay", "name", "naver", "errorState", "maUse", "connection", "data", "ncplayer : ", "url", "hasFirstPlayReported", ".m3u8", "aHR0cHM6Ly9sb2cudnBlLm5hdmVybmNwLmNvbS9zdGF0cw==", "nextTrack", "aHR0cHM6Ly9wYXBpLmJldGEtdnBlLm5hdmVybmNwLmNvbS9wbGF5ZXIvY29uZmln", "getBrowserInfo", "live", "volumechange", "length", "startsWith", "href", "updateTranslator", "lang", "state", "6178768VSPBDt", "162CBoRyb", "2441516eAIloO", "type", "VPE SDK Initialization failed:", "protocol", "deviceMemory", "error", "Error:", "stage", "player_version", "toLowerCase", "serverConfig", "playerStartTimeMs", "match", "appId", "userAgentData", "ready", "screen", "device", "quality", "now", "mp4", "toString", "Edge", "VPE Player: accessKey 또는 appId가 없어 키 인증을 건너뜁니다.", "poster", "errorMessage", "aHR0cHM6Ly9sb2cuYmV0YS12cGUuZ292LW50cnVzcy5jb20vc3RhdHM=", "playerVersion", "isDev", "7660dVPxNF", "ratechange", "effectiveType", "API", "errorCode", "application/json", "isPaidTier", "aHR0cHM6Ly9wYXBpLmJldGEtdnBlLmdvdi1udHJ1c3MuY29tL3BsYXllci9jb25maWc=", "6MOyCUK", "prev", "height", "Chrome", "player_name", "version", "E0002", "hardwareConcurrency", "mobile", "pricing", "contentId", "browser", "E0001", "controlBtn", "getElapsedMilliseconds", "aHR0cHM6Ly9wYXBpLnZwZS5nb3YtbnRydXNzLmNvbS9wbGF5ZXIvY29uZmln", "E0003", "language", "maManager", "aHR0cHM6Ly9sb2cuYmV0YS12cGUubmF2ZXJuY3AuY29tL3N0YXRz", "39772172ljvKIg", "translator", "some", "kakao", "Naver webview", "naverncp.com/live/video/ls-", "floor", "isArray", "join", "Unknown", " / ", "reduce", "round", "kakaotalk", "9rNGWir", "trim", "play", "hlsPaser", "warn", "currentTime", "mozConnection", "undefined", "options", "video", "POST", "indexOf", "performKeyCheck", "Content-Type", "auto", "player_start", "mpd", "playbackRate", "incomingType", "startup", "1933910OzildA", "433712jzBbUj", "split", "VPE", "startTimeAt", "fullscreenchange", "object", "next", "playlist", "Auto", "playerStateReport", "VOD", "host", "statusText", "result", "filter", "getErrorState", "getPlaylist", "getVideoProtocol", "access_key", "getTime", "createPlayerInfo", "setErrorRun", "json", "downlink", "LIVE", "cid", "Edg", "UAParser", "3520640Kfqozy", "userAgent", "#EXT-X-STREAM-INF", "watermarkConfig", "navigator", "accessKey", "report", "isFullscreen", "domain", "Other", "slice", "unknown", "extra", "meta", "stringify", "aHR0cHM6Ly9wYXBpLnZwZS5uYXZlcm5jcC5jb20vcGxheWVyL2NvbmZpZw==", "maSync", "errorInfo", "30HOgcBO", "maInit", "location", "Kakao webview", "dispatchEvent", "Safari", "stateChange", "rtt", "title", "origin", "width", "isInitialized", "text", "platform", "playerName", "vpe", "webkitConnection", "playerInfo", "saveData", "dash", "test", "port"];
|
|
2155
2151
|
return Ue = function() {
|
|
2156
2152
|
return x;
|
|
2157
2153
|
}, Ue();
|
|
2158
2154
|
}
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2155
|
+
const Ot = { gov: { prod: { config: m(603), report: "aHR0cHM6Ly9sb2cudnBlLmdvdi1udHJ1c3MuY29tL3N0YXRz" }, beta: { config: m(587), report: m(577) } }, pub: { prod: { config: m(500), report: m(537) }, beta: { config: m(539), report: m(607) } } };
|
|
2156
|
+
let A0 = [];
|
|
2157
|
+
function W0(x, t) {
|
|
2158
|
+
return x = x - 445, Ue()[x];
|
|
2159
|
+
}
|
|
2160
|
+
const Pt = (x) => {
|
|
2161
|
+
const t = m;
|
|
2162
2162
|
try {
|
|
2163
2163
|
return atob(x);
|
|
2164
2164
|
} catch (e) {
|
|
2165
|
-
return console[t(
|
|
2165
|
+
return console[t(556)]("Base64 decoding failed:", e), "";
|
|
2166
2166
|
}
|
|
2167
2167
|
};
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
[
|
|
2173
|
-
[
|
|
2174
|
-
|
|
2175
|
-
[
|
|
2176
|
-
[
|
|
2177
|
-
[
|
|
2178
|
-
[
|
|
2179
|
-
[
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
[
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
constructor({ accessKey: t, appId: e, platform: i, stage: n, isDev: r = !1, language: o }) {
|
|
2187
|
-
const p = v;
|
|
2188
|
-
this[p(338)] = t, this[p(377)] = e || location[p(453)], this[p(304)] = i, this[p(446)] = n, this[p(355)] = r, this[p(393)](o), this[p(427)] = { errorCode: null, errorMessage: null };
|
|
2168
|
+
class Ut {
|
|
2169
|
+
[m(561)] = {};
|
|
2170
|
+
[m(520)] = null;
|
|
2171
|
+
[m(490)];
|
|
2172
|
+
[m(564)];
|
|
2173
|
+
[m(516)];
|
|
2174
|
+
[m(558)];
|
|
2175
|
+
[m(579)];
|
|
2176
|
+
[m(609)] = Ze();
|
|
2177
|
+
[m(529)];
|
|
2178
|
+
[m(606)] = null;
|
|
2179
|
+
[m(460)] = null;
|
|
2180
|
+
incomingType = null;
|
|
2181
|
+
[m(535)] = !1;
|
|
2182
|
+
[m(562)] = 0;
|
|
2183
|
+
constructor({ accessKey: t, appId: e, platform: i, stage: a, isDev: r = !1, language: o }) {
|
|
2184
|
+
const p = m;
|
|
2185
|
+
this.accessKey = t, this[p(564)] = e || location.origin, this[p(516)] = i, this[p(558)] = a, this[p(579)] = r, this[p(546)](o), this[p(529)] = { errorCode: null, errorMessage: null };
|
|
2189
2186
|
}
|
|
2190
|
-
async
|
|
2191
|
-
const t =
|
|
2192
|
-
if ([this[e[0]], this[e[1]]][t(
|
|
2187
|
+
async initialize() {
|
|
2188
|
+
const t = m, e = [t(490), "appId", t(594), t(600), t(604)], i = t(574);
|
|
2189
|
+
if ([this[e[0]], this[e[1]]][t(610)]((o) => !o)) return console[t(626)](i), { error: this[t(478)](e[2]) };
|
|
2193
2190
|
const r = (o) => {
|
|
2194
2191
|
const p = t;
|
|
2195
|
-
return this[p(
|
|
2192
|
+
return this[p(561)] = o, this[p(520)] = this.createPlayerInfo(o), this[p(520)];
|
|
2196
2193
|
};
|
|
2197
2194
|
try {
|
|
2198
|
-
const o = await this[t(
|
|
2199
|
-
if (o
|
|
2195
|
+
const o = await this[t(448)]();
|
|
2196
|
+
if (o.code !== 200) return { error: this[t(478)](e[3]) };
|
|
2200
2197
|
const p = r(o);
|
|
2201
|
-
if (window
|
|
2202
|
-
await
|
|
2203
|
-
const h = await
|
|
2204
|
-
this[t(
|
|
2198
|
+
if (window[t(518)] && (window[t(518)][t(517)] = p?.[t(592)], window[t(518)][t(578)] = window[t(518)][t(578)] || p?.[t(559)], window[t(518)][t(592)] = p[t(592)] + "|" + window.vpe[t(578)], window[t(518)][t(548)] = this[t(558)]), p?.[t(530)] === "Y") {
|
|
2199
|
+
await _t(this.platform, this[t(558)], p, this[t(564)], this[t(490)]);
|
|
2200
|
+
const h = await St(this[t(490)]);
|
|
2201
|
+
this[t(606)] = new Rt(this[t(516)], this.stage, p), this[t(460)] = Date[t(570)](), h?.[t(470)]?.sync && await this[t(606)][t(504)]({ video: p.video || {}, extra: { ...p[t(497)] } });
|
|
2205
2202
|
}
|
|
2206
|
-
return { options: this
|
|
2203
|
+
return { options: this.serverConfig.result?.options, playerInfo: p };
|
|
2207
2204
|
} catch (o) {
|
|
2208
|
-
return console[t(
|
|
2205
|
+
return console[t(556)](t(553), o), { error: this[t(478)](e[4]) };
|
|
2209
2206
|
}
|
|
2210
2207
|
}
|
|
2211
|
-
async [
|
|
2212
|
-
const t =
|
|
2213
|
-
|
|
2214
|
-
|
|
2208
|
+
async [m(448)]() {
|
|
2209
|
+
const t = m, e = ["?preview=true", "config", t(449), t(585), t(475), t(493), t(446)], i = this[t(579)] ? e[0] : "", a = Pt(Ot[this[t(516)]][this[t(558)]][e[1]]) + i, r = this[t(564)], o = JSON[t(499)]([e[4], e[5]][t(619)]((h, v, S) => {
|
|
2210
|
+
const T = t;
|
|
2211
|
+
return h[v] = [this[T(490)], r][S], h;
|
|
2212
|
+
}, {})), p = await fetch(a, { method: e[6], headers: { [e[2]]: e[3] }, body: o });
|
|
2213
|
+
if (!p.ok) throw new Error([t(583), t(557), p.status, p[t(469)]][t(616)](" "));
|
|
2214
|
+
return p[t(479)]();
|
|
2215
2215
|
}
|
|
2216
|
-
|
|
2217
|
-
const t =
|
|
2218
|
-
return /Edg\/(\d+\.\d+)/[t(
|
|
2216
|
+
getBrowserInfo() {
|
|
2217
|
+
const t = m, e = navigator.userAgent;
|
|
2218
|
+
return /Edg\/(\d+\.\d+)/[t(523)](e) ? { origin: t(573), version: RegExp.$1 } : /Chrome\/(\d+\.\d+)/[t(523)](e) && !e.includes(t(483)) ? { origin: t(591), version: RegExp.$1 } : /Firefox\/(\d+\.\d+)/[t(523)](e) ? { origin: "Firefox", version: RegExp.$1 } : /Version\/(\d+\.\d+)/[t(523)](e) && e[t(525)](t(508)) ? { origin: t(508), version: RegExp.$1 } : { origin: t(617), version: t(617) };
|
|
2219
2219
|
}
|
|
2220
|
-
[
|
|
2221
|
-
const e =
|
|
2222
|
-
|
|
2220
|
+
[m(477)](t) {
|
|
2221
|
+
const e = m, [i, a] = t[e(470)][e(527)][e(458)]("|"), r = navigator[e(531)] || navigator[e(628)] || navigator[e(519)], o = this[e(540)](), p = navigator[e(565)], h = new k0[e(484)](window.navigator.userAgent).getResult();
|
|
2222
|
+
window[e(489)][e(486)][e(560)]()[e(525)]("whale") ? h.browser[e(527)] = "Whale" : window[e(489)][e(486)][e(560)]()[e(525)](e(621)) ? h[e(599)].name = e(506) : window[e(489)][e(486)][e(560)]()[e(525)](e(528)) ? h.browser.name = e(612) : window[e(489)].userAgent.toLowerCase()[e(525)](e(611)) ? h[e(599)][e(527)] = e(506) : window[e(489)][e(486)][e(560)]()[e(525)]("naver") && (h[e(599)][e(527)] = "Naver webview");
|
|
2223
|
+
const v = typeof window !== e(629) && window.vpe?.playerVersion || a;
|
|
2224
|
+
return { cid: t.result[e(482)], player_name: i, player_version: v, pricing: t[e(470)][e(597)], maUse: t[e(470)][e(630)]?.[e(530)] === "Y" ? "Y" : "N", browser: { lang: navigator[e(605)], ua: navigator.userAgent }, screen: { width: window[e(567)][e(513)], height: window[e(567)][e(590)] }, connection: { network: r?.[e(582)] ?? e(496), downlink: r?.[e(480)] ?? null, rtt: r?.[e(510)] ?? null, save_data: r?.[e(521)] ?? !1 }, device: { platform: p?.[e(516)] ?? e(617), mobile: p?.[e(596)] ?? !1, memory: navigator[e(555)] ?? null, processor: navigator[e(595)] ?? null }, video: { url: "" }, extra: { vpeKey: this[e(490)], playerType: e(459), playerVersion: v, os: (h.os[e(527)] || "Unknown") + e(618) + (h.os.version || ""), osOrigin: h.os[e(527)] || e(617), osVersion: h.os[e(593)], vpePackageId: null, actionDuration: this[e(602)](), actionType: e(566), browser: o[e(512)], browserOrigin: o[e(512)], browserVersion: o.version, quality: e(494), qualityOrigin: e(465), device: h.device.vendor + " " + h[e(568)].model, location: window[e(505)][e(545)], host: window[e(505)][e(468)], port: window.location[e(524)], protocol: window[e(505)][e(554)], title: "" } };
|
|
2223
2225
|
}
|
|
2224
|
-
[
|
|
2225
|
-
const e =
|
|
2226
|
-
return this
|
|
2226
|
+
[m(478)](t) {
|
|
2227
|
+
const e = m, i = t[e(495)](-2), a = this[e(609)].error[i] || this[e(609)].error["01"], r = { errorCode: t, errorMessage: a };
|
|
2228
|
+
return this.errorState = r, console.error(e(533), r), r;
|
|
2227
2229
|
}
|
|
2228
|
-
[
|
|
2229
|
-
|
|
2230
|
+
[m(546)](t) {
|
|
2231
|
+
const e = m;
|
|
2232
|
+
this[e(609)] = Ze(t);
|
|
2230
2233
|
}
|
|
2231
|
-
[
|
|
2232
|
-
return this[
|
|
2234
|
+
[m(472)]() {
|
|
2235
|
+
return this[m(529)];
|
|
2233
2236
|
}
|
|
2234
|
-
|
|
2235
|
-
const t =
|
|
2236
|
-
return this[t(
|
|
2237
|
+
[m(586)]() {
|
|
2238
|
+
const t = m;
|
|
2239
|
+
return this[t(561)][t(470)]?.[t(597)] === t(526);
|
|
2237
2240
|
}
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
return !!this[t(294)][t(368)];
|
|
2241
|
+
[m(514)]() {
|
|
2242
|
+
return !!this[m(561)].result;
|
|
2241
2243
|
}
|
|
2242
2244
|
getValidatedOptions(t) {
|
|
2243
|
-
const e =
|
|
2244
|
-
this[e(
|
|
2245
|
-
const
|
|
2246
|
-
return
|
|
2245
|
+
const e = m, i = Ct(this.serverConfig[e(470)]?.[e(630)], this[e(561)][e(470)]?.[e(597)]);
|
|
2246
|
+
this[e(561)][e(470)]?.[e(597)] !== e(526) && (t = { ...t, ...i });
|
|
2247
|
+
const a = { ...i, ...t ?? {} };
|
|
2248
|
+
return a?.[e(547)] && (a?.[e(547)] == e(450) || this[e(546)](a[e(547)])), t?.controlBtn && (a.controlBtn = { ...i[e(601)], ...t[e(601)] }), t?.[e(488)] && (a.watermarkConfig = { ...i.watermarkConfig, ...t[e(488)] }), a[e(464)] && !Array[e(615)](a[e(464)]) && (a[e(464)] = [{ file: a.playlist }]), A0 = a.playlist || [], a;
|
|
2247
2249
|
}
|
|
2248
|
-
[
|
|
2249
|
-
return
|
|
2250
|
+
[m(473)]() {
|
|
2251
|
+
return A0 || [];
|
|
2250
2252
|
}
|
|
2251
2253
|
$t(t) {
|
|
2252
|
-
const e =
|
|
2253
|
-
let
|
|
2254
|
+
const e = m, i = t[e(458)](".");
|
|
2255
|
+
let a = this.translator;
|
|
2254
2256
|
for (const r of i)
|
|
2255
|
-
if (
|
|
2257
|
+
if (a && typeof a === e(462) && r in a) a = a[r];
|
|
2256
2258
|
else return t;
|
|
2257
|
-
return typeof
|
|
2259
|
+
return typeof a == "string" ? a : t;
|
|
2258
2260
|
}
|
|
2259
|
-
async [
|
|
2260
|
-
const e =
|
|
2261
|
-
if (!t || t[e(
|
|
2262
|
-
const
|
|
2263
|
-
const
|
|
2261
|
+
async [m(625)](t) {
|
|
2262
|
+
const e = m, i = [];
|
|
2263
|
+
if (!t || t[e(447)](e(536)) === -1) return i;
|
|
2264
|
+
const a = (p, h) => {
|
|
2265
|
+
const v = e;
|
|
2264
2266
|
try {
|
|
2265
|
-
return new URL(h, p)[
|
|
2267
|
+
return new URL(h, p)[v(572)]();
|
|
2266
2268
|
} catch {
|
|
2267
2269
|
return h;
|
|
2268
2270
|
}
|
|
2269
2271
|
}, r = (p) => {
|
|
2270
|
-
const h = e,
|
|
2271
|
-
if (
|
|
2272
|
-
const S = p
|
|
2273
|
-
return S ? Math
|
|
2272
|
+
const h = e, v = p[h(563)](/RESOLUTION=(\d+)x(\d+)/);
|
|
2273
|
+
if (v) return v[2] + "p";
|
|
2274
|
+
const S = p.match(/BANDWIDTH=(\d+)/);
|
|
2275
|
+
return S ? Math[h(620)](Number(S[1]) / 1e3) + "kbps" : h(450);
|
|
2274
2276
|
}, o = (p) => {
|
|
2275
|
-
const h = e,
|
|
2276
|
-
for (let S = 0; S <
|
|
2277
|
-
const
|
|
2278
|
-
if (
|
|
2279
|
-
const R =
|
|
2280
|
-
R && !R
|
|
2277
|
+
const h = e, v = p[h(458)](/\r?\n/).map((S) => S[h(623)]())[h(471)]((S) => S[h(543)] > 0);
|
|
2278
|
+
for (let S = 0; S < v[h(543)]; S += 1) {
|
|
2279
|
+
const T = v[S];
|
|
2280
|
+
if (T[h(544)](h(487))) {
|
|
2281
|
+
const R = v[S + 1];
|
|
2282
|
+
R && !R[h(544)]("#") && (i.push({ quality: r(T), url: a(t, R), levelIndex: i[h(543)] }), S += 1);
|
|
2281
2283
|
}
|
|
2282
2284
|
}
|
|
2283
2285
|
};
|
|
2284
2286
|
try {
|
|
2285
2287
|
const p = await fetch(t);
|
|
2286
2288
|
if (!p.ok) return i;
|
|
2287
|
-
const h = await p[e(
|
|
2289
|
+
const h = await p[e(515)]();
|
|
2288
2290
|
return h && o(h), i;
|
|
2289
2291
|
} catch (p) {
|
|
2290
|
-
return console
|
|
2292
|
+
return console[e(556)]("HLS 파싱 실패:", p), i;
|
|
2291
2293
|
}
|
|
2292
2294
|
}
|
|
2293
|
-
async [
|
|
2294
|
-
const e =
|
|
2295
|
-
if (!t?.[e(
|
|
2296
|
-
const i = new
|
|
2297
|
-
if (t
|
|
2298
|
-
if (t[e(
|
|
2299
|
-
await this[e(
|
|
2295
|
+
async [m(466)](t) {
|
|
2296
|
+
const e = m;
|
|
2297
|
+
if (!t?.[e(552)] || !this[e(606)] || this[e(520)]?.[e(530)] !== "Y") return;
|
|
2298
|
+
const i = new k0[e(484)](window[e(489)][e(486)]).getResult();
|
|
2299
|
+
if (t.type == e(542) || t[e(552)] == e(509)) return;
|
|
2300
|
+
if (t[e(552)] == e(581)) {
|
|
2301
|
+
await this[e(491)]("ratechange", { extra: { playbackRate: t?.[e(532)]?.[e(453)] || t?.video?.[e(532)]?.[e(453)] || 1 } }, t[e(552)]);
|
|
2300
2302
|
return;
|
|
2301
2303
|
}
|
|
2302
|
-
if (t
|
|
2303
|
-
await this.report(e(
|
|
2304
|
+
if (t[e(552)] == "fullscreenchange") {
|
|
2305
|
+
await this.report(e(461), { extra: { isFullscreen: t?.[e(532)]?.[e(492)] || !1 } }, t[e(552)]);
|
|
2304
2306
|
return;
|
|
2305
2307
|
}
|
|
2306
|
-
const
|
|
2307
|
-
t[e(
|
|
2308
|
-
const r = t?.video?.[e(
|
|
2309
|
-
this
|
|
2310
|
-
const
|
|
2311
|
-
|
|
2312
|
-
const
|
|
2308
|
+
const a = t[e(552)];
|
|
2309
|
+
t[e(552)] == e(566) && (t[e(552)] = e(451)), (t[e(552)] === e(463) || t[e(552)] === e(589) || t[e(552)] === e(538) || t.type === "prevTrack") && (this[e(535)] = !1);
|
|
2310
|
+
const r = t?.video?.[e(534)] ?? "", o = /\.mp4(?:[?#]|$)/i[e(523)](r) && !r[e(525)](e(536)) && !r[e(525)](".mpd"), p = !o && (t?.[e(445)]?.[e(552)] == e(541) || r[e(525)](e(613))), h = navigator[e(531)] || navigator[e(628)] || navigator[e(519)] || null;
|
|
2311
|
+
this[e(454)] = t?.[e(552)] || null;
|
|
2312
|
+
const v = this.incomingType === e(624) && !this[e(535)], S = v ? "startup" : this[e(454)];
|
|
2313
|
+
v && (this.hasFirstPlayReported = !0);
|
|
2314
|
+
const T = t?.video?.[e(532)]?.duration || 0, R = t?.[e(445)]?.[e(532)]?.[e(627)] || 0, X = t?.video?.videoWidth || 0, H = t?.[e(445)]?.videoHeight || 0;
|
|
2313
2315
|
let V = 0, we = 0, ee = 0;
|
|
2314
|
-
if (S == e(
|
|
2315
|
-
const
|
|
2316
|
-
we =
|
|
2316
|
+
if (S == e(451) && (V = this[e(602)](), this.playerStartTimeMs = V), S == e(455)) {
|
|
2317
|
+
const s0 = this[e(602)]();
|
|
2318
|
+
we = s0 - this[e(562)], ee = s0;
|
|
2317
2319
|
}
|
|
2318
|
-
const
|
|
2319
|
-
await this.report(S,
|
|
2320
|
+
const j0 = { type: S, video: { type: p ? "LIVE" : e(467), quality: t?.video?.quality ? t?.[e(445)]?.[e(569)] : e(450), url: t?.video?.[e(534)] }, connection: h ? { network: h[e(582)], downlink: h[e(480)], rtt: h[e(510)], save_data: h[e(521)] } : void 0, extra: { actionType: S, url: t?.video?.[e(534)], type: e(p ? 481 : 467), videoFormat: this[e(474)](t?.[e(445)]?.[e(534)]), ...t?.[e(445)]?.poster ? { poster: t.video[e(575)] } : {}, video_type: e(p ? 481 : 467), title: t?.[e(498)]?.[e(511)], contentId: t?.[e(445)]?.[e(598)] || t?.[e(498)]?.[e(598)] || null, metaData: t?.[e(498)], videoWidth: Math[e(620)](X), videoHeight: Math[e(620)](H), video_protocols: this.getVideoProtocol(t?.[e(445)]?.[e(534)]), duration: Math[e(614)](T), currentTime: Math[e(614)](R), playedTime: this.getElapsedMilliseconds(), viewingTime: Math[e(620)](this[e(602)]() / 1e3), playerStartTime: V, videoStartTime: we, totalStartTime: ee, percent: Math.round(R / T * 100), quality: t?.video?.[e(569)] ? t?.[e(445)]?.[e(569)] : "auto", errorCode: t?.[e(532)]?.[e(584)] ?? t?.[e(502)]?.[e(584)], errorMessage: t?.data?.[e(576)] ?? t?.errorInfo?.[e(576)], actionDuration: this.getElapsedMilliseconds() / 1e3, device: i[e(568)].vendor + " " + i.device.model, location: window[e(505)].href, host: window.location[e(468)], port: window.location[e(524)], protocol: window[e(505)].protocol }, browser: { lang: navigator[e(605)], ua: navigator[e(486)] }, screen: { width: window.screen[e(513)], height: window[e(567)][e(590)] } };
|
|
2321
|
+
await this.report(S, j0, a);
|
|
2320
2322
|
}
|
|
2321
|
-
async
|
|
2322
|
-
const
|
|
2323
|
-
if (!this
|
|
2324
|
-
const r = e && typeof e
|
|
2325
|
-
await this[
|
|
2323
|
+
async [m(491)](t, e, i) {
|
|
2324
|
+
const a = m;
|
|
2325
|
+
if (!this.maManager) return;
|
|
2326
|
+
const r = e && typeof e == "object" ? e : { extra: { actionDuration: this[a(602)]() } };
|
|
2327
|
+
await this[a(606)][a(501)](r), await this[a(606)][a(507)]({ type: t, data: r });
|
|
2326
2328
|
}
|
|
2327
|
-
[
|
|
2328
|
-
const e =
|
|
2329
|
-
return t
|
|
2329
|
+
[m(474)](t) {
|
|
2330
|
+
const e = m;
|
|
2331
|
+
return t.indexOf("m3u8") > -1 ? "hls" : t[e(447)](e(452)) > -1 ? e(522) : e(571);
|
|
2330
2332
|
}
|
|
2331
|
-
|
|
2332
|
-
const t =
|
|
2333
|
-
return this[t(
|
|
2333
|
+
[m(602)]() {
|
|
2334
|
+
const t = m;
|
|
2335
|
+
return this[t(460)] ? (/* @__PURE__ */ new Date())[t(476)]() - this[t(460)] : 0;
|
|
2334
2336
|
}
|
|
2335
2337
|
}
|
|
2338
|
+
function Be() {
|
|
2339
|
+
var x = ["34709184LlXWBu", "9642016MWksSH", "2NXhmSY", "4853149datVQW", "2877099zICSHb", "256WNRyyf", "1100315RaueIu", "36935ufNlAb", "832020jvpEuw"];
|
|
2340
|
+
return Be = function() {
|
|
2341
|
+
return x;
|
|
2342
|
+
}, Be();
|
|
2343
|
+
}
|
|
2336
2344
|
(function(x, t) {
|
|
2337
|
-
for (var e =
|
|
2345
|
+
for (var e = Nt, i = x(); ; )
|
|
2338
2346
|
try {
|
|
2339
|
-
var
|
|
2340
|
-
if (
|
|
2347
|
+
var a = parseInt(e(110)) / 1 + parseInt(e(106)) / 2 * (parseInt(e(108)) / 3) + -parseInt(e(109)) / 4 * (-parseInt(e(111)) / 5) + parseInt(e(112)) / 6 + parseInt(e(107)) / 7 + parseInt(e(105)) / 8 + -parseInt(e(113)) / 9;
|
|
2348
|
+
if (a === t) break;
|
|
2341
2349
|
i.push(i.shift());
|
|
2342
2350
|
} catch {
|
|
2343
2351
|
i.push(i.shift());
|
|
2344
2352
|
}
|
|
2345
|
-
})(Be,
|
|
2346
|
-
function
|
|
2347
|
-
x = x -
|
|
2353
|
+
})(Be, 712769);
|
|
2354
|
+
function Nt(x, t) {
|
|
2355
|
+
x = x - 105;
|
|
2348
2356
|
var e = Be(), i = e[x];
|
|
2349
2357
|
return i;
|
|
2350
2358
|
}
|
|
2351
|
-
function Be() {
|
|
2352
|
-
var x = ["2443608sIanWZ", "463566ZJwJwo", "1231760kIKJLW", "165234KGYUcb", "580125EtUOlj", "217lnWdfU", "154598awymLe", "45tFrdBq", "1634120nvfuTY"];
|
|
2353
|
-
return Be = function() {
|
|
2354
|
-
return x;
|
|
2355
|
-
}, Be();
|
|
2356
|
-
}
|
|
2357
2359
|
export {
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
+
Ut as default,
|
|
2361
|
+
Ze as getTranslator
|
|
2360
2362
|
};
|