From d9454a155e7bfc3cae4ffa7896f0f3ca4db46da6 Mon Sep 17 00:00:00 2001 From: Daniel Silhavy Date: Fri, 16 Aug 2024 09:58:02 +0200 Subject: [PATCH 01/28] Feature/drm cleanup (#4548) * Rename default protection model * Refactor key system uuids, save them all in constants * Some refactoring in DRM related classes * Refactor logic until requestMediaKeySystemAccess * Further cleanup of DRM implementation * Enable useMediaCapabilitiesApi by default * Fix wrong clearkey UUID * Add Safari to the functional tests and fix unit tests * Exclude Safari from Clearkey test * Use com.microsoft.playready.recommendation as the default system string for Playready * Revert Playready system string order * Fix DRM samples * Use keySystemConfiguration property of Media Capabilities API to filter tracks that are not supported if DRM protected * Fix default flag in settings * Use segment base vector for single playback test --- index.d.ts | 6 +- package-lock.json | 10 + package.json | 1 + samples/drm/keepProtectionKeys.html | 4 +- samples/drm/license-wrapping.html | 4 +- samples/drm/robustness-level.html | 4 +- samples/drm/system-priority.html | 4 +- samples/drm/system-string-priority.html | 4 +- samples/drm/widevine.html | 4 +- src/core/Settings.js | 6 +- src/mss/MssFragmentMoovProcessor.js | 2 +- src/mss/parser/MssParser.js | 9 +- src/streaming/MediaPlayer.js | 1 + .../constants/ProtectionConstants.js | 15 +- src/streaming/protection/CommonEncryption.js | 3 +- src/streaming/protection/Protection.js | 24 +- .../controllers/ProtectionController.js | 369 +++++++++--------- .../controllers/ProtectionKeyController.js | 49 +-- .../protection/drm/KeySystemClearKey.js | 4 +- .../protection/drm/KeySystemPlayReady.js | 2 +- .../protection/drm/KeySystemW3CClearKey.js | 4 +- .../protection/drm/KeySystemWidevine.js | 4 +- ...21Jan2015.js => DefaultProtectionModel.js} | 160 ++++---- .../protection/models/ProtectionModel_01b.js | 5 +- .../models/ProtectionModel_3Feb2014.js | 3 +- src/streaming/protection/vo/KeyMessage.js | 4 +- .../protection/vo/KeySystemAccess.js | 2 + .../protection/vo/KeySystemConfiguration.js | 6 +- .../protection/vo/KeySystemMetadata.js | 48 +++ .../protection/vo/LicenseRequestComplete.js | 4 +- src/streaming/utils/Capabilities.js | 104 +++-- src/streaming/utils/CapabilitiesFilter.js | 25 +- .../config/karma.functional.conf.cjs | 2 +- .../config/test-configurations/local.json | 10 +- .../test-configurations/streams/single.json | 11 +- .../test-configurations/streams/smoke.json | 46 +++ .../test-configurations/streams/test.json | 22 +- test/functional/src/Utils.js | 18 + .../unit/mocks/ProtectionKeyControllerMock.js | 2 +- ...ection.controllers.ProtectionController.js | 8 +- 40 files changed, 642 insertions(+), 371 deletions(-) rename src/streaming/protection/models/{ProtectionModel_21Jan2015.js => DefaultProtectionModel.js} (77%) create mode 100644 src/streaming/protection/vo/KeySystemMetadata.js diff --git a/index.d.ts b/index.d.ts index 7b3857eabf..f7b842ceab 100644 --- a/index.d.ts +++ b/index.d.ts @@ -3030,7 +3030,7 @@ declare namespace dashjs { setProtectionData(data: object): void; - getSupportedKeySystemsFromContentProtection(cps: object[]): object[]; + getSupportedKeySystemMetadataFromContentProtection(cps: object[]): object[]; getKeySystems(): any[]; @@ -3060,7 +3060,7 @@ declare namespace dashjs { getKeySystemBySystemString(systemString: string): KeySystem | null; - getSupportedKeySystemsFromContentProtection(cps: object[], protDataSet: ProtectionDataSet, sessionType: string): object[]; //it says protDataSet but param is marked as protData + getSupportedKeySystemMetadataFromContentProtection(cps: object[], protDataSet: ProtectionDataSet, sessionType: string): object[]; //it says protDataSet but param is marked as protData getSupportedKeySystemsFromSegmentPssh(initData: ArrayBuffer, protDataSet: ProtectionDataSet, sessionType: string): object[]; @@ -3285,7 +3285,7 @@ declare namespace dashjs { reset(): void; } - export interface ProtectionModel_21Jan2015 { + export interface DefaultProtectionModel { getAllInitData(): ArrayBuffer[]; getSessions(): any[]; // Is this MediaSession[] ? diff --git a/package-lock.json b/package-lock.json index a089e8ca96..f04ef3bf32 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,6 +43,7 @@ "karma-junit-reporter": "^2.0.1", "karma-mocha": "^2.0.1", "karma-mocha-reporter": "^2.2.5", + "karma-safarinative-launcher": "^1.1.0", "karma-webdriver-launcher": "^1.0.8", "karma-webpack": "^5.0.0", "mocha": "^10.1.0", @@ -7491,6 +7492,15 @@ "node": ">=4" } }, + "node_modules/karma-safarinative-launcher": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/karma-safarinative-launcher/-/karma-safarinative-launcher-1.1.0.tgz", + "integrity": "sha512-vdMjdQDHkSUbOZc8Zq2K5bBC0yJGFEgfrKRJTqt0Um0SC1Rt8drS2wcN6UA3h4LgsL3f1pMcmRSvKucbJE8Qdg==", + "dev": true, + "peerDependencies": { + "karma": ">=0.9" + } + }, "node_modules/karma-webdriver-launcher": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/karma-webdriver-launcher/-/karma-webdriver-launcher-1.0.8.tgz", diff --git a/package.json b/package.json index 2d25e809f1..30e7ae6806 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "karma-junit-reporter": "^2.0.1", "karma-mocha": "^2.0.1", "karma-mocha-reporter": "^2.2.5", + "karma-safarinative-launcher": "^1.1.0", "karma-webdriver-launcher": "^1.0.8", "karma-webpack": "^5.0.0", "mocha": "^10.1.0", diff --git a/samples/drm/keepProtectionKeys.html b/samples/drm/keepProtectionKeys.html index dcddf64b36..0a1a296af8 100644 --- a/samples/drm/keepProtectionKeys.html +++ b/samples/drm/keepProtectionKeys.html @@ -23,7 +23,7 @@ "com.widevine.alpha": { "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" + "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJ2ZXJzaW9uIjogMSwKICAiY29tX2tleV9pZCI6ICI2OWU1NDA4OC1lOWUwLTQ1MzAtOGMxYS0xZWI2ZGNkMGQxNGUiLAogICJtZXNzYWdlIjogewogICAgInR5cGUiOiAiZW50aXRsZW1lbnRfbWVzc2FnZSIsCiAgICAidmVyc2lvbiI6IDIsCiAgICAibGljZW5zZSI6IHsKICAgICAgImFsbG93X3BlcnNpc3RlbmNlIjogdHJ1ZQogICAgfSwKICAgICJjb250ZW50X2tleXNfc291cmNlIjogewogICAgICAiaW5saW5lIjogWwogICAgICAgIHsKICAgICAgICAgICJpZCI6ICIzMDJmODBkZC00MTFlLTQ4ODYtYmNhNS1iYjFmODAxOGEwMjQiLAogICAgICAgICAgImVuY3J5cHRlZF9rZXkiOiAicm9LQWcwdDdKaTFpNDNmd3YremZ0UT09IiwKICAgICAgICAgICJ1c2FnZV9wb2xpY3kiOiAiUG9saWN5IEEiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImNvbnRlbnRfa2V5X3VzYWdlX3BvbGljaWVzIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAiUG9saWN5IEEiLAogICAgICAgICJwbGF5cmVhZHkiOiB7CiAgICAgICAgICAibWluX2RldmljZV9zZWN1cml0eV9sZXZlbCI6IDE1MCwKICAgICAgICAgICJwbGF5X2VuYWJsZXJzIjogWwogICAgICAgICAgICAiNzg2NjI3RDgtQzJBNi00NEJFLThGODgtMDhBRTI1NUIwMUE3IgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAgXQogIH0KfQ._NfhLVY7S6k8TJDWPeMPhUawhympnrk6WAZHOVjER6M" }, "httpTimeout": 5000, priority: 0 @@ -39,7 +39,7 @@ }; var video, player, - url = "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd"; + url = "https://media.axprod.net/TestVectors/Cmaf/protected_1080p_h264_cbcs/manifest.mpd"; var attachSourceButton = document.getElementById('attach_button'); video = document.querySelector("video"); diff --git a/samples/drm/license-wrapping.html b/samples/drm/license-wrapping.html index f953fe7c87..c8e771edbb 100644 --- a/samples/drm/license-wrapping.html +++ b/samples/drm/license-wrapping.html @@ -28,13 +28,13 @@ }; var video, player, - url = "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd"; + url = "https://media.axprod.net/TestVectors/Cmaf/protected_1080p_h264_cbcs/manifest.mpd"; var filterLicenseRequest = function (request) { console.log('LICENSE REQUEST', request); /* Here you can modify/overwrite the licens request (url, headers, data...) */ request.headers = { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImZpcnN0X3BsYXlfZXhwaXJhdGlvbiI6NjAsInBsYXlyZWFkeSI6eyJyZWFsX3RpbWVfZXhwaXJhdGlvbiI6dHJ1ZX0sImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.FAbIiPxX8BHi9RwfzD7Yn-wugU19ghrkBFKsaCPrZmU" + "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJ2ZXJzaW9uIjogMSwKICAiY29tX2tleV9pZCI6ICI2OWU1NDA4OC1lOWUwLTQ1MzAtOGMxYS0xZWI2ZGNkMGQxNGUiLAogICJtZXNzYWdlIjogewogICAgInR5cGUiOiAiZW50aXRsZW1lbnRfbWVzc2FnZSIsCiAgICAidmVyc2lvbiI6IDIsCiAgICAibGljZW5zZSI6IHsKICAgICAgImFsbG93X3BlcnNpc3RlbmNlIjogdHJ1ZQogICAgfSwKICAgICJjb250ZW50X2tleXNfc291cmNlIjogewogICAgICAiaW5saW5lIjogWwogICAgICAgIHsKICAgICAgICAgICJpZCI6ICIzMDJmODBkZC00MTFlLTQ4ODYtYmNhNS1iYjFmODAxOGEwMjQiLAogICAgICAgICAgImVuY3J5cHRlZF9rZXkiOiAicm9LQWcwdDdKaTFpNDNmd3YremZ0UT09IiwKICAgICAgICAgICJ1c2FnZV9wb2xpY3kiOiAiUG9saWN5IEEiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImNvbnRlbnRfa2V5X3VzYWdlX3BvbGljaWVzIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAiUG9saWN5IEEiLAogICAgICAgICJwbGF5cmVhZHkiOiB7CiAgICAgICAgICAibWluX2RldmljZV9zZWN1cml0eV9sZXZlbCI6IDE1MCwKICAgICAgICAgICJwbGF5X2VuYWJsZXJzIjogWwogICAgICAgICAgICAiNzg2NjI3RDgtQzJBNi00NEJFLThGODgtMDhBRTI1NUIwMUE3IgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAgXQogIH0KfQ._NfhLVY7S6k8TJDWPeMPhUawhympnrk6WAZHOVjER6M" } return Promise.resolve(); } diff --git a/samples/drm/robustness-level.html b/samples/drm/robustness-level.html index 6cab61a992..891fb1bc9f 100644 --- a/samples/drm/robustness-level.html +++ b/samples/drm/robustness-level.html @@ -23,7 +23,7 @@ "com.widevine.alpha": { "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImZpcnN0X3BsYXlfZXhwaXJhdGlvbiI6NjAsInBsYXlyZWFkeSI6eyJyZWFsX3RpbWVfZXhwaXJhdGlvbiI6dHJ1ZX0sImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.FAbIiPxX8BHi9RwfzD7Yn-wugU19ghrkBFKsaCPrZmU" + "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJ2ZXJzaW9uIjogMSwKICAiY29tX2tleV9pZCI6ICI2OWU1NDA4OC1lOWUwLTQ1MzAtOGMxYS0xZWI2ZGNkMGQxNGUiLAogICJtZXNzYWdlIjogewogICAgInR5cGUiOiAiZW50aXRsZW1lbnRfbWVzc2FnZSIsCiAgICAidmVyc2lvbiI6IDIsCiAgICAibGljZW5zZSI6IHsKICAgICAgImFsbG93X3BlcnNpc3RlbmNlIjogdHJ1ZQogICAgfSwKICAgICJjb250ZW50X2tleXNfc291cmNlIjogewogICAgICAiaW5saW5lIjogWwogICAgICAgIHsKICAgICAgICAgICJpZCI6ICIzMDJmODBkZC00MTFlLTQ4ODYtYmNhNS1iYjFmODAxOGEwMjQiLAogICAgICAgICAgImVuY3J5cHRlZF9rZXkiOiAicm9LQWcwdDdKaTFpNDNmd3YremZ0UT09IiwKICAgICAgICAgICJ1c2FnZV9wb2xpY3kiOiAiUG9saWN5IEEiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImNvbnRlbnRfa2V5X3VzYWdlX3BvbGljaWVzIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAiUG9saWN5IEEiLAogICAgICAgICJwbGF5cmVhZHkiOiB7CiAgICAgICAgICAibWluX2RldmljZV9zZWN1cml0eV9sZXZlbCI6IDE1MCwKICAgICAgICAgICJwbGF5X2VuYWJsZXJzIjogWwogICAgICAgICAgICAiNzg2NjI3RDgtQzJBNi00NEJFLThGODgtMDhBRTI1NUIwMUE3IgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAgXQogIH0KfQ._NfhLVY7S6k8TJDWPeMPhUawhympnrk6WAZHOVjER6M" }, priority: 0, "audioRobustness": "SW_SECURE_CRYPTO", @@ -32,7 +32,7 @@ }; var video, player, - url = "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd"; + url = "https://media.axprod.net/TestVectors/Cmaf/protected_1080p_h264_cbcs/manifest.mpd"; video = document.querySelector("video"); player = dashjs.MediaPlayer().create(); diff --git a/samples/drm/system-priority.html b/samples/drm/system-priority.html index 1f22df5797..be06a22849 100644 --- a/samples/drm/system-priority.html +++ b/samples/drm/system-priority.html @@ -24,7 +24,7 @@ 'serverURL': 'https://drm-widevine-licensing.axtest.net/AcquireLicense', 'priority': 1, 'httpRequestHeaders': { - 'X-AxDRM-Message': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImZpcnN0X3BsYXlfZXhwaXJhdGlvbiI6NjAsInBsYXlyZWFkeSI6eyJyZWFsX3RpbWVfZXhwaXJhdGlvbiI6dHJ1ZX0sImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.FAbIiPxX8BHi9RwfzD7Yn-wugU19ghrkBFKsaCPrZmU' + 'X-AxDRM-Message': "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJ2ZXJzaW9uIjogMSwKICAiY29tX2tleV9pZCI6ICI2OWU1NDA4OC1lOWUwLTQ1MzAtOGMxYS0xZWI2ZGNkMGQxNGUiLAogICJtZXNzYWdlIjogewogICAgInR5cGUiOiAiZW50aXRsZW1lbnRfbWVzc2FnZSIsCiAgICAidmVyc2lvbiI6IDIsCiAgICAibGljZW5zZSI6IHsKICAgICAgImFsbG93X3BlcnNpc3RlbmNlIjogdHJ1ZQogICAgfSwKICAgICJjb250ZW50X2tleXNfc291cmNlIjogewogICAgICAiaW5saW5lIjogWwogICAgICAgIHsKICAgICAgICAgICJpZCI6ICIzMDJmODBkZC00MTFlLTQ4ODYtYmNhNS1iYjFmODAxOGEwMjQiLAogICAgICAgICAgImVuY3J5cHRlZF9rZXkiOiAicm9LQWcwdDdKaTFpNDNmd3YremZ0UT09IiwKICAgICAgICAgICJ1c2FnZV9wb2xpY3kiOiAiUG9saWN5IEEiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImNvbnRlbnRfa2V5X3VzYWdlX3BvbGljaWVzIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAiUG9saWN5IEEiLAogICAgICAgICJwbGF5cmVhZHkiOiB7CiAgICAgICAgICAibWluX2RldmljZV9zZWN1cml0eV9sZXZlbCI6IDE1MCwKICAgICAgICAgICJwbGF5X2VuYWJsZXJzIjogWwogICAgICAgICAgICAiNzg2NjI3RDgtQzJBNi00NEJFLThGODgtMDhBRTI1NUIwMUE3IgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAgXQogIH0KfQ._NfhLVY7S6k8TJDWPeMPhUawhympnrk6WAZHOVjER6M" } }, 'com.microsoft.playready': { @@ -37,7 +37,7 @@ }; var video, player, - url = 'https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd'; + url = "https://media.axprod.net/TestVectors/Cmaf/protected_1080p_h264_cbcs/manifest.mpd"; video = document.querySelector('video'); player = dashjs.MediaPlayer().create(); diff --git a/samples/drm/system-string-priority.html b/samples/drm/system-string-priority.html index de5e9bfd27..e660eb2c34 100644 --- a/samples/drm/system-string-priority.html +++ b/samples/drm/system-string-priority.html @@ -25,7 +25,7 @@ 'systemStringPriority': ['com.widevine.something', 'com.widevine.alpha'], 'priority': 2, 'httpRequestHeaders': { - 'X-AxDRM-Message': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImZpcnN0X3BsYXlfZXhwaXJhdGlvbiI6NjAsInBsYXlyZWFkeSI6eyJyZWFsX3RpbWVfZXhwaXJhdGlvbiI6dHJ1ZX0sImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.FAbIiPxX8BHi9RwfzD7Yn-wugU19ghrkBFKsaCPrZmU' + 'X-AxDRM-Message': "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJ2ZXJzaW9uIjogMSwKICAiY29tX2tleV9pZCI6ICI2OWU1NDA4OC1lOWUwLTQ1MzAtOGMxYS0xZWI2ZGNkMGQxNGUiLAogICJtZXNzYWdlIjogewogICAgInR5cGUiOiAiZW50aXRsZW1lbnRfbWVzc2FnZSIsCiAgICAidmVyc2lvbiI6IDIsCiAgICAibGljZW5zZSI6IHsKICAgICAgImFsbG93X3BlcnNpc3RlbmNlIjogdHJ1ZQogICAgfSwKICAgICJjb250ZW50X2tleXNfc291cmNlIjogewogICAgICAiaW5saW5lIjogWwogICAgICAgIHsKICAgICAgICAgICJpZCI6ICIzMDJmODBkZC00MTFlLTQ4ODYtYmNhNS1iYjFmODAxOGEwMjQiLAogICAgICAgICAgImVuY3J5cHRlZF9rZXkiOiAicm9LQWcwdDdKaTFpNDNmd3YremZ0UT09IiwKICAgICAgICAgICJ1c2FnZV9wb2xpY3kiOiAiUG9saWN5IEEiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImNvbnRlbnRfa2V5X3VzYWdlX3BvbGljaWVzIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAiUG9saWN5IEEiLAogICAgICAgICJwbGF5cmVhZHkiOiB7CiAgICAgICAgICAibWluX2RldmljZV9zZWN1cml0eV9sZXZlbCI6IDE1MCwKICAgICAgICAgICJwbGF5X2VuYWJsZXJzIjogWwogICAgICAgICAgICAiNzg2NjI3RDgtQzJBNi00NEJFLThGODgtMDhBRTI1NUIwMUE3IgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAgXQogIH0KfQ._NfhLVY7S6k8TJDWPeMPhUawhympnrk6WAZHOVjER6M" } }, 'com.microsoft.playready': { @@ -39,7 +39,7 @@ }; var video, player, - url = 'https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd'; + url = "https://media.axprod.net/TestVectors/Cmaf/protected_1080p_h264_cbcs/manifest.mpd"; video = document.querySelector('video'); player = dashjs.MediaPlayer().create(); diff --git a/samples/drm/widevine.html b/samples/drm/widevine.html index a42def2e77..3ffa11f83e 100644 --- a/samples/drm/widevine.html +++ b/samples/drm/widevine.html @@ -23,14 +23,14 @@ "com.widevine.alpha": { "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", "httpRequestHeaders": { - "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" + "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJ2ZXJzaW9uIjogMSwKICAiY29tX2tleV9pZCI6ICI2OWU1NDA4OC1lOWUwLTQ1MzAtOGMxYS0xZWI2ZGNkMGQxNGUiLAogICJtZXNzYWdlIjogewogICAgInR5cGUiOiAiZW50aXRsZW1lbnRfbWVzc2FnZSIsCiAgICAidmVyc2lvbiI6IDIsCiAgICAibGljZW5zZSI6IHsKICAgICAgImFsbG93X3BlcnNpc3RlbmNlIjogdHJ1ZQogICAgfSwKICAgICJjb250ZW50X2tleXNfc291cmNlIjogewogICAgICAiaW5saW5lIjogWwogICAgICAgIHsKICAgICAgICAgICJpZCI6ICIzMDJmODBkZC00MTFlLTQ4ODYtYmNhNS1iYjFmODAxOGEwMjQiLAogICAgICAgICAgImVuY3J5cHRlZF9rZXkiOiAicm9LQWcwdDdKaTFpNDNmd3YremZ0UT09IiwKICAgICAgICAgICJ1c2FnZV9wb2xpY3kiOiAiUG9saWN5IEEiCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgImNvbnRlbnRfa2V5X3VzYWdlX3BvbGljaWVzIjogWwogICAgICB7CiAgICAgICAgIm5hbWUiOiAiUG9saWN5IEEiLAogICAgICAgICJwbGF5cmVhZHkiOiB7CiAgICAgICAgICAibWluX2RldmljZV9zZWN1cml0eV9sZXZlbCI6IDE1MCwKICAgICAgICAgICJwbGF5X2VuYWJsZXJzIjogWwogICAgICAgICAgICAiNzg2NjI3RDgtQzJBNi00NEJFLThGODgtMDhBRTI1NUIwMUE3IgogICAgICAgICAgXQogICAgICAgIH0KICAgICAgfQogICAgXQogIH0KfQ._NfhLVY7S6k8TJDWPeMPhUawhympnrk6WAZHOVjER6M" }, priority: 0 } }; var video, player, - url = "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd"; + url = "https://media.axprod.net/TestVectors/Cmaf/protected_1080p_h264_cbcs/manifest.mpd"; video = document.querySelector("video"); player = dashjs.MediaPlayer().create(); diff --git a/src/core/Settings.js b/src/core/Settings.js index 1a755c19f0..94f1aab8a0 100644 --- a/src/core/Settings.js +++ b/src/core/Settings.js @@ -80,7 +80,7 @@ import Events from './events/Events.js'; * { schemeIdUri: Constants.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI, value: /1|6|13|14|15/ }, * ...Constants.THUMBNAILS_SCHEME_ID_URIS.map(ep => { return { 'schemeIdUri': ep }; }) * ], - * useMediaCapabilitiesApi: false, + * useMediaCapabilitiesApi: true, * filterVideoColorimetryEssentialProperties: false, * filterHDRMetadataFormatEssentialProperties: false * }, @@ -660,7 +660,7 @@ import Events from './events/Events.js'; * Enable to filter all the AdaptationSets and Representations which contain an unsupported \ element. * @property {Array.} [supportedEssentialProperties] * List of supported \ elements - * @property {boolean} [useMediaCapabilitiesApi=false] + * @property {boolean} [useMediaCapabilitiesApi=true] * Enable to use the MediaCapabilities API to check whether codecs are supported. If disabled MSE.isTypeSupported will be used instead. * @property {boolean} [filterVideoColorimetryEssentialProperties=false] * Enable dash.js to query MediaCapabilities API for signalled Colorimetry EssentialProperties (per schemeIdUris: 'urn:mpeg:mpegB:cicp:ColourPrimaries', 'urn:mpeg:mpegB:cicp:TransferCharacteristics'). @@ -1062,7 +1062,7 @@ function Settings() { { schemeIdUri: Constants.TRANSFER_CHARACTERISTICS_SCHEME_ID_URI, value: /1|6|13|14|15/ }, ...Constants.THUMBNAILS_SCHEME_ID_URIS.map(ep => { return { 'schemeIdUri': ep }; }) ], - useMediaCapabilitiesApi: false, + useMediaCapabilitiesApi: true, filterVideoColorimetryEssentialProperties: false, filterHDRMetadataFormatEssentialProperties: false }, diff --git a/src/mss/MssFragmentMoovProcessor.js b/src/mss/MssFragmentMoovProcessor.js index 16c88b4964..3f754ed538 100644 --- a/src/mss/MssFragmentMoovProcessor.js +++ b/src/mss/MssFragmentMoovProcessor.js @@ -141,7 +141,7 @@ function MssFragmentMoovProcessor(config) { createTrexBox(mvex); if (contentProtection && protectionController) { - let supportedKS = protectionController.getSupportedKeySystemsFromContentProtection(contentProtection); + let supportedKS = protectionController.getSupportedKeySystemMetadataFromContentProtection(contentProtection); createProtectionSystemSpecificHeaderBox(moov, supportedKS); } } diff --git a/src/mss/parser/MssParser.js b/src/mss/parser/MssParser.js index b63922f1f0..efcd799b02 100644 --- a/src/mss/parser/MssParser.js +++ b/src/mss/parser/MssParser.js @@ -37,6 +37,7 @@ import BigInt from '../../../externals/BigInteger.js'; import FactoryMaker from '../../core/FactoryMaker.js'; +import ProtectionConstants from '../../streaming/constants/ProtectionConstants.js'; function MssParser(config) { config = config || {}; @@ -531,16 +532,16 @@ function MssParser(config) { __prefix: 'mspr' }; return { - schemeIdUri: 'urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95', - value: 'com.microsoft.playready', + schemeIdUri: 'urn:uuid:' + ProtectionConstants.PLAYREADY_UUID, + value: ProtectionConstants.PLAYREADY_KEYSTEM_STRING, pro: pro }; } function createWidevineContentProtection(KID) { let widevineCP = { - schemeIdUri: 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed', - value: 'com.widevine.alpha' + schemeIdUri: 'urn:uuid:' + ProtectionConstants.WIDEVINE_UUID, + value: ProtectionConstants.WIDEVINE_KEYSTEM_STRING }; if (!KID) { return widevineCP; diff --git a/src/streaming/MediaPlayer.js b/src/streaming/MediaPlayer.js index 71b5fc8c96..53fa6a48cc 100644 --- a/src/streaming/MediaPlayer.js +++ b/src/streaming/MediaPlayer.js @@ -2358,6 +2358,7 @@ function MediaPlayer() { customParametersModel, adapter, settings, + protectionController, manifestModel, errHandler }); diff --git a/src/streaming/constants/ProtectionConstants.js b/src/streaming/constants/ProtectionConstants.js index d3de7a78cc..1301907599 100644 --- a/src/streaming/constants/ProtectionConstants.js +++ b/src/streaming/constants/ProtectionConstants.js @@ -34,14 +34,25 @@ * @ignore */ export default { - CLEARKEY_KEYSTEM_STRING: 'org.w3.clearkey', WIDEVINE_KEYSTEM_STRING: 'com.widevine.alpha', PLAYREADY_KEYSTEM_STRING: 'com.microsoft.playready', PLAYREADY_RECOMMENDATION_KEYSTEM_STRING: 'com.microsoft.playready.recommendation', + WIDEVINE_UUID: 'edef8ba9-79d6-4ace-a3c8-27dcd51d21ed', + PLAYREADY_UUID: '9a04f079-9840-4286-ab92-e65be0885f95', + CLEARKEY_UUID: 'e2719d58-a985-b3c9-781a-b030af78d30e', + W3C_CLEARKEY_UUID: '1077efec-c0b2-4d02-ace3-3c1e52e2fb4b', INITIALIZATION_DATA_TYPE_CENC: 'cenc', INITIALIZATION_DATA_TYPE_KEYIDS: 'keyids', - INITIALIZATION_DATA_TYPE_WEBM: 'webm' + INITIALIZATION_DATA_TYPE_WEBM: 'webm', + ENCRYPTION_SCHEME_CENC: 'cenc', + ENCRYPTION_SCHEME_CBCS: 'cbcs', + MEDIA_KEY_MESSAGE_TYPES: { + LICENSE_REQUEST: 'license-request', + LICENSE_RENEWAL: 'license-renewal', + LICENSE_RELEASE: 'license-release', + INDIVIDUALIZATION_REQUEST: 'individualization-request', + } } diff --git a/src/streaming/protection/CommonEncryption.js b/src/streaming/protection/CommonEncryption.js index 3668c6d5d8..e8b64d62ea 100644 --- a/src/streaming/protection/CommonEncryption.js +++ b/src/streaming/protection/CommonEncryption.js @@ -29,6 +29,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ import DashConstants from '../../dash/constants/DashConstants.js'; +import ProtectionConstants from '../constants/ProtectionConstants.js'; const LICENSE_SERVER_MANIFEST_CONFIGURATIONS = { prefixes: ['clearkey', 'dashif', 'ck'] @@ -52,7 +53,7 @@ class CommonEncryption { for (let i = 0; i < cpArray.length; ++i) { let cp = cpArray[i]; if (cp.schemeIdUri && cp.schemeIdUri.toLowerCase() === DashConstants.MP4_PROTECTION_SCHEME && cp.value && - (cp.value.toLowerCase() === 'cenc' || cp.value.toLowerCase() === 'cbcs')) { + (cp.value.toLowerCase() === ProtectionConstants.ENCRYPTION_SCHEME_CENC || cp.value.toLowerCase() === ProtectionConstants.ENCRYPTION_SCHEME_CBCS)) { retVal = cp; } } diff --git a/src/streaming/protection/Protection.js b/src/streaming/protection/Protection.js index 124eb0eb51..a1300ee0d4 100644 --- a/src/streaming/protection/Protection.js +++ b/src/streaming/protection/Protection.js @@ -32,7 +32,7 @@ import ProtectionController from './controllers/ProtectionController.js'; import ProtectionKeyController from './controllers/ProtectionKeyController.js'; import ProtectionEvents from './ProtectionEvents.js'; import ProtectionErrors from './errors/ProtectionErrors.js'; -import ProtectionModel_21Jan2015 from './models/ProtectionModel_21Jan2015.js'; +import DefaultProtectionModel from './models/DefaultProtectionModel.js'; import ProtectionModel_3Feb2014 from './models/ProtectionModel_3Feb2014.js'; import ProtectionModel_01b from './models/ProtectionModel_01b.js'; @@ -121,17 +121,17 @@ function Protection() { let protectionModel = _getProtectionModel(config); - if (!controller && protectionModel) {//TODO add ability to set external controller if still needed at all? + if (protectionModel) { controller = ProtectionController(context).create({ - protectionModel: protectionModel, - protectionKeyController: protectionKeyController, - eventBus: config.eventBus, - debug: config.debug, - events: config.events, BASE64: config.BASE64, - constants: config.constants, cmcdModel: config.cmcdModel, + constants: config.constants, customParametersModel: config.customParametersModel, + debug: config.debug, + eventBus: config.eventBus, + events: config.events, + protectionKeyController: protectionKeyController, + protectionModel: protectionModel, settings: config.settings }); config.capabilities.setEncryptedMediaSupported(true); @@ -148,8 +148,8 @@ function Protection() { if ((!videoElement || videoElement.onencrypted !== undefined) && (!videoElement || videoElement.mediaKeys !== undefined)) { - logger.info('EME detected on this user agent! (ProtectionModel_21Jan2015)'); - return ProtectionModel_21Jan2015(context).create({ + logger.info('EME detected on this user agent! (DefaultProtectionModel'); + return DefaultProtectionModel(context).create({ debug: debug, eventBus: eventBus, events: config.events @@ -200,8 +200,8 @@ function Protection() { } Protection.__dashjs_factory_name = 'Protection'; -const factory = dashjs.FactoryMaker.getClassFactory(Protection); +const factory = dashjs.FactoryMaker.getClassFactory(Protection); factory.events = ProtectionEvents; factory.errors = ProtectionErrors; -dashjs.FactoryMaker.updateClassFactory(Protection.__dashjs_factory_name, factory); +dashjs.FactoryMaker.updateClassFactory(Protection.__dashjs_factory_name, factory); export default factory; diff --git a/src/streaming/protection/controllers/ProtectionController.js b/src/streaming/protection/controllers/ProtectionController.js index 8c2213e9b3..32aee06e04 100644 --- a/src/streaming/protection/controllers/ProtectionController.js +++ b/src/streaming/protection/controllers/ProtectionController.js @@ -40,6 +40,7 @@ import {HTTPRequest} from '../../vo/metrics/HTTPRequest.js'; import Utils from '../../../core/Utils.js'; import Constants from '../../constants/Constants.js'; import FactoryMaker from '../../../core/FactoryMaker.js'; +import ProtectionConstants from '../../constants/ProtectionConstants.js'; const NEEDKEY_BEFORE_INITIALIZE_RETRIES = 5; const NEEDKEY_BEFORE_INITIALIZE_TIMEOUT = 500; @@ -66,23 +67,23 @@ const LICENSE_SERVER_REQUEST_DEFAULT_TIMEOUT = 8000; function ProtectionController(config) { config = config || {}; - const protectionKeyController = config.protectionKeyController; - let protectionModel = config.protectionModel; - const eventBus = config.eventBus; - const events = config.events; - const debug = config.debug; const BASE64 = config.BASE64; - const constants = config.constants; - let needkeyRetries = []; const cmcdModel = config.cmcdModel; - const settings = config.settings; + const constants = config.constants; const customParametersModel = config.customParametersModel; + const debug = config.debug; + const eventBus = config.eventBus; + const events = config.events; + const protectionKeyController = config.protectionKeyController; + const settings = config.settings; + let protectionModel = config.protectionModel; + let needkeyRetries = []; let instance, logger, - pendingKeySessionsToHandle, + pendingMediaTypesToHandle, mediaInfoArr, - protDataSet, + applicationProvidedProtectionData, sessionType, robustnessLevel, selectedKeySystem, @@ -92,7 +93,7 @@ function ProtectionController(config) { function setup() { logger = debug.getLogger(instance); - pendingKeySessionsToHandle = []; + pendingMediaTypesToHandle = []; mediaInfoArr = []; sessionType = 'temporary'; robustnessLevel = ''; @@ -102,8 +103,8 @@ function ProtectionController(config) { eventBus.on(events.INTERNAL_KEY_STATUS_CHANGED, _onKeyStatusChanged, instance); } - function checkConfig() { - if (!eventBus || !eventBus.hasOwnProperty('on') || !protectionKeyController || !protectionKeyController.hasOwnProperty('getSupportedKeySystemsFromContentProtection')) { + function _checkConfig() { + if (!eventBus || !eventBus.hasOwnProperty('on') || !protectionKeyController || !protectionKeyController.hasOwnProperty('getSupportedKeySystemMetadataFromContentProtection')) { throw new Error('Missing config parameter(s)'); } } @@ -124,8 +125,7 @@ function ProtectionController(config) { throw new Error('mediaInfo can not be null or undefined'); } - checkConfig(); - + _checkConfig(); mediaInfoArr.push(mediaInfo); } @@ -139,165 +139,216 @@ function ProtectionController(config) { return; } - let supportedKeySystems = []; - mediaInfoArr.forEach((mInfo) => { - const currentKs = protectionKeyController.getSupportedKeySystemsFromContentProtection(mInfo.contentProtection, protDataSet, sessionType); - // We assume that the same key systems are signaled for each AS. We can use the first entry we found - if (currentKs.length > 0) { - if (supportedKeySystems.length === 0) { - supportedKeySystems = currentKs; + let supportedKeySystemsMetadata = []; + mediaInfoArr.forEach((mediaInfo) => { + const keySystemsMetadata = protectionKeyController.getSupportedKeySystemMetadataFromContentProtection(mediaInfo.contentProtection, applicationProvidedProtectionData, sessionType); + // We assume that the same key systems are signaled for each AS. We can use the first entry we find + if (keySystemsMetadata.length > 0) { + if (supportedKeySystemsMetadata.length === 0) { + supportedKeySystemsMetadata = keySystemsMetadata; } // Save config for creating key session once we selected a key system - pendingKeySessionsToHandle.push(currentKs); + pendingMediaTypesToHandle.push(keySystemsMetadata); } }) - if (supportedKeySystems && supportedKeySystems.length > 0) { - _selectKeySystemOrUpdateKeySessions(supportedKeySystems, true); + if (supportedKeySystemsMetadata && supportedKeySystemsMetadata.length > 0) { + _selectKeySystemOrUpdateKeySessions(supportedKeySystemsMetadata, true); } } /** * Selects a key system if we dont have any one yet. Otherwise we use the existing key system and trigger a new license request if the initdata has changed - * @param {array} supportedKs + * @param {array} supportedKeySystemsMetadata * @private */ - function _handleKeySystemFromPssh(supportedKs) { - pendingKeySessionsToHandle.push(supportedKs); - _selectKeySystemOrUpdateKeySessions(supportedKs, false); + function _handleKeySystemFromPssh(supportedKeySystemsMetadata) { + pendingMediaTypesToHandle.push(supportedKeySystemsMetadata); + _selectKeySystemOrUpdateKeySessions(supportedKeySystemsMetadata, false); } /** * Select the key system or update one of our existing key sessions - * @param {array} supportedKs + * @param {array} supportedKeySystemsMetadata * @param {boolean} fromManifest * @private */ - function _selectKeySystemOrUpdateKeySessions(supportedKs, fromManifest) { + function _selectKeySystemOrUpdateKeySessions(supportedKeySystemsMetadata, fromManifest) { // First time, so we need to select a key system if (!selectedKeySystem && !keySystemSelectionInProgress) { - _selectInitialKeySystem(supportedKs, fromManifest); + _selectInitialKeySystem(supportedKeySystemsMetadata, fromManifest); } // We already selected a key system. We only need to trigger a new license exchange if the init data has changed else if (selectedKeySystem) { - _handleKeySessions(); + _handlePendingMediaTypes(); } } /** * We do not have a key system yet. Select one - * @param {array} supportedKs + * @param {array} supportedKeySystemsMetadata * @param {boolean} fromManifest * @private */ - function _selectInitialKeySystem(supportedKs, fromManifest) { - if (!keySystemSelectionInProgress) { - keySystemSelectionInProgress = true; - const requestedKeySystems = []; - - // Reorder key systems according to priority order provided in protectionData - supportedKs = supportedKs.sort((ksA, ksB) => { - let indexA = (protDataSet && protDataSet[ksA.ks.systemString] && protDataSet[ksA.ks.systemString].priority >= 0) ? protDataSet[ksA.ks.systemString].priority : supportedKs.length; - let indexB = (protDataSet && protDataSet[ksB.ks.systemString] && protDataSet[ksB.ks.systemString].priority >= 0) ? protDataSet[ksB.ks.systemString].priority : supportedKs.length; - return indexA - indexB; - }); + function _selectInitialKeySystem(supportedKeySystemsMetadata, fromManifest) { + if (keySystemSelectionInProgress) { + return + } - // Add all key systems to our request list since we have yet to select a key system - for (let i = 0; i < supportedKs.length; i++) { - const keySystemConfiguration = _getKeySystemConfiguration(supportedKs[i]); - requestedKeySystems.push({ - ks: supportedKs[i].ks, - configs: [keySystemConfiguration], - protData: supportedKs[i].protData - }); - } + keySystemSelectionInProgress = true; - let keySystemAccess; + // Reorder key systems according to priority order provided in protectionData + supportedKeySystemsMetadata = _sortKeySystemsByPriority(supportedKeySystemsMetadata) - protectionModel.requestKeySystemAccess(requestedKeySystems) - .then((event) => { - keySystemAccess = event.data; - let selectedSystemString = keySystemAccess.mksa && keySystemAccess.mksa.selectedSystemString ? keySystemAccess.mksa.selectedSystemString : keySystemAccess.keySystem.systemString; - logger.info('DRM: KeySystem Access Granted for system string (' + selectedSystemString + ')! Selecting key system...'); - return protectionModel.selectKeySystem(keySystemAccess); - }) - .then((keySystem) => { - selectedKeySystem = keySystem; - keySystemSelectionInProgress = false; + // Add all key systems to our request list since we have yet to select a key system + const keySystemConfigurationsToRequest = _getKeySystemConfigurations(supportedKeySystemsMetadata); - if (!protectionModel) { - return; - } + let keySystemAccess; + protectionModel.requestKeySystemAccess(keySystemConfigurationsToRequest) + .then((event) => { + keySystemAccess = event.data; + return _onKeySystemAccessed(keySystemAccess); + }) + .then((keySystem) => { + _onMediaKeysCreated(keySystem, keySystemAccess); + }) + .catch((event) => { + _handleKeySystemSelectionError(event, fromManifest); + }) - eventBus.trigger(events.KEY_SYSTEM_SELECTED, { data: keySystemAccess }); + } - // Set server certificate from protData - const protData = _getProtDataForKeySystem(selectedKeySystem); - if (protData && protData.serverCertificate && protData.serverCertificate.length > 0) { - protectionModel.setServerCertificate(BASE64.decodeArray(protData.serverCertificate).buffer); - } + function _onKeySystemAccessed(keySystemAccess) { + let selectedSystemString = keySystemAccess && keySystemAccess.selectedSystemString ? keySystemAccess.selectedSystemString : keySystemAccess.keySystem.systemString; + logger.info('DRM: KeySystem Access Granted for system string (' + selectedSystemString + ')! Selecting key system...'); + return protectionModel.selectKeySystem(keySystemAccess); + } - _handleKeySessions(); - }) - .catch((event) => { - selectedKeySystem = null; - keySystemSelectionInProgress = false; - if (!fromManifest) { - eventBus.trigger(events.KEY_SYSTEM_SELECTED, { - data: null, - error: new DashJSError(ProtectionErrors.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE, ProtectionErrors.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE + 'Error selecting key system! -- ' + event.error) - }); - } - }) + function _onMediaKeysCreated(keySystem, keySystemAccess) { + selectedKeySystem = keySystem; + keySystemSelectionInProgress = false; + + eventBus.trigger(events.KEY_SYSTEM_SELECTED, { data: keySystemAccess }); + + // Set server certificate from protData + const protData = _getProtDataForKeySystem(selectedKeySystem); + if (protData && protData.serverCertificate && protData.serverCertificate.length > 0) { + protectionModel.setServerCertificate(BASE64.decodeArray(protData.serverCertificate).buffer); } + + _handlePendingMediaTypes(); } /** * If we have already selected a key system we only need to create a new key session and issue a new license request if the init data has changed. * @private */ - function _handleKeySessions() { + function _handlePendingMediaTypes() { // Create key sessions for the different AdaptationSets let ksIdx; - for (let i = 0; i < pendingKeySessionsToHandle.length; i++) { - for (ksIdx = 0; ksIdx < pendingKeySessionsToHandle[i].length; ksIdx++) { - if (selectedKeySystem === pendingKeySessionsToHandle[i][ksIdx].ks) { - const current = pendingKeySessionsToHandle[i][ksIdx] - _loadOrCreateKeySession(current) + for (let i = 0; i < pendingMediaTypesToHandle.length; i++) { + for (ksIdx = 0; ksIdx < pendingMediaTypesToHandle[i].length; ksIdx++) { + if (selectedKeySystem === pendingMediaTypesToHandle[i][ksIdx].ks) { + const keySystemMetadata = pendingMediaTypesToHandle[i][ksIdx] + _loadOrCreateKeySession(keySystemMetadata) break; } } } - pendingKeySessionsToHandle = []; + pendingMediaTypesToHandle = []; + } + + function _handleKeySystemSelectionError(event, fromManifest) { + selectedKeySystem = null; + keySystemSelectionInProgress = false; + if (!fromManifest) { + eventBus.trigger(events.KEY_SYSTEM_SELECTED, { + data: null, + error: new DashJSError(ProtectionErrors.KEY_SYSTEM_ACCESS_DENIED_ERROR_CODE, ProtectionErrors.KEY_SYSTEM_ACCESS_DENIED_ERROR_MESSAGE + 'Error selecting key system! -- ' + event.error) + }); + } + } + + function _sortKeySystemsByPriority(supportedKeySystems) { + return supportedKeySystems.sort((ksA, ksB) => { + let indexA = (applicationProvidedProtectionData && applicationProvidedProtectionData[ksA.ks.systemString] && applicationProvidedProtectionData[ksA.ks.systemString].priority >= 0) ? applicationProvidedProtectionData[ksA.ks.systemString].priority : supportedKeySystems.length; + let indexB = (applicationProvidedProtectionData && applicationProvidedProtectionData[ksB.ks.systemString] && applicationProvidedProtectionData[ksB.ks.systemString].priority >= 0) ? applicationProvidedProtectionData[ksB.ks.systemString].priority : supportedKeySystems.length; + return indexA - indexB; + }); + } + + function _getKeySystemConfigurations(supportedKeySystemsMetadata) { + const keySystemConfigurationsToRequest = []; + for (let i = 0; i < supportedKeySystemsMetadata.length; i++) { + const keySystemConfiguration = _getKeySystemConfiguration(supportedKeySystemsMetadata[i]); + keySystemConfigurationsToRequest.push({ + ks: supportedKeySystemsMetadata[i].ks, + configs: [keySystemConfiguration], + protData: supportedKeySystemsMetadata[i].protData + }); + } + + return keySystemConfigurationsToRequest; + } + + /** + * Returns an object corresponding to the EME MediaKeySystemConfiguration dictionary + * @param {object} keySystem + * @return {KeySystemConfiguration} + * @private + */ + function _getKeySystemConfiguration(keySystemData) { + const protData = keySystemData.protData; + const audioCapabilities = []; + const videoCapabilities = []; + const initDataTypes = (protData && protData.initDataTypes && protData.initDataTypes.length > 0) ? protData.initDataTypes : [ProtectionConstants.INITIALIZATION_DATA_TYPE_CENC]; + const audioRobustness = (protData && protData.audioRobustness && protData.audioRobustness.length > 0) ? protData.audioRobustness : robustnessLevel; + const videoRobustness = (protData && protData.videoRobustness && protData.videoRobustness.length > 0) ? protData.videoRobustness : robustnessLevel; + const ksSessionType = keySystemData.sessionType; + const distinctiveIdentifier = (protData && protData.distinctiveIdentifier) ? protData.distinctiveIdentifier : 'optional'; + const persistentState = (protData && protData.persistentState) ? protData.persistentState : (ksSessionType === 'temporary') ? 'optional' : 'required'; + + mediaInfoArr.forEach((media) => { + if (media.type === constants.AUDIO) { + audioCapabilities.push(new MediaCapability(media.codec, audioRobustness)); + } else if (media.type === constants.VIDEO) { + videoCapabilities.push(new MediaCapability(media.codec, videoRobustness)); + } + }); + + return new KeySystemConfiguration(audioCapabilities, videoCapabilities, distinctiveIdentifier, persistentState, [ksSessionType], initDataTypes); } /** * Loads an existing key session if we already have a session id. Otherwise we create a new key session - * @param {object} keySystemInfo + * @param {object} keySystemMetadata * @private */ - function _loadOrCreateKeySession(keySystemInfo) { - // Clearkey + function _loadOrCreateKeySession(keySystemMetadata) { if (protectionKeyController.isClearKey(selectedKeySystem)) { - // For Clearkey: if parameters for generating init data was provided by the user, use them for generating - // initData and overwrite possible initData indicated in encrypted event (EME) - if (keySystemInfo.protData && keySystemInfo.protData.hasOwnProperty('clearkeys') && Object.keys(keySystemInfo.protData.clearkeys).length !== 0) { - const initData = { kids: Object.keys(keySystemInfo.protData.clearkeys) }; - keySystemInfo.initData = new TextEncoder().encode(JSON.stringify(initData)); - } + _handleClearkeySession(keySystemMetadata) } // Reuse existing KeySession - if (keySystemInfo.sessionId) { + if (keySystemMetadata.sessionId) { // Load MediaKeySession with sessionId - loadKeySession(keySystemInfo); + loadKeySession(keySystemMetadata); } // Create a new KeySession - else if (keySystemInfo.initData !== null) { + else if (keySystemMetadata.initData !== null) { // Create new MediaKeySession with initData - createKeySession(keySystemInfo); + createKeySession(keySystemMetadata); + } + } + + function _handleClearkeySession(keySystemMetadata) { + // For Clearkey: if parameters for generating init data was provided by the user, use them for generating + // initData and overwrite possible initData indicated in encrypted event (EME) + if (keySystemMetadata.protData && keySystemMetadata.protData.hasOwnProperty('clearkeys') && Object.keys(keySystemMetadata.protData.clearkeys).length !== 0) { + const initData = { kids: Object.keys(keySystemMetadata.protData.clearkeys) }; + keySystemMetadata.initData = new TextEncoder().encode(JSON.stringify(initData)); } } @@ -310,9 +361,9 @@ function ProtectionController(config) { * @fires ProtectionController#KeySessionCreated * @ignore */ - function loadKeySession(keySystemInfo) { - checkConfig(); - protectionModel.loadKeySession(keySystemInfo); + function loadKeySession(keySystemMetadata) { + _checkConfig(); + protectionModel.loadKeySession(keySystemMetadata); } /** @@ -325,15 +376,14 @@ function ProtectionController(config) { * @fires ProtectionController#KeySessionCreated * @ignore */ - function createKeySession(keySystemInfo) { + function createKeySession(keySystemMetadata) { // Check for duplicate key id - if (keySystemInfo && _isKeyIdDuplicate(keySystemInfo.keyId)) { + if (keySystemMetadata && _doesSessionForKeyIdExists(keySystemMetadata.keyId)) { return; } - const initDataForKS = CommonEncryption.getPSSHForKeySystem(selectedKeySystem, keySystemInfo ? keySystemInfo.initData : null); - + const initDataForKS = CommonEncryption.getPSSHForKeySystem(selectedKeySystem, keySystemMetadata ? keySystemMetadata.initData : null); if (initDataForKS) { // Check for duplicate initData @@ -342,16 +392,16 @@ function ProtectionController(config) { } try { - keySystemInfo.initData = initDataForKS; - protectionModel.createKeySession(keySystemInfo); + keySystemMetadata.initData = initDataForKS; + protectionModel.createKeySession(keySystemMetadata); } catch (error) { eventBus.trigger(events.KEY_SESSION_CREATED, { data: null, error: new DashJSError(ProtectionErrors.KEY_SESSION_CREATED_ERROR_CODE, ProtectionErrors.KEY_SESSION_CREATED_ERROR_MESSAGE + error.message) }); } - } else if (keySystemInfo && keySystemInfo.initData) { - protectionModel.createKeySession(keySystemInfo); + } else if (keySystemMetadata && keySystemMetadata.initData) { + protectionModel.createKeySession(keySystemMetadata); } else { eventBus.trigger(events.KEY_SESSION_CREATED, { data: null, @@ -370,8 +420,8 @@ function ProtectionController(config) { if (keySystem) { const keySystemString = keySystem.systemString; - if (protDataSet) { - return (keySystemString in protDataSet) ? protDataSet[keySystemString] : null; + if (applicationProvidedProtectionData) { + return (keySystemString in applicationProvidedProtectionData) ? applicationProvidedProtectionData[keySystemString] : null; } } return null; @@ -399,9 +449,9 @@ function ProtectionController(config) { * @instance * @ignore */ - function getSupportedKeySystemsFromContentProtection(cps) { - checkConfig(); - return protectionKeyController.getSupportedKeySystemsFromContentProtection(cps, protDataSet, sessionType); + function getSupportedKeySystemMetadataFromContentProtection(cps) { + _checkConfig(); + return protectionKeyController.getSupportedKeySystemMetadataFromContentProtection(cps, applicationProvidedProtectionData, sessionType); } /** @@ -410,8 +460,7 @@ function ProtectionController(config) { * @return {boolean} * @private */ - function _isKeyIdDuplicate(keyId) { - + function _doesSessionForKeyIdExists(keyId) { if (!keyId) { return false; } @@ -470,7 +519,7 @@ function ProtectionController(config) { * @ignore */ function removeKeySession(sessionToken) { - checkConfig(); + _checkConfig(); protectionModel.removeKeySession(sessionToken); } @@ -486,7 +535,7 @@ function ProtectionController(config) { * @ignore */ function closeKeySession(sessionToken) { - checkConfig(); + _checkConfig(); protectionModel.closeKeySession(sessionToken); } @@ -502,7 +551,7 @@ function ProtectionController(config) { * @fires ProtectionController#ServerCertificateUpdated */ function setServerCertificate(serverCertificate) { - checkConfig(); + _checkConfig(); protectionModel.setServerCertificate(serverCertificate); } @@ -517,7 +566,7 @@ function ProtectionController(config) { * @instance */ function setMediaElement(element) { - checkConfig(); + _checkConfig(); if (element) { protectionModel.setMediaElement(element); eventBus.on(events.NEED_KEY, _onNeedKey, instance); @@ -562,7 +611,7 @@ function ProtectionController(config) { * @ignore */ function setProtectionData(data) { - protDataSet = data; + applicationProvidedProtectionData = data; protectionKeyController.setProtectionData(data); } @@ -593,7 +642,7 @@ function ProtectionController(config) { eventBus.off(events.INTERNAL_KEY_MESSAGE, _onKeyMessage, instance); eventBus.off(events.INTERNAL_KEY_STATUS_CHANGED, _onKeyStatusChanged, instance); - checkConfig(); + _checkConfig(); _abortLicenseRequest(); @@ -611,37 +660,7 @@ function ProtectionController(config) { needkeyRetries = []; mediaInfoArr = []; - pendingKeySessionsToHandle = []; - } - - /** - * Returns an object corresponding to the EME MediaKeySystemConfiguration dictionary - * @param {object} keySystem - * @return {KeySystemConfiguration} - * @private - */ - function _getKeySystemConfiguration(keySystemData) { - const protData = keySystemData.protData; - const audioCapabilities = []; - const videoCapabilities = []; - const audioRobustness = (protData && protData.audioRobustness && protData.audioRobustness.length > 0) ? protData.audioRobustness : robustnessLevel; - const videoRobustness = (protData && protData.videoRobustness && protData.videoRobustness.length > 0) ? protData.videoRobustness : robustnessLevel; - const ksSessionType = keySystemData.sessionType; - const distinctiveIdentifier = (protData && protData.distinctiveIdentifier) ? protData.distinctiveIdentifier : 'optional'; - const persistentState = (protData && protData.persistentState) ? protData.persistentState : (ksSessionType === 'temporary') ? 'optional' : 'required'; - - mediaInfoArr.forEach((media) => { - if (media.type === constants.AUDIO) { - audioCapabilities.push(new MediaCapability(media.codec, audioRobustness)); - } else if (media.type === constants.VIDEO) { - videoCapabilities.push(new MediaCapability(media.codec, videoRobustness)); - } - }); - - return new KeySystemConfiguration( - audioCapabilities, videoCapabilities, distinctiveIdentifier, - persistentState, - [ksSessionType]); + pendingMediaTypesToHandle = []; } /** @@ -668,7 +687,7 @@ function ProtectionController(config) { // Dispatch event to applications indicating we received a key message const keyMessage = e.data; eventBus.trigger(events.KEY_MESSAGE, { data: keyMessage }); - const messageType = (keyMessage.messageType) ? keyMessage.messageType : 'license-request'; + const messageType = (keyMessage.messageType) ? keyMessage.messageType : ProtectionConstants.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST; const message = keyMessage.message; const sessionToken = keyMessage.sessionToken; const protData = _getProtDataForKeySystem(selectedKeySystem); @@ -722,7 +741,7 @@ function ProtectionController(config) { */ function _issueLicenseRequest(keyMessage, licenseServerData, protData) { const sessionToken = keyMessage.sessionToken; - const messageType = (keyMessage.messageType) ? keyMessage.messageType : 'license-request'; + const messageType = (keyMessage.messageType) ? keyMessage.messageType : ProtectionConstants.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST; const eventData = { sessionToken: sessionToken, messageType: messageType }; const keySystemString = selectedKeySystem ? selectedKeySystem.systemString : null; @@ -1049,7 +1068,7 @@ function ProtectionController(config) { logger.debug('DRM: onNeedKey'); // Ignore non-cenc initData - if (event.key.initDataType !== 'cenc') { + if (event.key.initDataType !== ProtectionConstants.INITIALIZATION_DATA_TYPE_CENC) { logger.warn('DRM: Only \'cenc\' initData is supported! Ignoring initData of type: ' + event.key.initDataType); return; } @@ -1085,7 +1104,7 @@ function ProtectionController(config) { logger.debug('DRM: initData:', String.fromCharCode.apply(null, new Uint8Array(abInitData))); - const supportedKs = protectionKeyController.getSupportedKeySystemsFromSegmentPssh(abInitData, protDataSet, sessionType); + const supportedKs = protectionKeyController.getSupportedKeySystemsFromSegmentPssh(abInitData, applicationProvidedProtectionData, sessionType); if (supportedKs.length === 0) { logger.debug('DRM: Received needkey event with initData, but we don\'t support any of the key systems!'); return; @@ -1114,23 +1133,23 @@ function ProtectionController(config) { } instance = { - initializeForMedia, clearMediaInfoArray, - handleKeySystemFromManifest, + closeKeySession, createKeySession, + getKeySystems, + getSupportedKeySystemMetadataFromContentProtection, + handleKeySystemFromManifest, + initializeForMedia, loadKeySession, removeKeySession, - closeKeySession, - setServerCertificate, + reset, + setKeySystems, setMediaElement, - setSessionType, - setRobustnessLevel, setProtectionData, - getSupportedKeySystemsFromContentProtection, - getKeySystems, - setKeySystems, + setRobustnessLevel, + setServerCertificate, + setSessionType, stop, - reset }; setup(); diff --git a/src/streaming/protection/controllers/ProtectionKeyController.js b/src/streaming/protection/controllers/ProtectionKeyController.js index 5c9309faf0..d9ed7c5010 100644 --- a/src/streaming/protection/controllers/ProtectionKeyController.js +++ b/src/streaming/protection/controllers/ProtectionKeyController.js @@ -39,6 +39,7 @@ import Widevine from './../servers/Widevine.js'; import ClearKey from './../servers/ClearKey.js'; import ProtectionConstants from '../../constants/ProtectionConstants.js'; import FactoryMaker from '../../../core/FactoryMaker.js'; +import KeySystemMetadata from '../vo/KeySystemMetadata.js'; /** * @module ProtectionKeyController @@ -207,8 +208,8 @@ function ProtectionKeyController() { * @memberof module:ProtectionKeyController * @instance */ - function getSupportedKeySystemsFromContentProtection(contentProtectionElements, applicationSpecifiedProtectionData, sessionType) { - let cp, ks, ksIdx, cpIdx; + function getSupportedKeySystemMetadataFromContentProtection(contentProtectionElements, applicationSpecifiedProtectionData, sessionType) { + let contentProtectionElement, keySystem, ksIdx, cpIdx; let supportedKS = []; if (!contentProtectionElements || !contentProtectionElements.length) { @@ -216,27 +217,27 @@ function ProtectionKeyController() { } const mp4ProtectionElement = CommonEncryption.findMp4ProtectionElement(contentProtectionElements); - for (ksIdx = 0; ksIdx < keySystems.length; ++ksIdx) { - ks = keySystems[ksIdx]; + for (ksIdx = 0; ksIdx < keySystems.length; ksIdx++) { + keySystem = keySystems[ksIdx]; // Get protection data that applies for current key system - const protData = _getProtDataForKeySystem(ks.systemString, applicationSpecifiedProtectionData); + const protData = _getProtDataForKeySystem(keySystem.systemString, applicationSpecifiedProtectionData); - for (cpIdx = 0; cpIdx < contentProtectionElements.length; ++cpIdx) { - cp = contentProtectionElements[cpIdx]; - if (cp.schemeIdUri.toLowerCase() === ks.schemeIdURI) { + for (cpIdx = 0; cpIdx < contentProtectionElements.length; cpIdx++) { + contentProtectionElement = contentProtectionElements[cpIdx]; + if (contentProtectionElement.schemeIdUri.toLowerCase() === keySystem.schemeIdURI) { // Look for DRM-specific ContentProtection - let initData = ks.getInitData(cp, mp4ProtectionElement); + let initData = keySystem.getInitData(contentProtectionElement, mp4ProtectionElement); - supportedKS.push({ + supportedKS.push(new KeySystemMetadata({ ks: keySystems[ksIdx], - keyId: cp.keyId, + keyId: contentProtectionElement.keyId, initData: initData, protData: protData, - cdmData: ks.getCDMData(protData ? protData.cdmData : null), - sessionId: _getSessionId(protData, cp), + cdmData: keySystem.getCDMData(protData ? protData.cdmData : null), + sessionId: _getSessionId(protData, contentProtectionElement), sessionType: _getSessionType(protData, sessionType) - }); + })); } } } @@ -307,7 +308,7 @@ function ProtectionKeyController() { // Our default server implementations do not do anything with "license-release" or // "individualization-request" messages, so we just send a success event - if (messageType === 'license-release' || messageType === 'individualization-request') { + if (messageType === ProtectionConstants.MEDIA_KEY_MESSAGE_TYPES.LICENSE_RELEASE || messageType === ProtectionConstants.MEDIA_KEY_MESSAGE_TYPES.INDIVIDUALIZATION_REQUEST) { return null; } @@ -385,18 +386,18 @@ function ProtectionKeyController() { } instance = { - initialize, - setProtectionData, - isClearKey, - initDataEquals, - getKeySystems, - setKeySystems, getKeySystemBySystemString, - getSupportedKeySystemsFromContentProtection, - getSupportedKeySystemsFromSegmentPssh, + getKeySystems, getLicenseServerModelInstance, + getSupportedKeySystemMetadataFromContentProtection, + getSupportedKeySystemsFromSegmentPssh, + initDataEquals, + initialize, + isClearKey, processClearKeyLicenseRequest, - setConfig + setConfig, + setKeySystems, + setProtectionData, }; return instance; diff --git a/src/streaming/protection/drm/KeySystemClearKey.js b/src/streaming/protection/drm/KeySystemClearKey.js index e21970e496..d0bb323ec6 100644 --- a/src/streaming/protection/drm/KeySystemClearKey.js +++ b/src/streaming/protection/drm/KeySystemClearKey.js @@ -35,7 +35,7 @@ import CommonEncryption from '../CommonEncryption.js'; import ProtectionConstants from '../../constants/ProtectionConstants.js'; import FactoryMaker from '../../../core/FactoryMaker.js'; -const uuid = 'e2719d58-a985-b3c9-781a-b030af78d30e'; +const uuid = ProtectionConstants.CLEARKEY_UUID; const systemString = ProtectionConstants.CLEARKEY_KEYSTEM_STRING; const schemeIdURI = 'urn:uuid:' + uuid; @@ -141,4 +141,4 @@ function KeySystemClearKey(config) { } KeySystemClearKey.__dashjs_factory_name = 'KeySystemClearKey'; -export default FactoryMaker.getSingletonFactory(KeySystemClearKey); +export default FactoryMaker.getSingletonFactory(KeySystemClearKey); diff --git a/src/streaming/protection/drm/KeySystemPlayReady.js b/src/streaming/protection/drm/KeySystemPlayReady.js index 621ff8aa8e..62f6a58805 100644 --- a/src/streaming/protection/drm/KeySystemPlayReady.js +++ b/src/streaming/protection/drm/KeySystemPlayReady.js @@ -39,7 +39,7 @@ import CommonEncryption from '../CommonEncryption.js'; import ProtectionConstants from '../../constants/ProtectionConstants.js'; import FactoryMaker from '../../../core/FactoryMaker.js'; -const uuid = '9a04f079-9840-4286-ab92-e65be0885f95'; +const uuid = ProtectionConstants.PLAYREADY_UUID; const systemString = ProtectionConstants.PLAYREADY_KEYSTEM_STRING; const schemeIdURI = 'urn:uuid:' + uuid; const PRCDMData = '%CUSTOMDATA%'; diff --git a/src/streaming/protection/drm/KeySystemW3CClearKey.js b/src/streaming/protection/drm/KeySystemW3CClearKey.js index 3825e77899..c4b8780bcd 100644 --- a/src/streaming/protection/drm/KeySystemW3CClearKey.js +++ b/src/streaming/protection/drm/KeySystemW3CClearKey.js @@ -35,7 +35,7 @@ import CommonEncryption from '../CommonEncryption.js'; import ProtectionConstants from '../../constants/ProtectionConstants.js'; import FactoryMaker from '../../../core/FactoryMaker.js'; -const uuid = '1077efec-c0b2-4d02-ace3-3c1e52e2fb4b'; +const uuid = ProtectionConstants.W3C_CLEARKEY_UUID; const systemString = ProtectionConstants.CLEARKEY_KEYSTEM_STRING; const schemeIdURI = 'urn:uuid:' + uuid; @@ -112,5 +112,5 @@ function KeySystemW3CClearKey(config) { } KeySystemW3CClearKey.__dashjs_factory_name = 'KeySystemW3CClearKey'; -export default FactoryMaker.getSingletonFactory(KeySystemW3CClearKey); +export default FactoryMaker.getSingletonFactory(KeySystemW3CClearKey); diff --git a/src/streaming/protection/drm/KeySystemWidevine.js b/src/streaming/protection/drm/KeySystemWidevine.js index 09a8190ee4..0bc77ec49f 100644 --- a/src/streaming/protection/drm/KeySystemWidevine.js +++ b/src/streaming/protection/drm/KeySystemWidevine.js @@ -40,7 +40,7 @@ import CommonEncryption from '../CommonEncryption.js'; import ProtectionConstants from '../../constants/ProtectionConstants.js'; import FactoryMaker from '../../../core/FactoryMaker.js'; -const uuid = 'edef8ba9-79d6-4ace-a3c8-27dcd51d21ed'; +const uuid = ProtectionConstants.WIDEVINE_UUID; const systemString = ProtectionConstants.WIDEVINE_KEYSTEM_STRING; const schemeIdURI = 'urn:uuid:' + uuid; @@ -85,4 +85,4 @@ function KeySystemWidevine(config) { } KeySystemWidevine.__dashjs_factory_name = 'KeySystemWidevine'; -export default FactoryMaker.getSingletonFactory(KeySystemWidevine); +export default FactoryMaker.getSingletonFactory(KeySystemWidevine); diff --git a/src/streaming/protection/models/ProtectionModel_21Jan2015.js b/src/streaming/protection/models/DefaultProtectionModel.js similarity index 77% rename from src/streaming/protection/models/ProtectionModel_21Jan2015.js rename to src/streaming/protection/models/DefaultProtectionModel.js index 03fe71ddd4..2331f20b3b 100644 --- a/src/streaming/protection/models/ProtectionModel_21Jan2015.js +++ b/src/streaming/protection/models/DefaultProtectionModel.js @@ -51,7 +51,7 @@ SYSTEM_STRING_PRIORITY[ProtectionConstants.PLAYREADY_KEYSTEM_STRING] = [Protecti SYSTEM_STRING_PRIORITY[ProtectionConstants.WIDEVINE_KEYSTEM_STRING] = [ProtectionConstants.WIDEVINE_KEYSTEM_STRING]; SYSTEM_STRING_PRIORITY[ProtectionConstants.CLEARKEY_KEYSTEM_STRING] = [ProtectionConstants.CLEARKEY_KEYSTEM_STRING]; -function ProtectionModel_21Jan2015(config) { +function DefaultProtectionModel(config) { config = config || {}; const context = this.context; @@ -135,21 +135,21 @@ function ProtectionModel_21Jan2015(config) { return sessions; } - function requestKeySystemAccess(ksConfigurations) { + function requestKeySystemAccess(keySystemConfigurationsToRequest) { return new Promise((resolve, reject) => { - _requestKeySystemAccessInternal(ksConfigurations, 0, resolve, reject); + _requestKeySystemAccessInternal(keySystemConfigurationsToRequest, 0, resolve, reject); }) } /** * Initializes access to a key system. Once we found a valid configuration we get a mediaKeySystemAccess object - * @param ksConfigurations + * @param keySystemConfigurationsToRequest * @param idx * @param resolve * @param reject * @private */ - function _requestKeySystemAccessInternal(ksConfigurations, idx, resolve, reject) { + function _requestKeySystemAccessInternal(keySystemConfigurationsToRequest, idx, resolve, reject) { // In case requestMediaKeySystemAccess is not available we can not proceed and dispatch an error if (navigator.requestMediaKeySystemAccess === undefined || @@ -160,11 +160,11 @@ function ProtectionModel_21Jan2015(config) { return; } - // If a systemStringPriority is defined by the application we use these values. Otherwise we use the default system string + // If a systemStringPriority is defined by the application we use these values. Otherwise, we use the default system string // This is useful for DRM systems such as Playready for which multiple system strings are possible for instance com.microsoft.playready and com.microsoft.playready.recommendation - const protDataSystemStringPriority = ksConfigurations[idx].protData && ksConfigurations[idx].protData.systemStringPriority ? ksConfigurations[idx].protData.systemStringPriority : null; - const configs = ksConfigurations[idx].configs; - const currentKeySystem = ksConfigurations[idx].ks; + const protDataSystemStringPriority = keySystemConfigurationsToRequest[idx].protData && keySystemConfigurationsToRequest[idx].protData.systemStringPriority ? keySystemConfigurationsToRequest[idx].protData.systemStringPriority : null; + const configs = keySystemConfigurationsToRequest[idx].configs; + const currentKeySystem = keySystemConfigurationsToRequest[idx].ks; let systemString = currentKeySystem.systemString; // Use the default values in case no values are provided by the application @@ -172,18 +172,18 @@ function ProtectionModel_21Jan2015(config) { // Check all the available system strings and the available configurations for support _checkAccessForKeySystem(systemStringsToApply, configs) - .then((mediaKeySystemAccess) => { - const configuration = (typeof mediaKeySystemAccess.getConfiguration === 'function') ? - mediaKeySystemAccess.getConfiguration() : null; + .then((data) => { + const configuration = data && data.nativeMediaKeySystemAccessObject && typeof data.nativeMediaKeySystemAccessObject.getConfiguration === 'function' ? + data.nativeMediaKeySystemAccessObject.getConfiguration() : null; const keySystemAccess = new KeySystemAccess(currentKeySystem, configuration); - - keySystemAccess.mksa = mediaKeySystemAccess; + keySystemAccess.selectedSystemString = data.selectedSystemString; + keySystemAccess.nativeMediaKeySystemAccessObject = data.nativeMediaKeySystemAccessObject; eventBus.trigger(events.KEY_SYSTEM_ACCESS_COMPLETE, { data: keySystemAccess }); resolve({ data: keySystemAccess }); }) .catch((e) => { - if (idx + 1 < ksConfigurations.length) { - _requestKeySystemAccessInternal(ksConfigurations, idx + 1, resolve, reject); + if (idx + 1 < keySystemConfigurationsToRequest.length) { + _requestKeySystemAccessInternal(keySystemConfigurationsToRequest, idx + 1, resolve, reject); } else { const errorMessage = 'Key system access denied! '; eventBus.trigger(events.KEY_SYSTEM_ACCESS_COMPLETE, { error: errorMessage + e.message }); @@ -221,8 +221,7 @@ function ProtectionModel_21Jan2015(config) { navigator.requestMediaKeySystemAccess(systemString, configs) .then((mediaKeySystemAccess) => { - mediaKeySystemAccess.selectedSystemString = systemString; - resolve(mediaKeySystemAccess); + resolve({ nativeMediaKeySystemAccessObject: mediaKeySystemAccess, selectedSystemString: systemString }); }) .catch((e) => { if (idx + 1 < systemStringsToApply.length) { @@ -240,7 +239,7 @@ function ProtectionModel_21Jan2015(config) { */ function selectKeySystem(keySystemAccess) { return new Promise((resolve, reject) => { - keySystemAccess.mksa.createMediaKeys() + keySystemAccess.nativeMediaKeySystemAccessObject.createMediaKeys() .then((mkeys) => { keySystem = keySystemAccess.keySystem; mediaKeys = mkeys; @@ -284,43 +283,47 @@ function ProtectionModel_21Jan2015(config) { } function setServerCertificate(serverCertificate) { - if (!keySystem || !mediaKeys) { - throw new Error('Can not set server certificate until you have selected a key system'); - } - mediaKeys.setServerCertificate(serverCertificate).then(function () { - logger.info('DRM: License server certificate successfully updated.'); - eventBus.trigger(events.SERVER_CERTIFICATE_UPDATED); - }).catch(function (error) { - eventBus.trigger(events.SERVER_CERTIFICATE_UPDATED, { error: new DashJSError(ProtectionErrors.SERVER_CERTIFICATE_UPDATED_ERROR_CODE, ProtectionErrors.SERVER_CERTIFICATE_UPDATED_ERROR_MESSAGE + error.name) }); - }); + return new Promise((resolve, reject) => { + mediaKeys.setServerCertificate(serverCertificate) + .then(function () { + logger.info('DRM: License server certificate successfully updated.'); + eventBus.trigger(events.SERVER_CERTIFICATE_UPDATED); + resolve(); + }) + .catch((error) => { + reject(error); + eventBus.trigger(events.SERVER_CERTIFICATE_UPDATED, { error: new DashJSError(ProtectionErrors.SERVER_CERTIFICATE_UPDATED_ERROR_CODE, ProtectionErrors.SERVER_CERTIFICATE_UPDATED_ERROR_MESSAGE + error.name) }); + }); + }) } /** * Create a key session, a session token and initialize a request by calling generateRequest - * @param ksInfo + * @param keySystemMetadata */ - function createKeySession(ksInfo) { + function createKeySession(keySystemMetadata) { if (!keySystem || !mediaKeys) { throw new Error('Can not create sessions until you have selected a key system'); } - const session = mediaKeys.createSession(ksInfo.sessionType); - const sessionToken = createSessionToken(session, ksInfo); - + const mediaKeySession = mediaKeys.createSession(keySystemMetadata.sessionType); + const sessionToken = _createSessionToken(mediaKeySession, keySystemMetadata); // The "keyids" type is used for Clearkey when keys are provided directly in the protection data and a request to a license server is not needed - const dataType = keySystem.systemString === ProtectionConstants.CLEARKEY_KEYSTEM_STRING && (ksInfo.initData || (ksInfo.protData && ksInfo.protData.clearkeys)) ? ProtectionConstants.INITIALIZATION_DATA_TYPE_KEYIDS : ProtectionConstants.INITIALIZATION_DATA_TYPE_CENC; + const dataType = keySystem.systemString === ProtectionConstants.CLEARKEY_KEYSTEM_STRING && (keySystemMetadata.initData || (keySystemMetadata.protData && keySystemMetadata.protData.clearkeys)) ? ProtectionConstants.INITIALIZATION_DATA_TYPE_KEYIDS : ProtectionConstants.INITIALIZATION_DATA_TYPE_CENC; - session.generateRequest(dataType, ksInfo.initData).then(function () { - logger.debug('DRM: Session created. SessionID = ' + sessionToken.getSessionId()); - eventBus.trigger(events.KEY_SESSION_CREATED, { data: sessionToken }); - }).catch(function (error) { - removeSession(sessionToken); - eventBus.trigger(events.KEY_SESSION_CREATED, { - data: null, - error: new DashJSError(ProtectionErrors.KEY_SESSION_CREATED_ERROR_CODE, ProtectionErrors.KEY_SESSION_CREATED_ERROR_MESSAGE + 'Error generating key request -- ' + error.name) + mediaKeySession.generateRequest(dataType, keySystemMetadata.initData) + .then(function () { + logger.debug('DRM: Session created. SessionID = ' + sessionToken.getSessionId()); + eventBus.trigger(events.KEY_SESSION_CREATED, { data: sessionToken }); + }) + .catch(function (error) { + removeSession(sessionToken); + eventBus.trigger(events.KEY_SESSION_CREATED, { + data: null, + error: new DashJSError(ProtectionErrors.KEY_SESSION_CREATED_ERROR_CODE, ProtectionErrors.KEY_SESSION_CREATED_ERROR_MESSAGE + 'Error generating key request -- ' + error.name) + }); }); - }); } function updateKeySession(sessionToken, message) { @@ -339,12 +342,12 @@ function ProtectionModel_21Jan2015(config) { }); } - function loadKeySession(ksInfo) { + function loadKeySession(keySystemMetadata) { if (!keySystem || !mediaKeys) { throw new Error('Can not load sessions until you have selected a key system'); } - const sessionId = ksInfo.sessionId; + const sessionId = keySystemMetadata.sessionId; // Check if session Id is not already loaded or loading for (let i = 0; i < sessions.length; i++) { @@ -354,8 +357,8 @@ function ProtectionModel_21Jan2015(config) { } } - const session = mediaKeys.createSession(ksInfo.sessionType); - const sessionToken = createSessionToken(session, ksInfo); + const session = mediaKeys.createSession(keySystemMetadata.sessionType); + const sessionToken = _createSessionToken(session, keySystemMetadata); // Load persisted session data into our newly created session object session.load(sessionId).then(function (success) { @@ -474,13 +477,13 @@ function ProtectionModel_21Jan2015(config) { // Function to create our session token objects which manage the EME // MediaKeySession and session-specific event handler - function createSessionToken(session, ksInfo) { + function _createSessionToken(session, keySystemMetadata) { const token = { // Implements SessionToken session: session, - keyId: ksInfo.keyId, - initData: ksInfo.initData, - sessionId: ksInfo.sessionId, - sessionType: ksInfo.sessionType, + keyId: keySystemMetadata.keyId, + initData: keySystemMetadata.initData, + sessionId: keySystemMetadata.sessionId, + sessionType: keySystemMetadata.sessionType, // This is our main event handler for all desired MediaKeySession events // These events are translated into our API-independent versions of the @@ -488,27 +491,36 @@ function ProtectionModel_21Jan2015(config) { handleEvent: function (event) { switch (event.type) { case 'keystatuseschange': - eventBus.trigger(events.KEY_STATUSES_CHANGED, { data: this }); - event.target.keyStatuses.forEach(function () { - let keyStatus = parseKeyStatus(arguments); - switch (keyStatus.status) { - case 'expired': - eventBus.trigger(events.INTERNAL_KEY_STATUS_CHANGED, { error: new DashJSError(ProtectionErrors.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE, ProtectionErrors.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE) }); - break; - default: - eventBus.trigger(events.INTERNAL_KEY_STATUS_CHANGED, keyStatus); - break; - } - }); + this._onKeyStatusChange(event); break; case 'message': - let message = ArrayBuffer.isView(event.message) ? event.message.buffer : event.message; - eventBus.trigger(events.INTERNAL_KEY_MESSAGE, { data: new KeyMessage(this, message, undefined, event.messageType) }); + this._onKeyMessage(event); break; } }, + _onKeyStatusChange: function (event) { + eventBus.trigger(events.KEY_STATUSES_CHANGED, { data: this }); + event.target.keyStatuses.forEach(function () { + let keyStatus = parseKeyStatus(arguments); + switch (keyStatus.status) { + case 'expired': + eventBus.trigger(events.INTERNAL_KEY_STATUS_CHANGED, { error: new DashJSError(ProtectionErrors.KEY_STATUS_CHANGED_EXPIRED_ERROR_CODE, ProtectionErrors.KEY_STATUS_CHANGED_EXPIRED_ERROR_MESSAGE) }); + break; + default: + eventBus.trigger(events.INTERNAL_KEY_STATUS_CHANGED, keyStatus); + break; + } + }); + }, + + _onKeyMessage: function (event) { + let message = ArrayBuffer.isView(event.message) ? event.message.buffer : event.message; + eventBus.trigger(events.INTERNAL_KEY_MESSAGE, { data: new KeyMessage(this, message, undefined, event.messageType) }); + + }, + getKeyId: function () { return this.keyId; }, @@ -559,19 +571,19 @@ function ProtectionModel_21Jan2015(config) { } instance = { + closeKeySession, + createKeySession, getAllInitData, getSessions, + loadKeySession, + removeKeySession, requestKeySystemAccess, + reset, selectKeySystem, setMediaElement, setServerCertificate, - createKeySession, - updateKeySession, - loadKeySession, - removeKeySession, - closeKeySession, stop, - reset + updateKeySession, }; setup(); @@ -579,5 +591,5 @@ function ProtectionModel_21Jan2015(config) { return instance; } -ProtectionModel_21Jan2015.__dashjs_factory_name = 'ProtectionModel_21Jan2015'; -export default FactoryMaker.getClassFactory(ProtectionModel_21Jan2015); +DefaultProtectionModel.__dashjs_factory_name = 'DefaultProtectionModel'; +export default FactoryMaker.getClassFactory(DefaultProtectionModel); diff --git a/src/streaming/protection/models/ProtectionModel_01b.js b/src/streaming/protection/models/ProtectionModel_01b.js index c15d45a911..3735ee7961 100644 --- a/src/streaming/protection/models/ProtectionModel_01b.js +++ b/src/streaming/protection/models/ProtectionModel_01b.js @@ -45,6 +45,7 @@ import KeySystemConfiguration from '../vo/KeySystemConfiguration.js'; import KeySystemAccess from '../vo/KeySystemAccess.js'; import ProtectionErrors from '../errors/ProtectionErrors.js'; import FactoryMaker from '../../../core/FactoryMaker.js'; +import ProtectionConstants from '../../constants/ProtectionConstants.js'; function ProtectionModel_01b(config) { @@ -296,7 +297,7 @@ function ProtectionModel_01b(config) { switch (event.type) { case api.needkey: let initData = ArrayBuffer.isView(event.initData) ? event.initData.buffer : event.initData; - eventBus.trigger(events.NEED_KEY, { key: new NeedKey(initData, 'cenc') }); + eventBus.trigger(events.NEED_KEY, { key: new NeedKey(initData, ProtectionConstants.INITIALIZATION_DATA_TYPE_CENC) }); break; case api.keyerror: @@ -454,4 +455,4 @@ function ProtectionModel_01b(config) { } ProtectionModel_01b.__dashjs_factory_name = 'ProtectionModel_01b'; -export default FactoryMaker.getClassFactory(ProtectionModel_01b); +export default FactoryMaker.getClassFactory(ProtectionModel_01b); diff --git a/src/streaming/protection/models/ProtectionModel_3Feb2014.js b/src/streaming/protection/models/ProtectionModel_3Feb2014.js index f037cefe06..557e6029a1 100644 --- a/src/streaming/protection/models/ProtectionModel_3Feb2014.js +++ b/src/streaming/protection/models/ProtectionModel_3Feb2014.js @@ -46,6 +46,7 @@ import KeyMessage from '../vo/KeyMessage.js'; import KeySystemConfiguration from '../vo/KeySystemConfiguration.js'; import KeySystemAccess from '../vo/KeySystemAccess.js'; import FactoryMaker from '../../../core/FactoryMaker.js'; +import ProtectionConstants from '../../constants/ProtectionConstants.js'; function ProtectionModel_3Feb2014(config) { @@ -300,7 +301,7 @@ function ProtectionModel_3Feb2014(config) { case api.needkey: if (event.initData) { const initData = ArrayBuffer.isView(event.initData) ? event.initData.buffer : event.initData; - eventBus.trigger(events.NEED_KEY, { key: new NeedKey(initData, 'cenc') }); + eventBus.trigger(events.NEED_KEY, { key: new NeedKey(initData, ProtectionConstants.INITIALIZATION_DATA_TYPE_CENC) }); } break; } diff --git a/src/streaming/protection/vo/KeyMessage.js b/src/streaming/protection/vo/KeyMessage.js index b6c69805aa..ae3baa6931 100644 --- a/src/streaming/protection/vo/KeyMessage.js +++ b/src/streaming/protection/vo/KeyMessage.js @@ -28,6 +28,8 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ +import ProtectionConstants from '../../constants/ProtectionConstants.js'; + /** * @classdesc EME-independent KeyMessage * @ignore @@ -46,7 +48,7 @@ class KeyMessage { this.sessionToken = sessionToken; this.message = message; this.defaultURL = defaultURL; - this.messageType = messageType ? messageType : 'license-request'; + this.messageType = messageType ? messageType : ProtectionConstants.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST; } } diff --git a/src/streaming/protection/vo/KeySystemAccess.js b/src/streaming/protection/vo/KeySystemAccess.js index 2eed0a669b..405f45305b 100644 --- a/src/streaming/protection/vo/KeySystemAccess.js +++ b/src/streaming/protection/vo/KeySystemAccess.js @@ -46,6 +46,8 @@ class KeySystemAccess { constructor(keySystem, ksConfiguration) { this.keySystem = keySystem; this.ksConfiguration = ksConfiguration; + this.nativeMediaKeySystemAccessObject = null; + this.selectedSystemString = null; } } diff --git a/src/streaming/protection/vo/KeySystemConfiguration.js b/src/streaming/protection/vo/KeySystemConfiguration.js index 1eff7ee31f..523180f0ae 100644 --- a/src/streaming/protection/vo/KeySystemConfiguration.js +++ b/src/streaming/protection/vo/KeySystemConfiguration.js @@ -29,6 +29,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ +import ProtectionConstants from '../../constants/ProtectionConstants.js'; + /** * @classdesc Represents a set of configurations that describe the capabilities desired for * support by a given CDM @@ -50,8 +52,8 @@ class KeySystemConfiguration { * be supported by the key system * @class */ - constructor(audioCapabilities, videoCapabilities, distinctiveIdentifier, persistentState, sessionTypes) { - this.initDataTypes = [ 'cenc' ]; + constructor(audioCapabilities, videoCapabilities, distinctiveIdentifier, persistentState, sessionTypes, initDataTypes) { + this.initDataTypes = initDataTypes && initDataTypes.length > 0 ? initDataTypes : [ProtectionConstants.INITIALIZATION_DATA_TYPE_CENC]; if (audioCapabilities && audioCapabilities.length) { this.audioCapabilities = audioCapabilities; } diff --git a/src/streaming/protection/vo/KeySystemMetadata.js b/src/streaming/protection/vo/KeySystemMetadata.js new file mode 100644 index 0000000000..cbf7d16bbb --- /dev/null +++ b/src/streaming/protection/vo/KeySystemMetadata.js @@ -0,0 +1,48 @@ +/** + * The copyright in this software is being made available under the BSD License, + * included below. This software may be subject to other third party and contributor + * rights, including patent rights, and no such rights are granted under this license. + * + * Copyright (c) 2013, Dash Industry Forum. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * * Neither the name of Dash Industry Forum nor the names of its + * contributors may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +/** + * @classdesc A model class to save metadata about a key system + * @ignore + */ + +class KeySystemMetadata { + constructor(config) { + this.ks = config.ks; + this.keyId = config.keyId; + this.initData = config.initData; + this.protData = config.protData; + this.cdmData = config.cdmData; + this.sessionId = config.sessionId; + this.sessionType = config.sessionType; + } +} + +export default KeySystemMetadata; diff --git a/src/streaming/protection/vo/LicenseRequestComplete.js b/src/streaming/protection/vo/LicenseRequestComplete.js index 251bdc162d..869aee8235 100644 --- a/src/streaming/protection/vo/LicenseRequestComplete.js +++ b/src/streaming/protection/vo/LicenseRequestComplete.js @@ -28,6 +28,8 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ +import ProtectionConstants from '../../constants/ProtectionConstants.js'; + /** * @classdesc Event indicating the receipt of a response from a license server * @ignore @@ -47,7 +49,7 @@ class LicenseRequestComplete { constructor(message, sessionToken, messageType) { this.message = message; this.sessionToken = sessionToken; - this.messageType = messageType ? messageType : 'license-request'; + this.messageType = messageType ? messageType : ProtectionConstants.MEDIA_KEY_MESSAGE_TYPES.LICENSE_REQUEST; } } diff --git a/src/streaming/utils/Capabilities.js b/src/streaming/utils/Capabilities.js index 57f48fbbb5..146db80557 100644 --- a/src/streaming/utils/Capabilities.js +++ b/src/streaming/utils/Capabilities.js @@ -151,43 +151,101 @@ function Capabilities() { /** * Check codec support using the MediaCapabilities API - * @param {object} config + * @param {object} inputConfig * @param {string} type * @return {Promise} * @private */ - function _checkCodecWithMediaCapabilities(config, type) { + function _checkCodecWithMediaCapabilities(inputConfig, type) { return new Promise((resolve) => { - if (!config || !config.codec || (config.isSupported === false)) { + if (!inputConfig || !inputConfig.codec || (inputConfig.isSupported === false)) { resolve(false); return; } - const configuration = { - type: 'media-source' - }; - - configuration[type] = {}; - configuration[type].contentType = config.codec; - configuration[type].width = config.width; - configuration[type].height = config.height; - configuration[type].bitrate = parseInt(config.bitrate); - configuration[type].framerate = parseFloat(config.framerate); - if (config.hdrMetadataType) { configuration[type].hdrMetadataType = config.hdrMetadataType; } - if (config.colorGamut) { configuration[type].colorGamut = config.colorGamut; } - if (config.transferFunction) { configuration[type].transferFunction = config.transferFunction; } - - navigator.mediaCapabilities.decodingInfo(configuration) - .then((result) => { - resolve(result.supported); + const genericMediaCapabilitiesConfiguration = _getGenericMediaCapabilitiesConfig(inputConfig, type); + const configurationsToTest = _enhanceGenericConfigurationWithKeySystemConfiguration(genericMediaCapabilitiesConfiguration, inputConfig) + const promises = configurationsToTest.map((configuration) => { + return navigator.mediaCapabilities.decodingInfo(configuration) + }) + + Promise.allSettled(promises) + .then((results) => { + const isSupported = results.some((singleResult) => { + return singleResult.status === 'fulfilled' && singleResult.value && singleResult.value.supported + }) + resolve(isSupported); }) - .catch(() => { - resolve(false); - }); }); } + function _getGenericMediaCapabilitiesConfig(inputConfig, type) { + let configuration + + if (type === Constants.VIDEO) { + configuration = _getGenericMediaCapabilitiesVideoConfig(inputConfig) + } else if (type === Constants.AUDIO) { + configuration = _getGenericMediaCapabilitiesAudioConfig(inputConfig) + } + + configuration[type].contentType = inputConfig.codec; + configuration[type].bitrate = parseInt(inputConfig.bitrate); + configuration.type = 'media-source'; + + return configuration + } + + function _getGenericMediaCapabilitiesVideoConfig(inputConfig) { + const configuration = { + video: {} + }; + + configuration.video.width = inputConfig.width; + configuration.video.height = inputConfig.height; + configuration.video.framerate = parseFloat(inputConfig.framerate); + if (inputConfig.hdrMetadataType) { + configuration.video.hdrMetadataType = inputConfig.hdrMetadataType; + } + if (inputConfig.colorGamut) { + configuration.video.colorGamut = inputConfig.colorGamut; + } + if (inputConfig.transferFunction) { + configuration.video.transferFunction = inputConfig.transferFunction; + } + + return configuration + } + + function _getGenericMediaCapabilitiesAudioConfig(inputConfig) { + const configuration = { + audio: {} + }; + + if (inputConfig.samplerate) { + configuration.audio.samplerate = inputConfig.samplerate; + } + + return configuration + } + + function _enhanceGenericConfigurationWithKeySystemConfiguration(genericMediaCapabilitiesConfiguration, inputConfig) { + if (!inputConfig || !inputConfig.keySystemsMetadata || inputConfig.keySystemsMetadata.length === 0) { + return [genericMediaCapabilitiesConfiguration]; + } + + return inputConfig.keySystemsMetadata.map((keySystemMetadata) => { + const curr = { ...genericMediaCapabilitiesConfiguration }; + if (keySystemMetadata.ks) { + curr.keySystemConfiguration = {}; + if (keySystemMetadata.ks.systemString) { + curr.keySystemConfiguration.keySystem = keySystemMetadata.ks.systemString; + } + } + return curr + }) + } + /** * Add additional descriptors to list of descriptors, * avoid duplicated entries diff --git a/src/streaming/utils/CapabilitiesFilter.js b/src/streaming/utils/CapabilitiesFilter.js index 96245bec43..3212da0797 100644 --- a/src/streaming/utils/CapabilitiesFilter.js +++ b/src/streaming/utils/CapabilitiesFilter.js @@ -3,6 +3,7 @@ import Debug from '../../core/Debug.js'; import Constants from '../constants/Constants.js'; import EventBus from '../../core/EventBus.js'; import Events from '../../core/events/Events.js'; +import DashConstants from '../../dash/constants/DashConstants.js'; function CapabilitiesFilter() { @@ -14,6 +15,7 @@ function CapabilitiesFilter() { capabilities, settings, customParametersModel, + protectionController, logger; @@ -38,6 +40,10 @@ function CapabilitiesFilter() { settings = config.settings; } + if (config.protectionController) { + protectionController = config.protectionController; + } + if (config.customParametersModel) { customParametersModel = config.customParametersModel; } @@ -151,15 +157,19 @@ function CapabilitiesFilter() { } function _createConfiguration(type, rep, codec) { + let config = null; switch (type) { case Constants.VIDEO: - return _createVideoConfiguration(rep, codec); + config = _createVideoConfiguration(rep, codec); + break; case Constants.AUDIO: - return _createAudioConfiguration(rep, codec); + config = _createAudioConfiguration(rep, codec); + break; default: - return null; - + return config; } + + return _addGenericAttributesToConfig(rep, config); } function _convertHDRColorimetryToConfig(representation) { @@ -263,6 +273,13 @@ function CapabilitiesFilter() { }; } + function _addGenericAttributesToConfig(rep, config) { + if (rep && rep[DashConstants.CONTENT_PROTECTION] && rep[DashConstants.CONTENT_PROTECTION].length > 0) { + config.keySystemsMetadata = protectionController.getSupportedKeySystemMetadataFromContentProtection(rep[DashConstants.CONTENT_PROTECTION]) + } + return config + } + function _filterUnsupportedEssentialProperties(manifest) { if (!manifest || !manifest.Period || manifest.Period.length === 0) { diff --git a/test/functional/config/karma.functional.conf.cjs b/test/functional/config/karma.functional.conf.cjs index f8b3a99543..4a3a8a02f2 100644 --- a/test/functional/config/karma.functional.conf.cjs +++ b/test/functional/config/karma.functional.conf.cjs @@ -144,7 +144,7 @@ module.exports = function (config) { // Concurrency level // how many browser should be started simultaneous - concurrency: 2 + concurrency: !isNaN(testConfiguration.concurrency) ? testConfiguration.concurrency : 2 }) } diff --git a/test/functional/config/test-configurations/local.json b/test/functional/config/test-configurations/local.json index 14be284d59..73f6a1beb6 100644 --- a/test/functional/config/test-configurations/local.json +++ b/test/functional/config/test-configurations/local.json @@ -1,11 +1,13 @@ { "browsers": [ "chrome_custom", - "firefox_custom" + "firefox_custom", + "safari_custom" ], "hostname": "localhost", "port": 4200, "protocol": "http", + "concurrency": 3, "customLaunchers": { "chrome_custom": { "base": "Chrome", @@ -19,6 +21,12 @@ "firefox_custom": { "base": "Firefox", "prefs": {} + }, + "safari_custom": { + "base": "SafariNative", + "flags": [ + "--disable-popup-blocking" + ] } }, "reporters": [ diff --git a/test/functional/config/test-configurations/streams/single.json b/test/functional/config/test-configurations/streams/single.json index c6ed0335f0..930ad97a94 100644 --- a/test/functional/config/test-configurations/streams/single.json +++ b/test/functional/config/test-configurations/streams/single.json @@ -10,15 +10,12 @@ }, "testvectors": [ { - "name": "Arte forced-subtitles", + "name": "Segment Base", "type": "vod", - "url": "https://arteamd1.akamaized.net/GPU/034000/034700/034755-230-A/221125154117/034755-230-A_8_DA_v20221125.mpd", + "url": "https://dash.akamaized.net/dash264/TestCases/1a/sony/SNE_DASH_SD_CASE1A_REVISED.mpd", "includedTestfiles": [ - "text/forced-subtitles" - ], - "testdata": { - "forcedSubtitles": {} - } + "playback/*" + ] } ] } diff --git a/test/functional/config/test-configurations/streams/smoke.json b/test/functional/config/test-configurations/streams/smoke.json index b3edf7165f..1c808186d6 100644 --- a/test/functional/config/test-configurations/streams/smoke.json +++ b/test/functional/config/test-configurations/streams/smoke.json @@ -17,6 +17,11 @@ "playback/pause", "playback/seek", "playback/seek-to-presentation-time" + ], + "excludedPlatforms": [ + { + "browser": "safari" + } ] }, { @@ -43,6 +48,42 @@ "playback/*", "audio/initial-audio", "text/*" + ], + "excludedPlatforms": [ + { + "browser": "safari" + } + ] + }, + { + "name": "1080p with PlayReady and Widevine DRM, single key", + "type": "vod", + "url": "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd", + "drm": { + "com.widevine.alpha": { + "serverURL": "https://drm-widevine-licensing.axtest.net/AcquireLicense", + "httpRequestHeaders": { + "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" + }, + "httpTimeout": 5000 + }, + "com.microsoft.playready": { + "serverURL": "https://drm-playready-licensing.axtest.net/AcquireLicense", + "httpRequestHeaders": { + "X-AxDRM-Message": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA" + }, + "httpTimeout": 5000 + } + }, + "includedTestfiles": [ + "playback/*", + "audio/initial-audio", + "text/*" + ], + "excludedPlatforms": [ + { + "browser": "safari" + } ] }, { @@ -60,6 +101,11 @@ "playback/play", "playback/pause", "playback/seek" + ], + "excludedPlatforms": [ + { + "browser": "safari" + } ] }, { diff --git a/test/functional/config/test-configurations/streams/test.json b/test/functional/config/test-configurations/streams/test.json index 04d27376cc..fd46d7ee13 100644 --- a/test/functional/config/test-configurations/streams/test.json +++ b/test/functional/config/test-configurations/streams/test.json @@ -4,16 +4,28 @@ "all" ], "excluded": [ - "vendor/google-ad-manager-emsg" + "vendor/google-ad-manager-emsg", + "buffer/buffer-to-keep-seek" ] }, "testvectors": [ { - "name": "DASH-IF Live Sim - Segment Template without manifest updates", - "type": "live", - "url": "https://livesim2.dashif.org/livesim2/testpic_2s/Manifest.mpd", + "name": "Arte forced-subtitles", + "type": "vod", + "url": "https://arteamd1.akamaized.net/GPU/034000/034700/034755-230-A/221125154117/034755-230-A_8_DA_v20221125.mpd", "includedTestfiles": [ - "playback/seek-to-presentation-time" + "text/forced-subtitles" + ], + "testdata": { + "forcedSubtitles": {} + }, + "excludedPlatforms": [ + { + "browser": "firefox" + }, + { + "browser": "chrome" + } ] } ] diff --git a/test/functional/src/Utils.js b/test/functional/src/Utils.js index 022cce70a1..5eebc21f8b 100644 --- a/test/functional/src/Utils.js +++ b/test/functional/src/Utils.js @@ -1,3 +1,5 @@ +import {UAParser} from 'ua-parser-js' + class Utils { static getTestvectorsForTestcase(testcase) { @@ -10,6 +12,10 @@ class Utils { const targetTestvectors = []; testvectors.forEach((testvector) => { + if (Utils._shouldPlatformBeExcluded(testvector.excludedPlatforms)) { + return + } + // Nothing to be filtered if ((!testvector.includedTestfiles || testvector.includedTestfiles.length === 0) && (!testvector.excludedTestfiles || testvector.excludedTestfiles.length === 0)) { targetTestvectors.push(testvector) @@ -46,6 +52,18 @@ class Utils { return targetTestvectors } + + static _shouldPlatformBeExcluded(excludedPlatforms) { + if (!excludedPlatforms || excludedPlatforms.length <= 0) { + return false + } + + const userAgent = UAParser(navigator.userAgent.toLowerCase()) + return excludedPlatforms.some((platform) => { + return platform && platform.browser && platform.browser.toLowerCase() === userAgent.browser.name.toLowerCase() + }) + + } } export default Utils diff --git a/test/unit/mocks/ProtectionKeyControllerMock.js b/test/unit/mocks/ProtectionKeyControllerMock.js index c719922b4c..a3c7d0aa5f 100644 --- a/test/unit/mocks/ProtectionKeyControllerMock.js +++ b/test/unit/mocks/ProtectionKeyControllerMock.js @@ -1,6 +1,6 @@ function ProtectionKeyControllerMock () { - this.getSupportedKeySystemsFromContentProtection = function (/*cps*/) { + this.getSupportedKeySystemMetadataFromContentProtection = function (/*cps*/) { return [{}]; }; diff --git a/test/unit/test/streaming/streaming.protection.controllers.ProtectionController.js b/test/unit/test/streaming/streaming.protection.controllers.ProtectionController.js index 4f39d056c1..f01ae6a57e 100644 --- a/test/unit/test/streaming/streaming.protection.controllers.ProtectionController.js +++ b/test/unit/test/streaming/streaming.protection.controllers.ProtectionController.js @@ -33,8 +33,8 @@ describe('ProtectionController', function () { expect(protectionController.initializeForMedia.bind(protectionController, {})).to.throw('Missing config parameter(s)'); }); - it('should throw an error when getSupportedKeySystemsFromContentProtection is called and config object has not been set properly', function () { - expect(protectionController.getSupportedKeySystemsFromContentProtection.bind(protectionController)).to.throw('Missing config parameter(s)'); + it('should throw an error when getSupportedKeySystemMetadataFromContentProtection is called and config object has not been set properly', function () { + expect(protectionController.getSupportedKeySystemMetadataFromContentProtection.bind(protectionController)).to.throw('Missing config parameter(s)'); }); it('should throw an error when loadKeySession is called and config object has not been set properly', function () { @@ -122,8 +122,8 @@ describe('ProtectionController', function () { protectionController.createKeySession(); }); - it('should return the mocked array of ProtectionKeyControllerMock when getSupportedKeySystemsFromContentProtection is called', function () { - const keySystems = protectionController.getSupportedKeySystemsFromContentProtection(); + it('should return the mocked array of ProtectionKeyControllerMock when getSupportedKeySystemMetadataFromContentProtection is called', function () { + const keySystems = protectionController.getSupportedKeySystemMetadataFromContentProtection(); expect(keySystems).to.be.instanceOf(Array); expect(keySystems).not.to.be.empty; From 579106043bfd32799553f4ab35bc10cf243e9892 Mon Sep 17 00:00:00 2001 From: Daniel Silhavy Date: Fri, 16 Aug 2024 10:49:18 +0200 Subject: [PATCH 02/28] Fix/robustness warnings (#4549) * Set robustness level for Widevine check in Media Capabilities API to avoid warnings * Fix IMA test --- .eslintrc | 3 +- .../constants/ProtectionConstants.js | 9 + src/streaming/utils/Capabilities.js | 9 +- .../adapter/GoogleAdManagerAdapter.js | 7 +- .../config/karma.functional.conf.cjs | 4 +- .../test-configurations/streams/smoke.json | 1 - test/functional/lib/ima3_dai.js | 981 ++++++++++++++++++ 7 files changed, 1004 insertions(+), 10 deletions(-) create mode 100644 test/functional/lib/ima3_dai.js diff --git a/.eslintrc b/.eslintrc index 16b86609bc..c5548d7797 100644 --- a/.eslintrc +++ b/.eslintrc @@ -11,7 +11,8 @@ "MediaSource": true, "WebKitMediaKeys": true, "MSMediaKeys": true, - "MediaKeys": true + "MediaKeys": true, + "google": true }, "parserOptions": { "ecmaVersion": 2020, diff --git a/src/streaming/constants/ProtectionConstants.js b/src/streaming/constants/ProtectionConstants.js index 1301907599..e085c4e90a 100644 --- a/src/streaming/constants/ProtectionConstants.js +++ b/src/streaming/constants/ProtectionConstants.js @@ -52,6 +52,15 @@ export default { LICENSE_RENEWAL: 'license-renewal', LICENSE_RELEASE: 'license-release', INDIVIDUALIZATION_REQUEST: 'individualization-request', + }, + ROBUSTNESS_STRINGS: { + WIDEVINE: { + SW_SECURE_CRYPTO: 'SW_SECURE_CRYPTO', + SW_SECURE_DECODE: 'SW_SECURE_DECODE', + HW_SECURE_CRYPTO: 'HW_SECURE_CRYPTO', + HW_SECURE_DECODE: 'HW_SECURE_DECODE', + HW_SECURE_ALL: 'HW_SECURE_ALL' + } } } diff --git a/src/streaming/utils/Capabilities.js b/src/streaming/utils/Capabilities.js index 146db80557..b8da0842f4 100644 --- a/src/streaming/utils/Capabilities.js +++ b/src/streaming/utils/Capabilities.js @@ -30,6 +30,7 @@ */ import FactoryMaker from '../../core/FactoryMaker.js'; import Constants from '../constants/Constants.js'; +import ProtectionConstants from '../constants/ProtectionConstants.js'; export function supportsMediaSource() { let hasManagedMediaSource = ('ManagedMediaSource' in window) @@ -165,7 +166,7 @@ function Capabilities() { } const genericMediaCapabilitiesConfiguration = _getGenericMediaCapabilitiesConfig(inputConfig, type); - const configurationsToTest = _enhanceGenericConfigurationWithKeySystemConfiguration(genericMediaCapabilitiesConfiguration, inputConfig) + const configurationsToTest = _enhanceGenericConfigurationWithKeySystemConfiguration(genericMediaCapabilitiesConfiguration, inputConfig, type) const promises = configurationsToTest.map((configuration) => { return navigator.mediaCapabilities.decodingInfo(configuration) }) @@ -229,7 +230,7 @@ function Capabilities() { return configuration } - function _enhanceGenericConfigurationWithKeySystemConfiguration(genericMediaCapabilitiesConfiguration, inputConfig) { + function _enhanceGenericConfigurationWithKeySystemConfiguration(genericMediaCapabilitiesConfiguration, inputConfig, type) { if (!inputConfig || !inputConfig.keySystemsMetadata || inputConfig.keySystemsMetadata.length === 0) { return [genericMediaCapabilitiesConfiguration]; } @@ -241,6 +242,10 @@ function Capabilities() { if (keySystemMetadata.ks.systemString) { curr.keySystemConfiguration.keySystem = keySystemMetadata.ks.systemString; } + if (keySystemMetadata.ks.systemString === ProtectionConstants.WIDEVINE_KEYSTEM_STRING) { + curr.keySystemConfiguration[type] = { robustness: ProtectionConstants.ROBUSTNESS_STRINGS.WIDEVINE.SW_SECURE_CRYPTO }; + + } } return curr }) diff --git a/test/functional/adapter/GoogleAdManagerAdapter.js b/test/functional/adapter/GoogleAdManagerAdapter.js index 025ece9372..3d888d1575 100644 --- a/test/functional/adapter/GoogleAdManagerAdapter.js +++ b/test/functional/adapter/GoogleAdManagerAdapter.js @@ -20,8 +20,7 @@ try { VAST_EVENTS_TO_VERIFY[google.ima.dai.api.StreamEvent.Type.COMPLETE] = { position: 4 }; -} -catch(e) { +} catch (e) { console.log(e); } @@ -89,13 +88,13 @@ class GoogleAdManagerAdapter { const data = event.event.messageData; const pts = event.event.calculatedPresentationTime; if ((data instanceof Uint8Array) && data.byteLength > 0) { - console.log(`Called streamManager.processMetadata using EMSG event at playback time ${this.playerAdapter.getCurrentTime()}`) + //console.log(`Called streamManager.processMetadata using EMSG event at playback time ${this.playerAdapter.getCurrentTime()}`) this.streamManager.processMetadata('ID3', data, pts); } } requestStream() { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { const streamRequest = new google.ima.dai.api.PodStreamRequest(); streamRequest.networkCode = NETWORK_CODE; streamRequest.customAssetKey = CUSTOM_ASSET_KEY; diff --git a/test/functional/config/karma.functional.conf.cjs b/test/functional/config/karma.functional.conf.cjs index 4a3a8a02f2..b36e79956b 100644 --- a/test/functional/config/karma.functional.conf.cjs +++ b/test/functional/config/karma.functional.conf.cjs @@ -46,7 +46,7 @@ module.exports = function (config) { // list of files / patterns to load in the browser // https://github.com/webpack-contrib/karma-webpack#alternative-usage files: [ - { pattern: 'https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js', watched: false, nocache: true }, + { pattern: 'test/functional/lib/ima3_dai.js', watched: false, nocache: true }, { pattern: 'dist/dash.all.debug.js', watched: false, nocache: true }, { pattern: 'dist/dash.mss.min.js', watched: false, nocache: true }, { pattern: 'test/functional/content/**/*.mpd', watched: false, included: false, served: true } @@ -110,7 +110,7 @@ module.exports = function (config) { client: { useIframe: false, mocha: { - timeout: 90000 + timeout: 100000 }, testvectors }, diff --git a/test/functional/config/test-configurations/streams/smoke.json b/test/functional/config/test-configurations/streams/smoke.json index 1c808186d6..39007dd1f0 100644 --- a/test/functional/config/test-configurations/streams/smoke.json +++ b/test/functional/config/test-configurations/streams/smoke.json @@ -4,7 +4,6 @@ "all" ], "excluded": [ - "vendor/google-ad-manager-emsg" ] }, "testvectors": [ diff --git a/test/functional/lib/ima3_dai.js b/test/functional/lib/ima3_dai.js new file mode 100644 index 0000000000..046a83936f --- /dev/null +++ b/test/functional/lib/ima3_dai.js @@ -0,0 +1,981 @@ +(function(){var l,aa=function(a){var b=0;return function(){return b>>0)+"_",d=0,e=function(f){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new b(c+(f||"")+"_"+d++,f)};return e}); + ea("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c=f}});ea("String.prototype.endsWith",function(a){return a?a:function(b,c){var d=Fa(this,b,"endsWith");b+="";c===void 0&&(c=d.length);c=Math.max(0,Math.min(c|0,d.length));for(var e=b.length;e>0&&c>0;)if(d[--c]!=b[--e])return!1;return e<=0}}); + var Ga=function(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c>>16&65535)*e+d*(c>>>16&65535)<<16>>>0)|0}}); + ea("globalThis",function(a){return a||da});ea("Number.isNaN",function(a){return a?a:function(b){return typeof b==="number"&&isNaN(b)}});ea("Array.prototype.keys",function(a){return a?a:function(){return Ga(this,function(b){return b})}});ea("Array.prototype.values",function(a){return a?a:function(){return Ga(this,function(b,c){return c})}}); + ea("String.prototype.repeat",function(a){return a?a:function(b){var c=Fa(this,null,"repeat");if(b<0||b>1342177279)throw new RangeError("Invalid count value");b|=0;for(var d="";b;)if(b&1&&(d+=c),b>>>=1)c+=c;return d}});ea("String.prototype.padStart",function(a){return a?a:function(b,c){var d=Fa(this,null,"padStart");b-=d.length;c=c!==void 0?String(c):" ";return(b>0&&c?c.repeat(Math.ceil(b/c.length)).substring(0,b):"")+d}}); + ea("Math.sign",function(a){return a?a:function(b){b=Number(b);return b===0||isNaN(b)?b:b>0?1:-1}});ea("Object.fromEntries",function(a){return a?a:function(b){var c={};if(!(Symbol.iterator in b))throw new TypeError(""+b+" is not iterable");b=b[Symbol.iterator].call(b);for(var d=b.next();!d.done;d=b.next()){d=d.value;if(Object(d)!==d)throw new TypeError("iterable for fromEntries should yield objects");c[d[0]]=d[1]}return c}});/* + + Copyright The Closure Library Authors. + SPDX-License-Identifier: Apache-2.0 +*/ + var Ha=Ha||{},z=this||self,Ja=function(a,b){var c=Ia("CLOSURE_FLAGS");a=c&&c[a];return a!=null?a:b},Ia=function(a,b){a=a.split(".");b=b||z;for(var c=0;c>>0),Pa=0,Sa=function(a,b,c){return a.call.apply(a.bind,arguments)},Ta=function(a,b,c){if(!a)throw Error();if(arguments.length>2){var d=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,d);return a.apply(b,e)}}return function(){return a.apply(b,arguments)}}, + Ua=function(a,b,c){Ua=Function.prototype.bind&&Function.prototype.bind.toString().indexOf("native code")!=-1?Sa:Ta;return Ua.apply(null,arguments)},Va=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();d.push.apply(d,arguments);return a.apply(this,d)}},Wa=function(){return Date.now()},B=function(a,b){a=a.split(".");var c=z;a[0]in c||typeof c.execScript=="undefined"||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||b===void 0?c[d]&&c[d]!== + Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b},Ya=function(a,b){function c(){}c.prototype=b.prototype;a.kb=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.mn=function(d,e,f){for(var g=Array(arguments.length-2),h=2;h255&&(b[c++]=e&255,e>>=8);b[c++]=e}return b},rb=function(a){return Array.prototype.map.call(a,function(b){b=b.toString(16);return b.length>1?b:"0"+b}).join("")};var sb=function(a,b){return a.lastIndexOf(b,0)==0},tb=function(a,b){var c=String(b).toLowerCase();a=String(a.slice(0,b.length)).toLowerCase();return(c/g,zb=/"/g,Ab=/'/g,Bb=/\x00/g,Cb=/[\x00&<>"']/,Db=function(a,b){return a.indexOf(b)!=-1},Eb=function(a,b){return Db(a.toLowerCase(),b.toLowerCase())}, + Gb=function(a,b){var c=0;a=ub(String(a)).split(".");b=ub(String(b)).split(".");for(var d=Math.max(a.length,b.length),e=0;c==0&&eb?1:0};var Hb=Ja(610401301,!1),Ib=Ja(645172343,Ja(1,!0));function Jb(){var a=z.navigator;return a&&(a=a.userAgent)?a:""}var Kb,Lb=z.navigator;Kb=Lb?Lb.userAgentData||null:null;function Mb(a){return Hb?Kb?Kb.brands.some(function(b){return(b=b.brand)&&Db(b,a)}):!1:!1}function E(a){return Db(Jb(),a)};function Ob(){return Hb?!!Kb&&Kb.brands.length>0:!1}function Pb(){return Ob()?!1:E("Trident")||E("MSIE")}function Qb(){return E("Firefox")||E("FxiOS")}function Rb(){return E("Safari")&&!(Sb()||(Ob()?0:E("Coast"))||(Ob()?0:E("Opera"))||(Ob()?0:E("Edge"))||(Ob()?Mb("Microsoft Edge"):E("Edg/"))||(Ob()?Mb("Opera"):E("OPR"))||Qb()||E("Silk")||E("Android"))}function Sb(){return Ob()?Mb("Chromium"):(E("Chrome")||E("CriOS"))&&!(Ob()?0:E("Edge"))||E("Silk")};function Tb(){return Hb&&Kb&&Kb.platform?Kb.platform==="Android":E("Android")}function Ub(){return E("iPhone")&&!E("iPod")&&!E("iPad")};var Vb=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(typeof a==="string")return typeof b!=="string"||b.length!=1?-1:a.indexOf(b,0);for(var c=0;c=0;c--)if(c in a&&a[c]===b)return c;return-1},Xb=Array.prototype.forEach?function(a,b,c){Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=typeof a==="string"?a.split(""):a,f=0;f=0;--d)d in c&&b.call(void 0,c[d],d,a)} + var Zb=Array.prototype.filter?function(a,b){return Array.prototype.filter.call(a,b,void 0)}:function(a,b){for(var c=a.length,d=[],e=0,f=typeof a==="string"?a.split(""):a,g=0;g=0;d--)if(d in c&&b.call(void 0,c[d],d,a))return d;return-1}function ic(a,b){return Vb(a,b)>=0}function jc(a,b){b=Vb(a,b);var c;(c=b>=0)&&kc(a,b);return c} + function kc(a,b){return Array.prototype.splice.call(a,b,1).length==1}function nc(a,b){var c=0;Yb(a,function(d,e){b.call(void 0,d,e,a)&&kc(a,e)&&c++})}function oc(a){return Array.prototype.concat.apply([],arguments)}function pc(a){var b=a.length;if(b>0){for(var c=Array(b),d=0;db?1:a>2];g=b[(g&3)<<4|h>>4];h=b[(h&15)<<2|k>>6];k=b[k&63];c[f++]=""+m+g+h+k}m=0;k=d;switch(a.length-e){case 2:m=a[e+1],k=b[(m&15)<<2]||d;case 1:a=a[e],c[f]=""+b[a>>2]+b[(a&3)<<4|m>>4]+k+d}return c.join("")},Pc=function(a){if(Lc)return z.atob(a);var b="";Oc(a,function(c){b+=String.fromCharCode(c)}); + return b},Qc=function(a){var b=[];Oc(a,function(c){b.push(c)});return b},Rc=function(a){var b=a.length,c=b*3/4;c%3?c=Math.floor(c):Db("=.",a[b-1])&&(c=Db("=.",a[b-2])?c-2:c-1);var d=new Uint8Array(c),e=0;Oc(a,function(f){d[e++]=f});return e!==c?d.subarray(0,e):d},Oc=function(a,b){function c(k){for(;d>4);g!=64&&(b(f<<4&240|g>>2),h!=64&&b(g<<6&192|h))}},Mc=function(){if(!Kc){Kc={};for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),b=["+/=","+/","-_=","-_.","-_"],c=0;c<5;c++){var d=a.concat(b[c].split(""));Jc[c]=d;for(var e=0;e=4||(a[b]=c+1,kd())}};function nd(){return typeof BigInt==="function"};function od(a){return Array.prototype.slice.call(a)};var pd=typeof Symbol==="function"&&typeof Symbol()==="symbol";function qd(a){return typeof Symbol==="function"&&typeof Symbol()==="symbol"?Symbol():a}var rd=qd(),sd=qd("0di"),td=qd("2ex"),ud=qd("1oa"),vd=qd("0dg"),wd=qd("64big");var xd=pd?function(a,b){a[rd]|=b}:function(a,b){a.g!==void 0?a.g|=b:Object.defineProperties(a,{g:{value:b,configurable:!0,writable:!0,enumerable:!1}})},yd=pd?function(a,b){a[rd]&=~b}:function(a,b){a.g!==void 0&&(a.g&=~b)},zd=pd?function(a){return a[rd]|0}:function(a){return a.g|0},Ad=pd?function(a){return a[rd]}:function(a){return a.g},Bd=pd?function(a,b){a[rd]=b}:function(a,b){a.g!==void 0?a.g=b:Object.defineProperties(a,{g:{value:b,configurable:!0,writable:!0,enumerable:!1}})}; + function Cd(a){xd(a,34);return a}function Ld(a){xd(a,32);return a}function Md(a,b){Bd(b,(a|0)&-14591)}function Nd(a,b){Bd(b,(a|34)&-14557)};var Od={},Pd={};function Qd(a){return!(!a||typeof a!=="object"||a.zk!==Pd)}function Rd(a){return a!==null&&typeof a==="object"&&!Array.isArray(a)&&a.constructor===Object}function Sd(a,b,c){if(a!=null)if(typeof a==="string")a=a?new fd(a,$c):gd();else if(a.constructor!==fd)if(Zc(a))a=a.length?new fd(c?a:new Uint8Array(a),$c):gd();else{if(!b)throw Error();a=void 0}return a}function Td(a){return!Array.isArray(a)||a.length?!1:zd(a)&1?!0:!1}var Ud,Vd=[];Bd(Vd,55);Ud=Object.freeze(Vd); + function Wd(a){if(a&2)throw Error();}var Xd=function(a,b,c){this.l=0;this.g=a;this.j=b;this.o=c};Xd.prototype.next=function(){if(this.l>>0;de=b;ee=(a-b)/4294967296>>>0}function he(a){if(a<0){ge(0-a);var b=t(ie(de,ee));a=b.next().value;b=b.next().value;de=a>>>0;ee=b>>>0}else ge(a)}function je(a,b){return b*4294967296+(a>>>0)}function ke(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b>>>0,a==0&&(b=b+1>>>0));a=je(a,b);return c?-a:a} + function le(a,b){b>>>=0;a>>>=0;if(b<=2097151)var c=""+(4294967296*b+a);else nd()?c=""+(BigInt(b)<>>24|b<<8)&16777215,b=b>>16&65535,a=(a&16777215)+c*6777216+b*6710656,c+=b*8147497,b*=2,a>=1E7&&(c+=a/1E7>>>0,a%=1E7),c>=1E7&&(b+=c/1E7>>>0,c%=1E7),c=b+me(c)+me(a));return c}function me(a){a=String(a);return"0000000".slice(a.length)+a} + function ne(){var a=de,b=ee;b&2147483648?nd()?a=""+(BigInt(b|0)<>>0)):(b=t(ie(a,b)),a=b.next().value,b=b.next().value,a="-"+le(a,b)):a=le(a,b);return a} + function oe(a){if(a.length<16)he(Number(a));else if(nd())a=BigInt(a),de=Number(a&BigInt(4294967295))>>>0,ee=Number(a>>BigInt(32)&BigInt(4294967295));else{var b=+(a[0]==="-");ee=de=0;for(var c=a.length,d=0+b,e=(c-b)%6+b;e<=c;d=e,e+=6)d=Number(a.slice(d,e)),ee*=1E6,de=de*1E6+d,de>=4294967296&&(ee+=Math.trunc(de/4294967296),ee>>>=0,de>>>=0);b&&(b=t(ie(de,ee)),a=b.next().value,b=b.next().value,de=a,ee=b)}}function ie(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};function pe(a){a.yn=!0;return a};var qe=pe(function(a){return typeof a==="number"}),re=pe(function(a){return typeof a==="string"}),Ee=pe(function(a){return typeof a==="boolean"}),Fe=pe(function(a){return!!a&&(typeof a==="object"||typeof a==="function")});function Ge(a){a.uk=!0;return a};var He=typeof z.BigInt==="function"&&typeof z.BigInt(0)==="bigint";function Ie(a){var b=a;if(re(b)){if(!/^\s*(?:-?[1-9]\d*|0)?\s*$/.test(b))throw Error(String(b));}else if(qe(b)&&!Number.isSafeInteger(b))throw Error(String(b));return He?BigInt(a):a=Ee(a)?a?"1":"0":re(a)?a.trim()||"0":String(a)}var Oe=pe(function(a){return He?a>=Je&&a<=Ke:a[0]==="-"?Le(a,Me):Le(a,Ne)}),Me=Number.MIN_SAFE_INTEGER.toString(),Je=He?BigInt(Number.MIN_SAFE_INTEGER):void 0,Ne=Number.MAX_SAFE_INTEGER.toString(),Ke=He?BigInt(Number.MAX_SAFE_INTEGER):void 0; + function Le(a,b){if(a.length>b.length)return!1;if(a.lengthe)return!1;if(d>>0:void 0} + function af(a){var b=b===void 0?0:b;if(!Ue(a))throw ld("int64");var c=typeof a;switch(b){case 4096:switch(c){case "string":return bf(a);case "bigint":return String(BigInt.asIntN(64,a));default:return a=Math.trunc(a),Number.isSafeInteger(a)?a=String(a):(b=String(a),cf(b)?a=b:(he(a),a=ne())),a}case 8192:switch(c){case "string":return b=Math.trunc(Number(a)),Number.isSafeInteger(b)?a=Ie(b):(b=a.indexOf("."),b!==-1&&(a=a.substring(0,b)),a=nd()?Ie(BigInt.asIntN(64,BigInt(a))):Ie(df(a))),a;case "bigint":return Ie(BigInt.asIntN(64, + a));default:return Ie(ef(a))}case 0:switch(c){case "string":return bf(a);case "bigint":return Ie(BigInt.asIntN(64,a));default:return ef(a)}default:throw Error("Unknown format requested type for int64");}}function ff(a){return a==null?a:af(a)}function gf(a){return a[0]==="-"?!1:a.length<20?!0:a.length===20&&Number(a.substring(0,6))<184467}function cf(a){return a[0]==="-"?a.length<20?!0:a.length===20&&Number(a.substring(0,7))>-922337:a.length<19?!0:a.length===19&&Number(a.substring(0,6))<922337} + function hf(a){if(a<0){he(a);var b=le(de,ee);a=Number(b);return Number.isSafeInteger(a)?a:b}if(gf(String(a)))return a;he(a);return je(de,ee)}function df(a){if(cf(a))return a;oe(a);return ne()}function ef(a){a=Math.trunc(a);Number.isSafeInteger(a)||(he(a),a=ke(de,ee));return a}function bf(a){var b=Math.trunc(Number(a));if(Number.isSafeInteger(b))return String(b);b=a.indexOf(".");b!==-1&&(a=a.substring(0,b));return df(a)} + function jf(a){if(a==null)return a;if(typeof a==="bigint")return Oe(a)?a=Number(a):(a=BigInt.asIntN(64,a),a=Oe(a)?Number(a):String(a)),a;if(Ue(a))return typeof a==="number"?ef(a):bf(a)}function kf(a){if(a==null)return a;var b=typeof a;if(b==="bigint")return String(BigInt.asIntN(64,a));if(Ue(a)){if(b==="string")return bf(a);if(b==="number")return ef(a)}} + function lf(a){if(a==null)return a;var b=typeof a;if(b==="bigint")return String(BigInt.asUintN(64,a));if(Ue(a)){if(b==="string")return b=Math.trunc(Number(a)),Number.isSafeInteger(b)&&b>=0?a=String(b):(b=a.indexOf("."),b!==-1&&(a=a.substring(0,b)),gf(a)||(oe(a),a=le(de,ee))),a;if(b==="number")return a=Math.trunc(a),a>=0&&Number.isSafeInteger(a)?a:hf(a)}}function sf(a){if(typeof a!=="string")throw Error();return a}function tf(a){if(a!=null&&typeof a!=="string")throw Error();return a} + function uf(a){return a==null||typeof a==="string"?a:void 0}function vf(a,b,c,d){if(a!=null&&typeof a==="object"&&a.Ze===Od)return a;if(!Array.isArray(a))return c?d&2?wf(b):new b:void 0;var e=c=zd(a);e===0&&(e|=d&32);e|=d&2;e!==c&&Bd(a,e);return new b(a)}function wf(a){var b=a[sd];if(b)return b;b=new a;Cd(b.K);return a[sd]=b}function xf(a,b,c){if(b)return Qe(a);var d;return(d=Se(a))!=null?d:c?!1:void 0}function yf(a,b,c){if(b)return sf(a);var d;return(d=uf(a))!=null?d:c?"":void 0};var Df=function(a){var b=zf(a);if(b)return b;if(Math.random()>.01)return a;if(Af===void 0)if(typeof Proxy!=="function")Af=null;else try{Af=Proxy.toString().indexOf("[native code]")!==-1?Proxy:null}catch(c){Af=null}b=Af;if(!b)return a;b=new b(a,{set:function(c,d,e){Bf();c[d]=e;return!0}});Cf(a,b);return b};function Bf(){kd()}var Ef=void 0,Ff=void 0,zf=function(a){var b;return(b=Ef)==null?void 0:b.get(a)},Gf=function(a){var b;return((b=Ff)==null?void 0:b.get(a))||a}; + function Cf(a,b){(Ef||(Ef=new WeakMap)).set(a,b);(Ff||(Ff=new WeakMap)).set(b,a)}var Af=void 0;var Hf;function If(a,b){Hf=b;a=new a(b);Hf=void 0;return a}var Jf,Kf;function Lf(a){switch(typeof a){case "boolean":return Jf||(Jf=[0,void 0,!0]);case "number":return a>0?void 0:a===0?Kf||(Kf=[0,void 0]):[-a,void 0];case "string":return[0,a];case "object":return a}} + function G(a,b,c){a==null&&(a=Hf);Hf=void 0;if(a==null){var d=96;c?(a=[c],d|=512):a=[];b&&(d=d&-16760833|(b&1023)<<14)}else{if(!Array.isArray(a))throw Error("narr");d=zd(a);if(d&2048)throw Error("farr");if(d&64)return a;d|=64;if(c&&(d|=512,c!==a[0]))throw Error("mid");a:{c=a;var e=c.length;if(e){var f=e-1;if(Rd(c[f])){d|=256;b=f-(+!!(d&512)-1);if(b>=1024)throw Error("pvtlmt");d=d&-16760833|(b&1023)<<14;break a}}if(b){b=Math.max(b,e-(+!!(d&512)-1));if(b>1024)throw Error("spvt");d=d&-16760833|(b&1023)<< + 14}}}Bd(a,d);return a};var Mf={},Nf=function(){try{var a=function(){return na(Map,[],this.constructor)};v(a,Map);vc(new a);return!1}catch(b){return!0}}(),Of=function(){this.g=new Map};l=Of.prototype;l.get=function(a){return this.g.get(a)};l.set=function(a,b){this.g.set(a,b);this.size=this.g.size;return this};l.delete=function(a){a=this.g.delete(a);this.size=this.g.size;return a};l.clear=function(){this.g.clear();this.size=this.g.size};l.has=function(a){return this.g.has(a)};l.entries=function(){return this.g.entries()}; + l.keys=function(){return this.g.keys()};l.values=function(){return this.g.values()};l.forEach=function(a,b){return this.g.forEach(a,b)};Of.prototype[Symbol.iterator]=function(){return this.entries()};var Pf=function(){if(Nf)return Object.setPrototypeOf(Of.prototype,Map.prototype),Object.defineProperties(Of.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),Of;var a=function(){return na(Map,[],this.constructor)};v(a,Map);return a}();function Qf(a){return a} + var Sf=function(a,b,c,d){c=c===void 0?Qf:c;d=d===void 0?Qf:d;var e=Pf.call(this)||this;var f=zd(a);f|=64;Bd(a,f);e.vd=f;e.Ef=b;e.Nd=c;e.ih=e.Ef?Rf:d;for(var g=0;g=a.length||b>=c))return a[b]} + var kg=function(a,b,c,d){if(c===-1)return null;var e=b>>14&1023||536870912;if(c>=e){if(b&256)return a[a.length-1][c]}else{var f=a.length;return d&&b&256&&(d=a[f-1][c],d!=null)?(mg(a,b,e,c)&&md(void 0,td),d):mg(a,b,e,c)}},og=function(a,b,c){var d=a.K,e=Ad(d);Wd(e);ng(d,e,b,c);return a}; + function ng(a,b,c,d,e){var f=b>>14&1023||536870912;if(c>=f||e&&!Ib){var g=b;if(b&256)e=a[a.length-1];else{if(d==null)return g;e=a[f+(+!!(b&512)-1)]={};g|=256}e[c]=d;c>>=0}return Ig(a,b,c,0)},kh=function(a,b,c){return Ig(a,b,ff(c),"0")},lh=function(a,b,c){return og(a,b,tf(c))},mh=function(a,b,c){return Ig(a,b,Sd(c,!1,!1),gd())},nh=function(a,b,c){return Ig(a,b,We(c),0)};function oh(a,b){return Error("Invalid wire type: "+a+" (at position "+b+")")}function ph(){return Error("Failed to read varint, encoding is invalid.")}function qh(a,b){return Error("Tried to read past the end of the data "+b+" > "+a)};function rh(a){if(typeof a==="string")return{buffer:Yc(a),Gc:!1};if(Array.isArray(a))return{buffer:new Uint8Array(a),Gc:!1};if(a.constructor===Uint8Array)return{buffer:a,Gc:!1};if(a.constructor===ArrayBuffer)return{buffer:new Uint8Array(a),Gc:!1};if(a.constructor===fd)return{buffer:hd(a)||new Uint8Array(0),Gc:!0};if(a instanceof Uint8Array)return{buffer:new Uint8Array(a.buffer,a.byteOffset,a.byteLength),Gc:!1};throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers"); + };var sh=function(a,b){this.j=null;this.C=!1;this.g=this.l=this.o=0;this.init(a,void 0,void 0,b)};sh.prototype.init=function(a,b,c,d){d=d===void 0?{}:d;this.fe=d.fe===void 0?!1:d.fe;a&&(a=rh(a),this.j=a.buffer,this.C=a.Gc,this.o=b||0,this.l=c!==void 0?this.o+c:this.j.length,this.g=this.o)};sh.prototype.clear=function(){this.j=null;this.C=!1;this.g=this.l=this.o=0;this.fe=!1};sh.prototype.reset=function(){this.g=this.o}; + var uh=function(a,b){var c=0,d=0,e=0,f=a.j,g=a.g;do{var h=f[g++];c|=(h&127)<32&&(d|=(h&127)>>4);for(e=3;e<32&&h&128;e+=7)h=f[g++],d|=(h&127)<>>0,d>>>0);throw ph();},th=function(a,b){a.g=b;if(b>a.l)throw qh(a.l,b);},vh=function(a){var b=a.j,c=a.g,d=b[c++],e=d&127;if(d&128&&(d=b[c++],e|=(d&127)<<7,d&128&&(d=b[c++],e|=(d&127)<<14,d&128&&(d=b[c++],e|=(d&127)<<21,d&128&&(d=b[c++],e|=d<<28,d&128&&b[c++]&128&&b[c++]&128&&b[c++]&128&&b[c++]&128&& + b[c++]&128)))))throw ph();th(a,c);return e},wh=function(a){var b=a.j,c=a.g,d=b[c+0],e=b[c+1],f=b[c+2];b=b[c+3];th(a,a.g+4);return(d<<0|e<<8|f<<16|b<<24)>>>0},xh=function(a){for(var b=0,c=a.g,d=c+10,e=a.j;ca.l)throw qh(b,a.l-c);a.g=d;return c},zh=function(a,b){if(b==0)return gd();var c=yh(a,b);a.fe&&a.C?c=a.j.subarray(c,c+b): + (a=a.j,b=c+b,c=c===b?new Uint8Array(0):ce?a.slice(c,b):new Uint8Array(a.subarray(c,b)));return c.length==0?gd():new fd(c,$c)},Ah=[];var Ch=function(a,b){if(Ah.length){var c=Ah.pop();c.init(a,void 0,void 0,b);a=c}else a=new sh(a,b);this.g=a;this.l=this.g.g;this.j=this.o=-1;Bh(this,b)},Bh=function(a,b){b=b===void 0?{}:b;a.jg=b.jg===void 0?!1:b.jg};Ch.prototype.reset=function(){this.g.reset();this.l=this.g.g;this.j=this.o=-1}; + var Dh=function(a){var b=a.g;if(b.g==b.l)return!1;a.l=a.g.g;var c=vh(a.g)>>>0;b=c>>>3;c&=7;if(!(c>=0&&c<=5))throw oh(c,a.l);if(b<1)throw Error("Invalid field number: "+b+" (at position "+a.l+")");a.o=b;a.j=c;return!0},Eh=function(a){switch(a.j){case 0:a.j!=0?Eh(a):xh(a.g);break;case 1:a=a.g;th(a,a.g+8);break;case 2:if(a.j!=2)Eh(a);else{var b=vh(a.g)>>>0;a=a.g;th(a,a.g+b)}break;case 5:a=a.g;th(a,a.g+4);break;case 3:b=a.o;do{if(!Dh(a))throw Error("Unmatched start-group tag: stream EOF");if(a.j==4){if(a.o!= + b)throw Error("Unmatched end-group tag");break}Eh(a)}while(1);break;default:throw oh(a.j,a.l);}},Fh=function(a,b,c){var d=a.g.l,e=vh(a.g)>>>0,f=a.g.g+e,g=f-d;g<=0&&(a.g.l=f,c(b,a,void 0,void 0,void 0),g=f-a.g.g);if(g)throw Error("Message parsing ended unexpectedly. Expected to read "+(e+" bytes, instead read "+(e-g)+" bytes, either the data ended unexpectedly or the message misreported its own length"));a.g.g=f;a.g.l=d},Gh=function(a){var b=vh(a.g)>>>0;a=a.g;var c=yh(a,b);a=a.j;if(kb){var d=a,e;(e= + jb)||(e=jb=new TextDecoder("utf-8",{fatal:!0}));b=c+b;d=c===0&&b===d.length?d:d.subarray(c,b);try{var f=e.decode(d)}catch(m){if(ib===void 0){try{e.decode(new Uint8Array([128]))}catch(n){}try{e.decode(new Uint8Array([97])),ib=!0}catch(n){ib=!1}}!ib&&(jb=void 0);throw m;}}else{f=c;b=f+b;c=[];for(var g=null,h,k;f=b?fb():(k=a[f++],h<194||(k&192)!==128?(f--,fb()):c.push((h&31)<<6|k&63)):h<240?f>=b-1?fb():(k=a[f++],(k&192)!==128||h===224&&k<160||h===237&&k>=160||((e= + a[f++])&192)!==128?(f--,fb()):c.push((h&15)<<12|(k&63)<<6|e&63)):h<=244?f>=b-2?fb():(k=a[f++],(k&192)!==128||(h<<28)+(k-144)>>30!==0||((e=a[f++])&192)!==128||((d=a[f++])&192)!==128?(f--,fb()):(h=(h&7)<<18|(k&63)<<12|(e&63)<<6|d&63,h-=65536,c.push((h>>10&1023)+55296,(h&1023)+56320))):fb(),c.length>=8192&&(g=gb(g,c),c.length=0);f=gb(g,c)}return f},Hh=[];var Ih,J=function(a,b,c){this.K=G(a,b,c)};J.prototype.toJSON=function(){return Jh(this)};var Kh=function(a){try{return Ih=!0,JSON.stringify(Jh(a),ag)}finally{Ih=!1}};J.prototype.clone=function(){var a=this.K;return If(this.constructor,ig(a,Ad(a),!1))};J.prototype.Gc=function(){return!!(zd(this.K)&2)};J.prototype.Ze=Od;J.prototype.toString=function(){try{return Ih=!0,Jh(this).toString()}finally{Ih=!1}}; + function Jh(a){a=Ih?a.K:eg(a.K,gg,void 0,void 0,!1);var b=!Ih,c=a.length;if(c){var d=a[c-1],e=Rd(d);e?c--:d=void 0;var f=a;if(e){b:{var g=d;var h={};e=!1;if(g)for(var k in g)if(isNaN(+k))h[k]=g[k];else{var m=g[k];Array.isArray(m)&&(Td(m)||Qd(m)&&m.size===0)&&(m=null);m==null&&(e=!0);m!=null&&(h[k]=m)}if(e){for(var n in h)break b;h=null}else h=g}g=h==null?d!=null:h!==d}for(;c>0;c--){k=f[c-1];if(!(k==null||Td(k)||Qd(k)&&k.size===0))break;var p=!0}if(f!==a||g||p){if(!b)f=Array.prototype.slice.call(f, + 0,c);else if(p||g||h)f.length=c;h&&f.push(h)}p=f}else p=a;return p};var Lh=function(a,b){this.j=a>>>0;this.g=b>>>0},Nh=function(a){if(!a)return Mh||(Mh=new Lh(0,0));if(!/^\d+$/.test(a))return null;oe(a);return new Lh(de,ee)},Mh,Oh=function(a,b){this.j=a>>>0;this.g=b>>>0},Qh=function(a){if(!a)return Ph||(Ph=new Oh(0,0));if(!/^-?\d+$/.test(a))return null;oe(a);return new Oh(de,ee)},Ph;var Rh=function(){this.g=[]};Rh.prototype.length=function(){return this.g.length};Rh.prototype.end=function(){var a=this.g;this.g=[];return a}; + var Sh=function(a,b,c){for(;c>0||b>127;)a.g.push(b&127|128),b=(b>>>7|c<<25)>>>0,c>>>=7;a.g.push(b)},Th=function(a,b){for(;b>127;)a.g.push(b&127|128),b>>>=7;a.g.push(b)},Uh=function(a,b){if(b>=0)Th(a,b);else{for(var c=0;c<9;c++)a.g.push(b&127|128),b>>=7;a.g.push(1)}},Vh=function(a,b){a.g.push(b>>>0&255);a.g.push(b>>>8&255);a.g.push(b>>>16&255);a.g.push(b>>>24&255)};var Wh=function(){this.l=[];this.j=0;this.g=new Rh},Xh=function(a,b){b.length!==0&&(a.l.push(b),a.j+=b.length)},Zh=function(a,b){Yh(a,b,2);b=a.g.end();Xh(a,b);b.push(a.j);return b},$h=function(a,b){var c=b.pop();for(c=a.j+a.g.length()-c;c>127;)b.push(c&127|128),c>>>=7,a.j++;b.push(c);a.j++},Yh=function(a,b,c){Th(a.g,b*8+c)},ai=function(a,b,c){Yh(a,b,2);Th(a.g,c.length);Xh(a,a.g.end());Xh(a,c)};var bi=function(a,b,c,d){this.g=a;this.j=b;this.l=c;this.Ji=d};function ci(a){return Array.isArray(a)?a[0]instanceof bi?a:[di,a]:[a,void 0]}var ei=Symbol(); + function fi(a){var b=a[ei];if(!b){var c=gi(a),d=hi(a),e=d.l;b=e?function(f,g){return e(f,g,d)}:function(f,g){for(;Dh(g)&&g.j!=4;){var h=g.o,k=d[h],m=!k,n=!1;if(!k){var p=d.O;if(p){var q=p[h];if(q){var r=void 0;n=(r=p.g)==null?void 0:r[h];(p=ii(q))&&(k=d[h]=p)}}}k&&k(g,f,h)||(p=g,h=p.l,Eh(p),p.jg?p=void 0:(q=p.g.g-h,p.g.g=h,p=zh(p.g,q)),h=f,p&&(Yd||(Yd=Symbol()),(q=h[Yd])?q.push(p):h[Yd]=[p]));m&&k&&!n&&ji++<5&&kd()}c===ui||c===vi||c.C||(f[$d||($d=Symbol())]=c)};a[ei]=b}return b} + function ii(a){a=ci(a);var b=a[0].g;if(a=a[1]){var c=fi(a),d=hi(a).gd;return function(e,f,g){return b(e,f,g,d,c)}}return b}var wi=function(){},ui,vi,xi=Symbol();function yi(a,b,c){var d=c[1];if(d){var e=d[xi];var f=e?e.gd:Lf(d[0]);a[b]=e!=null?e:d}f&&f===Jf?(a.g||(a.g=new Set)).add(b):c[0]&&(a.j||(a.j=new Set)).add(b)}function zi(a,b){return[a.l,!b||b[0]>0?void 0:b]} + function gi(a){var b=a[xi];if(b)return b;b=Ai(a,a[xi]=new wi,zi,zi,yi);if(!b.O&&!b.j&&!b.g){var c=!0,d;for(d in b)isNaN(d)||(c=!1);c?(Lf(a[0])===Jf?vi?b=vi:(b=new wi,b.gd=Lf(!0),b=vi=b):b=ui||(ui=new wi),b=a[xi]=b):b.C=!0}return b}function Bi(a,b,c){a[b]=c} + function Ai(a,b,c,d,e){e=e===void 0?Bi:e;b.gd=Lf(a[0]);var f=0,g=a[++f];g&&g.constructor===Object&&(b.O=g,g=a[++f],typeof g==="function"&&(b.l=g,b.o=a[++f],g=a[++f]));for(var h={};Array.isArray(g)&&typeof g[0]==="number"&&g[0]>0;){for(var k=0;k>6|192;else{if(h>=55296&&h<=57343){if(h<=56319&&g=56320&&k<=57343){h= + (h-55296)*1024+k-56320+65536;f[e++]=h>>18|240;f[e++]=h>>12&63|128;f[e++]=h>>6&63|128;f[e++]=h&63|128;continue}else g--}if(d)throw Error("Found an unpaired surrogate");h=65533}f[e++]=h>>12|224;f[e++]=h>>6&63|128}f[e++]=h&63|128}}b=e===f.length?f:f.subarray(0,e)}ai(a,c,b)}}function Ui(a,b,c,d,e){b=b instanceof J?b.K:Array.isArray(b)?G(b,d[0],d[1]):void 0;b!=null&&(c=Zh(a,c),e(b,a),$h(a,c))}function Vi(a,b,c){b=$e(b);b!=null&&b!=null&&(Yh(a,c,0),Th(a.g,b))} + function Wi(a,b,c){b=Ze(b);b!=null&&(b=parseInt(b,10),Yh(a,c,0),Uh(a.g,b))} + var Xi=Pi(function(a,b,c){if(a.j!==1)return!1;var d=a.g;a=wh(d);var e=wh(d);d=(e>>31)*2+1;var f=e>>>20&2047;a=4294967296*(e&1048575)+a;a=f==2047?a?NaN:d*Infinity:f==0?d*Math.pow(2,-1074)*a:d*Math.pow(2,f-1075)*(a+4503599627370496);Qi(b,c,a===0?void 0:a);return!0},function(a,b,c){b=Pe(b);b!=null&&(Yh(a,c,1),a=a.g,c=fe||(fe=new DataView(new ArrayBuffer(8))),c.setFloat64(0,+b,!0),de=c.getUint32(0,!0),ee=c.getUint32(4,!0),Vh(a,de),Vh(a,ee))}),Yi=Pi(function(a,b,c){if(a.j!==5)return!1;var d=wh(a.g);a= + (d>>31)*2+1;var e=d>>>23&255;d&=8388607;Qi(b,c,e==255?d?NaN:a*Infinity:e==0?a*Math.pow(2,-149)*d:a*Math.pow(2,e-150)*(d+Math.pow(2,23)));return!0},function(a,b,c){b=Pe(b);b!=null&&(Yh(a,c,5),a=a.g,c=fe||(fe=new DataView(new ArrayBuffer(8))),c.setFloat32(0,+b,!0),ee=0,de=c.getUint32(0,!0),Vh(a,de))}),Zi=Pi(function(a,b,c){if(a.j!==0)return!1;Qi(b,c,uh(a.g,ke));return!0},Ri),$i=Pi(function(a,b,c){if(a.j!==0)return!1;a=uh(a.g,ke);Qi(b,c,a===0?void 0:a);return!0},Ri),aj=Pi(function(a,b,c){if(a.j!==0)return!1; + Qi(b,c,uh(a.g,je));return!0},function(a,b,c){b=lf(b);b!=null&&(typeof b==="string"&&Nh(b),b!=null&&(Yh(a,c,0),typeof b==="number"?(a=a.g,he(b),Sh(a,de,ee)):(c=Nh(b),Sh(a.g,c.j,c.g))))}),bj=Pi(function(a,b,c){if(a.j!==0)return!1;Qi(b,c,vh(a.g));return!0},Si),cj=Pi(function(a,b,c){if(a.j!==0)return!1;a=vh(a.g);Qi(b,c,a===0?void 0:a);return!0},Si),dj=Pi(function(a,b,c){if(a.j!==0)return!1;Qi(b,c,xh(a.g));return!0},function(a,b,c){b=Se(b);b!=null&&(Yh(a,c,0),a.g.g.push(b?1:0))}),ej=Pi(function(a,b,c){if(a.j!== + 2)return!1;a=Gh(a);Qi(b,c,a===""?void 0:a);return!0},Ti),fj=Pi(function(a,b,c){if(a.j!==2)return!1;Qi(b,c,Gh(a));return!0},Ti),di=new bi(function(a,b,c,d,e){if(a.j!==2)return!1;Fh(a,Rg(b,d,c,!0),e);return!0},Ui,!1,!0),Ci=new bi(function(a,b,c,d,e){if(a.j!==2)return!1;Fh(a,Rg(b,d,c),e);return!0},Ui,!1,!0),gj; + gj=new bi(function(a,b,c,d,e){if(a.j!==2)return!1;d=G(void 0,d[0],d[1]);var f=Ad(b);Wd(f);var g=pg(b,f,c,3);f=Ad(b);zd(g)&4&&(g=od(g),Bd(g,(zd(g)|1)&-2079),ng(b,f,c,g));g.push(d);Fh(a,d,e);return!0},function(a,b,c,d,e){if(Array.isArray(b))for(var f=0;f>>0;a=zh(a.g,d);Qi(b,c,a===gd()?void 0:a);return!0},function(a,b,c){b=b==null||typeof b=="string"||Zc(b)||b instanceof fd?b:void 0;b!=null&&ai(a,c,rh(b).buffer)}),ij=Pi(function(a,b,c){if(a.j!==0)return!1;Qi(b,c,vh(a.g)>>>0);return!0},Vi),jj=Pi(function(a,b,c){if(a.j!==0)return!1;a=vh(a.g)>>>0;Qi(b,c,a===0?void 0:a);return!0},Vi),kj=Pi(function(a,b,c){if(a.j!==0)return!1;Qi(b,c,vh(a.g));return!0},Wi),lj; + lj=new bi(function(a,b,c){if(a.j!==0&&a.j!==2)return!1;b=pg(b,Ad(b),c,2,!1);if(a.j==2)for(c=vh(a.g)>>>0,c=a.g.g+c;a.g.g")!=-1&&(a=a.replace(yb,">")),a.indexOf('"')!=-1&&(a=a.replace(zb,""")),a.indexOf("'")!=-1&&(a=a.replace(Ab,"'")),a.indexOf("\x00")!=-1&&(a=a.replace(Bb,"�")));return a},hl=function(a){var b={"&":"&","<":"<",">":">",""":'"'};var c=z.document.createElement("div");return a.replace(gl, + function(d,e){var f=b[d];if(f)return f;e.charAt(0)=="#"&&(e=Number("0"+e.slice(1)),isNaN(e)||(f=String.fromCharCode(e)));f||(f=Vk(d+" "),c.nodeType===1&&bl(c),c.innerHTML=Uk(f),f=c.firstChild.nodeValue.slice(0,-1));return b[d]=f})},il=function(a){return a.replace(/&([^;]+);/g,function(b,c){switch(c){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return'"';default:return c.charAt(0)!="#"||(c=Number("0"+c.slice(1)),isNaN(c))?b:String.fromCharCode(c)}})},gl=/&([^;\s<&]+);?/g, + jl=function(a,b){a.length>b&&(a=a.substring(0,b-3)+"...");return a},kl=String.prototype.repeat?function(a,b){return a.repeat(b)}:function(a,b){return Array(b+1).join(a)},ll=function(a){return a==null?"":String(a)},ml=function(a){return String(a).replace(/\-([a-z])/g,function(b,c){return c.toUpperCase()})},nl=function(){return"googleAvInapp".replace(/([A-Z])/g,"-$1").toLowerCase()},ol=function(a){return a.replace(RegExp("(^|[\\s]+)([a-z])","g"),function(b,c,d){return c+d.toUpperCase()})};var rl=function(a){return a?new pl(ql(a)):db||(db=new pl)},tl=function(a,b){Gj(b,function(c,d){d=="style"?a.style.cssText=c:d=="class"?a.className=c:d=="for"?a.htmlFor=c:sl.hasOwnProperty(d)?a.setAttribute(sl[d],c):sb(d,"aria-")||sb(d,"data-")?a.setAttribute(d,c):a[d]=c})},sl={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"}, + ul=function(a){a=a.document;a=a.compatMode=="CSS1Compat"?a.documentElement:a.body;return new al(a.clientWidth,a.clientHeight)},vl=function(a){var b=a.scrollingElement?a.scrollingElement:zc||a.compatMode!="CSS1Compat"?a.body||a.documentElement:a.documentElement;a=a.parentWindow||a.defaultView;return new $k(a.pageXOffset||b.scrollLeft,a.pageYOffset||b.scrollTop)},wl=function(a){return a?a.parentWindow||a.defaultView:window},yl=function(a,b,c){return xl(document,arguments)},xl=function(a,b){var c=b[1], + d=zl(a,String(b[0]));c&&(typeof c==="string"?d.className=c:Array.isArray(c)?d.className=c.join(" "):tl(d,c));b.length>2&&Al(a,d,b,2);return d},Al=function(a,b,c,d){function e(h){h&&b.appendChild(typeof h==="string"?a.createTextNode(h):h)}for(;d0)e(f);else{a:{if(f&&typeof f.length=="number"){if(Na(f)){var g=typeof f.item=="function"||typeof f.item=="string";break a}if(typeof f==="function"){g=typeof f.item=="function";break a}}g=!1}Xb(g?pc(f): + f,e)}}},zl=function(a,b){b=String(b);a.contentType==="application/xhtml+xml"&&(b=b.toLowerCase());return a.createElement(b)},Bl=function(a,b){Al(ql(a),a,arguments,1)},Cl=function(a){return a&&a.parentNode?a.parentNode.removeChild(a):null},K=function(a){return a.children!=void 0?a.children:Array.prototype.filter.call(a.childNodes,function(b){return b.nodeType==1})},Dl=function(a,b){if(!a||!b)return!1;if(a.contains&&b.nodeType==1)return a==b||a.contains(b);if(typeof a.compareDocumentPosition!="undefined")return a== + b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a},ql=function(a){return a.nodeType==9?a:a.ownerDocument||a.document},El=function(a){try{return a.contentWindow||(a.contentDocument?wl(a.contentDocument):null)}catch(b){}return null},Fl={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1},Gl={IMG:" ",BR:"\n"},Il=function(a){var b=[];Hl(a,b,!0);a=b.join("");a=a.replace(/ \xAD /g," ").replace(/\xAD/g,"");a=a.replace(/\u200B/g,"");a=a.replace(/ +/g," ");a!=" "&&(a=a.replace(/^\s*/, + ""));return a},Hl=function(a,b,c){if(!(a.nodeName in Fl))if(a.nodeType==3)c?b.push(String(a.nodeValue).replace(/(\r\n|\r|\n)/g,"")):b.push(a.nodeValue);else if(a.nodeName in Gl)b.push(Gl[a.nodeName]);else for(a=a.firstChild;a;)Hl(a,b,c),a=a.nextSibling},Jl=function(a,b){a&&(a=a.parentNode);for(var c=0;a;){if(b(a))return a;a=a.parentNode;c++}return null},pl=function(a){this.g=a||z.document||document};l=pl.prototype;l.getElementsByTagName=function(a,b){return(b||this.g).getElementsByTagName(String(a))}; + l.Oj=function(a,b,c){return xl(this.g,arguments)};l.appendChild=function(a,b){a.appendChild(b)};l.append=Bl;l.canHaveChildren=function(a){if(a.nodeType!=1)return!1;switch(a.tagName){case "APPLET":case "AREA":case "BASE":case "BR":case "COL":case "COMMAND":case "EMBED":case "FRAME":case "HR":case "IMG":case "INPUT":case "IFRAME":case "ISINDEX":case "KEYGEN":case "LINK":case "NOFRAMES":case "NOSCRIPT":case "META":case "OBJECT":case "PARAM":case "SCRIPT":case "SOURCE":case "STYLE":case "TRACK":case "WBR":return!1}return!0}; + l.contains=Dl;var Ll=function(){return Hb&&Kb?Kb.mobile:!Kl()&&(E("iPod")||E("iPhone")||E("Android")||E("IEMobile"))},Kl=function(){return Hb&&Kb?!Kb.mobile&&(E("iPad")||E("Android")||E("Silk")):E("iPad")||E("Android")&&!E("Mobile")||E("Silk")};var Ml=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$"),Nl=function(a){var b=a.match(Ml);a=b[1];var c=b[3];b=b[4];var d="";a&&(d+=a+":");c&&(d=d+"//"+c,b&&(d+=":"+b));return d},Ol=function(a,b){if(a){a=a.split("&");for(var c=0;c=0){var f=a[c].substring(0,d);e=a[c].substring(d+1)}else f=a[c];b(f,e?el(e):"")}}},Pl=function(a,b,c,d){for(var e=c.length;(b=a.indexOf(c, + b))>=0&&bc)e=c;d+=b.length+1;return el(a.slice(d,e!==-1?e:0))},Sl=/[?&]($|#)/;var Tl=function(a){try{return!!a&&a.location.href!=null&&wc(a,"foo")}catch(b){return!1}},Vl=function(a){var b=b===void 0?!1:b;var c=c===void 0?z:c;for(var d=0;c&&d++<40&&(!b&&!Tl(c)||!a(c));)c=Ul(c)},Wl=function(){var a=window;Vl(function(b){a=b;return!1});return a},Ul=function(a){try{var b=a.parent;if(b&&b!=a)return b}catch(c){}return null},Xl=function(){var a=window;return Tl(a.top)?a.top:null},Yl=function(){if(!globalThis.crypto)return Math.random();try{var a=new Uint32Array(1);globalThis.crypto.getRandomValues(a); + return a[0]/65536/65536}catch(b){return Math.random()}},Zl=function(a,b){if(a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b(a[c],c,a)},$l=function(a){var b=a.length;if(b==0)return 0;for(var c=305419896,d=0;d>2)+a.charCodeAt(d)&4294967295;return c>0?c:4294967296+c};function am(a){var b,c;return(c=(b=/https?:\/\/[^\/]+/.exec(a))==null?void 0:b[0])!=null?c:""} + var bm=function(){var a=z;try{for(var b=null;b!=a;b=a,a=a.parent)switch(a.location.protocol){case "https:":return!0;case "file:":return!0;case "http:":return!1}}catch(c){}return!0},cm=function(a,b){for(var c=0;c<50;++c){try{var d=!(!a.frames||!a.frames[b])}catch(e){d=!1}if(d)return a;if(!(a=Ul(a)))break}return null},dm=zj(function(){return Ll()?2:Kl()?1:0}),em=function(){var a=window;if(typeof a.goog_pvsid!=="number")try{var b=Object,c=b.defineProperty,d=void 0;d=d===void 0?Math.random:d;var e=Math.floor(d()* + Math.pow(2,52));c.call(b,a,"goog_pvsid",{value:e,configurable:!1})}catch(f){}return Number(a.goog_pvsid)||-1},fm=function(a,b){b=b===void 0?document:b;return b.createElement(String(a).toLowerCase())},gm=function(a){for(var b=a;a&&a!=a.parent;)a=a.parent,Tl(a)&&(b=a);return b};var hm=RegExp("^https?://(\\w|-)+\\.cdn\\.ampproject\\.(net|org)(\\?|/|$)"),lm=function(a){a=a||im();for(var b=new jm(z.location.href,!1),c=null,d=a.length-1,e=d;e>=0;--e){var f=a[e];!c&&hm.test(f.url)&&(c=f);if(f.url&&!f.yg){b=f;break}}e=null;f=a.length&&a[d].url;b.depth!=0&&f&&(e=a[d]);return new km(b,e,c)},im=function(){var a=z,b=[],c=null;do{var d=a;if(Tl(d)){var e=d.location.href;c=d.document&&d.document.referrer||null}else e=c,c=null;b.push(new jm(e||""));try{a=d.parent}catch(f){a=null}}while(a&& + d!=a);d=0;for(a=b.length-1;d<=a;++d)b[d].depth=a-d;d=z;if(d.location&&d.location.ancestorOrigins&&d.location.ancestorOrigins.length==b.length-1)for(a=1;a=0;return a}),um=function(a,b){this.events=[];this.g=b||z;var c=null;b&&(b.google_js_reporting_queue=b.google_js_reporting_queue||[],this.events=b.google_js_reporting_queue,c=b.google_measure_js_timing);this.l=tm()||(c!=null?c:Math.random()2048||this.events.push(a)};var vm=function(a){a&&rm&&tm()&&(rm.clearMarks("goog_"+a.label+"_"+a.uniqueId+"_start"),rm.clearMarks("goog_"+a.label+"_"+a.uniqueId+"_end"))}; + um.prototype.start=function(a,b){if(!this.l)return null;a=new qm(a,b,pm()||om());b="goog_"+a.label+"_"+a.uniqueId+"_start";rm&&tm()&&rm.mark(b);return a};um.prototype.end=function(a){if(this.l&&typeof a.value==="number"){a.duration=(pm()||om())-a.value;var b="goog_"+a.label+"_"+a.uniqueId+"_end";rm&&tm()&&rm.mark(b);this.D(a)}};var wm=function(){this.l="&";this.j={};this.o=0;this.g=[]},xm=function(a,b){var c={};c[a]=b;return[c]},zm=function(a,b,c,d,e){var f=[];Zl(a,function(g,h){(g=ym(g,b,c,d,e))&&f.push(h+"="+g)});return f.join(b)},ym=function(a,b,c,d,e){if(a==null)return"";b=b||"&";c=c||",$";typeof c=="string"&&(c=c.split(""));if(a instanceof Array){if(d=d||0,d=m.length){d-=m.length;b+=m;e=a.l;break}c=c==null?g:c}}a="";c!=null&& + (a=e+"trn="+c);return b+a},Cm=function(a){var b=1,c;for(c in a.j)b=c.length>b?c.length:b;return 3997-b-a.l.length-1};var Gm=function(){var a=Em;this.C=Fm;this.F="jserror";this.o=!0;this.g=a===void 0?null:a;this.j=null;this.l=!1;this.D=this.Jb};l=Gm.prototype;l.xf=function(a){this.j=a};l.Xg=function(a){this.F=a};l.Yg=function(a){this.o=a};l.Zg=function(a){this.l=a}; + l.Nc=function(a,b,c){try{if(this.g&&this.g.l){var d=this.g.start(a.toString(),3);var e=b();this.g.end(d)}else e=b()}catch(h){b=this.o;try{vm(d),b=this.D(a,new vj(h,{message:Hm(h)}),void 0,c)}catch(k){this.Jb(217,k)}if(b){var f,g;(f=window.console)==null||(g=f.error)==null||g.call(f,h)}else throw h;}return e};l.Sg=function(a,b,c,d){var e=this;return function(){var f=Ea.apply(0,arguments);return e.Nc(a,function(){return b.apply(c,f)},d)}}; + l.Jb=function(a,b,c,d,e){e=e||this.F;try{var f=new wm;Bm(f,1,"context",a);wj(b)||(b=new vj(b,{message:Hm(b)}));b.msg&&Bm(f,2,"msg",b.msg.substring(0,512));var g=b.meta||{};if(this.j)try{this.j(g)}catch(k){}if(d)try{d(g)}catch(k){}Am(f,3,[g]);var h=lm();h.j&&Bm(f,4,"top",h.j.url||"");Am(f,5,[{url:h.g.url||""},{url:h.g.url?Nl(h.g.url):""}]);Im(this.C,e,f,this.l,c)}catch(k){try{Im(this.C,e,{context:"ecmserr",rctx:a,msg:Hm(k),url:h&&h.g.url},this.l,c)}catch(m){}}return this.o}; + var Hm=function(a){var b=a.toString();a.name&&b.indexOf(a.name)==-1&&(b+=": "+a.name);a.message&&b.indexOf(a.message)==-1&&(b+=": "+a.message);if(a.stack)a:{a=a.stack;var c=b;try{a.indexOf(c)==-1&&(a=c+"\n"+a);for(var d;a!=d;)d=a,a=a.replace(RegExp("((https?:/..*/)[^/:]*:\\d+(?:.|\n)*)\\2"),"$1");b=a.replace(RegExp("\n *","g"),"\n");break a}catch(e){b=c;break a}b=void 0}return b};var Km=function(a,b,c,d,e){Jm(a,b,c===void 0?null:c,d===void 0?!1:d,e===void 0?!1:e)};function Jm(a,b,c,d,e){e=e===void 0?!1:e;a.google_image_requests||(a.google_image_requests=[]);var f=fm("IMG",a.document);if(c||d){var g=function(h){c&&c(h);d&&jc(a.google_image_requests,f);Fj(f,"load",g);Fj(f,"error",g)};Ej(f,"load",g);Ej(f,"error",g)}e&&(f.attributionSrc="");f.src=b;a.google_image_requests.push(f)} + var Mm=function(a,b){var c=c===void 0?!1:c;var d="https://pagead2.googlesyndication.com/pagead/gen_204?id="+b;Zl(a,function(e,f){if(e||e===0)d+="&"+f+"="+encodeURIComponent(""+e)});Lm(d,c)},Lm=function(a,b){var c=window;b=b===void 0?!1:b;var d=d===void 0?!1:d;c.fetch?(b={keepalive:!0,credentials:"include",redirect:"follow",method:"get",mode:"no-cors"},d&&(b.mode="cors","setAttributionReporting"in XMLHttpRequest.prototype?b.attributionReporting={eventSourceEligible:"true",triggerEligible:"false"}: + b.headers={"Attribution-Reporting-Eligible":"event-source"}),c.fetch(a,b)):Km(c,a,void 0,b,d)};function Nm(a,b){try{var c=function(d){var e={};return[(e[d.vl]=d.Ak,e)]};return JSON.stringify([a.filter(function(d){return d.Vh}).map(c),Jh(b),a.filter(function(d){return!d.Vh}).map(c)])}catch(d){return Om(d,b),""}}function Om(a,b){try{Mm({m:Hm(a instanceof Error?a:Error(String(a))),b:I(b,1)||null,v:fh(b,2)||null},"rcs_internal")}catch(c){}}var Pm=function(a,b){var c=new uj;a=nh(c,1,a);b=Ig(a,2,tf(b),"");a=b.K;c=Ad(a);this.l=c&2?b:If(b.constructor,ig(a,c,!0))};var Qm=function(a){this.K=G(a)};v(Qm,J);var Rm=function(a){this.K=G(a)};v(Rm,J);var Sm=function(a,b){return nh(a,1,b)},Tm=function(a,b){return nh(a,2,b)};var Um=function(a){this.K=G(a)};v(Um,J);var Vm=[1,2];var Wm=function(a){this.K=G(a)};v(Wm,J);var Xm=function(a,b){return Wg(a,1,b)},Ym=function(a,b){return Yg(a,2,b)},Zm=function(a,b){return Hg(a,4,b,Ye)},$m=function(a,b){return Yg(a,5,b)},an=function(a,b){return nh(a,6,b)};var bn=function(a){this.K=G(a)};v(bn,J);var cn=[1,2,3,4,6];var dn=function(a){this.K=G(a)};v(dn,J);var en=function(a){this.K=G(a)};v(en,J);var fn=[2,3,4];var gn=function(a){this.K=G(a)};v(gn,J);var hn=[3,4,5],jn=[6,7];var kn=function(a){this.K=G(a)};v(kn,J);var ln=[4,5];var mn=function(a){this.K=G(a)};v(mn,J);mn.prototype.getTagSessionCorrelator=function(){md(this,wd);return dh(this,2)};var on=function(a){var b=new mn;return Xg(b,4,nn,a)},nn=[4,5,7,8,9];var pn=function(a){this.K=G(a)};v(pn,J);var qn=pj(pn);var rn=function(a){this.K=G(a)};v(rn,J);var sn=function(a){this.K=G(a)};v(sn,J);var tn=function(){Pm.apply(this,arguments)};v(tn,Pm);var un=function(){tn.apply(this,arguments)};v(un,tn);un.prototype.wf=function(){this.N.apply(this,u(Ea.apply(0,arguments).map(function(a){return{Vh:!0,vl:4,Ak:Jh(a)}})))};var vn=function(a,b){if(globalThis.fetch)globalThis.fetch(a,{method:"POST",body:b,keepalive:b.length<65536,credentials:"omit",mode:"no-cors",redirect:"follow"}).catch(function(){});else{var c=new XMLHttpRequest;c.open("POST",a,!0);c.send(b)}};var wn=function(a,b,c,d,e,f,g,h){un.call(this,a,b);this.H=c;this.G=d;this.J=e;this.F=f;this.D=g;this.o=h;this.g=[];this.j=null;this.C=!1};v(wn,un);var xn=function(a){a.j!==null&&(clearTimeout(a.j),a.j=null);if(a.g.length){var b=Nm(a.g,a.l);a.G(a.H+"?e=1",b);a.g=[]}}; + wn.prototype.N=function(){var a=Ea.apply(0,arguments),b=this;try{this.D&&Nm(this.g.concat(a),this.l).length>=65536&&xn(this),this.o&&!this.C&&(this.C=!0,this.o.g(function(){xn(b)})),this.g.push.apply(this.g,u(a)),this.g.length>=this.F&&xn(this),this.g.length&&this.j===null&&(this.j=setTimeout(function(){xn(b)},this.J))}catch(c){Om(c,this.l)}}; + var yn=function(a,b,c,d,e,f){wn.call(this,a,b,"https://pagead2.googlesyndication.com/pagead/ping",vn,c===void 0?1E3:c,d===void 0?100:d,(e===void 0?!1:e)&&!!globalThis.fetch,f)};v(yn,wn);var zn=function(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=d};l=zn.prototype;l.getWidth=function(){return this.right-this.left};l.getHeight=function(){return this.bottom-this.top};l.clone=function(){return new zn(this.top,this.right,this.bottom,this.left)};l.contains=function(a){return this&&a?a instanceof zn?a.left>=this.left&&a.right<=this.right&&a.top>=this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.y<=this.bottom:!1}; + l.expand=function(a,b,c,d){Na(a)?(this.top-=a.top,this.right+=a.right,this.bottom+=a.bottom,this.left-=a.left):(this.top-=a,this.right+=Number(b),this.bottom+=Number(c),this.left-=Number(d));return this};var An=function(a,b){return a==b?!0:a&&b?a.top==b.top&&a.right==b.right&&a.bottom==b.bottom&&a.left==b.left:!1};zn.prototype.ceil=function(){this.top=Math.ceil(this.top);this.right=Math.ceil(this.right);this.bottom=Math.ceil(this.bottom);this.left=Math.ceil(this.left);return this}; + zn.prototype.floor=function(){this.top=Math.floor(this.top);this.right=Math.floor(this.right);this.bottom=Math.floor(this.bottom);this.left=Math.floor(this.left);return this};zn.prototype.round=function(){this.top=Math.round(this.top);this.right=Math.round(this.right);this.bottom=Math.round(this.bottom);this.left=Math.round(this.left);return this}; + var Bn=function(a,b,c){b instanceof $k?(a.left+=b.x,a.right+=b.x,a.top+=b.y,a.bottom+=b.y):(a.left+=b,a.right+=b,typeof c==="number"&&(a.top+=c,a.bottom+=c));return a};zn.prototype.scale=function(a,b){b=typeof b==="number"?b:a;this.left*=a;this.right*=a;this.top*=b;this.bottom*=b;return this};var Cn=function(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d};Cn.prototype.clone=function(){return new Cn(this.left,this.top,this.width,this.height)}; + var Dn=function(a){return new zn(a.top,a.left+a.width,a.top+a.height,a.left)},En=function(a,b){return a==b?!0:a&&b?a.left==b.left&&a.width==b.width&&a.top==b.top&&a.height==b.height:!1},Fn=function(a,b){var c=Math.max(a.left,b.left),d=Math.min(a.left+a.width,b.left+b.width);if(c<=d){var e=Math.max(a.top,b.top);a=Math.min(a.top+a.height,b.top+b.height);if(e<=a)return new Cn(c,e,d-c,a-e)}return null};l=Cn.prototype; + l.contains=function(a){return a instanceof $k?a.x>=this.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height:this.left<=a.left&&this.left+this.width>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height};l.ceil=function(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.top);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this}; + l.floor=function(){this.left=Math.floor(this.left);this.top=Math.floor(this.top);this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};l.round=function(){this.left=Math.round(this.left);this.top=Math.round(this.top);this.width=Math.round(this.width);this.height=Math.round(this.height);return this};l.scale=function(a,b){b=typeof b==="number"?b:a;this.left*=a;this.width*=a;this.top*=b;this.height*=b;return this};function Gn(a){a=a===void 0?z:a;var b=a.context||a.AMP_CONTEXT_DATA;if(!b)try{b=a.parent.context||a.parent.AMP_CONTEXT_DATA}catch(e){}var c,d;return((c=b)==null?0:c.pageViewId)&&((d=b)==null?0:d.canonicalUrl)?b:null};var Hn=function(){this.S={}},In=function(){var a=Gn(window);if(a){if(a){var b=a.pageViewId;a=a.clientId;typeof a==="string"&&(b+=a.replace(/\D/g,"").substr(0,6))}else b=null;return+b}b=gm(window);a=b.google_global_correlator;a||(b.google_global_correlator=a=1+Math.floor(Math.random()*Math.pow(2,43)));return a},Kn=function(a,b){var c=Jn[7]||"google_ps_7";a=a.S;var d=a[c];return d===void 0?(a[c]=b(),a[c]):d},Ln=function(a){var b=In();return Kn(a,function(){return b})},Nn=function(){if(Mn)var a=Mn;else{a= + ((a=a===void 0?Gn():a)?Tl(a.master)?a.master:null:null)||window;var b=a.google_persistent_state_async;a=b!=null&&typeof b=="object"&&b.S!=null&&typeof b.S=="object"?Mn=b:a.google_persistent_state_async=Mn=new Hn}return Ln(a)},Mn=null,On={},Jn=(On[8]="google_prev_ad_formats_by_region",On[9]="google_prev_ad_slotnames_by_region",On);var Pn=ia(["https://pagead2.googlesyndication.com/pagead/js/err_rep.js"]),Qn=function(){var a=a===void 0?"jserror":a;var b=b===void 0?.01:b;var c=c===void 0?Xk(Pn):c;this.j=a;this.l=!1;this.g=null;this.o=!1;this.D=Math.random();this.C=b;this.F=this.Jb;this.G=c};l=Qn.prototype;l.Xg=function(a){this.j=a};l.xf=function(a){this.g=a};l.Yg=function(a){this.l=a};l.Zg=function(a){this.o=a}; + l.Jb=function(a,b,c,d,e){c=c===void 0?this.C:c;e=e===void 0?this.j:e;if((this.o?this.D:Math.random())>c)return this.l;wj(b)||(b=new vj(b,{context:a,id:e}));if(d||this.g)b.meta={},this.g&&this.g(b.meta),d&&d(b.meta);z.google_js_errors=z.google_js_errors||[];z.google_js_errors.push(b);z.error_rep_loaded||(b=z.document,a=fm("SCRIPT",b),cl(a,this.G),(b=b.getElementsByTagName("script")[0])&&b.parentNode&&b.parentNode.insertBefore(a,b),z.error_rep_loaded=!0);return this.l}; + l.Nc=function(a,b,c){try{return b()}catch(d){if(!this.F(a,d,this.C,c,this.j))throw d;}};l.Sg=function(a,b,c,d){var e=this;return function(){var f=Ea.apply(0,arguments);return e.Nc(a,function(){return b.apply(c,f)},d)}};var Sn=function(){var a=Rn;return a.prerendering?3:{visible:1,hidden:2,prerender:3,preview:4,unloaded:5}[a.visibilityState||a.webkitVisibilityState||a.mozVisibilityState||""]||0},Tn=function(a){var b;a.visibilityState?b="visibilitychange":a.mozVisibilityState?b="mozvisibilitychange":a.webkitVisibilityState&&(b="webkitvisibilitychange");return b};var Un=function(a){a=a._google_rum_ns_=a._google_rum_ns_||{};return a.pq=a.pq||[]};function Vn(a,b,c){Zl(b,function(d,e){var f=c&&c[e];!d&&d!==0||f||(a+="&"+encodeURIComponent(e)+"="+encodeURIComponent(String(d)),c&&(c[e]=!0))});return a} + var ao=function(a,b,c,d,e,f,g,h){f=f===void 0?Infinity:f;g=g===void 0?!1:g;um.call(this,a,h);var k=this;this.fa=b;this.domain=c;this.path=d;this.la=e;this.G=0;this.C={};this.N={};this.R=[];this.report={};this.j=0;this.J=[];this.W=f;a=this.g.navigator;this.ba=!(this.domain!=="csi.gstatic.com"||!a||!a.sendBeacon);this.g.performance&&this.g.performance.now||Wn(this,"dat",1);a&&a.deviceMemory&&Wn(this,"dmc",a.deviceMemory);this.g===this.g.top&&Wn(this,"top",1);this.ca=!g;this.M=function(){k.g.setTimeout(function(){Xn(k)}, + 1100)};this.T=function(){Wn(k,"uet",2);for(var n=t(k.R),p=n.next();!p.done;p=n.next()){p=p.value;try{p()}catch(r){}}n=k.g;var q=q===void 0?{}:q;typeof window.CustomEvent==="function"?p=new CustomEvent("rum_blp",q):(p=document.createEvent("CustomEvent"),p.initCustomEvent("rum_blp",!!q.bubbles,!!q.cancelable,q.detail));n.dispatchEvent(p);Xn(k);k.C.uet!=null&&(k.o-=3+k.C.uet.length+2,delete k.C.uet)};this.na=Bj(function(){Xn(k)});this.ra=function(){var n=k.g.document;(n.hidden!=null?n.hidden:n.mozHidden!= + null?n.mozHidden:n.webkitHidden!=null&&n.webkitHidden)&&k.na()};this.H=this.g.setTimeout(function(){Xn(k)},5E3);this.o=b.length+c.length+d.length+e.length+3;Xb(this.events,function(n){Yn(k,n)});b=Un(this.g);var m=function(){var n=Ea.apply(0,arguments)[0],p=n[0];n=n[1];var q=p.length+n.length+2;k.o+k.j+q>8E3&&Xn(k);k.J.push([p,n]);k.j+=q;Zn(k);return 0};Xb(b,function(n){return m(n)});b.length=0;b.push=m;Wn(this,"puid",(this.G+1).toString(36)+"~"+Wa().toString(36));$n(this)};v(ao,um); + var $n=function(a){a.g.document.readyState==="complete"?a.g.setTimeout(function(){Xn(a)},0):Ej(a.g,"load",a.M);var b=Tn(a.g.document);typeof b!=="undefined"&&Ej(a.g,b,a.ra);Ej(a.g,"pagehide",a.T)},Wn=function(a,b,c){c=String(c);a.o=a.C[b]!=null?a.o+(c.length-a.C[b].length):a.o+(b.length+c.length+2);a.C[b]=c},eo=function(a,b,c,d,e){e=e===void 0?"":e;var f=bo(a,b,c,d,e);a.o+a.j+f>8E3&&(Xn(a),f=b.length+c.length+2);co(a,b,c,d,e);a.j+=f;Zn(a)},bo=function(a,b,c,d,e){return a.report[b]==null?b.length+ + c.length+2:d?c.length+(e===void 0?"":e).length:c.length-a.report[b].length},co=function(a,b,c,d,e){a.report[b]=d&&a.report[b]!=null?a.report[b]+(""+(e===void 0?"":e)+c):c},Zn=function(a){a.o+a.j>=6E3&&Xn(a)},Xn=function(a){if(a.l&&a.ca){try{a.j&&(a.sendBeacon(a.report),a.G===a.W&&a.F())}catch(b){(new Qn).Jb(358,b)}a.report={};a.j=0;a.events.length=0;a.g.clearTimeout(a.H);a.H=0}},fo=function(a,b){var c=a.fa+"//"+a.domain+a.path+a.la,d={};c=Vn(c,a.C,d);c=Vn(c,b,d);b=a.g;b.google_timing_params&&(c=Vn(c, + b.google_timing_params,d),b.google_timing_params=void 0);Xb(a.J,function(e){var f=t(e);e=f.next().value;f=f.next().value;var g={};c=Vn(c,(g[e]=f,g))});a.J.length=0;return c};ao.prototype.sendBeacon=function(a){this.G++;a=fo(this,a);var b=!1;try{b=!!(this.ba&&this.g.navigator&&this.g.navigator.sendBeacon(a,null))}catch(c){this.ba=!1}b||Km(this.g,a);Wn(this,"puid",(this.G+1).toString(36)+"~"+Wa().toString(36))}; + var Yn=function(a,b){var c="met."+b.type,d=typeof b.value==="number"?Math.round(b.value).toString(36):b.value,e=Math.round(b.duration);b=""+b.label+(b.slotId!=null?"_"+b.slotId:"")+("."+d)+(e>0?"_"+e.toString(36):"")+(b.taskId!=null?"__"+Math.round(b.taskId).toString(36):"");eo(a,c,b,!0,"~")};ao.prototype.D=function(a){this.l&&this.G8E3||d)&&Xn(a);d=t(Object.keys(b));for(e=d.next();!e.done;e=d.next())e=e.value,co(a,e,b[e],!1);a.j+=c;Zn(a)},ho=function(a,b){a=a.g;a.l&&a.D(new qm(b,4,om()-0,0))}; + M.prototype.recordClick=function(a,b,c,d){for(var e=!1,f="notag";d!=void 0&&d!=document.documentElement;){var g=void 0,h=void 0;if(((g=d)==null?0:g.getAttribute("data-ck-navigates"))||((h=d)==null?0:h.getAttribute("data-ck-tag"))){g=f=void 0;e=(g=(f=d)==null?void 0:f.getAttribute("data-ck-navigates"))!=null?g:!1;h=g=void 0;f=(h=(g=d)==null?void 0:g.getAttribute("data-ck-tag"))!=null?h:"notag";break}g=void 0;d=(g=d.parentElement)!=null?g:void 0}d=this.g;d.l&&d.D(new qm(a+"_"+b+"x"+c+"|"+e+"|"+f,4, + om(),0))};M.getInstance=function(){return L(M)};var io=function(a){var b=M.getInstance();b.j.has(a)?b.j.set(a,b.j.get(a)+1):b.j.set(a,1)};var jo=function(a){return/^\s*$/.test(a)?!1:/^[\],:{}\s\u2028\u2029]*$/.test(a.replace(/\\["\\\/bfnrtu]/g,"@").replace(/(?:"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)[\s\u2028\u2029]*(?=:|,|]|}|$)/g,"]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,""))},ko=function(a){try{return z.JSON.parse(a)}catch(b){}a=String(a);if(jo(a))try{return eval("("+a+")")}catch(b){}throw Error("Invalid JSON string: "+a);};var lo=function(){this.l=null;this.g="missing-id";this.j=!1},no=function(a){var b=null;try{b=document.getElementsByClassName("lima-exp-data")}catch(c){return mo("missing-element",a.g),null}if(b.length>1)return mo("multiple-elements",a.g),null;b=b[0];return b?b.innerHTML:(mo("missing-element",a.g),null)},po=function(){var a=oo,b=no(a);if(b!==null)if(jo(b)){var c=JSON.parse(b);b=c.experimentIds;var d=c.binaryIdentifier;c=c.adEventId;var e=typeof d==="string";if(typeof c=="string"){var f=M.getInstance(); + c!=null&&Wn(f.g,"qqid",c)}e&&(a.g=d);typeof b!=="string"?mo("missing-flags",a.g):(e||mo("missing-binary-id",a.g),a.l=b)}else mo("invalid-json",a.g)};lo.prototype.reset=function(){this.l=null;this.g="missing-id"};var qo=function(a){this.g=a||{cookie:""}};l=qo.prototype; + l.set=function(a,b,c){var d=!1;if(typeof c==="object"){var e=c.ti;d=c.vf||!1;var f=c.domain||void 0;var g=c.path||void 0;var h=c.Te}if(/[;=\s]/.test(a))throw Error('Invalid cookie name "'+a+'"');if(/[;\r\n]/.test(b))throw Error('Invalid cookie value "'+b+'"');h===void 0&&(h=-1);this.g.cookie=a+"="+b+(f?";domain="+f:"")+(g?";path="+g:"")+(h<0?"":h==0?";expires="+(new Date(1970,1,1)).toUTCString():";expires="+(new Date(Date.now()+h*1E3)).toUTCString())+(d?";secure":"")+(e!=null?";samesite="+e:"")}; + l.get=function(a,b){for(var c=a+"=",d=(this.g.cookie||"").split(";"),e=0,f;e=0;b--)this.remove(a[b])}; + var ro=function(a){a=(a.g.cookie||"").split(";");for(var b=[],c=[],d,e,f=0;fa;break;case 12:c=re(a)&&re(g)&&(new RegExp(a)).test(g);break;case 10:c=g!=null&&Gb(String(g),a)===-1;break;case 11:c=g!=null&&Gb(String(g),a)===1;break;default:return{success:!1,Wa:3}}return{success:!0,value:c}} + function Ao(a,b){return a?b?yo(a,b):{success:!1,Wa:1}:{success:!0,value:!0}};var Pg=function(a){this.K=G(a)};v(Pg,J);var Bo=function(a){this.K=G(a)};v(Bo,J);Bo.prototype.getValue=function(){return H(this,Pg,2)};var $o=function(a){this.K=G(a)};v($o,J);var ap=pj($o),bp=[1,2,3,6,7,8];var cp=function(a,b,c){var d=d===void 0?new yn(6,"unknown",b):d;this.o=a;this.C=c;this.j=d;this.g=[];this.l=a>0&&Yl()<1/a},ep=function(a,b,c,d,e,f){if(a.l){var g=Tm(Sm(new Rm,b),c);b=an(Ym(Xm($m(Zm(new Wm,d),e),g),a.g.slice()),f);b=on(b);a.j.wf(dp(a,b));if(f===1||f===3||f===4&&!a.g.some(function(h){return I(h,1)===I(g,1)&&I(h,2)===c}))a.g.push(g),a.g.length>100&&a.g.shift()}},fp=function(a,b,c,d){if(a.l){var e=new Qm;b=og(e,1,b==null?b:Ye(b));c=og(b,2,c==null?c:Ye(c));d=og(c,3,We(d));c=new mn;d=Xg(c, + 8,nn,d);a.j.wf(dp(a,d))}},gp=function(a,b,c,d,e){if(a.l){var f=new kn;b=Wg(f,1,b);c=og(b,2,We(c));d=og(c,3,d==null?d:Ye(d));if(e.Ud===void 0)Mg(d,4,ln,We(e.Wa));else switch(e.Ud){case 3:c=new en;c=Mg(c,2,fn,We(e.jd));e=og(c,1,We(e.Wa));Xg(d,5,ln,e);break;case 4:c=new en;c=Mg(c,3,fn,We(e.jd));e=og(c,1,We(e.Wa));Xg(d,5,ln,e);break;case 5:c=new en,c=Mg(c,4,fn,We(e.jd)),e=og(c,1,We(e.Wa)),Xg(d,5,ln,e)}e=new mn;e=Xg(e,9,nn,d);a.j.wf(dp(a,e))}},dp=function(a,b){var c=Date.now();c=Number.isFinite(c)?Math.round(c): + 0;b=kh(b,1,c);c=em();b=kh(b,2,c);return kh(b,6,a.o)};var hp=function(){var a={};this.jb=(a[3]={},a[4]={},a[5]={},a)};var ip=/^true$/.test("false");function jp(a,b){switch(b){case 1:return hh(a,1,bp);case 2:return hh(a,2,bp);case 3:return hh(a,3,bp);case 6:return hh(a,6,bp);case 8:return hh(a,8,bp);default:return null}}function kp(a,b){if(!a)return null;switch(b){case 1:return ah(a,1);case 7:return fh(a,3);case 2:return eh(a,2);case 3:return fh(a,3);case 6:return gh(a,4);case 8:return gh(a,4);default:return null}} + var lp=zj(function(){if(!ip)return{};try{var a;var b=b===void 0?window:b;try{var c=b.sessionStorage}catch(e){c=null}var d=(a=c)==null?void 0:a.getItem("GGDFSSK");if(d)return JSON.parse(d)}catch(e){}return{}});function mp(a,b,c,d){var e=d=d===void 0?0:d,f,g;L(np).l[e]=(g=(f=L(np).l[e])==null?void 0:f.add(b))!=null?g:(new Set).add(b);e=lp();if(e[b]!=null)return e[b];b=op(d)[b];if(!b)return c;b=ap(JSON.stringify(b));b=pp(b);a=kp(b,a);return a!=null?a:c} + function pp(a){var b=L(hp).jb;if(b&&Ng(a,bp)!==8){var c=gc(Vg(a,Bo,5,qg()),function(f){f=Ao(H(f,gn,1),b);return f.success&&f.value});if(c){var d;return(d=c.getValue())!=null?d:null}}var e;return(e=H(a,Pg,4))!=null?e:null}var np=function(){this.j={};this.o=[];this.l={};this.g=new Map};function qp(a,b,c){return!!mp(1,a,b===void 0?!1:b,c)}function rp(a,b,c){b=b===void 0?0:b;a=Number(mp(2,a,b,c));return isNaN(a)?b:a}function sp(a,b,c){b=b===void 0?"":b;a=mp(3,a,b,c);return typeof a==="string"?a:b} + function tp(a,b,c){b=b===void 0?[]:b;a=mp(6,a,b,c);return Array.isArray(a)?a:b}function up(a,b,c){b=b===void 0?[]:b;a=mp(8,a,b,c);return Array.isArray(a)?a:b}function op(a){return L(np).j[a]||(L(np).j[a]={})}function vp(a,b){var c=op(b);Zl(a,function(d,e){if(c[e]){d=ap(JSON.stringify(d));var f=Og(d,bp,8);if(Xe(lg(d,f))!=null){var g=ap(JSON.stringify(c[e]));f=Qg(d);g=gh(Tg(g),4);Jg(f,4,sf,g)}c[e]=Jh(d)}else c[e]=d})} + function wp(a,b,c,d,e){e=e===void 0?!1:e;var f=[],g=[];b=t(b);for(var h=b.next();!h.done;h=b.next()){h=h.value;for(var k=op(h),m=t(a),n=m.next();!n.done;n=m.next()){n=n.value;var p=Ng(n,bp),q=jp(n,p);if(q){var r=void 0,w=void 0,A=void 0;var C=(r=(A=L(np).g.get(h))==null?void 0:(w=A.get(q))==null?void 0:w.slice(0))!=null?r:[];a:{r=q;w=p;A=new bn;switch(w){case 1:Mg(A,1,cn,We(r));break;case 2:Mg(A,2,cn,We(r));break;case 3:Mg(A,3,cn,We(r));break;case 6:Mg(A,4,cn,We(r));break;case 8:Mg(A,6,cn,We(r)); + break;default:C=void 0;break a}Hg(A,5,C,Ye);C=A}if(r=C)w=void 0,r=!((w=L(np).l[h])==null||!w.has(q));r&&f.push(C);if(p===8&&k[q])C=ap(JSON.stringify(k[q])),p=Qg(n),C=gh(Tg(C),4),Jg(p,4,sf,C);else{if(p=C)r=void 0,p=!((r=L(np).g.get(h))==null||!r.has(q));p&&g.push(C)}e||(p=q,C=h,r=d,w=L(np),w.g.has(C)||w.g.set(C,new Map),w.g.get(C).has(p)||w.g.get(C).set(p,[]),r&&w.g.get(C).get(p).push(r));k[q]=Jh(n)}}}if(f.length||g.length)a=d!=null?d:void 0,c.l&&c.C&&(d=new dn,f=Yg(d,2,f),g=Yg(f,3,g),a&&ih(g,1,a), + f=new mn,g=Xg(f,7,nn,g),c.j.wf(dp(c,g)))}function xp(a,b){b=op(b);a=t(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;var d=ap(JSON.stringify(c)),e=Ng(d,bp);(d=jp(d,e))&&(b[d]||(b[d]=c))}}function yp(){return Object.keys(L(np).j).map(function(a){return Number(a)})}function zp(a){L(np).o.includes(a)||vp(op(4),a)};function Ap(a,b,c){c.hasOwnProperty(a)||Object.defineProperty(c,String(a),{value:b})}function Bp(a,b,c){return b[a]||c}function Cp(a){Ap(5,qp,a);Ap(6,rp,a);Ap(7,sp,a);Ap(8,tp,a);Ap(17,up,a);Ap(13,xp,a);Ap(15,zp,a)} + function Dp(a){Ap(4,function(b){L(hp).jb=b},a);Ap(9,function(b,c){var d=L(hp);d.jb[3][b]==null&&(d.jb[3][b]=c)},a);Ap(10,function(b,c){var d=L(hp);d.jb[4][b]==null&&(d.jb[4][b]=c)},a);Ap(11,function(b,c){var d=L(hp);d.jb[5][b]==null&&(d.jb[5][b]=c)},a);Ap(14,function(b){for(var c=L(hp),d=t([3,4,5]),e=d.next();!e.done;e=d.next())e=e.value,Object.assign(c.jb[e],b[e])},a)}function Ep(a){a.hasOwnProperty("init-done")||Object.defineProperty(a,"init-done",{value:!0})};var Fp=function(){};Fp.prototype.j=function(){};Fp.prototype.g=function(){return[]};var Gp=function(a,b,c){a.j=function(d,e){Bp(2,b,function(){return[]})(d,c,e)};a.g=function(){return Bp(3,b,function(){return[]})(c)}};var Hp=function(a,b,c){this.id=a;this.L=b;this.j=c;this.g=!1},Ip=function(a){return a.g||a.j},Jp=function(){this.g=[]},Kp=function(){this.g=new Map;this.j=!1;this.o=new Jp;this.C=new Hp(0,0,!1);this.l=[this.o]},O=function(a){var b=Lp;if(b.j||b.g.has(a.id)||a.L==null&&a.control==null||a.rn==0)return b.C;var c=b.o;if(a.control!=null)for(var d=t(b.l),e=d.next();!e.done;e=d.next()){if(e=e.value,e.g.includes(a.control)){c=e;break}}else a.ka!=null&&(c=a.ka);d=0;a.control!=null?d=a.control.L:a.L!=null&& + (d=a.L);a=new Hp(a.id,d,!!a.vn);c.g.push(a);b.l.includes(c)||b.l.push(c);b.g.set(a.id,a);return a},Mp=function(){var a=Lp;a=[].concat(u(a.g.keys())).filter(function(c){return Ip(this.g.get(c))},a);var b=L(Fp).g();return[].concat(u(a),u(b))},Np=function(a){var b=Lp;b.j||(a.g(b.l,b.g),b.j=!0)};Kp.prototype.reset=function(){for(var a=t(this.g),b=a.next();!b.done;b=a.next())b=t(b.value),b.next(),b.next().value.g=!1;this.j=!1};var Lp=new Kp,Pp=function(){return Op.g.filter(function(a){return Ip(a)}).map(function(a){return a.id})};var Qp=function(){};Qp.prototype.g=function(a){a=t(a);for(var b=a.next();!b.done;b=a.next()){var c=0,d=Math.floor(Math.random()*1E3);b=t(b.value.g);for(var e=b.next();!e.done;e=b.next())if(e=e.value,c+=e.L,d=C*F||A%F!==Q||!Xq(a,w)||(A=I(w.Df,13),A!==0&&A!==void 0&&(C=a.l[String(A)],C!==void 0&&C!==w.sb.getId()?fp(a.kc,a.l[String(A)],w.sb.getId(),A):a.l[String(A)]=w.sb.getId()),h.push(w.sb))}Ng(p,Vm)!==0&&(ih(p,3,q),g.push(p))}}}}d=t(h);for(h=d.next();!h.done;h=d.next())h=h.value,k=h.getId(),e.push(k),Yq(a,k,f?4:c),wp(Vg(h,$o,2,qg()),f?yp():[c],a.kc,k);ep(a.kc,b,c,e,g,1);return e}, + Yq=function(a,b,c){a.g[c]||(a.g[c]=[]);a=a.g[c];a.includes(b)||a.push(b)},Xq=function(a,b){var c=L(hp).jb,d=Ao(H(b.Df,gn,3),c);if(!d.success)return gp(a.kc,H(b.Df,gn,3),b.ue,b.sb.getId(),d),!1;if(!d.value)return!1;c=Ao(H(b.sb,gn,3),c);return c.success?c.value?!0:!1:(gp(a.kc,H(b.sb,gn,3),b.ue,b.sb.getId(),c),!1)},$q=function(a,b){b=b.map(function(c){return new Eq(c)}).filter(function(c){return!Vq.includes(I(c,1))});a.Od=Tq(a.Od,b)},ar=function(a,b){Ap(1,function(c){a.j[c]=!0},b);Ap(2,function(c,d, + e){return Zq(a,c,d,e)},b);Ap(3,function(c){return(a.g[c]||[]).concat(a.g[4])},b);Ap(12,function(c){return void $q(a,c)},b);Ap(16,function(c,d){return void Yq(a,c,d)},b)};var br=function(){var a={};this.j=function(b,c){return a[b]!=null?a[b]:c};this.g=function(b,c){return a[b]!=null?a[b]:c};this.C=function(b,c){return a[b]!=null?a[b]:c};this.F=function(b,c){return a[b]!=null?a[b]:c};this.o=function(b,c){return a[b]!=null?c.concat(a[b]):c};this.l=function(){}};function cr(a){return L(br).j(a.g,a.defaultValue)};var dr=function(){this.g=function(){}},er=function(a,b){a.g=Bp(14,b,function(){})};function fr(a){L(dr).g(a)};var gr,hr,ir,jr,kr,lr;function mr(a,b){var c=b=b===void 0?Rq():b;Gp(L(Fp),c,a);nr(b,a);a=b;er(L(dr),a);L(br).l()}function nr(a,b){var c=L(br);c.j=function(d,e){return Bp(5,a,function(){return!1})(d,e,b)};c.g=function(d,e){return Bp(6,a,function(){return 0})(d,e,b)};c.C=function(d,e){return Bp(7,a,function(){return""})(d,e,b)};c.F=function(d,e){return Bp(8,a,function(){return[]})(d,e,b)};c.o=function(d,e){return Bp(17,a,function(){return[]})(d,e,b)};c.l=function(){Bp(15,a,function(){})(b)}};Lp.reset();Np(new Qp); + (function(a){var b=a.Wj;var c=a.jb;var d=a.config;var e=a.Fj===void 0?Rq():a.Fj;var f=a.yh===void 0?0:a.yh;var g=a.kc===void 0?new cp((jr=(gr=H(b,Fq,5))==null?void 0:dh(gr,2))!=null?jr:0,(kr=(hr=H(b,Fq,5))==null?void 0:dh(hr,4))!=null?kr:0,(lr=(ir=H(b,Fq,5))==null?void 0:ah(ir,3))!=null?lr:!1):a.kc;a=a.Od===void 0?Sq(Vg(b,Eq,2,qg(ae))):a.Od;e.hasOwnProperty("init-done")?(Bp(12,e,function(){})(Vg(b,Eq,2,qg()).map(function(h){return Jh(h)})),Bp(13,e,function(){})(Vg(b,$o,1,qg()).map(function(h){return Jh(h)}),f), + c&&Bp(14,e,function(){})(c),mr(f,e)):(ar(new Wq(a,f,g,d),e),Cp(e),Dp(e),Ep(e),mr(f,e),wp(Vg(b,$o,1,qg(ae)),[f],g,void 0,!0),ip=ip||!(!d||!d.xn),fr(Qq),c&&fr(c))})({Wj:Yf(Jq()),yh:7});var or=em(),pr={},qr=(pr[0]=function(a){a=a===void 0?Yl():a;return function(b){return $l(b+" + "+a)%1E3}}(or),pr);L(Fp).j(16,qr);var rr=function(a,b,c){this.id=a;a=pc(c);rc(a);this.j=a;this.g=b};rr.prototype.Vb=function(a){var b;if(b=this.g==a.g&&this.id==a.id)a:if(b=this.j,a=a.j,La(b)&&La(a)&&b.length==a.length){for(var c=b.length,d=0;db)throw Error("ID "+c+" is past MaxVendorId "+b+"!");}),a):ns(a,b)},ps=function(a){for(var b=[],c=js(a,12);c--;){var d=js(a,6),e= + js(a,2),f=ms(a),g=b,h=g.push,k=new Er;d=nh(k,1,d);e=nh(d,2,e);f=Hg(e,3,f,Ye);h.call(g,f)}return b},ms=function(a){for(var b=js(a,12),c=[];b--;){var d=!!js(a,1)===!0,e=js(a,16);if(d)for(d=js(a,16);e<=d;e++)c.push(e);else c.push(e)}c.sort(function(f,g){return f-g});return c},ns=function(a,b,c){for(var d=[],e=0;ea.j.length)throw Error("Requested length "+ + b+" is past end of string.");var c=a.j.substring(a.g,a.g+b);a.g+=b;return parseInt(c,2)};is.prototype.skip=function(a){this.g+=a};var qs=function(a){try{var b=Qc(a).map(function(f){return f.toString(2).padStart(8,"0")}).join(""),c=new is(b);if(js(c,3)!==3)return null;var d=Hr(Gr(new Fr,ns(c,24,gs)),ns(c,24,gs)),e=js(c,6);e!==0&&Jr(Ir(d,ns(c,e)),ns(c,e));return d}catch(f){return null}};var rs=function(a){try{var b=Qc(a).map(function(d){return d.toString(2).padStart(8,"0")}).join(""),c=new is(b);return ds(cs(bs(as($r(Zr(Yr(Xr(Wr(Vr(Ur(Tr(Sr(Rr(Qr(Pr(Or(Nr(Mr(new Lr,js(c,6)),ks(c)),ks(c)),js(c,12)),js(c,12)),js(c,6)),ls(c)),js(c,12)),js(c,6)),!!js(c,1)),!!js(c,1)),ns(c,12,hs)),ns(c,24,gs)),ns(c,24,gs)),!!js(c,1)),ls(c)),os(c)),os(c)),ps(c))}catch(d){return null}};var us=function(a){if(!a)return null;var b=a.split(".");if(b.length>4)return null;a=rs(b[0]);if(!a)return null;var c=new es;a=Wg(c,1,a);b.shift();b=t(b);for(c=b.next();!c.done;c=b.next())switch(c=c.value,ts(c)){case 1:case 2:break;case 3:c=qs(c);if(!c)return null;Wg(a,2,c);break;default:return null}return a},ts=function(a){try{var b=Qc(a).map(function(c){return c.toString(2).padStart(8,"0")}).join("");return js(new is(b),3)}catch(c){return-1}};var vs=function(a,b){var c={};if(Array.isArray(b)&&b.length!==0){b=t(b);for(var d=b.next();!d.done;d=b.next())d=d.value,c[d]=a.indexOf(d)!==-1}else for(a=t(a),b=a.next();!b.done;b=a.next())c[b.value]=!0;delete c[0];return c};var ws=function(a,b){this.g=a;this.defaultValue=b===void 0?!1:b},xs=function(a,b){this.g=a;this.defaultValue=b===void 0?0:b};var ys=new ws(45637656,!0),zs=new xs(45637657,500),As=new ws(45642592),Bs=new xs(45645574);function Cs(){var a=Jb();return a?dc("AmazonWebAppPlatform;Android TV;Apple TV;AppleTV;BRAVIA;BeyondTV;Freebox;GoogleTV;HbbTV;LongTV;MiBOX;MiTV;NetCast.TV;Netcast;Opera TV;PANASONIC;POV_TV;SMART-TV;SMART_TV;SWTV;Smart TV;SmartTV;TV Store;UnionTV;WebOS".split(";"),function(b){return Eb(a,b)})||Eb(a,"OMI/")&&!Eb(a,"XiaoMi/")?!0:Eb(a,"Presto")&&Eb(a,"Linux")&&!Eb(a,"X11")&&!Eb(a,"Android")&&!Eb(a,"Mobi"):!1} + function Ds(){var a=Jb();return Eb(a,"AppleTV")||Eb(a,"Apple TV")||Eb(a,"CFNetwork")||Eb(a,"tvOS")}function Es(){var a;(a=Eb(Jb(),"CrKey")&&!(Eb(Jb(),"CrKey")&&Eb(Jb(),"SmartSpeaker"))||Eb(Jb(),"PlayStation")||Eb(Jb(),"Roku")||Cs()||Eb(Jb(),"Xbox")||Ds())||(a=Jb(),a=Eb(a,"sdk_google_atv_x86")||Eb(a,"Android TV"));return a};var Fs={LOADED:"loaded",th:"start",FIRST_QUARTILE:"firstQuartile",MIDPOINT:"midpoint",THIRD_QUARTILE:"thirdQuartile",COMPLETE:"complete",PAUSE:"pause",rh:"resume",nh:"bufferStart",mh:"bufferFinish",SKIPPED:"skipped",Cj:"volumeChange",Pm:"playerStateChange",Pl:"adUserInteraction"};function Gs(a,b){return a&&(a[b]||(a[b]={}))}function Hs(a,b){var c;if(c=c===void 0?typeof omidExports==="undefined"?null:omidExports:c)a=a.split("."),a.slice(0,a.length-1).reduce(Gs,c)[a[a.length-1]]=b};function Is(a){for(var b=t(Js.keys()),c=b.next();!c.done;c=b.next()){c=c.value;for(var d=t(Js.get(c)),e=d.next();!e.done;e=d.next())if(e.value.test(a))return c}return 1} + var Js=new Map([[2,[/^(https?:\/\/|\/\/)?[-a-zA-Z0-9.]+\.moatads\.com\/.*$/]],[3,[/^(https?:\/\/|\/\/)?[-a-zA-Z0-9.]+\.doubleverify\.com\/.*$/,/^(https?:\/\/|\/\/)?c\.[\w\-]+\.com\/vfw\/dv\/.*$/,/^(https?:\/\/|\/\/)?(www\.)?[\w]+\.tv\/r\/s\/d\/.*$/,/^(https?:\/\/|\/\/)?(\w\.?)+\.dv\.tech\/.*$/]],[4,[/^(https?:\/\/|\/\/)?[-a-zA-Z0-9.]+\.adsafeprotected\.com\/.*$/]],[5,[/^https?:\/\/(q|cdn)\.adrta\.com\/s\/.*\/(aa|aanf)\.js.*$/,/^https:\/\/cdn\.rta247\.com\/s\/.*\/(aa|aanf)\.js.*$/]],[6,[]],[7,[/^(https?:\/\/|\/\/)?[-a-zA-Z0-9.]+\.voicefive\.com\/.*$/, + /^(https?:\/\/|\/\/)?[-a-zA-Z0-9.]+\.measuread\.com\/.*$/,/^(https?:\/\/|\/\/)?[-a-zA-Z0-9.]+\.scorecardresearch\.com\/.*$/]],[8,[/^(https?:\/\/|\/\/)?s418\.mxcdn\.net\/bb-serve\/omid-meetrics.*\.js$/]],[9,[/^(https?:\/\/|\/\/)?pagead2\.googlesyndication\.com\/.*$/,/^(https?:\/\/|\/\/)?www\.googletagservices\.com\/.*$/]]]);Hs("OmidSessionClient.verificationVendorIdForScriptUrl",Is); + Hs("OmidSessionClient.VerificationVendorId",{OTHER:1,MOAT:2,DOUBLEVERIFY:3,INTEGRAL_AD_SCIENCE:4,PIXELATE:5,NIELSEN:6,COMSCORE:7,MEETRICS:8,GOOGLE:9});var Ks=function(a,b,c){this.url=a;this.id=b===void 0?null:b;this.g=c===void 0?null:c};var Ls=function(a){this.j=this.G=this.o="";this.C=null;this.F=this.l="";this.D=!1;var b;a instanceof Ls?(this.D=a.D,Ms(this,a.o),this.G=a.G,Ns(this,a.j),Os(this,a.C),this.l=a.l,Ps(this,a.g.clone()),this.F=a.F):a&&(b=String(a).match(Ml))?(this.D=!1,Ms(this,b[1]||"",!0),this.G=Qs(b[2]||""),Ns(this,b[3]||"",!0),Os(this,b[4]),this.l=Qs(b[5]||"",!0),Ps(this,b[6]||"",!0),this.F=Qs(b[7]||"")):(this.D=!1,this.g=new Rs(null,this.D))}; + Ls.prototype.toString=function(){var a=[],b=this.o;b&&a.push(Ss(b,Ts,!0),":");var c=this.j;if(c||b=="file")a.push("//"),(b=this.G)&&a.push(Ss(b,Ts,!0),"@"),a.push(encodeURIComponent(String(c)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),c=this.C,c!=null&&a.push(":",String(c));if(c=this.l)this.j&&c.charAt(0)!="/"&&a.push("/"),a.push(Ss(c,c.charAt(0)=="/"?Us:Vs,!0));(c=this.g.toString())&&a.push("?",c);(c=this.F)&&a.push("#",Ss(c,Ws));return a.join("")}; + Ls.prototype.resolve=function(a){var b=this.clone(),c=!!a.o;c?Ms(b,a.o):c=!!a.G;c?b.G=a.G:c=!!a.j;c?Ns(b,a.j):c=a.C!=null;var d=a.l;if(c)Os(b,a.C);else if(c=!!a.l){if(d.charAt(0)!="/")if(this.j&&!this.l)d="/"+d;else{var e=b.l.lastIndexOf("/");e!=-1&&(d=b.l.slice(0,e+1)+d)}e=d;if(e==".."||e==".")d="";else if(Db(e,"./")||Db(e,"/.")){d=sb(e,"/");e=e.split("/");for(var f=[],g=0;g1||f.length==1&&f[0]!="")&&f.pop(),d&&g==e.length&& + f.push("")):(f.push(h),d=!0)}d=f.join("/")}else d=e}c?b.l=d:c=a.g.toString()!=="";c?Ps(b,a.g.clone()):c=!!a.F;c&&(b.F=a.F);return b};Ls.prototype.clone=function(){return new Ls(this)}; + var Ms=function(a,b,c){a.o=c?Qs(b,!0):b;a.o&&(a.o=a.o.replace(/:$/,""))},Ns=function(a,b,c){a.j=c?Qs(b,!0):b},Os=function(a,b){if(b){b=Number(b);if(isNaN(b)||b<0)throw Error("Bad port number "+b);a.C=b}else a.C=null},Ps=function(a,b,c){b instanceof Rs?(a.g=b,Xs(a.g,a.D)):(c||(b=Ss(b,Ys)),a.g=new Rs(b,a.D))},Zs=function(a,b,c){a.g.set(b,c)},$s=function(a,b){return(!a.j&&!b.j||a.j==b.j)&&(a.C==null&&b.C==null||a.C==b.C)},at=function(a){return a instanceof Ls?a.clone():new Ls(a)},Qs=function(a,b){return a? + b?decodeURI(a.replace(/%25/g,"%2525")):decodeURIComponent(a):""},Ss=function(a,b,c){return typeof a==="string"?(a=encodeURI(a).replace(b,bt),c&&(a=a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),a):null},bt=function(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)},Ts=/[#\/\?@]/g,Vs=/[#\?:]/g,Us=/[#\?]/g,Ys=/[#\?@]/g,Ws=/#/g,Rs=function(a,b){this.j=this.g=null;this.l=a||null;this.o=!!b},ct=function(a){a.g||(a.g=new Map,a.j=0,a.l&&Ol(a.l,function(b,c){a.add(el(b),c)}))}; + Rs.prototype.add=function(a,b){ct(this);this.l=null;a=dt(this,a);var c=this.g.get(a);c||this.g.set(a,c=[]);c.push(b);this.j+=1;return this};Rs.prototype.remove=function(a){ct(this);a=dt(this,a);return this.g.has(a)?(this.l=null,this.j-=this.g.get(a).length,this.g.delete(a)):!1};Rs.prototype.clear=function(){this.g=this.l=null;this.j=0};Rs.prototype.isEmpty=function(){ct(this);return this.j==0};var et=function(a,b){ct(a);b=dt(a,b);return a.g.has(b)};l=Rs.prototype; + l.forEach=function(a,b){ct(this);this.g.forEach(function(c,d){c.forEach(function(e){a.call(b,e,d,this)},this)},this)};l.Be=function(){ct(this);for(var a=Array.from(this.g.values()),b=Array.from(this.g.keys()),c=[],d=0;d0?String(a[0]):b}; + l.toString=function(){if(this.l)return this.l;if(!this.g)return"";for(var a=[],b=Array.from(this.g.keys()),c=0;c0&&(this.l=null,this.g.set(dt(this,e),pc(c)),this.j+=c.length))},a));a.o=b};var ft=["image/jpeg","image/jpg","image/png","image/gif"];function gt(a){a&&!a.nodeName!="VAST"?(a=a.getAttribute("version"))?(N(M.getInstance(),"vast_v",a),a=parseInt(a,10),a=a==null||isNaN(a)?null:a):(N(M.getInstance(),"vast_v","not_specified"),a=null):(N(M.getInstance(),"vast_v","error"),a=null);return a==null||a<2||a>4?!1:!0} + function ht(){var a=document.featurePolicy;return a!==void 0&&typeof a.allowedFeatures=="function"&&typeof a.allowedFeatures()=="object"&&a.allowedFeatures().includes("attribution-reporting")}function it(a){return(a==null?void 0:a.g)!=null&&ht()?(a=a.g)?"attributionsrc="+encodeURIComponent(a):a===""?"attributionsrc":"":""};var jt=function(a,b){var c=window.screen.availHeight||window.screen.height;return(window.screen.availWidth||window.screen.width)-a<=0&&c-b<=42};function kt(a){var b="af am ar_eg ar_sa ar_xb ar be bg bn ca cs da de_at de_cn de el en_au en_ca en_gb en_ie en_in en_sg en_xa en_xc en_za en es_419 es_ar es_bo es_cl es_co es_cr es_do es_ec es_gt es_hn es_mx es_ni es_pa es_pe es_pr es_py es_sv es_us es_uy es_ve es et eu fa fi fil fr_ca fr_ch fr gl gsw gu he hi hr hu id in is it iw ja kn ko ln lo lt lv ml mo mr ms nb ne nl no pl pt_br pt_pt pt ro ru sk sl sr_latn sr sv sw ta te th tl tr uk ur vi zh_cn zh_hk zh_tw zh zu".split(" ");if(!a)return null; + a=a.toLowerCase().replace("-","_");if(b.includes(a))return a;a=(a=a.match(/^\w{2,3}([-_]|$)/))?a[0].replace(/[_-]/g,""):"";return b.includes(a)?a:null};/* + +Math.uuid.js (v1.4) +http://www.broofa.com +mailto:robert@broofa.com +Copyright (c) 2010 Robert Kieffer +Dual licensed under the MIT and GPL licenses. +*/ + var lt="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),mt=function(){for(var a=Array(36),b=0,c,d=0;d<36;d++)d==8||d==13||d==18||d==23?a[d]="-":d==14?a[d]="4":(b<=2&&(b=33554432+Math.random()*16777216|0),c=b&15,b>>=4,a[d]=lt[d==19?c&3|8:c]);return a.join("")};var nt=function(){var a=a===void 0?mt():a;this.adTagUrl=null;this.l="0";this.C=this.o="unknown";this.vastLoadTimeout=5E3;this.contentTitle=this.contentKeywords=this.contentDuration=this.forceNonLinearFullSlot=this.nonLinearAdSlotHeight=this.nonLinearAdSlotWidth=this.linearAdSlotHeight=this.linearAdSlotWidth=null;this.transactionId=a;this.omidAccessModeRules={};this.j=this.g=this.pageUrl=null}; + nt.prototype.clone=function(){var a=new nt;a.l=this.l;a.o=this.o;a.C=this.C;a.adTagUrl=this.adTagUrl;a.adsResponse=this.adsResponse;a.vastLoadTimeout=this.vastLoadTimeout;a.linearAdSlotWidth=this.linearAdSlotWidth;a.linearAdSlotHeight=this.linearAdSlotHeight;a.nonLinearAdSlotWidth=this.nonLinearAdSlotWidth;a.nonLinearAdSlotHeight=this.nonLinearAdSlotHeight;a.forceNonLinearFullSlot=this.forceNonLinearFullSlot;a.contentDuration=this.contentDuration;a.contentKeywords=this.contentKeywords?this.contentKeywords.slice(): + null;a.contentTitle=this.contentTitle;a.transactionId=this.transactionId;a.omidAccessModeRules=this.omidAccessModeRules;a.pageUrl=this.pageUrl;a.g=this.g;a.j=this.j;return a};function ot(){try{var a=window.top.location.href}catch(b){return 2}return a==null?2:a==window.document.location.href?0:1}function pt(a){var b=Mp(),c=new Set(b);a.split(",").forEach(function(d){d=Number(d);Number.isNaN(d)||d===0||c.add(d)});return Array.from(c).sort().join(",")};var qt={Tl:"SIMID:Creative:clickThru",gm:"SIMID:Creative:fatalError",jm:"SIMID:Creative:getMediaState",LOG:"SIMID:Creative:log",Sm:"SIMID:Creative:reportTracking",Tm:"SIMID:Creative:requestChangeAdDuration",Um:"SIMID:Creative:requestChangeVolume",Vm:"SIMID:Creative:requestExitFullscreen",Wm:"SIMID:Creative:requestFullscreen",REQUEST_PAUSE:"SIMID:Creative:requestPause",REQUEST_PLAY:"SIMID:Creative:requestPlay",Ym:"SIMID:Creative:requestResize",Zm:"SIMID:Creative:requestSkip",REQUEST_STOP:"SIMID:Creative:requestStop", + Xm:"SIMID:Creative:requestNavigation",nm:"SIMID:Creative:handleSkipShown"};function rt(a){var b={};a=t(Object.entries(a));for(var c=a.next();!c.done;c=a.next()){var d=t(c.value);c=d.next().value;d=d.next().value;d!=null&&(b[c]=String(d))}return b};function tt(a,b){return a.fc!==b.fc?a.fc-b.fc:a.jc!==b.jc?a.jc-b.jc:a.oc!==b.oc?a.oc-b.oc:0};var ut=ia(["https://imasdk.googleapis.com/js/sdkloader/car.js"]);Xk(ut);var vt=function(a){this.l=this.g=this.j=this.G=this.platformVersion=this.platform=null;a=ll(a).split(":");if(a!=null&&a.length>=3){if(tb(a[0],"ios"))this.platform="ios",this.platformVersion=a[0].substr(3);else if(tb(a[0],"android"))this.platform="android",this.platformVersion=a[0].substr(7);else if(tb(a[0],"tvos"))this.platform="tvos",this.platformVersion=a[0].substr(4);else{var b=a[0].match(/^([A-Za-z]+)(.+)$/);b!=null&&b.length===3&&(this.platform=b[1],this.platformVersion=b[2])}this.G=a[1];b=a[1].split("."); + if(b.length!==3)b=null;else{var c=t(b),d=c.next().value;b=c.next().value;c=c.next().value;d&&b&&c?(d=Number(d),b=Number(b),c=Number(c),b=Number.isNaN(d)||Number.isNaN(b)||Number.isNaN(c)?null:{fc:d,jc:b,oc:c}):b=null}this.j=b;this.g=a[2];if(this.platform==="ios"||this.platform==="tvos")this.l=a.length>3?a[3]:""}};var wt=function(a){var b={};b=(b.IABUSPrivacy_String="uspString",b.IABTCF_gdprApplies="gdprApplies",b.IABTCF_TCString="tcString",b.IABTCF_AddtlConsent="addtlConsent",b.IABGPP_HDR_GppString="gppString",b.IABGPP_GppSID="gppSid",b);for(var c in b)a[c]!=null&&(a[b[c]]=a[c],delete a[c]);c=a.uspString;this.uspString=typeof c==="string"?c:"";c=a.gdprApplies;this.l=typeof c==="boolean"?c?"1":"0":typeof c!=="number"||c!==1&&c!==0?typeof c!=="string"||c!=="1"&&c!=="0"?"":c==="1"?"1":"0":c===1?"1":"0";c=a.tcString; + this.g=typeof c==="string"?c:"";/^[\.\w_-]*$/.test(this.g)||(this.g=encodeURIComponent(this.g));c=a.addtlConsent;this.j=typeof c==="string"?c:"";c=a.gppString;this.gppString=typeof c==="string"?c:"";a=a.gppSid;this.o=typeof a==="string"?a:""};var xt=function(a){this.g=a},Bt=function(){var a=yt(zt);return At(a)},Ct=function(a,b){return Nj(a.g,b)&&(a=a.g[b],typeof a==="boolean")?a:!1},At=function(a){if(Nj(a.g,"forceExperimentIds")){a=a.g.forceExperimentIds;var b=[],c=0;Array.isArray(a)&&a.forEach(function(d){typeof d==="number"&&(b[c++]=d)});return b}return null};var Dt=function(a,b){this.g=a;this.depth=b},Ft=function(){var a=im(),b=Math.max(a.length-1,0),c=lm(a);a=c.g;var d=c.j,e=c.l,f=[];c=function(h,k){return h==null?k:h};e&&f.push(new Dt([e.url,e.yg?2:0],c(e.depth,1)));d&&d!=e&&f.push(new Dt([d.url,2],0));a.url&&a!=e&&f.push(new Dt([a.url,0],c(a.depth,b)));var g=$b(f,function(h,k){return f.slice(0,f.length-k)});!a.url||(e||d)&&a!=e||(d=am(a.url))&&g.push([new Dt([d,1],c(a.depth,b))]);g.push([]);return $b(g,function(h){return Et(b,h)})}; + function Et(a,b){var c=cc(b,function(e,f){return Math.max(e,f.depth)},-1),d=tc("",c+2);d[0]=a;Xb(b,function(e){return d[e.depth+1]=e.g});return d}function Gt(){var a=a===void 0?Ft():a;return a.map(function(b){return ym(b)})};var Ht=function(a){this.K=G(a)};v(Ht,J);var P=function(){this.H="always";this.W=4;this.D=null;this.j=1;this.C=!0;this.locale="en";this.o=!1;this.T=this.R="";this.F=null;this.ca=this.M=-1;this.g="";this.N=!1;this.J=!0;this.G=mt();this.l={};try{this.ba=Ft()[0]}catch(a){}},It=function(a){a=ll(a);D(a)||(a=a.substring(0,20));return a};l=P.prototype;l.setCompanionBackfill=function(a){this.H=a};l.getCompanionBackfill=function(){return this.H};l.setNumRedirects=function(a){this.W=a};l.getNumRedirects=function(){return this.W}; + l.setPpid=function(a){this.D=a};l.getPpid=function(){return this.D};l.setVpaidAllowed=function(a){typeof a==="boolean"&&(this.j=a?1:0)};l.setVpaidMode=function(a){this.j=a};l.ak=function(){return this.j};l.setAutoPlayAdBreaks=function(a){this.C=a};l.rk=function(){return this.C};l.jl=function(a){this.o=a};l.Zj=function(){return this.o};l.setLocale=function(a){if(a=kt(a))this.locale=a};l.getLocale=function(){return this.locale};l.setPlayerType=function(a){this.R=It(a)};l.getPlayerType=function(){return this.R}; + l.setPlayerVersion=function(a){this.T=It(a)};l.getPlayerVersion=function(){return this.T};var yt=function(a){if(a.F==null){var b={},c=(new Ls(wl().location.href)).g;if(et(c,"tcnfp"))try{b=JSON.parse(c.get("tcnfp"))}catch(d){}a.F=new xt(b)}return a.F};l=P.prototype;l.kl=function(a){this.M=a};l.ll=function(a){this.ca=a};l.setDisableCustomPlaybackForIOS10Plus=function(a){this.N=a};l.getDisableCustomPlaybackForIOS10Plus=function(){return this.N};l.isCookiesEnabled=function(){return this.J}; + l.setCookiesEnabled=function(a){a!=null&&(this.J=a)};l.setSessionId=function(a){this.G=a};l.il=function(){};l.Yj=function(){return!0};l.setFeatureFlags=function(a){this.l=a};l.getFeatureFlags=function(){return this.l};var Jt=function(a){var b=zt;return b.l.hasOwnProperty(a)&&!!b.l[a]};P.prototype.getFeatureFlags=P.prototype.getFeatureFlags;P.prototype.setFeatureFlags=P.prototype.setFeatureFlags;P.prototype.getDisableFlashAds=P.prototype.Yj;P.prototype.setDisableFlashAds=P.prototype.il; + P.prototype.setSessionId=P.prototype.setSessionId;P.prototype.setCookiesEnabled=P.prototype.setCookiesEnabled;P.prototype.isCookiesEnabled=P.prototype.isCookiesEnabled;P.prototype.getDisableCustomPlaybackForIOS10Plus=P.prototype.getDisableCustomPlaybackForIOS10Plus;P.prototype.setDisableCustomPlaybackForIOS10Plus=P.prototype.setDisableCustomPlaybackForIOS10Plus;P.prototype.setStreamCorrelator=P.prototype.ll;P.prototype.setPageCorrelator=P.prototype.kl;P.prototype.getPlayerVersion=P.prototype.getPlayerVersion; + P.prototype.setPlayerVersion=P.prototype.setPlayerVersion;P.prototype.getPlayerType=P.prototype.getPlayerType;P.prototype.setPlayerType=P.prototype.setPlayerType;P.prototype.getLocale=P.prototype.getLocale;P.prototype.setLocale=P.prototype.setLocale;P.prototype.getIsVpaidAdapter=P.prototype.Zj;P.prototype.setIsVpaidAdapter=P.prototype.jl;P.prototype.isAutoPlayAdBreaks=P.prototype.rk;P.prototype.setAutoPlayAdBreaks=P.prototype.setAutoPlayAdBreaks;P.prototype.getVpaidMode=P.prototype.ak; + P.prototype.setVpaidMode=P.prototype.setVpaidMode;P.prototype.setVpaidAllowed=P.prototype.setVpaidAllowed;P.prototype.getPpid=P.prototype.getPpid;P.prototype.setPpid=P.prototype.setPpid;P.prototype.getNumRedirects=P.prototype.getNumRedirects;P.prototype.setNumRedirects=P.prototype.setNumRedirects;P.prototype.getCompanionBackfill=P.prototype.getCompanionBackfill;P.prototype.setCompanionBackfill=P.prototype.setCompanionBackfill;var zt=new P;function Kt(a){a&&typeof a.dispose=="function"&&a.dispose()};var R=function(){this.W=this.W;this.N=this.N};R.prototype.W=!1;R.prototype.Fb=function(){return this.W};R.prototype.dispose=function(){this.W||(this.W=!0,this.Y())};R.prototype[Symbol.dispose]=function(){this.dispose()};var Mt=function(a,b){Lt(a,Va(Kt,b))},Lt=function(a,b){a.W?b():(a.N||(a.N=[]),a.N.push(b))};R.prototype.Y=function(){if(this.N)for(;this.N.length;)this.N.shift()()};var Nt=function(a,b,c,d){R.call(this);this.H=b;this.G=c;this.D=d;this.C=new Map;this.J=0;this.o=new Map;this.F=new Map;this.l=void 0;this.j=a};v(Nt,R);Nt.prototype.Y=function(){delete this.g;this.C.clear();this.o.clear();this.F.clear();this.l&&(Fj(this.j,"message",this.l),delete this.l);delete this.j;delete this.D;R.prototype.Y.call(this)}; + var Ot=function(a){if(a.g)return a.g;a.G&&a.G(a.j)?a.g=a.j:a.g=cm(a.j,a.H);var b;return(b=a.g)!=null?b:null},Qt=function(a,b,c){if(Ot(a))if(a.g===a.j)(b=a.C.get(b))&&b(a.g,c);else{var d=a.o.get(b);if(d&&d.Se){Pt(a);var e=++a.J;a.F.set(e,{Rd:d.Rd,Tj:d.Cg(c),Wk:b==="addEventListener"});a.g.postMessage(d.Se(c,e),"*")}}},Pt=function(a){a.l||(a.l=function(b){try{var c=a.D?a.D(b):void 0;if(c){var d=c.hi,e=a.F.get(d);if(e){e.Wk||a.F.delete(d);var f;(f=e.Rd)==null||f.call(e,e.Tj,c.payload)}}}catch(g){}}, + Ej(a.j,"message",a.l))};var Rt=function(a,b){(0,a.__uspapi)("getUSPData",1,function(c,d){b.callback({Fh:c!=null?c:void 0,Ih:d?void 0:2})})},St={Cg:function(a){return a.callback},Se:function(a,b){a={};return a.__uspapiCall={callId:b,command:"getUSPData",version:1},a},Rd:function(a,b){b=b.__uspapiReturn;var c;a({Fh:(c=b.returnValue)!=null?c:void 0,Ih:b.success?void 0:2})}};function Tt(a){var b={};typeof a.data==="string"?b=JSON.parse(a.data):b=a.data;return{payload:b,hi:b.__uspapiReturn.callId}} + var Ut=function(a,b){b=b===void 0?{}:b;R.call(this);var c;this.timeoutMs=(c=b.timeoutMs)!=null?c:500;this.caller=new Nt(a,"__uspapiLocator",function(d){return typeof d.__uspapi==="function"},Tt);this.caller.C.set("getDataWithCallback",Rt);this.caller.o.set("getDataWithCallback",St)};v(Ut,R);Ut.prototype.Y=function(){this.caller.dispose();R.prototype.Y.call(this)}; + var Vt=function(a,b){var c={};if(Ot(a.caller)){var d=Aj(function(){b(c)});Qt(a.caller,"getDataWithCallback",{callback:function(e){e.Ih||(c=e.Fh);d()}});setTimeout(d,a.timeoutMs)}else b(c)};var Wt=function(a){a.addtlConsent!==void 0&&typeof a.addtlConsent!=="string"&&(a.addtlConsent=void 0);a.gdprApplies!==void 0&&typeof a.gdprApplies!=="boolean"&&(a.gdprApplies=void 0);return a.tcString!==void 0&&typeof a.tcString!=="string"||a.listenerId!==void 0&&typeof a.listenerId!=="number"?2:a.cmpStatus&&a.cmpStatus!=="error"?0:3},Xt=function(a,b){b=b===void 0?{}:b;R.call(this);this.j=a;this.g=null;this.F={};this.D=0;var c;this.o=(c=b.timeoutMs)!=null?c:500;var d;this.C=(d=b.nn)!=null?d:!1;this.l= + null};v(Xt,R);Xt.prototype.Y=function(){this.F={};this.l&&(Fj(this.j,"message",this.l),delete this.l);delete this.F;delete this.j;delete this.g;R.prototype.Y.call(this)}; + var Zt=function(a){return typeof a.j.__tcfapi==="function"||Yt(a)!=null},bu=function(a,b){var c={internalErrorState:0,internalBlockOnErrors:a.C},d=Aj(function(){return b(c)}),e=0;a.o!==-1&&(e=setTimeout(function(){e=0;c.tcString="tcunavailable";c.internalErrorState=1;d()},a.o));$t(a,"addEventListener",function(f){f&&(c=f,c.internalErrorState=Wt(c),c.internalBlockOnErrors=a.C,au(c)?(c.internalErrorState!=0&&(c.tcString="tcunavailable"),$t(a,"removeEventListener",null,c.listenerId),(f=e)&&clearTimeout(f), + d()):(c.cmpStatus==="error"||c.internalErrorState!==0)&&(f=e)&&clearTimeout(f))})}; + Xt.prototype.addEventListener=function(a){var b=this,c={internalBlockOnErrors:this.C},d=Aj(function(){return a(c)}),e=0;this.o!==-1&&(e=setTimeout(function(){c.tcString="tcunavailable";c.internalErrorState=1;d()},this.o));var f=function(g,h){clearTimeout(e);g?(c=g,c.internalErrorState=Wt(c),c.internalBlockOnErrors=b.C,h&&c.internalErrorState===0||(c.tcString="tcunavailable",h||(c.internalErrorState=3))):(c.tcString="tcunavailable",c.internalErrorState=3);a(c)};try{$t(this,"addEventListener",f)}catch(g){c.tcString= + "tcunavailable",c.internalErrorState=3,e&&(clearTimeout(e),e=0),d()}};Xt.prototype.removeEventListener=function(a){a&&a.listenerId&&$t(this,"removeEventListener",null,a.listenerId)}; + var du=function(a,b,c){var d=d===void 0?"755":d;a:{if(a.publisher&&a.publisher.restrictions){var e=a.publisher.restrictions[b];if(e!==void 0){e=e[d===void 0?"755":d];break a}}e=void 0}if(e===0)return!1;var f=c;c===2?(f=0,e===2&&(f=1)):c===3&&(f=1,e===1&&(f=0));a=f===0?a.purpose&&a.vendor?(c=cu(a.vendor.consents,d===void 0?"755":d))&&b==="1"&&a.purposeOneTreatment&&a.publisherCC==="CH"?!0:c&&cu(a.purpose.consents,b):!0:f===1?a.purpose&&a.vendor?cu(a.purpose.legitimateInterests,b)&&cu(a.vendor.legitimateInterests, + d===void 0?"755":d):!0:!0;return a},cu=function(a,b){return!(!a||!a[b])},$t=function(a,b,c,d){c||(c=function(){});if(typeof a.j.__tcfapi==="function")a=a.j.__tcfapi,a(b,2,c,d);else if(Yt(a)){eu(a);var e=++a.D;a.F[e]=c;a.g&&(c={},a.g.postMessage((c.__tcfapiCall={command:b,version:2,callId:e,parameter:d},c),"*"))}else c({},!1)},Yt=function(a){if(a.g)return a.g;a.g=cm(a.j,"__tcfapiLocator");return a.g},eu=function(a){a.l||(a.l=function(b){try{var c=(typeof b.data==="string"?JSON.parse(b.data):b.data).__tcfapiReturn; + a.F[c.callId](c.returnValue,c.success)}catch(d){}},Ej(a.j,"message",a.l))},au=function(a){if(a.gdprApplies===!1)return!0;a.internalErrorState===void 0&&(a.internalErrorState=Wt(a));return a.cmpStatus==="error"||a.internalErrorState!==0?a.internalBlockOnErrors?(Mm({e:String(a.internalErrorState)},"tcfe"),!1):!0:a.cmpStatus!=="loaded"||a.eventStatus!=="tcloaded"&&a.eventStatus!=="useractioncomplete"?!1:!0},fu=function(a){var b=["2","7","9","10"];return a.gdprApplies===!1?!0:b.every(function(c){return du(a, + c,3)})};var gu=function(a,b){b=b.listener;(a=(0,a.__gpp)("addEventListener",b))&&b(a,!0)},hu=function(a,b){(0,a.__gpp)("removeEventListener",b.listener,b.listenerId)},iu={Cg:function(a){return a.listener},Se:function(a,b){a={};return a.__gppCall={callId:b,command:"addEventListener",version:"1.1"},a},Rd:function(a,b){b=b.__gppReturn;a(b.returnValue,b.success)}},ju={Cg:function(a){return a.listener},Se:function(a,b){var c={};return c.__gppCall={callId:b,command:"removeEventListener",version:"1.1",parameter:a.listenerId}, + c},Rd:function(a,b){b=b.__gppReturn;var c=b.returnValue.data;a==null||a(c,b.success)}};function ku(a){var b={};typeof a.data==="string"?b=JSON.parse(a.data):b=a.data;return{payload:b,hi:b.__gppReturn.callId}} + var lu=function(a,b){var c=b===void 0?{}:b;b=c.timeoutMs;c=c.cmpInteractionEventReporter;R.call(this);this.caller=new Nt(a,"__gppLocator",function(d){return typeof d.__gpp==="function"},ku);this.caller.C.set("addEventListener",gu);this.caller.o.set("addEventListener",iu);this.caller.C.set("removeEventListener",hu);this.caller.o.set("removeEventListener",ju);this.timeoutMs=b!=null?b:500;this.cmpInteractionEventReporter=c};v(lu,R);lu.prototype.Y=function(){this.caller.dispose();R.prototype.Y.call(this)}; + lu.prototype.addEventListener=function(a){var b=this,c=Aj(function(){a(mu,!0)}),d=this.timeoutMs===-1?void 0:setTimeout(function(){c()},this.timeoutMs);Qt(this.caller,"addEventListener",{listener:function(e,f){clearTimeout(d);try{var g;if(((g=e.pingData)==null?void 0:g.gppVersion)===void 0||e.pingData.gppVersion==="1"||e.pingData.gppVersion==="1.0"){b.removeEventListener(e.listenerId);var h={eventName:"signalStatus",data:"ready",pingData:{internalErrorState:1,gppString:"GPP_ERROR_STRING_IS_DEPRECATED_SPEC", + applicableSections:[-1]}}}else Array.isArray(e.pingData.applicableSections)?h=e:(b.removeEventListener(e.listenerId),h={eventName:"signalStatus",data:"ready",pingData:{internalErrorState:2,gppString:"GPP_ERROR_STRING_EXPECTED_APPLICATION_SECTION_ARRAY",applicableSections:[-1]}});a(h,f);var k;(k=b.cmpInteractionEventReporter)==null||k.g()}catch(m){if(e==null?0:e.listenerId)try{b.removeEventListener(e.listenerId)}catch(n){a(nu,!0);return}a(ou,!0)}}})}; + lu.prototype.removeEventListener=function(a){Qt(this.caller,"removeEventListener",{listener:function(){},listenerId:a})}; + var ou={eventName:"signalStatus",data:"ready",pingData:{internalErrorState:2,gppString:"GPP_ERROR_STRING_UNAVAILABLE",applicableSections:[-1]},listenerId:-1},mu={eventName:"signalStatus",data:"ready",pingData:{gppString:"GPP_ERROR_STRING_LISTENER_REGISTRATION_TIMEOUT",internalErrorState:2,applicableSections:[-1]},listenerId:-1},nu={eventName:"signalStatus",data:"ready",pingData:{gppString:"GPP_ERROR_STRING_REMOVE_EVENT_LISTENER_ERROR",internalErrorState:2,applicableSections:[-1]},listenerId:-1};var pu=function(a){this.K=G(a)};v(pu,J);function qu(a){return a==="1"||a==="true"}function ru(a){a.forEach(function(b,c,d){b===""&&d.delete(c)})}var tu=function(a,b,c,d){b=b===void 0?{}:b;c=c===void 0?{}:c;this.l=d===void 0?!1:d;this.j=a===void 0?!1:a;this.adTagParameters=rt(b);this.g=new wt(c)};tu.prototype.kd=function(a){this.adTagParameters=rt(a)}; + var wu=function(a){var b=uu(a);if(b==="tcunavailable")return null;var c;a=vu(a);var d=us(b);if(d&&b){var e=H(d,Lr,1);d=H(d,Fr,2)||new Fr;var f=bh(e,9),g=bh(e,4),h=bh(e,5),k=ah(e,10),m=ah(e,11),n=fh(e,16),p=ah(e,15),q={consents:vs(rg(e,13,Xe),gs),legitimateInterests:vs(rg(e,14,Xe),gs)},r={consents:vs(rg(e,17,Ze)),legitimateInterests:vs(rg(e,18,Ze))},w=vs(rg(e,12,Xe),hs),A=Vg(e,Er,19,qg());e={};A=t(A);for(var C=A.next();!C.done;C=A.next()){C=C.value;var Q=I(C,1);e[Q]=e[Q]||{};var F=rg(C,3,Ze);F=t(F); + for(var fa=F.next();!fa.done;fa=F.next())e[Q][fa.value]=I(C,2)}b={tcString:b,tcfPolicyVersion:f,gdprApplies:a,cmpId:g,cmpVersion:h,isServiceSpecific:k,useNonStandardStacks:m,publisherCC:n,purposeOneTreatment:p,purpose:q,vendor:r,specialFeatureOptins:w,publisher:{restrictions:e,consents:vs(rg(d,1,Xe),gs),legitimateInterests:vs(rg(d,2,Xe),gs),customPurposes:{consents:vs(rg(d,3,Ze)),legitimateInterests:vs(rg(d,4,Ze))}}}}else b=null;return(c=b)!=null?c:null},xu=function(a,b){if(a.adTagParameters.hasOwnProperty(b))return a.adTagParameters[b]}, + yu=function(a){var b=xu(a,"us_privacy");return a.g.uspString||b||""},zu=function(a){var b=xu(a,"gdpr");a=a.g.l;return a==="1"||a==="0"?a:b!==void 0?b:""},uu=function(a){var b=a.g.g;a=xu(a,"gdpr_consent");return b&&b!=="tcunavailable"?b:b==="tcunavailable"?a||b:a||""},Mu=function(a){var b;if(!(b=Au(a))){if(vu(a)){a=wu(a);if(b=!!a){var c=c===void 0?{}:c;b=au(a)?a.gdprApplies===!1?!0:a.tcString==="tcunavailable"?!c.idpcApplies:(c.idpcApplies||a.gdprApplies!==void 0||c.wn)&&(c.idpcApplies||typeof a.tcString=== + "string"&&a.tcString.length)?du(a,"1",0):!0:!1}c=b}else c=!0;b=!c}return b},Au=function(a){a=xu(a,"ltd");return qu(a)},vu=function(a){var b=zu(a).toLowerCase();b=b==="true"||b==="1";return cr(As)?b||a.l:b},Nu=function(a){var b=new pu;var c=!Mu(a);c=og(b,5,Re(c));vu(a)?(a=wu(a),a=!!a&&!fu(a)):a=!1;og(c,8,Re(a));return b};var Ou=function(a){this.K=G(a)};v(Ou,J);Ou.prototype.getVersion=function(){return fh(this,2)};var Pu=function(a){this.K=G(a)};v(Pu,J);var Qu=function(a,b){return lh(a,2,b)},Ru=function(a,b){return lh(a,3,b)},Su=function(a,b){return lh(a,4,b)},Tu=function(a,b){return lh(a,5,b)},Uu=function(a,b){return lh(a,9,b)},Vu=function(a,b){return Yg(a,10,b)},Wu=function(a,b){return og(a,11,Re(b))},Xu=function(a,b){return lh(a,1,b)},Yu=function(a,b){return og(a,7,Re(b))};var Zu="platform platformVersion architecture model uaFullVersion bitness fullVersionList wow64".split(" ");function $u(a){var b;return(b=a.google_tag_data)!=null?b:a.google_tag_data={}}function av(a){var b,c;return typeof((b=a.navigator)==null?void 0:(c=b.userAgentData)==null?void 0:c.getHighEntropyValues)==="function"} + function bv(){var a=window;if(!av(a))return null;var b=$u(a);if(b.uach_promise)return b.uach_promise;a=a.navigator.userAgentData.getHighEntropyValues(Zu).then(function(c){b.uach!=null||(b.uach=c);return c});return b.uach_promise=a} + function cv(a){var b;return Wu(Vu(Tu(Qu(Xu(Su(Yu(Uu(Ru(new Pu,a.architecture||""),a.bitness||""),a.mobile||!1),a.model||""),a.platform||""),a.platformVersion||""),a.uaFullVersion||""),((b=a.fullVersionList)==null?void 0:b.map(function(c){var d=new Ou;d=lh(d,1,c.brand);return lh(d,2,c.version)}))||[]),a.wow64||!1)}function dv(){var a,b;return(b=(a=bv())==null?void 0:a.then(function(c){return cv(c)}))!=null?b:null};var fv=function(){this.Pa=this.ra=this.appName=null;this.g=new tu;this.el=null;this.W=!1;this.secureSignals=this.Ll=this.M=this.D=this.l=this.F=null;this.ql=!1;this.xl=mt();this.deviceId="";this.Kl=this.Fl=this.N=null;this.G="";this.R=-1;this.H=this.T="";this.Si=this.ba=this.ca=this.Ri=this.o=this.Nl=!1;this.C=null;this.xd=!1;this.Fe=this.J=this.Jc=this.Yi=this.Wi=this.ye=this.fa=this.Gd=this.j=null;this.bj=!1;this.Th=this.Rh=null;this.Uh=!1;this.dj=0;this.yb=!1;this.Ta=null;this.Wh=new Map;this.referrer= + this.Zk=null;this.bi=!1;this.gj=this.fj=null;this.rj=this.mj=this.lj=this.kj=this.hj=this.ci=!1;this.Rc=this.la=this.qj=null;this.tj=this.fi=this.sj=!1;this.vj=null;this.na="";this.Cd=new sn;this.al=null;this.Ml=new pn;ev(this)},gv=function(a){var b=a.J,c=a.appName,d=zt,e="h.3.659.0";b!=null?(e+="/n."+b,c!=null&&(e+="/"+c)):d.o&&(e+="/vpaid_adapter");a.ba&&(e+="/ima_eap");return e},iv=function(){var a={},b=!0;a=a===void 0?{}:a;b=b===void 0?!1:b;var c=fv.getInstance(),d=a.identifierInfo||null,e=a.isTv|| + !1,f=a.isAndroidTvAdsFramework||!1,g=a.marketAppInfo||null,h=a.env||null,k=null;h&&(k=new vt(h));h=a.eoidCookieEnabled;var m=a.eoidCookieValue,n=a.gfpCookieValue,p=a.gfpCookieV2Id||null,q=a.gfpCookieV2OptOut||null;var r=a.espSignals||null;var w=a.companionSlots,A=a.network,C=a.settings||{},Q=a.topicsEnabled,F=a.videoEnvironment||{},fa=a.pvsid||0,Xa=a.clientBidsProto||null;a.quicksilverSignals&&(c.Ml=qn(a.quicksilverSignals));fa>0&&(c.dj=fa);C.ppid!=null&&(c.Zk=C.ppid);F.contentMediaUrl!=null&&(c.el= + F.contentMediaUrl);F.customClickTrackingProvided!=null&&(c.ql=F.customClickTrackingProvided);c.W=h||!1;c.F=m||null;n!=null&&n?c.l=n:c.l=null;c.D=p;c.M=q;c.secureSignals=r;c.al=Xa;Q!==void 0&&(c.rj=Q);F.iframeState!=null&&(c.R=F.iframeState);F.isAmp!=null&&(c.Nl=F.isAmp);F.topAccessiblePageUrl!=null&&(c.j=F.topAccessiblePageUrl);F.referrer!=null&&(c.referrer=F.referrer);F.topOrigin!=null&&(c.qj=F.topOrigin);F.domLoadTime!=null&&(c.Fl=F.domLoadTime);F.downloadBandwidthKbps!=null&&(c.Kl=F.downloadBandwidthKbps); + F.sdkImplLoadTime!=null&&(c.fj=F.sdkImplLoadTime);F.imaHostingDomain!=null&&(c.T=F.imaHostingDomain);F.imaHostingPageUrl!=null&&(c.H=F.imaHostingPageUrl);c.sj=F.usesCustomVideoPlayback!=null?F.usesCustomVideoPlayback:a.usesCustomVideoPlayback||!1;F.usesProxyMediaElement!=null&&(c.fi=F.usesProxyMediaElement);F.rendersUiNatively!=null&&(c.bi=F.rendersUiNatively);a.sdkOwnedRendering!=null&&(c.gj=a.sdkOwnedRendering);c.mj=F.supportsResizing!=null?F.supportsResizing:a.supportsResizing||!1;c.ca=a.isBrowserCookieEnabled|| + !1;c.ci=a.supportsIconClickFallback||!1;c.hj=hv(a,k);c.bj=a.omidAdSessionsOnStartedOnly||!1;c.lj=a.supportsOmidJsManagedAppSessions||!1;F.usesInlinePlayback!=null&&(c.tj=F.usesInlinePlayback);F.videoAdKey!=null&&(c.vj=F.videoAdKey);w&&(c.Wi=w);A&&(c.Yi=A);c.kj=a.supportsNativeNetworking||!1;d?(c.ra=d.appSetId||null,c.Pa=d.appSetIdScope||null,c.deviceId=d.deviceId,c.G=d.idType,c.C=d.isLimitedAdTracking,c.Rh=d.perAppIdentifier,c.Th=d.perAppIdentifierV2,c.Uh=d.perAppIdentifierV2UserEnabled||!1,c.yb= + !!d.perAppIdentifierUnificationVersion,c.Ta=d.idfv,c.la=d.trackingAuthorizationStatus||null,c.na=d.adsIdentityToken):b&&(c.deviceId=a.rdid||"",c.G=a.idType||"",d=a.isLat)&&(c.C=String(d)==="1");c.ye=a.msParameter||"";g&&(c.fa=g.appVersion||"",c.Gd=g.packageName||"");k&&(c.appName=k.g,c.N=k.l,g=k.platform,c.j="//mbapp"+encodeURIComponent(String((g==="ios"||g==="tvos"?1:g==="android"?2:0)+"-"+k.g))+".com",c.Jc=k.platform,c.J=k.platform+"."+k.G,c.Fe=k.j);a.gmaSignals&&(c.Ll=a.gmaSignals);a.platformSignals&& + (c.Wh=new Map(Object.entries(a.platformSignals)));c.xd=b;c.o=e;c.Ri=f;c.ba=a.isEapLoader||!1;c.Si=a.isFledgeEligible||!1;c.Cd=new sn;return c},hv=function(a,b){if(a.supportsExternalNavigation!=null)return a.supportsExternalNavigation;a=b==null?void 0:b.j;if(!a)return!1;switch(b==null?void 0:b.platform){case "android":return tt({fc:3,jc:16,oc:2},a)<=0;case "ios":return tt({fc:3,jc:11,oc:1},a)<=0;default:return!1}},ev=function(a){var b=dv();b&&b.then(function(c){a.Rc=c==null?null:Nc(qb(Kh(c)),3)})}; + fv.getInstance=function(){return L(fv)};var jv=Math.floor(Math.random()*4503599627370496);var kv=function(){if(!z.addEventListener||!Object.defineProperty)return!1;var a=!1,b=Object.defineProperty({},"passive",{get:function(){a=!0}});try{var c=function(){};z.addEventListener("test",c,b);z.removeEventListener("test",c,b)}catch(d){}return a}();var lv=function(){var a=yt(zt);return a&&Ct(a,"disableOnScreenDetection")?!1:!Ds()},mv=function(){var a;if(!(a=Es()||Eb(Jb(),"CrKey")&&Eb(Jb(),"SmartSpeaker"))){var b,c;a=!!((b=window)==null?0:(c=b.chrome)==null?0:c.webview)}return a||fv.getInstance().fi?!1:!0},ov=function(a){var b=fv.getInstance(),c=b.Fe;switch(b.Jc){case "android":return b.o?b.ci:!!c&&tt({fc:3,jc:5,oc:2},c)<=0;case "ios":return!!c&&tt({fc:3,jc:4,oc:1},c)<=0;case "tvos":return b.bi;default:return a&&!nv()}},nv=function(){return pv()=== + 1||pv()===2},pv=function(){switch(fv.getInstance(),0){case 1:return 3;case 2:return 1}return fv.getInstance().o||(fv.getInstance(),!1)||fv.getInstance().Jc==="tvos"?1:Es()?2:0};var qv=function(){this.blockSize=-1};var uv=function(a,b){this.blockSize=-1;this.blockSize=64;this.o=z.Uint8Array?new Uint8Array(this.blockSize):Array(this.blockSize);this.l=this.j=0;this.g=[];this.F=a;this.C=b;this.D=z.Int32Array?new Int32Array(64):Array(64);rv===void 0&&(z.Int32Array?rv=new Int32Array(tv):rv=tv);this.reset()},rv;Ya(uv,qv);var vv=[].concat(128,tc(0,63));uv.prototype.reset=function(){this.l=this.j=0;this.g=z.Int32Array?new Int32Array(this.C):pc(this.C)}; + var wv=function(a){for(var b=a.o,c=a.D,d=0,e=0;e>>7|e<<25)^(e>>>18|e<<14)^e>>>3)|0,g=(c[b-7]|0)+((d>>>17|d<<15)^(d>>>19|d<<13)^d>>>10)|0;c[b]=f+g|0}d=a.g[0]|0;e=a.g[1]|0;var h=a.g[2]|0,k=a.g[3]|0,m=a.g[4]|0,n=a.g[5]|0,p=a.g[6]|0;f=a.g[7]|0;for(b=0;b<64;b++){var q=((d>>>2|d<<30)^(d>>>13|d<<19)^(d>>>22|d<<10))+(d&e^d&h^e&h)|0;g=m&n^~m&p;f=f+((m>>>6|m<<26)^(m>>>11|m<<21)^(m>>> + 25|m<<7))|0;g=g+(rv[b]|0)|0;g=f+(g+(c[b]|0)|0)|0;f=p;p=n;n=m;m=k+g|0;k=h;h=e;e=d;d=g+q|0}a.g[0]=a.g[0]+d|0;a.g[1]=a.g[1]+e|0;a.g[2]=a.g[2]+h|0;a.g[3]=a.g[3]+k|0;a.g[4]=a.g[4]+m|0;a.g[5]=a.g[5]+n|0;a.g[6]=a.g[6]+p|0;a.g[7]=a.g[7]+f|0},xv=function(a,b,c){c===void 0&&(c=b.length);var d=0,e=a.j;if(typeof b==="string")for(;d=f&&f==(f|0)))throw Error("message must be a byte array"); + a.o[e++]=f;e==a.blockSize&&(wv(a),e=0)}else throw Error("message must be string or array");a.j=e;a.l+=c},yv=function(a){var b=[],c=a.l*8;a.j<56?xv(a,vv,56-a.j):xv(a,vv,a.blockSize-(a.j-56));for(var d=63;d>=56;d--)a.o[d]=c&255,c/=256;wv(a);for(d=c=0;d=0;e-=8)b[c++]=a.g[d]>>e&255;return b},tv=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401, + 4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];var Av=function(){uv.call(this,8,zv)};Ya(Av,uv);var zv=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];var Bv=function(a,b){return a.indexOf(b)==0?a.substr(b.length):null};function Cv(){if(Ds())return window.location.href;var a=lm(),b=a.j,c=a.g;a=a.l;var d=null;if(a)try{var e=at(a.url),f=e.l,g=Bv(f,"/v/");g||(g=Bv(f,"/a/"));if(!g)throw Error("Can not extract standalone amp url.");var h=Bv("/"+g,"/s/"),k=e.g.clone();k.remove("amp_js_v");k.remove("amp_lite");var m=h?at("https://"+h):at("http://"+g);Ps(m,k);d=m.toString()}catch(n){d=null}return d?d:b&&b.url?b.url:c&&c.url?c.url:""} + function Dv(){var a=wl().location.ancestorOrigins;return a?a.length>0?[].concat(u(a)).join(","):"":""};var Ev=function(){var a=this;this.promise=new Promise(function(b,c){a.resolve=b;a.reject=c})};var Fv=function(){this.l=function(){return new XMLHttpRequest};this.g=new Ev;this.o=this.j=this.config=null};Fv.prototype.getConfig=function(){var a=this;return y(function(b){return b.g==1?x(b,a.g.promise,2):b.return(a.config)})}; + var Jv=function(){var a=Gv,b=Hv,c=Date.now(),d=a.l();d.timeout=6E4;d.open("GET",b,!0);d.onload=function(){a.o=Date.now()-c;if(d.status<200||d.status>=300)Iv(a,Error("status: "+d.status));else{var e=d.responseText,f=null;try{f=Dr(e)}catch(g){Iv(a,Error("per-pub config could not be deserialized"));return}a.g.resolve();a.config=f}};d.onerror=function(){Iv(a,Error("status: "+d.status))};d.send()},Iv=function(a,b){a.j=b;a.g.resolve()},Kv=new Fv; + function Lv(){var a=Mv;var b=a.appName;var c=a.Jc;a=a.pageUrl;var d=new URL("https://securepubads.g.doubleclick.net/pagead/ima_ppub_config");return b&&c?(c==="android"?d.searchParams.set("msid",b):c==="ios"&&d.searchParams.set("an",b),d.toString()):a?(d.searchParams.set("ippd",a),d.toString()):null};if(cr(ys)){var Gv=Kv,Mv={pageUrl:Cv()};try{var Hv=Lv();if(!Hv)throw Error("Could not generate config URL");Jv()}catch(a){Iv(Gv,a)}};var Nv=function(){this.da=0;this.g=!1;this.j=-1;this.Hc=!1;this.Na=0};Nv.prototype.isVisible=function(){return this.Hc?this.da>=.3:this.da>=.5};var Ov={Wl:0,dm:1},Pv={668123728:0,668123729:1},Qv={44731964:0,44731965:1},Rv={NONE:0,Fm:1,hm:2},Sv={480596784:0,480596785:1,21063355:2};var Tv=function(){this.g=null;this.o=!1;this.l=null},Uv=function(a){a.o=!0;return a},Vv=function(a,b){a.l&&Xb(b,function(c){c=a.l[c];c!==void 0&&a.j(c)})};Tv.prototype.getValue=function(){return this.g};var Wv=function(a){Tv.call(this);this.C=a};v(Wv,Tv);Wv.prototype.j=function(a){this.g===null&&Oj(this.C,a)&&(this.g=a)};var Xv=function(){Tv.call(this)};v(Xv,Tv);Xv.prototype.j=function(a){this.g===null&&typeof a==="number"&&(this.g=a)};var Yv=function(){Tv.call(this)};v(Yv,Tv); + Yv.prototype.j=function(a){this.g===null&&typeof a==="string"&&(this.g=a)};var Zv=function(){this.g={};this.l=!0;this.j={}};Zv.prototype.reset=function(){this.g={};this.l=!0;this.j={}}; + var $v=function(a,b,c){a.g[b]||(a.g[b]=new Wv(c));return a.g[b]},aw=function(a){a.g.queryid||(a.g.queryid=new Yv)},bw=function(a,b,c){(a=a.g[b])&&a.j(c)},cw=function(a,b){if(Nj(a.j,b))return a.j[b];if(a=a.g[b])return a.getValue()},dw=function(a){var b={},c=Hj(a.g,function(d){return d.o});Gj(c,function(d,e){d=a.j[e]!==void 0?String(a.j[e]):d.o&&d.g!==null?String(d.g):"";d.length>0&&(b[e]=d)},a);return b},ew=function(a){a=dw(a);var b=[];Gj(a,function(c,d){d in Object.prototype||typeof c!="undefined"&& + b.push([d,":",c].join(""))});return b},fw=function(a){var b=S().V;b.l&&Xb(Kj(b.g),function(c){return Vv(c,a)})};var gw=function(a){$v(a,"od",tr);Uv($v(a,"opac",Ov));Uv($v(a,"sbeos",Ov));Uv($v(a,"prf",Ov));Uv($v(a,"mwt",Ov));$v(a,"iogeo",Ov)};var Rn=document,T=window;var hw=!xc&&!Rb();var iw=function(){this.g=this.hc=null};var jw=function(a,b){this.j=(a===void 0?0:a)||0;this.g=(b===void 0?"":b)||""};jw.prototype.ed=function(){return!!this.j||!!this.g};jw.prototype.toString=function(){return this.j+(this.g?"-":"")+this.g};jw.prototype.matches=function(a){return this.g||a.g?this.g==a.g:this.j||a.j?this.j==a.j:!1};var kw=function(){};kw.prototype.now=function(){return 0};kw.prototype.j=function(){return 0};kw.prototype.l=function(){return 0};kw.prototype.g=function(){return 0};var mw=function(){if(!lw())throw Error();};v(mw,kw);var lw=function(){return!(!T||!T.performance)};mw.prototype.now=function(){return lw()&&T.performance.now?T.performance.now():kw.prototype.now.call(this)};mw.prototype.j=function(){return lw()&&T.performance.memory?T.performance.memory.totalJSHeapSize||0:kw.prototype.j.call(this)};mw.prototype.l=function(){return lw()&&T.performance.memory?T.performance.memory.usedJSHeapSize||0:kw.prototype.l.call(this)}; + mw.prototype.g=function(){return lw()&&T.performance.memory?T.performance.memory.jsHeapSizeLimit||0:kw.prototype.g.call(this)};var nw=function(){};nw.prototype.isVisible=function(){return Sn()===1};var ow=function(){return Sn()===0};var pw=function(){this.j=new nw;this.g=lw()?new mw:new kw},rw=function(){qw();var a=T.document;return!!(a&&a.body&&a.body.getBoundingClientRect&&typeof T.setInterval==="function"&&typeof T.clearInterval==="function"&&typeof T.setTimeout==="function"&&typeof T.clearTimeout==="function")};pw.prototype.setTimeout=function(a,b){return T.setTimeout(a,b)};pw.prototype.clearTimeout=function(a){T.clearTimeout(a)};var tw=function(){qw();return Gt()};var uw=function(){},qw=function(){var a=L(uw);if(!a.g){if(!T)throw Error("Context has not been set and window is undefined.");a.g=L(pw)}return a.g};var vw=function(a){this.K=G(a)};v(vw,J);vw.prototype.g=oj([0,Xi,$i,-2,cj]);var ww=function(a){this.l=a;this.g=-1;this.j=this.o=0},xw=function(a,b){return function(){var c=Ea.apply(0,arguments);if(a.g>-1)return b.apply(null,u(c));try{return a.g=a.l.g.now(),b.apply(null,u(c))}finally{a.o+=a.l.g.now()-a.g,a.g=-1,a.j+=1}}};var yw=function(a,b){this.j=a;this.l=b;this.g=new ww(a)};var zw=function(){this.g={}},Aw=function(a,b){a=a.g[b.key];if(b.valueType==="proto"){try{var c=JSON.parse(a);if(Array.isArray(c))return c}catch(d){}return b.defaultValue}return typeof a===typeof b.defaultValue?a:b.defaultValue};var Bw={Qm:1,kn:2,Hm:3};var Cw=function(){this.o=void 0;this.G=0;this.F=new jw(0,"");this.j=0;this.D=-1;this.V=new Zv;Uv($v(this.V,"mv",Rv)).l=Sv===void 0?null:Sv;$v(this.V,"omid",Ov);Uv($v(this.V,"epoh",Ov));Uv($v(this.V,"epph",Ov));Uv($v(this.V,"umt",Ov)).l=Pv===void 0?null:Pv;Uv($v(this.V,"phel",Ov));Uv($v(this.V,"phell",Ov));Uv($v(this.V,"oseid",Bw));var a=this.V;a.g.sloi||(a.g.sloi=new Xv);Uv(a.g.sloi);$v(this.V,"mm",vr);Uv($v(this.V,"ovms",ur));Uv($v(this.V,"xdi",Ov));Uv($v(this.V,"amp",Ov));Uv($v(this.V,"prf",Ov)); + Uv($v(this.V,"gtx",Ov));Uv($v(this.V,"mvp_lv",Ov));Uv($v(this.V,"ssmol",Ov)).l=Qv===void 0?null:Qv;Uv($v(this.V,"fmd",Ov));$v(this.V,"gen204simple",Ov);this.g=new yw(qw(),this.V);this.C=this.l=!1;this.flags=new zw};Cw.prototype.rf=function(a){if(typeof a==="string"&&a.length!=0){var b=this.V;if(b.l){a=a.split("&");for(var c=a.length-1;c>=0;c--){var d=a[c].split("="),e=decodeURIComponent(d[0]);d.length>1?(d=decodeURIComponent(d[1]),d=/^[0-9]+$/g.exec(d)?parseInt(d,10):d):d=1;(e=b.g[e])&&e.j(d)}}}}; + Cw.prototype.sf=function(a){if(typeof a==="string"&&a.length!=0){var b=this.flags;try{var c=JSON.parse(a)[0];a="";for(var d=0;d=0?Vw()-Rw:-1,c=Uw?Vw()-Qw:-1,d=Tw>=0?Vw()-Tw:-1;if(a==947190542)return 100;if(a==79463069)return 200;a=[2E3,4E3];var e=[250,500,1E3];Ow(637,Error(),.001);var f=b;c!=-1&&c1500&&d<4E3?500:g};var Xw=function(a,b,c){var d=new zn(0,0,0,0);this.time=a;this.volume=null;this.l=b;this.g=d;this.j=c};Xw.prototype.Vb=function(a,b){return!!a&&(!(b===void 0?0:b)||this.volume==a.volume)&&this.l==a.l&&An(this.g,a.g)&&!0};var Yw=function(a,b,c,d,e,f,g,h){this.l=a;this.G=b;this.j=c;this.C=d;this.g=e;this.o=f;this.D=g;this.F=h};Yw.prototype.getTimestamp=function(){return this.D};Yw.prototype.Vb=function(a,b){return this.l.Vb(a.l,b===void 0?!1:b)&&this.G==a.G&&An(this.j,a.j)&&An(this.C,a.C)&&this.g==a.g&&this.o==a.o&&this.D==a.D&&this.F==a.F};var Jj={Ol:"addEventListener",im:"getMaxSize",km:"getScreenSize",lm:"getState",mm:"getVersion",Rm:"removeEventListener",Gm:"isViewable"},Zw=function(a){var b=a!==a.top,c=a.top===gm(a),d=-1,e=0;if(b&&c&&a.top.mraid){d=3;var f=a.top.mraid}else d=(f=a.mraid)?b?c?2:1:0:-1;f&&(f.IS_GMA_SDK||(e=2),Ij(function(g){return typeof f[g]==="function"})||(e=1));return{bb:f,re:e,nl:d}};var $w=function(){var a=window.document;return a&&typeof a.elementFromPoint==="function"};function ax(a,b,c){try{a&&(b=b.top);var d=b;a&&d!==null&&d!=d.top&&(d=d.top);try{var e=(c===void 0?0:c)?(new al(d.innerWidth,d.innerHeight)).round():ul(d||window).round()}catch(n){e=new al(-12245933,-12245933)}a=e;var f=a.height,g=a.width;if(g===-12245933)return new zn(g,g,g,g);var h=vl(rl(b.document).g),k=h.x,m=h.y;return new zn(m,k+g,m+f,k)}catch(n){return new zn(-12245933,-12245933,-12245933,-12245933)}};var cx=function(a,b){if(typeof b==="string")(b=bx(a,b))&&(a.style[b]=void 0);else for(var c in b){var d=a,e=b[c],f=bx(d,c);f&&(d.style[f]=e)}},dx={},bx=function(a,b){var c=dx[b];if(!c){var d=ml(b);c=d;a.style[d]===void 0&&(d=(zc?"Webkit":yc?"Moz":xc?"ms":null)+ol(d),a.style[d]!==void 0&&(c=d));dx[b]=c}return c},ex=function(a){try{return a.getBoundingClientRect()}catch(b){return{left:0,top:0,right:0,bottom:0}}},fx=function(a,b){var c=new $k(0,0),d=wl(ql(a));if(!wc(d,"parent"))return c;do{if(d==b){var e= + ql(a);var f=new $k(0,0);if(a!=(e?ql(e):document).documentElement){var g=ex(a);e=vl(rl(e).g);f.x=g.left+e.x;f.y=g.top+e.y}}else f=ex(a),f=new $k(f.left,f.top);c.x+=f.x;c.y+=f.y}while(d&&d!=b&&d!=d.parent&&(a=d.frameElement)&&(d=d.parent));return c},gx=function(){var a="100%";typeof a=="number"&&(a=Math.round(a)+"px");return a},ix=function(a){var b=hx;a:{var c=ql(a);if(c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedStyle(a,null))){c=c.display||c.getPropertyValue("display")|| + "";break a}c=""}c||(c=a.currentStyle?a.currentStyle.display:null);if((c||a.style&&a.style.display)!="none")return b(a);c=a.style;var d=c.display,e=c.visibility,f=c.position;c.visibility="hidden";c.position="absolute";c.display="inline";a=b(a);c.display=d;c.position=f;c.visibility=e;return a},hx=function(a){var b=a.offsetWidth,c=a.offsetHeight,d=zc&&!b&&!c;return(b===void 0||d)&&a.getBoundingClientRect?(a=ex(a),new al(a.right-a.left,a.bottom-a.top)):new al(b,c)};var jx=function(a,b){b=Math.pow(10,b);return Math.floor(a*b)/b},kx=function(a){return new zn(a.top,a.right,a.bottom,a.left)},lx=function(a){var b=a.top||0,c=a.left||0;return new zn(b,c+(a.width||0),b+(a.height||0),c)},mx=function(a){return a!=null&&a>=0&&a<=1};var ox=function(){this.H=!1;this.l=!Tl(T.top);this.D=Kl()||Ll();var a=im();a=a.length>0&&a[a.length-1]!=null&&a[a.length-1].url!=null?((a=a[a.length-1].url.match(Ml)[3]||null)?decodeURI(a):a)||"":"";this.domain=a;this.g=new zn(0,0,0,0);this.C=new al(0,0);this.o=new al(0,0);this.G=new zn(0,0,0,0);this.frameOffset=new $k(0,0);this.N=!1;this.F=0;this.J=!1;this.j=!(!T||!Zw(T).bb);nx(this)},px=function(a,b){b&&b.screen&&(a.C=new al(b.screen.width,b.screen.height))},qx=function(a,b){a:{var c=a.g?new al(a.g.getWidth(), + a.g.getHeight()):new al(0,0);b=b===void 0?T:b;b!==null&&b!=b.top&&(b=b.top);var d=0,e=0;try{var f=b.document,g=f.body,h=f.documentElement;if(f.compatMode=="CSS1Compat"&&h.scrollHeight)d=h.scrollHeight!=c.height?h.scrollHeight:h.offsetHeight,e=h.scrollWidth!=c.width?h.scrollWidth:h.offsetWidth;else{var k=h.scrollHeight,m=h.scrollWidth,n=h.offsetHeight,p=h.offsetWidth;h.clientHeight!=n&&(k=g.scrollHeight,m=g.scrollWidth,n=g.offsetHeight,p=g.offsetWidth);k>c.height?k>n?(d=k,e=m):(d=n,e=p):k0||a.J)return!0;a=qw().j.isVisible();var b=ow();return a||b},rx=function(){return L(ox)};var tx=function(a){this.l=a;this.j=0;this.g=null};tx.prototype.cancel=function(){qw().clearTimeout(this.g);this.g=null};var ux=function(a){var b=qw(),c=S().g.g;a.g=b.setTimeout(xw(c,Nw(143,function(){a.j++;a.l.sample()})),Ww())};var vx=function(a,b,c){this.l=a;this.yb=c===void 0?"na":c;this.D=[];this.C=!1;this.o=new Xw(-1,!0,this);this.g=this;this.J=b;this.M=this.N=!1;this.la="uk";this.ca=!1;this.F=!0};vx.prototype.W=function(){return!1};vx.prototype.initialize=function(){return this.C=!0};vx.prototype.Xc=function(){return this.g.la};vx.prototype.Jd=function(){return this.g.M};var xx=function(a,b,c){if(!a.M||(c===void 0?0:c))a.M=!0,a.la=b,a.J=0,a.g!=a||wx(a)};vx.prototype.getName=function(){return this.g.yb}; + vx.prototype.Xb=function(){return this.g.na()};vx.prototype.na=function(){return{}};vx.prototype.Bb=function(){return this.g.J};var yx=function(a,b){ic(a.D,b)||(a.D.push(b),b.bd(a.g),b.Yb(a.o),b.wb()&&(a.N=!0))};vx.prototype.ba=function(){var a=rx();a.g=ax(!0,this.l,a.D)};vx.prototype.fa=function(){px(rx(),this.l)};vx.prototype.ra=function(){return this.o.g};var zx=function(a){a=a.g;a.fa();a.ba();var b=rx();b.G=ax(!1,a.l,b.D);qx(rx(),a.l);a.o.g=a.ra()};vx.prototype.sample=function(){}; + var Ax=function(a,b){a.g!=a?Ax(a.g,b):a.F!==b&&(a.F=b,wx(a))};vx.prototype.isActive=function(){return this.g.F};var Bx=function(a){a.N=a.D.length?dc(a.D,function(b){return b.wb()}):!1},Cx=function(a){var b=pc(a.D);Xb(b,function(c){c.Yb(a.o)})},wx=function(a){var b=pc(a.D);Xb(b,function(c){c.bd(a.g)});a.g!=a||Cx(a)};l=vx.prototype;l.bd=function(a){var b=this.g;this.g=a.Bb()>=this.J?a:this;b!==this.g?(this.F=this.g.F,wx(this)):this.F!==this.g.F&&(this.F=this.g.F,wx(this))}; + l.Yb=function(a){if(a.j===this.g){var b=!this.o.Vb(a,this.N);this.o=a;b&&Cx(this)}};l.wb=function(){return this.N};l.dispose=function(){this.ca=!0};l.Fb=function(){return this.ca};var Dx=function(a,b,c,d){this.j=a;this.g=new zn(0,0,0,0);this.C=new zn(0,0,0,0);this.l=b;this.V=c;this.W=d;this.N=!1;this.timestamp=-1;this.G=new Yw(b.o,this.j,this.g,new zn(0,0,0,0),0,0,Vw(),0)};l=Dx.prototype;l.Kf=function(){return!0};l.be=function(){};l.dispose=function(){if(!this.Fb()){var a=this.l;jc(a.D,this);a.N&&this.wb()&&Bx(a);this.be();this.N=!0}};l.Fb=function(){return this.N};l.Xb=function(){return this.l.Xb()};l.Bb=function(){return this.l.Bb()};l.Xc=function(){return this.l.Xc()}; + l.Jd=function(){return this.l.Jd()};l.bd=function(){};l.Yb=function(){this.Ub()};l.wb=function(){return this.W};var Ex=function(a){this.C=!1;this.g=a;this.o=function(){}};l=Ex.prototype;l.Bb=function(){return this.g.Bb()};l.Xc=function(){return this.g.Xc()};l.Jd=function(){return this.g.Jd()};l.create=function(a,b,c){var d=null;this.g&&(d=this.ce(a,b,c),yx(this.g,d));return d};l.oh=function(){return this.qd()};l.qd=function(){return!1};l.init=function(a){return this.g.initialize()?(yx(this.g,this),this.o=a,!0):!1};l.bd=function(a){a.Bb()==0&&this.o(a.Xc(),this)};l.Yb=function(){};l.wb=function(){return!1}; + l.dispose=function(){this.C=!0};l.Fb=function(){return this.C};l.Xb=function(){return{}};var Fx=function(a,b,c){this.l=c===void 0?0:c;this.j=a;this.g=b==null?"":b},Gx=function(a){switch(Math.trunc(a.l)){case -16:return-16;case -8:return-8;case 0:return 0;case 8:return 8;case 16:return 16;default:return 16}},Hx=function(a,b){return a.lb.l?!1:a.jb.j?!1:typeof a.gtypeof b.g?!1:a.g0&&(a+="?"+b);return a};var Ox=function(a){var b=[],c=[];Gj(a,function(d,e){if(!(e in Object.prototype)&&typeof d!="undefined")switch(Array.isArray(d)&&(d=d.join(",")),d=[e,"=",d].join(""),e){case "adk":case "r":case "tt":case "error":case "mtos":case "tos":case "p":case "bs":b.unshift(d);break;case "req":case "url":case "referrer":case "iframe_loc":c.push(d);break;default:b.push(d)}});return b.concat(c)},Px=function(a){a=a.toString();qw();Km(T,a)};var Qx=function(){this.g=0};var Rx=function(a,b,c){Xb(a.l,function(d){var e=a.g;if(!d.g&&(d.l(b,c),d.o())){d.g=!0;var f=d.j(),g=new Ix;g.add("id","av-js");g.add("type","verif");g.add("vtype",d.C);d=L(Qx);g.add("i",d.g++);g.add("adk",e);Kx(g,f);e=new Nx(g);Px(e)}})};var Sx=function(){this.j=this.l=this.o=this.g=0},Tx=function(a,b,c,d){b&&(a.g+=c,a.j+=c,a.o+=c,a.l=Math.max(a.l,a.o));if(d===void 0?!b:d)a.o=0};var Ux=[1,.75,.5,.3,0],Vx=function(a){this.j=a=a===void 0?Ux:a;this.g=$b(this.j,function(){return new Sx})},Xx=function(a,b){return Wx(a,function(c){return c.g},b===void 0?!0:b)},Zx=function(a,b){return Yx(a,b,function(c){return c.g})},$x=function(a,b){return Wx(a,function(c){return c.l},b===void 0?!0:b)},ay=function(a,b){return Yx(a,b,function(c){return c.l})},by=function(a,b){return Yx(a,b,function(c){return c.j})},cy=function(a){Xb(a.g,function(b){b.j=0})},dy=function(a,b,c,d,e,f,g){g=g===void 0? + !0:g;c=f?Math.min(b,c):c;for(f=0;f0&&c>=h;h=!(b>0&&b>=h)||d;Tx(a.g[f],g&&k,e,!g||h)}},Wx=function(a,b,c){a=$b(a.g,function(d){return b(d)});return c?a:ey(a)},Yx=function(a,b,c){var d=hc(a.j,function(e){return b<=e});return d==-1?0:c(a.g[d])},ey=function(a){return $b(a,function(b,c,d){return c>0?d[c]-d[c-1]:d[c]})};var fy=function(){this.j=new Vx;this.fa=new Sx;this.W=this.D=-1;this.ra=1E3;this.Pa=new Vx([1,.9,.8,.7,.6,.5,.4,.3,.2,.1,0]);this.T=this.M=-1},gy=function(a,b){return $x(a.j,b===void 0?!0:b)}; + fy.prototype.H=function(a,b,c,d){this.D=this.D!=-1?Math.min(this.D,b.da):b.da;this.W=Math.max(this.W,b.da);this.M=this.M!=-1?Math.min(this.M,b.Na):b.Na;this.T=Math.max(this.T,b.Na);dy(this.Pa,b.Na,c.Na,b.g,a,d);dy(this.j,b.da,c.da,b.g,a,d);c=d||c.Hc!=b.Hc?c.isVisible()&&b.isVisible():c.isVisible();b=!b.isVisible()||b.g;Tx(this.fa,c,a,b)};fy.prototype.Ib=function(){return this.fa.l>=this.ra};if(Rn&&Rn.URL){var hy=Rn.URL,iy;if(iy=!!hy){var jy;a:{if(hy){var ky=RegExp(".*[&#?]google_debug(=[^&]*)?(&.*)?$");try{var ly=ky.exec(decodeURIComponent(hy));if(ly){jy=ly[1]&&ly[1].length>1?ly[1].substring(1):"true";break a}}catch(a){}}jy=""}iy=jy.length>0}Jw.Yg(!iy)}var my=function(a,b,c,d){var e=e===void 0?!1:e;c=Nw(d,c);Ej(a,b,c,{capture:e})};var ny=new zn(0,0,0,0);function oy(a,b){b=py(b);return b===0?0:py(a)/b}function py(a){return Math.max(a.bottom-a.top,0)*Math.max(a.right-a.left,0)}function qy(a,b){if(!a||!b)return!1;for(var c=0;a!==null&&c++<100;){if(a===b)return!0;try{if(a=a.parentElement||a){var d=ql(a),e=d&&wl(d),f=e&&e.frameElement;f&&(a=f)}}catch(g){break}}return!1} + function ry(a,b,c){if(!a||!b)return!1;b=Bn(a.clone(),-b.left,-b.top);a=(b.left+b.right)/2;b=(b.top+b.bottom)/2;Tl(window.top)&&window.top&&window.top.document&&(window=window.top);if(!$w())return!1;a=window.document.elementFromPoint(a,b);if(!a)return!1;b=(b=(b=ql(c))&&b.defaultView&&b.defaultView.frameElement)&&qy(b,a);var d=a===c;a=!d&&a&&Jl(a,function(e){return e===c});return!(b||d||a)} + function sy(a,b,c,d){return rx().l?!1:a.getWidth()<=0||a.getHeight()<=0?!0:c&&d?Mw(208,function(){return ry(a,b,c)}):!1};var ty=new zn(0,0,0,0),vy=function(a,b,c){R.call(this);this.position=ty.clone();this.Xe=this.Ce();this.Bg=-2;this.tl=Date.now();this.Bi=-1;this.Oe=b;this.Ne=null;this.Fd=!1;this.hf=null;this.opacity=-1;this.bl=c;this.wl=!1;this.Dg=function(){};this.Di=function(){};this.Qa=new iw;this.Qa.hc=a;this.Qa.g=a;this.Gb=!1;this.Bc={Hg:null,Gg:null};this.xi=!0;this.Xd=null;this.dd=this.vk=!1;S().G++;this.La=this.sg();this.Ai=-1;this.ma=null;this.Qh=this.sk=!1;this.V=new Zv;gw(this.V);uy(this);this.bl==1?bw(this.V, + "od",1):bw(this.V,"od",0)};v(vy,R);vy.prototype.Y=function(){this.Qa.g&&(this.Bc.Hg&&(Fj(this.Qa.g,"mouseover",this.Bc.Hg),this.Bc.Hg=null),this.Bc.Gg&&(Fj(this.Qa.g,"mouseout",this.Bc.Gg),this.Bc.Gg=null));this.Xd&&this.Xd.dispose();this.ma&&this.ma.dispose();delete this.Xe;delete this.Dg;delete this.Di;delete this.Qa.hc;delete this.Qa.g;delete this.Bc;delete this.Xd;delete this.ma;delete this.V;R.prototype.Y.call(this)};var wy=function(a){return a.ma?a.ma.g:a.position};vy.prototype.rf=function(a){S().rf(a)}; + vy.prototype.sf=function(a){S().sf(a)};var uy=function(a){a=a.Qa.hc;var b;if(b=a&&a.getAttribute)b=/-[a-z]/.test("googleAvInapp")?!1:hw&&a.dataset?"googleAvInapp"in a.dataset:a.hasAttribute?a.hasAttribute("data-"+nl()):!!a.getAttribute("data-"+nl());b&&(rx().j=!0)};vy.prototype.wb=function(){return!1};vy.prototype.Ce=function(){return new fy};vy.prototype.Ja=function(){return this.Xe}; + var yy=function(a,b){b!=a.dd&&(a.dd=b,a=rx(),b?a.F++:a.F>0&&a.F--)},zy=function(a,b){if(a.ma){if(b.getName()===a.ma.getName())return;a.ma.dispose();a.ma=null}b=b.create(a.Qa.g,a.V,a.wb());if(b=b!=null&&b.Kf()?b:null)a.ma=b},Ay=function(a,b,c){if(!a.Ne||a.Oe==-1||b.getTimestamp()===-1||a.Ne.getTimestamp()===-1)return 0;a=b.getTimestamp()-a.Ne.getTimestamp();return a>c?0:a};vy.prototype.Nh=function(a){return Ay(this,a,1E4)}; + var By=function(a,b,c){if(a.ma){a.ma.Ub();var d=a.ma.G,e=d.l,f=e.g;if(d.C!=null){var g=d.j;a.hf=new $k(g.left-f.left,g.top-f.top)}f=a.Af()?Math.max(d.g,d.o):d.g;g={};e.volume!==null&&(g.volume=e.volume);e=a.Nh(d);a.Ne=d;a.gh(f,b,c,!1,g,e,d.F)}},Cy=function(a){if(a.Fd&&a.Xd){var b=cw(a.V,"od")==1,c=rx().g,d=a.Xd,e=a.ma?a.ma.getName():"ns",f=a.hf,g=new al(c.getWidth(),c.getHeight());c=a.Af();a={pl:e,hf:f,Jl:g,Af:c,da:a.La.da,El:b};if(b=d.j){b.Ub();e=b.G;f=e.l.g;var h=g=null;e.C!=null&&f&&(g=e.j,g=new $k(g.left- + f.left,g.top-f.top),h=new al(f.right-f.left,f.bottom-f.top));e=c?Math.max(e.g,e.o):e.g;c={pl:b.getName(),hf:g,Jl:h,Af:c,El:!1,da:e}}else c=null;c&&Rx(d,a,c)}};l=vy.prototype;l.gh=function(a,b,c,d,e,f,g){this.Gb||(this.Fd&&(a=this.Uf(a,c,e,g),d=d&&this.La.da>=(this.Hc()?.3:.5),this.hh(f,a,d),this.Oe=b,a.da>0&&-1===this.Ai&&(this.Ai=b),this.Bi==-1&&this.Ib()&&(this.Bi=b),this.Bg==-2&&(this.Bg=py(wy(this))?a.da:-1),this.La=a),this.Dg(this))};l.hh=function(a,b,c){this.Ja().H(a,b,this.La,c)};l.sg=function(){return new Nv}; + l.Uf=function(a,b,c,d){c=this.sg();c.g=b;b=qw().j;b=ow()?-1:b.isVisible()?0:1;c.j=b;c.da=this.bg(a);c.Hc=this.Hc();c.Na=d;return c};l.bg=function(a){return this.opacity===0&&cw(this.V,"opac")===1?0:a};l.Hc=function(){return!1};l.Af=function(){return this.sk||this.vk};l.Za=function(){return 0};l.Ib=function(){return this.Xe.Ib()};l.Oh=function(){var a=this.Fd;a=(this.Qh||this.Fb())&&!a;var b=S().j!==2||this.wl;return this.Gb||b&&a?2:this.Ib()?4:3};l.Ae=function(){return 0}; + var Dy=function(a,b,c){b&&(a.Dg=b);c&&(a.Di=c)};var Ey=function(){};Ey.prototype.next=function(){return Fy};var Fy={done:!0,value:void 0};Ey.prototype.Uc=function(){return this};var Gy=function(){this.o=this.g=this.l=this.j=this.C=0},Hy=function(a){var b={};b=(b.ptlt=Wa()-a.C,b);var c=a.j;c&&(b.pnk=c);(c=a.l)&&(b.pnc=c);(c=a.o)&&(b.pnmm=c);(a=a.g)&&(b.pns=a);return b};var Iy=function(){Nv.call(this);this.fullscreen=!1;this.volume=void 0;this.paused=!1;this.mediaTime=-1};v(Iy,Nv);var Jy=function(a){return mx(a.volume)&&a.volume>0};var Ly=function(a,b,c,d){c=c===void 0?!0:c;d=d===void 0?function(){return!0}:d;return function(e){var f=e[a];if(Array.isArray(f)&&d(e))return Ky(f,b,c)}},My=function(a,b){return function(c){return b(c)?c[a]:void 0}},Ny=function(a){return function(b){for(var c=0;c0?f[e-1]+1:0,d+1).reduce(function(g,h){return g+ + h},0)})};var Oy=Ny([void 0,1,2,3,4,8,16]),Py=Ny([void 0,4,8,16]),Qy={sv:"sv",v:"v",cb:"cb",e:"e",nas:"nas",msg:"msg","if":"if",sdk:"sdk",p:"p",p0:My("p0",Py),p1:My("p1",Py),p2:My("p2",Py),p3:My("p3",Py),cp:"cp",tos:"tos",mtos:"mtos",amtos:"amtos",mtos1:Ly("mtos1",[0,2,4],!1,Py),mtos2:Ly("mtos2",[0,2,4],!1,Py),mtos3:Ly("mtos3",[0,2,4],!1,Py),mcvt:"mcvt",ps:"ps",scs:"scs",bs:"bs",vht:"vht",mut:"mut",a:"a",a0:My("a0",Py),a1:My("a1",Py),a2:My("a2",Py),a3:My("a3",Py),ft:"ft",dft:"dft",at:"at",dat:"dat",as:"as", + vpt:"vpt",gmm:"gmm",std:"std",efpf:"efpf",swf:"swf",nio:"nio",px:"px",nnut:"nnut",vmer:"vmer",vmmk:"vmmk",vmiec:"vmiec",nmt:"nmt",tcm:"tcm",bt:"bt",pst:"pst",vpaid:"vpaid",dur:"dur",vmtime:"vmtime",dtos:"dtos",dtoss:"dtoss",dvs:"dvs",dfvs:"dfvs",dvpt:"dvpt",fmf:"fmf",vds:"vds",is:"is",i0:"i0",i1:"i1",i2:"i2",i3:"i3",ic:"ic",cs:"cs",c:"c",c0:My("c0",Py),c1:My("c1",Py),c2:My("c2",Py),c3:My("c3",Py),mc:"mc",nc:"nc",mv:"mv",nv:"nv",qmt:My("qmtos",Oy),qnc:My("qnc",Oy),qmv:My("qmv",Oy),qnv:My("qnv",Oy), + raf:"raf",rafc:"rafc",lte:"lte",ces:"ces",tth:"tth",femt:"femt",femvt:"femvt",emc:"emc",emuc:"emuc",emb:"emb",avms:"avms",nvat:"nvat",qi:"qi",psm:"psm",psv:"psv",psfv:"psfv",psa:"psa",pnk:"pnk",pnc:"pnc",pnmm:"pnmm",pns:"pns",ptlt:"ptlt",pngs:"pings",veid:"veid",ssb:"ssb",ss0:My("ss0",Py),ss1:My("ss1",Py),ss2:My("ss2",Py),ss3:My("ss3",Py),dc_rfl:"urlsigs",obd:"obd",omidp:"omidp",omidr:"omidr",omidv:"omidv",omida:"omida",omids:"omids",omidpv:"omidpv",omidam:"omidam",omidct:"omidct",omidia:"omidia", + omiddc:"omiddc",omidlat:"omidlat",omiddit:"omiddit",nopd:"nopd",co:"co"},Ry=Object.assign({},Qy,{avid:function(a){return function(){return a}}("audio"),avas:"avas",vs:"vs"}),Sy={atos:"atos",avt:Ly("atos",[2]),davs:"davs",dafvs:"dafvs",dav:"dav",ss:function(a,b){return function(c){return c[a]===void 0&&b!==void 0?b:c[a]}}("ss",0),t:"t"};var Ty=function(){this.j=this.g=""};var Uy=function(){},Vy=function(a,b){var c={};if(a!==void 0)if(b!=null)for(var d in b){var e=b[d];d in Object.prototype||e!=null&&(c[d]=typeof e==="function"?e(a):a[e])}else Wj(c,a);return Mx(Kx(new Ix,c))};var Wy=function(){var a={};this.j=(a.vs=[1,0],a.vw=[0,1],a.am=[2,2],a.a=[4,4],a.f=[8,8],a.bm=[16,16],a.b=[32,32],a.avw=[0,64],a.avs=[64,0],a.pv=[256,256],a.gdr=[0,512],a.p=[0,1024],a.r=[0,2048],a.m=[0,4096],a.um=[0,8192],a.ef=[0,16384],a.s=[0,32768],a.pmx=[0,16777216],a.mut=[33554432,33554432],a.umutb=[67108864,67108864],a.tvoff=[134217728,134217728],a);this.g={};for(var b in this.j)this.j[b][1]>0&&(this.g[b]=0);this.l=0}; + Wy.prototype.reportEvent=function(a){var b=this.j[a],c=b[1];this.l+=b[0];c>0&&this.g[a]==0&&(this.g[a]=1)};var Xy=function(a){var b=Lj(a.j),c=0,d;for(d in a.g)ic(b,d)&&a.g[d]==1&&(c+=a.j[d][1],a.g[d]=2);return c},Yy=function(a){var b=0,c;for(c in a.g){var d=a.g[c];if(d==1||d==2)b+=a.j[c][1]}return b};var Zy=function(){this.g=this.j=0};Zy.prototype.getValue=function(){return this.j};var $y=function(a,b,c){b>=32||(a.g&1<=.5;mx(b.volume)&&(this.o=this.o!=-1?Math.min(this.o,b.volume):b.volume,this.F=Math.max(this.F,b.volume));f&&(this.R+=a,this.J+=e?a:0);dy(this.g,b.da,c.da,b.g,a,d,e);Tx(this.l,!0,a);Tx(this.C,e,a);Tx(this.N,c.fullscreen,a);Tx(this.Ta,e&&!f,a);a=Math.floor(b.mediaTime/1E3);$y(this.ca,a,b.isVisible());$y(this.na,a,b.da>=1);$y(this.la,a,Jy(b))}};var cz=function(){this.l=!1};cz.prototype.j=function(a){this.l||(this.g(a)?(a=this.H.report(this.o,a),this.C|=a,a=a==0):a=!1,this.l=a)};var dz=function(a,b){this.l=!1;this.o=a;this.H=b;this.C=0};v(dz,cz);dz.prototype.g=function(){return!0};dz.prototype.F=function(){return!1};dz.prototype.getId=function(){var a=this,b=Pj(function(c){return c==a.o});return Ar[b].toString()};dz.prototype.toString=function(){var a="";this.F()&&(a+="c");this.l&&(a+="s");this.C>0&&(a+=":"+this.C);return this.getId()+a};var ez=function(a,b){dz.call(this,a,b);this.D=[]};v(ez,dz);ez.prototype.j=function(a,b){b=b===void 0?null:b;b!=null&&this.D.push(b);dz.prototype.j.call(this,a)};var fz=function(){};var gz=function(){};v(gz,fz);gz.prototype.j=function(){return null};gz.prototype.l=function(){return[]};var hz=function(a,b,c,d){Dx.call(this,a,b,c,d)};v(hz,Dx);l=hz.prototype;l.Vf=function(){if(this.j){var a=this.j,b=this.l.g.l;try{try{var c=kx(a.getBoundingClientRect())}catch(m){c=new zn(0,0,0,0)}var d=c.right-c.left,e=c.bottom-c.top,f=fx(a,b),g=f.x,h=f.y;var k=new zn(Math.round(h),Math.round(g+d),Math.round(h+e),Math.round(g))}catch(m){k=ny.clone()}this.g=k}};l.Bh=function(){this.C=this.l.o.g};l.Sh=function(a){var b=cw(this.V,"od")==1;return sy(a,this.C,this.j,b)}; + l.Ch=function(){this.timestamp=Vw()}; + l.Ub=function(){this.Ch();this.Vf();if(this.j&&typeof this.j.videoWidth==="number"&&typeof this.j.videoHeight==="number"){var a=this.j;var b=new al(a.videoWidth,a.videoHeight);a=this.g;var c=a.getWidth(),d=a.getHeight(),e=b.width;b=b.height;e<=0||b<=0||c<=0||d<=0||(e/=b,b=c/d,a=a.clone(),e>b?(c/=e,d=(d-c)/2,d>0&&(d=a.top+d,a.top=Math.round(d),a.bottom=Math.round(d+c))):(d*=e,c=Math.round((c-d)/2),c>0&&(c=a.left+c,a.left=Math.round(c),a.right=Math.round(c+d))));this.g=a}this.Bh();a=this.g;c=this.C; + a=a.left<=c.right&&c.left<=a.right&&a.top<=c.bottom&&c.top<=a.bottom?new zn(Math.max(a.top,c.top),Math.min(a.right,c.right),Math.min(a.bottom,c.bottom),Math.max(a.left,c.left)):new zn(0,0,0,0);c=a.top>=a.bottom||a.left>=a.right?new zn(0,0,0,0):a;a=this.l.o;b=e=d=0;(this.g.bottom-this.g.top)*(this.g.right-this.g.left)>0&&(this.Sh(c)?c=new zn(0,0,0,0):(d=rx().C,b=new zn(0,d.height,d.width,0),d=oy(c,this.g),e=oy(c,rx().g),b=oy(c,b)));c=c.top>=c.bottom||c.left>=c.right?new zn(0,0,0,0):Bn(c,-this.g.left, + -this.g.top);sx()||(e=d=0);this.G=new Yw(a,this.j,this.g,c,d,e,this.timestamp,b)};l.getName=function(){return this.l.getName()};var iz=new zn(0,0,0,0),jz=function(a,b,c){Dx.call(this,null,a,b,c);this.D=a.isActive();this.F=0};v(jz,hz);l=jz.prototype;l.Kf=function(){this.o();return!0};l.Yb=function(){hz.prototype.Ub.call(this)};l.Ch=function(){};l.Vf=function(){};l.Ub=function(){this.o();hz.prototype.Ub.call(this)};l.bd=function(a){a=a.isActive();a!==this.D&&(a?this.o():(rx().g=new zn(0,0,0,0),this.g=new zn(0,0,0,0),this.C=new zn(0,0,0,0),this.timestamp=-1));this.D=a};function kz(a){return[a.top,a.left,a.bottom,a.right]} + var lz={},mz=(lz.firstquartile=0,lz.midpoint=1,lz.thirdquartile=2,lz.complete=3,lz),nz=function(a,b,c,d,e,f){f=f===void 0?new gz:f;vy.call(this,b,c,d);this.Qg=e;this.hg=0;this.ua={};this.qa=new Wy;this.Hi={};this.Ba="";this.qc=null;this.Gd=!1;this.g=[];this.Kb=f.j();this.F=f.l();this.C=null;this.l=-1;this.la=this.H=void 0;this.M=this.J=0;this.ca=-1;this.Ta=this.Pa=!1;this.T=this.G=this.j=this.pd=this.Cd=0;new Vx;this.ba=this.na=0;this.ra=-1;this.za=0;this.D=yj;this.R=[this.Ce()];this.Fe=2;this.Sc= + {};this.Sc.pause="p";this.Sc.resume="r";this.Sc.skip="s";this.Sc.mute="m";this.Sc.unmute="um";this.Sc.exitfullscreen="ef";this.o=null;this.yb=this.xd=!1;this.ye=Math.floor(Date.now()/1E3-1704067200);this.fa=0};v(nz,vy);nz.prototype.wb=function(){return!0};var oz=function(a){a.Qh=!0;a.za!=0&&(a.za=3)},pz=function(a){return a===void 0?a:Number(a)?jx(a,3):0};l=nz.prototype;l.Nh=function(a){return Ay(this,a,Math.max(1E4,this.l/3))}; + l.gh=function(a,b,c,d,e,f,g){var h=this,k=this.D(this)||{};Wj(k,e);this.l=k.duration||this.l;this.H=k.isVpaid||this.H;this.la=k.isYouTube||this.la;qw();this.yb=!1;e=qz(this,b);rz(this)===1&&(f=e);vy.prototype.gh.call(this,a,b,c,d,k,f,g);this.Kb&&this.Kb.l&&Xb(this.F,function(m){m.j(h)})}; + l.hh=function(a,b,c){vy.prototype.hh.call(this,a,b,c);sz(this).H(a,b,this.La,c);this.Ta=Jy(this.La)&&Jy(b);this.ca==-1&&this.Pa&&(this.ca=this.Ja().l.g);this.qa.l=0;a=this.Ib();b.isVisible()&&this.qa.reportEvent("vs");a&&this.qa.reportEvent("vw");mx(b.volume)&&this.qa.reportEvent("am");Jy(b)?this.qa.reportEvent("a"):this.qa.reportEvent("mut");this.dd&&this.qa.reportEvent("f");b.j!=-1&&(this.qa.reportEvent("bm"),b.j==1&&(this.qa.reportEvent("b"),Jy(b)&&this.qa.reportEvent("umutb")));Jy(b)&&b.isVisible()&& + this.qa.reportEvent("avs");this.Ta&&a&&this.qa.reportEvent("avw");b.da>0&&this.qa.reportEvent("pv");tz(this,this.Ja().l.g,!0)&&this.qa.reportEvent("gdr");ay(this.Ja().j,1)>=2E3&&this.qa.reportEvent("pmx");this.yb&&this.qa.reportEvent("tvoff")};l.Ce=function(){return new az};l.Ja=function(){return this.Xe};var sz=function(a,b){return a.R[b!=null&&b=0?c:-1;return a}; + var rz=function(a){var b=!!cw(S().V,"umt");return a.H||!b&&!a.la?0:1},qz=function(a,b){a.za==2?b=0:a.Oe==-1?b=0:(b-=a.Oe,b=b>Math.max(1E4,a.l/3)?0:b);var c=a.D(a)||{};c=c.currentTime!==void 0?c.currentTime:a.J;var d=c-a.J,e=0;d>=0?(a.M+=b,a.ba+=Math.max(b-d,0),e=Math.min(d,a.M)):a.na+=Math.abs(d);d!=0&&(a.M=0);a.ra==-1&&d>0&&(a.ra=Tw>=0?Vw()-Tw:-1);a.J=c;return e};nz.prototype.bg=function(a){return rx().H?0:this.dd?1:vy.prototype.bg.call(this,a)};nz.prototype.Za=function(){return 1}; + nz.prototype.getDuration=function(){return this.l}; + var uz=function(a,b){dc(a.F,function(c){return c.o==b.o})||a.F.push(b)},vz=function(a){var b=Zx(a.Ja().g,1);return tz(a,b)},tz=function(a,b,c){return b>=15E3?!0:a.Pa?(c===void 0?0:c)?!0:a.l>0?b>=a.l/2:a.ca>0?b>=a.ca:!1:!1},wz=function(a){var b={},c=rx();b.insideIframe=c.l;b.unmeasurable=a.Gb;b.position=wy(a);b.exposure=a.La.da;b.documentSize=c.o;b.viewportSize=new al(c.g.getWidth(),c.g.getHeight());a.o!=null&&(b.presenceData=a.o);b.screenShare=a.La.Na;return b},xz=function(a){var b=jx(a.La.da,2), + c=a.qa.l,d=a.La,e=sz(a),f=pz(e.o),g=pz(e.F),h=pz(d.volume),k=jx(e.D,2),m=jx(e.W,2),n=jx(d.da,2),p=jx(e.M,2),q=jx(e.T,2);d=jx(d.Na,2);a=wy(a).clone();a.round();e=gy(e,!1);return{Il:b,Ld:c,af:f,Ue:g,wd:h,bf:k,Ve:m,da:n,cf:p,We:q,Na:d,position:a,df:e}},zz=function(a,b){yz(a.g,b,function(){return{Il:0,Ld:void 0,af:-1,Ue:-1,wd:-1,bf:-1,Ve:-1,da:-1,cf:-1,We:-1,Na:-1,position:void 0,df:[]}});a.g[b]=xz(a)},yz=function(a,b,c){for(var d=a.length;d0?1:0;n.atos=Xx(k.g);n.ssb=Xx(k.Pa,!1);n.amtos=$x(k.g,!1);n.uac=a.Cd;n.vpt=k.l.g;m=="nio"&&(n.nio=1,n.avms="nio");n.gmm="4";n.gdr=tz(a,k.l.g,!0)?1:0;n.efpf=a.Fe;if(m=="gsv"||m=="nis")f=a.ma,f.F>0&&(n.nnut=f.F);n.tcm=rz(a);n.nmt=a.na;n.bt=a.ba;n.pst=a.ra;n.vpaid=a.H;n.dur=a.l;n.vmtime=a.J;n.is=a.qa.l;a.g.length>=1&&(n.i0=a.g[0].Ld,n.a0=[a.g[0].wd],n.c0=[a.g[0].da],n.ss0=[a.g[0].Na], + f=a.g[0].position,n.p0=f?kz(f):void 0);a.g.length>=2&&(n.i1=a.g[1].Ld,n.a1=Dz(a.g[1].af,a.g[1].wd,a.g[1].Ue),n.c1=Dz(a.g[1].bf,a.g[1].da,a.g[1].Ve),n.ss1=Dz(a.g[1].cf,a.g[1].Na,a.g[1].We),f=a.g[1].position,n.p1=f?kz(f):void 0,n.mtos1=a.g[1].df);a.g.length>=3&&(n.i2=a.g[2].Ld,n.a2=Dz(a.g[2].af,a.g[2].wd,a.g[2].Ue),n.c2=Dz(a.g[2].bf,a.g[2].da,a.g[2].Ve),n.ss2=Dz(a.g[2].cf,a.g[2].Na,a.g[2].We),f=a.g[2].position,n.p2=f?kz(f):void 0,n.mtos2=a.g[2].df);a.g.length>=4&&(n.i3=a.g[3].Ld,n.a3=Dz(a.g[3].af,a.g[3].wd, + a.g[3].Ue),n.c3=Dz(a.g[3].bf,a.g[3].da,a.g[3].Ve),n.ss3=Dz(a.g[3].cf,a.g[3].Na,a.g[3].We),f=a.g[3].position,n.p3=f?kz(f):void 0,n.mtos3=a.g[3].df);n.cs=Yy(a.qa);b&&(n.ic=Xy(a.qa),n.dvpt=k.l.j,n.dvs=by(k.j,.5),n.dfvs=by(k.j,1),n.davs=by(k.g,.5),n.dafvs=by(k.g,1),c&&(k.l.j=0,cy(k.j),cy(k.g)),a.Ib()&&(n.dtos=k.R,n.dav=k.J,n.dtoss=a.hg+1,c&&(k.R=0,k.J=0,a.hg++)),n.dat=k.C.j,n.dft=k.N.j,c&&(k.C.j=0,k.N.j=0));n.ps=[g.o.width,g.o.height];n.bs=[g.g.getWidth(),g.g.getHeight()];n.scs=[g.C.width,g.C.height]; + n.dom=g.domain;a.pd&&(n.vds=a.pd);if(a.F.length>0||a.Kb)b=pc(a.F),a.Kb&&b.push(a.Kb),n.pings=$b(b,function(p){return p.toString()});b=$b(Zb(a.F,function(p){return p.F()}),function(p){return p.getId()});qc(b);n.ces=b;a.j&&(n.vmer=a.j);a.G&&(n.vmmk=a.G);a.T&&(n.vmiec=a.T);n.avms=a.ma?a.ma.getName():"ns";a.ma&&Wj(n,a.ma.Xb());d?(n.c=jx(a.La.da,2),n.ss=jx(a.La.Na,2)):n.tth=Vw()-Sw;n.mc=jx(k.W,2);n.nc=jx(k.D,2);n.mv=pz(k.F);n.nv=pz(k.o);n.lte=jx(a.Bg,2);d=sz(a,e);gy(k);n.qmtos=gy(d);n.qnc=jx(d.D,2);n.qmv= + pz(d.F);n.qnv=pz(d.o);n.qas=d.o>0?1:0;n.qi=a.Ba;n.avms||(n.avms="geo");n.psm=k.ca.g;n.psv=k.ca.getValue();n.psfv=k.na.getValue();n.psa=k.la.getValue();h=ew(h.V);h.length&&(n.veid=h);a.o&&Wj(n,Hy(a.o));n.avas=a.Ae();n.vs=a.Oh();n.co=Ez(a);return n},Az=function(a,b){if(ic(zr,b))return!0;var c=a.ua[b];return c!==void 0?(a.ua[b]=!0,!c):!1};nz.prototype.Oh=function(){return this.Gb?2:vz(this)?5:this.Ib()?4:3};nz.prototype.Ae=function(){return this.xd?this.Ja().C.l>=2E3?4:3:2}; + var Ez=function(a){var b=a.fa.toString(10).padStart(2,"0");b=""+a.ye+b;a.fa<99&&a.fa++;return b};var Fz=Wa(),Iz=function(){this.g={};var a=wl();Gz(this,a,document);var b=Hz();try{if("1"==b){for(var c=a.parent;c!=a.top;c=c.parent)Gz(this,c,c.document);Gz(this,a.top,a.top.document)}}catch(d){}},Hz=function(){var a=document.documentElement;try{if(!Tl(wl().top))return"2";var b=[],c=wl(a.ownerDocument);for(a=c;a!=c.top;a=a.parent)if(a.frameElement)b.push(a.frameElement);else break;return b&&b.length!=0?"1":"0"}catch(d){return"2"}},Gz=function(a,b,c){my(c,"mousedown",function(){return Jz(a)},301); + my(b,"scroll",function(){return Kz(a)},302);my(c,"touchmove",function(){return Lz(a)},303);my(c,"mousemove",function(){return Mz(a)},304);my(c,"keydown",function(){return Nz(a)},305)},Jz=function(a){Gj(a.g,function(b){b.l>1E5||++b.l})},Kz=function(a){Gj(a.g,function(b){b.g>1E5||++b.g})},Lz=function(a){Gj(a.g,function(b){b.g>1E5||++b.g})},Nz=function(a){Gj(a.g,function(b){b.j>1E5||++b.j})},Mz=function(a){Gj(a.g,function(b){b.o>1E5||++b.o})};var Oz=function(){this.g=[];this.j=[]},Pz=function(a,b){return ec(a.g,function(c){return c.Ba==b})},Qz=function(a,b){return b?ec(a.g,function(c){return c.Qa.hc==b}):null},Rz=function(a,b){return ec(a.j,function(c){return c.Za()==2&&c.Ba==b})},Tz=function(){var a=Sz;return a.g.length==0?a.j:a.j.length==0?a.g:oc(a.j,a.g)};Oz.prototype.reset=function(){this.g=[];this.j=[]}; + var Uz=function(a,b){a=b.Za()==1?a.g:a.j;var c=fc(a,function(d){return d==b});return c!=-1?(a.splice(c,1),b.ma&&b.ma.be(),b.dispose(),!0):!1},Vz=function(a){var b=Sz;if(Uz(b,a)){switch(a.Za()){case 0:var c=function(){return null};case 2:c=function(){return Rz(b,a.Ba)};break;case 1:c=function(){return Pz(b,a.Ba)}}for(var d=c();d;d=c())Uz(b,d)}},Wz=function(a){var b=Sz;a=Zb(a,function(c){return!Qz(b,c.Qa.hc)});b.g.push.apply(b.g,u(a))},Xz=function(a){var b=[];Xb(a,function(c){dc(Sz.g,function(d){return d.Qa.hc=== + c.Qa.hc&&d.Ba===c.Ba})||(Sz.g.push(c),b.push(c))})},Sz=L(Oz);var Yz=function(){this.g=this.j=null},Zz=function(a,b){if(a.j==null)return!1;var c=function(d,e){b(d,e)};a.g=ec(a.j,function(d){return d!=null&&d.oh()});a.g&&(a.g.init(c)?zx(a.g.g):b(a.g.g.Xc(),a.g));return a.g!=null};var aA=function(a){a=$z(a);Ex.call(this,a.length?a[a.length-1]:new vx(T,0));this.l=a;this.j=null};v(aA,Ex);l=aA.prototype;l.getName=function(){return(this.j?this.j:this.g).getName()};l.Xb=function(){return(this.j?this.j:this.g).Xb()};l.Bb=function(){return(this.j?this.j:this.g).Bb()};l.init=function(a){var b=!1;Xb(this.l,function(c){c.initialize()&&(b=!0)});b&&(this.o=a,yx(this.g,this));return b};l.dispose=function(){Xb(this.l,function(a){a.dispose()});Ex.prototype.dispose.call(this)}; + l.oh=function(){return dc(this.l,function(a){return a.W()})};l.qd=function(){return dc(this.l,function(a){return a.W()})};l.ce=function(a,b,c){return new hz(a,this.g,b,c)};l.Yb=function(a){this.j=a.j};var $z=function(a){if(!a.length)return[];a=Zb(a,function(c){return c!=null&&c.W()});for(var b=1;bc.time?b:c},a[0])};l=cA.prototype;l.Ub=function(){var a=eA(this);a.length>0&&fA(this,a);hz.prototype.Ub.call(this)};l.Vf=function(){};l.Sh=function(){return!1}; + l.Bh=function(){};l.Xb=function(){var a={};return Object.assign(this.l.Xb(),(a.niot_obs=this.J,a.niot_cbk=this.H,a))};l.getName=function(){return"nio"};var hA=function(a){a=a===void 0?T:a;Ex.call(this,new vx(a,2))};v(hA,Ex);hA.prototype.getName=function(){return"nio"};hA.prototype.qd=function(){return!rx().j&&this.g.g.l.IntersectionObserver!=null};hA.prototype.ce=function(a,b,c){return new cA(a,this.g,b,c)};var jA=function(){var a=iA();vx.call(this,T.top,a,"geo")};v(jA,vx);jA.prototype.ra=function(){return rx().g};jA.prototype.W=function(){var a=iA();this.J!==a&&(this.g!=this&&a>this.g.J&&(this.g=this,wx(this)),this.J=a);return a==2};var iA=function(){S();var a=rx();return a.l||a.j?0:2};var kA=function(){};var lA=function(){this.done=!1;this.g={Dj:0,uh:0,Fn:0,Hh:0,xg:-1,Qj:0,Pj:0,Rj:0,ol:0};this.C=null;this.F=!1;this.l=null;this.D=0;this.j=new tx(this)},oA=function(){var a=mA;a.F||(a.F=!0,nA(a,function(){return a.o.apply(a,u(Ea.apply(0,arguments)))}),a.o())};lA.prototype.sample=function(){pA(this,Tz(),!1)}; + var qA=function(){L(kA);var a=L(Yz);a.g!=null&&a.g.g?zx(a.g.g):nx(rx())},pA=function(a,b,c){if(!a.done&&(a.j.cancel(),b.length!=0)){a.l=null;try{qA();var d=Vw();S().D=d;if(L(Yz).g!=null)for(var e=0;e=0?Vw()-Rw:-1,h=Vw();e.g.xg==-1&&(g=h);var k=rx(),m=S(),n=dw(m.V),p=Tz();try{if(p.length>0){var q=k.g;q&&(n.bs=[q.getWidth(),q.getHeight()]);var r=k.o;r&&(n.ps=[r.width,r.height]); + T.screen&&(n.scs=[T.screen.width,T.screen.height])}else n.url=encodeURIComponent(T.location.href.substring(0,512)),f.referrer&&(n.referrer=encodeURIComponent(f.referrer.substring(0,512)));n.tt=g;n.pt=Rw;n.bin=m.j;T.google_osd_load_pub_page_exp!==void 0&&(n.olpp=T.google_osd_load_pub_page_exp);n.deb=[1,e.g.Dj,e.g.uh,e.g.Hh,e.g.xg,0,e.j.j,e.g.Qj,e.g.Pj,e.g.Rj,e.g.ol,-1].join(";");n.tvt=rA(e,h);k.j&&(n.inapp=1);if(T!==null&&T!=T.top){p.length>0&&(n.iframe_loc=encodeURIComponent(T.location.href.substring(0, + 512)));var w=k.G;n.is=[w.getWidth(),w.getHeight()]}}catch(A){n.error=1}mA.l=n}q=Uj(mA.l);r=S().g;if(cw(r.l,"prf")==1){w=new vw;e=r.g;f=0;e.g>-1&&(f=e.l.g.now()-e.g);e=e.o+f;if(e!=null&&typeof e!=="number")throw Error("Value of float/double field must be a number, found "+typeof e+": "+e);w=Ig(w,1,e,0);e=r.g;w=ih(w,5,e.g>-1?e.j+1:e.j);w=kh(w,2,r.j.g.l());w=kh(w,3,r.j.g.j());r=kh(w,4,r.j.g.g());w={};r=(w.pf=Nc(r.g()),w)}else r={};Wj(q,r);Wj(b,d,c,q,a())}])},mA=L(lA);var uA=null,vA="",wA=!1,xA=function(){var a=uA||T;if(!a)return"";var b=[];if(!a.location||!a.location.href)return"";b.push("url="+encodeURIComponent(a.location.href.substring(0,512)));a.document&&a.document.referrer&&b.push("referrer="+encodeURIComponent(a.document.referrer.substring(0,512)));return b.join("&")};function yA(){var a="av.default_js_unreleased_RCxx".match(/_(\d{8})_RC\d+$/)||"av.default_js_unreleased_RCxx".match(/_(\d{8})_\d+_\d+$/)||"av.default_js_unreleased_RCxx".match(/_(\d{8})_\d+\.\d+$/)||"av.default_js_unreleased_RCxx".match(/_(\d{8})_\d+_RC\d+$/),b;if(((b=a)==null?void 0:b.length)==2)return a[1];a="av.default_js_unreleased_RCxx".match(/.*_(\d{2})\.(\d{4})\.\d+_RC\d+$/);var c;return((c=a)==null?void 0:c.length)==3?"20"+a[1]+a[2]:null} + var zA=function(){return"ima_html5_sdk".includes("ima_html5_sdk")?{pb:"ima",qb:null}:"ima_html5_sdk".includes("ima_native_sdk")?{pb:"nima",qb:null}:"ima_html5_sdk".includes("admob-native-video-javascript")?{pb:"an",qb:null}:"av.default_js_unreleased_RCxx".includes("cast_js_sdk")?{pb:"cast",qb:yA()}:"av.default_js_unreleased_RCxx".includes("youtube.player.web")?{pb:"yw",qb:yA()}:"av.default_js_unreleased_RCxx".includes("outstream_web_client")?{pb:"out",qb:yA()}:"av.default_js_unreleased_RCxx".includes("drx_rewarded_web")? + {pb:"r",qb:yA()}:"av.default_js_unreleased_RCxx".includes("gam_native_web_video")?{pb:"n",qb:yA()}:"av.default_js_unreleased_RCxx".includes("admob_interstitial_video")?{pb:"int",qb:yA()}:{pb:"j",qb:null}},AA=zA().pb,BA=zA().qb;var DA=function(a,b){var c={sv:"963"};BA!==null&&(c.v=BA);c.cb=AA;c.nas=Sz.g.length;c.msg=a;b!==void 0&&(a=CA(b))&&(c.e=Ar[a]);return c},EA=function(a){return sb(a,"custom_metric_viewable")},CA=function(a){var b=EA(a)?"custom_metric_viewable":a.toLowerCase();return Pj(function(c){return c==b})};var FA={fm:"visible",Sl:"audible",gn:"time",hn:"timetype"},GA={visible:function(a){return/^(100|[0-9]{1,2})$/.test(a)},audible:function(a){return a=="0"||a=="1"},timetype:function(a){return a=="mtos"||a=="tos"},time:function(a){return/^(100|[0-9]{1,2})%$/.test(a)||/^([0-9])+ms$/.test(a)}},HA=function(){this.g=void 0;this.j=!1;this.l=0;this.o=-1;this.C="tos"},IA=function(a){try{var b=a.split(",");return b.length>Lj(FA).length?null:cc(b,function(c,d){d=d.toLowerCase().split("=");if(d.length!=2||GA[d[0]]=== + void 0||!GA[d[0]](d[1]))throw Error("Entry ("+d[0]+", "+d[1]+") is invalid.");c[d[0]]=d[1];return c},{})}catch(c){return null}},JA=function(a,b){if(a.g==void 0)return 0;switch(a.C){case "mtos":return a.j?ay(b.g,a.g):ay(b.j,a.g);case "tos":return a.j?Zx(b.g,a.g):Zx(b.j,a.g)}return 0};var KA=function(a,b,c,d){dz.call(this,b,d);this.D=a;this.G=c};v(KA,dz);KA.prototype.getId=function(){return this.D};KA.prototype.F=function(){return!0};KA.prototype.g=function(a){var b=a.Ja(),c=a.getDuration();return dc(this.G,function(d){if(d.g!=void 0)var e=JA(d,b);else b:{switch(d.C){case "mtos":e=d.j?b.C.l:b.l.g;break b;case "tos":e=d.j?b.C.g:b.l.g;break b}e=0}e==0?d=!1:(d=d.l!=-1?d.l:c!==void 0&&c>0?d.o*c:-1,d=d!=-1&&e>=d);return d})};var LA=function(){};v(LA,Uy);LA.prototype.g=function(a){var b=new Ty;b.g=Vy(a,Qy);b.j=Vy(a,Sy);return b};var MA=function(a){dz.call(this,"fully_viewable_audible_half_duration_impression",a)};v(MA,dz);MA.prototype.g=function(a){return vz(a)};var NA=function(a){this.g=a};v(NA,fz);var OA=function(a,b){dz.call(this,a,b)};v(OA,dz);OA.prototype.g=function(a){return a.Ja().Ib()};var PA=function(a){ez.call(this,"measurable_impression",a)};v(PA,ez);PA.prototype.g=function(a){var b=ic(this.D,cw(S().V,"ovms"));return!a.Gb&&(a.za!=0||b)};var QA=function(){NA.apply(this,arguments)};v(QA,NA);QA.prototype.j=function(){return new PA(this.g)};QA.prototype.l=function(){return[new OA("viewable_impression",this.g),new MA(this.g)]};var RA=function(a,b,c){jz.call(this,a,b,c)};v(RA,jz);RA.prototype.o=function(){var a=Ia("ima.admob.getViewability"),b=cw(this.V,"queryid");typeof a==="function"&&b&&a(b)};RA.prototype.getName=function(){return"gsv"};var SA=function(a){a=a===void 0?T:a;Ex.call(this,new vx(a,2))};v(SA,Ex);SA.prototype.getName=function(){return"gsv"};SA.prototype.qd=function(){var a=rx();S();return a.j&&!1};SA.prototype.ce=function(a,b,c){return new RA(this.g,b,c)};var TA=function(a,b,c){jz.call(this,a,b,c)};v(TA,jz);TA.prototype.o=function(){var a=this,b=Ia("ima.bridge.getNativeViewability"),c=cw(this.V,"queryid");typeof b==="function"&&c&&b(c,function(d){Rj(d)&&a.F++;var e=d.opt_nativeViewVisibleBounds||{},f=d.opt_nativeViewHidden;a.g=lx(d.opt_nativeViewBounds||{});var g=a.l.o;g.g=f?iz.clone():lx(e);a.timestamp=d.opt_nativeTime||-1;rx().g=g.g;d=d.opt_nativeVolume;d!==void 0&&(g.volume=d)})};TA.prototype.getName=function(){return"nis"};var UA=function(a){a=a===void 0?T:a;Ex.call(this,new vx(a,2))};v(UA,Ex);UA.prototype.getName=function(){return"nis"};UA.prototype.qd=function(){var a=rx();S();return a.j&&!1};UA.prototype.ce=function(a,b,c){return new TA(this.g,b,c)};var VA=function(){vx.call(this,T,2,"mraid");this.Pa=0;this.R=this.T=!1;this.H=null;this.j=Zw(this.l);this.o.g=new zn(0,0,0,0);this.Ta=!1};v(VA,vx);VA.prototype.W=function(){return this.j.bb!=null};VA.prototype.na=function(){var a={};this.Pa&&(a.mraid=this.Pa);this.T&&(a.mlc=1);a.mtop=this.j.nl;this.H&&(a.mse=this.H);this.Ta&&(a.msc=1);a.mcp=this.j.re;return a}; + VA.prototype.G=function(a){var b=Ea.apply(1,arguments);try{return this.j.bb[a].apply(this.j.bb,b)}catch(c){Ow(538,c,.01,function(d){d.method=a})}};var WA=function(a,b,c){a.G("addEventListener",b,c)}; + VA.prototype.initialize=function(){var a=this;if(this.C)return!this.Jd();this.C=!0;if(this.j.re===2)return this.H="ng",xx(this,"w"),!1;if(this.j.re===1)return this.H="mm",xx(this,"w"),!1;rx().J=!0;this.l.document.readyState&&this.l.document.readyState=="complete"?XA(this):my(this.l,"load",function(){qw().setTimeout(Nw(292,function(){return XA(a)}),100)},292);return!0}; + var XA=function(a){S().C=!!a.G("isViewable");WA(a,"viewableChange",YA);a.G("getState")==="loading"?WA(a,"ready",ZA):$A(a)},$A=function(a){typeof a.j.bb.AFMA_LIDAR==="string"?(a.T=!0,aB(a)):(a.j.re=3,a.H="nc",xx(a,"w"))},aB=function(a){a.R=!1;var b=cw(S().V,"rmmt")==1,c=!!a.G("isViewable");(b?!c:1)&&qw().setTimeout(Nw(524,function(){a.R||(bB(a),Ow(540,Error()),a.H="mt",xx(a,"w"))}),500);cB(a);WA(a,a.j.bb.AFMA_LIDAR,dB)},cB=function(a){var b=cw(S().V,"sneio")==1,c=a.j.bb.AFMA_LIDAR_EXP_1!==void 0,d= + a.j.bb.AFMA_LIDAR_EXP_2!==void 0;(b=b&&d)&&(a.j.bb.AFMA_LIDAR_EXP_2=!0);c&&(a.j.bb.AFMA_LIDAR_EXP_1=!b)},bB=function(a){a.G("removeEventListener",a.j.bb.AFMA_LIDAR,dB);a.T=!1};VA.prototype.ba=function(){var a=rx(),b=eB(this,"getMaxSize");a.g=new zn(0,b.width,b.height,0)};VA.prototype.fa=function(){rx().C=eB(this,"getScreenSize")}; + var eB=function(a,b){if(a.G("getState")==="loading")return new al(-1,-1);b=a.G(b);if(!b)return new al(-1,-1);a=parseInt(b.width,10);b=parseInt(b.height,10);return isNaN(a)||isNaN(b)?new al(-1,-1):new al(a,b)};VA.prototype.dispose=function(){bB(this);vx.prototype.dispose.call(this)}; + var ZA=function(){try{var a=L(VA);a.G("removeEventListener","ready",ZA);$A(a)}catch(b){Ow(541,b)}},dB=function(a,b){try{var c=L(VA);c.R=!0;var d=a?new zn(a.y,a.x+a.width,a.y+a.height,a.x):new zn(0,0,0,0);var e=Vw(),f=sx();var g=new Xw(e,f,c);g.g=d;g.volume=b;c.Yb(g)}catch(h){Ow(542,h)}},YA=function(a){var b=S(),c=L(VA);a&&!b.C&&(b.C=!0,c.Ta=!0,c.H&&xx(c,"w",!0))};var fB=function(a){this.key=a;this.defaultValue=!1;this.valueType="boolean"};var gB=new fB("45381479"),hB=new fB("45378663");var jB=function(){this.C=!1;this.M="";this.l=!1;this.g=this.j=null;var a={};this.ca=(a.start=this.kk,a.firstquartile=this.fk,a.midpoint=this.hk,a.thirdquartile=this.lk,a.complete=this.ck,a.error=this.dk,a.pause=this.Pg,a.resume=this.si,a.skip=this.jk,a.viewable_impression=this.tb,a.mute=this.od,a.unmute=this.od,a.fullscreen=this.gk,a.exitfullscreen=this.ek,a.fully_viewable_audible_half_duration_impression=this.tb,a.measurable_impression=this.tb,a.abandon=this.Pg,a.engagedview=this.tb,a.impression= + this.tb,a.creativeview=this.tb,a.progress=this.od,a.custom_metric_viewable=this.tb,a.bufferstart=this.Pg,a.bufferfinish=this.si,a.audio_measurable=this.tb,a.audio_audible=this.tb,a);a={};this.fa=(a.overlay_resize=this.ik,a.abandon=this.vg,a.close=this.vg,a.collapse=this.vg,a.overlay_unmeasurable_impression=function(b){return Cz(b,"overlay_unmeasurable_impression",sx())},a.overlay_viewable_immediate_impression=function(b){return Cz(b,"overlay_viewable_immediate_impression",sx())},a.overlay_unviewable_impression= + function(b){return Cz(b,"overlay_unviewable_impression",sx())},a.overlay_viewable_end_of_session_impression=function(b){return Cz(b,"overlay_viewable_end_of_session_impression",sx())},a);S().j=3;iB(this)};jB.prototype.o=function(a){yy(a,!1);Vz(a)};jB.prototype.H=function(){};var kB=function(a,b,c,d){a=a.F(null,d,!0,b);a.C=c;Wz([a]);return a}; + jB.prototype.F=function(a,b,c,d){var e=this;a=new nz(T,a,c?b:-1,7,this.dg(),this.Gh());a.Ba=d;aw(a.V);bw(a.V,"queryid",a.Ba);a.rf(this.M);Dy(a,function(){return e.T.apply(e,u(Ea.apply(0,arguments)))},function(){return e.ba.apply(e,u(Ea.apply(0,arguments)))});(d=L(Yz).g)&&zy(a,d);a.Qa.hc&&L(kA);return a}; + var lB=function(a,b,c){sr(b);var d=a.g;Xb(b,function(e){var f=$b(e.j,function(g){var h=IA(g);if(h==null)g=null;else if(g=new HA,h.visible!=null&&(g.g=h.visible/100),h.audible!=null&&(g.j=h.audible==1),h.time!=null){var k=h.timetype=="mtos"?"mtos":"tos",m=h.time,n=m.length-1;m=n>=0&&m.indexOf("%",n)==n?"%":"ms";h=parseInt(h.time,10);m=="%"&&(h/=100);m=="ms"?(g.l=h,g.o=-1):(g.l=-1,g.o=h);g.C=k===void 0?"tos":k}return g});dc(f,function(g){return g==null})||uz(c,new KA(e.id,e.g,f,d))})},mB=function(){var a= + [],b=S();a.push(L(jA));cw(b.V,"mvp_lv")&&a.push(L(VA));b=[new SA,new UA];b.push(new aA(a));b.push(new hA(T));return b},oB=function(a){if(!a.C){a.C=!0;try{var b=Vw(),c=S(),d=rx();Rw=b;c.o=79463069;a.j!=="o"&&(uA=gm(T));if(rw()){mA.g.uh=0;mA.g.xg=Vw()-b;var e=mB(),f=L(Yz);f.j=e;Zz(f,function(){nB()})?mA.done||(sA(),yx(f.g.g,a),oA()):d.l?nB():oA()}else wA=!0}catch(g){throw Sz.reset(),g;}}},pB=function(a){mA.j.cancel();vA=a;mA.done=!0},qB=function(a){if(a.j)return a.j;var b=L(Yz).g;if(b)switch(b.getName()){case "nis":a.j= + "n";break;case "gsv":a.j="m"}a.j||(a.j="h");return a.j},rB=function(a,b,c){if(a.g==null)return b.pd|=4,!1;a=a.g.report(c,b);b.pd|=a;return a==0};jB.prototype.bd=function(a){switch(a.Bb()){case 0:if(a=L(Yz).g)a=a.g,jc(a.D,this),a.N&&this.wb()&&Bx(a);nB();break;case 2:oA()}};jB.prototype.Yb=function(){};jB.prototype.wb=function(){return!1};var nB=function(){var a=[new hA(T)],b=L(Yz);b.j=a;Zz(b,function(){pB("i")})?mA.done||(sA(),oA()):pB("i")}; + jB.prototype.ba=function(a,b){a.Gb=!0;switch(a.Za()){case 1:sB(a,b);break;case 2:this.Ug(a)}this.Wg(a)};var sB=function(a,b){if(!a.Gd){var c=Cz(a,"start",sx());c=a.Qg.g(c).g;var d={id:"lidarv"};d.r=b;d.sv="963";BA!==null&&(d.v=BA);Ol(c,function(e,f){return d[e]=e=="mtos"||e=="tos"?f:encodeURIComponent(f)});b=xA();Ol(b,function(e,f){return d[e]=encodeURIComponent(f)});b="//pagead2.googlesyndication.com/pagead/gen_204?"+Mx(Kx(new Ix,d));Px(b);a.Gd=!0}};l=jB.prototype; + l.kk=function(a){var b=a.D(a);b&&(b=b.volume,a.xd=mx(b)&&b>0);zz(a,0);return Cz(a,"start",sx())};l.od=function(a,b,c){pA(mA,[a],!sx());return this.tb(a,b,c)};l.tb=function(a,b,c){return Cz(a,c,sx())};l.fk=function(a){return tB(a,"firstquartile",1)};l.hk=function(a){a.Pa=!0;return tB(a,"midpoint",2)};l.lk=function(a){return tB(a,"thirdquartile",3)};l.ck=function(a){var b=tB(a,"complete",4);oz(a);return b};l.dk=function(a){a.za=3;return Cz(a,"error",sx())}; + var tB=function(a,b,c){pA(mA,[a],!sx());zz(a,c);c!=4&&yz(a.R,c,a.Ce);return Cz(a,b,sx())};l=jB.prototype;l.si=function(a,b,c){b=sx();a.za!=2||b||(a.Ja().G=Vw());pA(mA,[a],!b);a.za==2&&(a.za=1);return Cz(a,c,b)};l.jk=function(a,b){b=this.od(a,b||{},"skip");oz(a);return b};l.gk=function(a,b){yy(a,!0);return this.od(a,b||{},"fullscreen")};l.ek=function(a,b){yy(a,!1);return this.od(a,b||{},"exitfullscreen")}; + l.Pg=function(a,b,c){b=a.Ja();b.ba=bz(b,Vw(),a.za!=1);pA(mA,[a],!sx());a.za==1&&(a.za=2);return Cz(a,c,sx())};l.ik=function(a){pA(mA,[a],!sx());return a.j()};l.vg=function(a){pA(mA,[a],!sx());this.ni(a);oz(a);return a.j()}; + var iB=function(a){tA(function(){var b=uB();a.j!=null&&(b.sdk=a.j);var c=L(Yz);c.g!=null&&(b.avms=c.g.getName());return b})},vB=function(a,b,c,d){var e=Qz(Sz,c);e!==null&&e.Ba!==b&&(a.o(e),e=null);e||(b=a.F(c,Vw(),!1,b),Sz.j.length==0&&(S().o=79463069),Xz([b]),e=b,e.C=qB(a),d&&(e.qc=d));return e};jB.prototype.T=function(){};var xB=function(a,b){b.G=0;for(var c in wr)a[c]==null&&(b.G|=wr[c]);wB(a,"currentTime");wB(a,"duration")};l=jB.prototype;l.Ug=function(){};l.ni=function(){};l.ph=function(){}; + l.Wg=function(){};l.eg=function(){};l.Gh=function(){this.g||(this.g=this.eg());return this.g==null||this.l?new gz:new QA(this.g)};l.dg=function(){return new LA};var wB=function(a,b){var c=a[b];c!==void 0&&c>0&&(a[b]=Math.floor(c*1E3))},uB=function(){var a=rx(),b={},c={},d={};return Object.assign({},(b.sv="963",b),BA!==null&&(c.v=BA,c),(d["if"]=a.l?"1":"0",d.nas=String(Sz.g.length),d))};var yB=function(a){dz.call(this,"audio_audible",a)};v(yB,dz);yB.prototype.g=function(a){return a.Ae()==4};var zB=function(a){ez.call(this,"audio_measurable",a)};v(zB,ez);zB.prototype.g=function(a){a=a.Ae();return a==3||a==4};var AB=function(){NA.apply(this,arguments)};v(AB,NA);AB.prototype.j=function(){return new zB(this.g)};AB.prototype.l=function(){return[new yB(this.g)]};var BB=function(){};v(BB,Uy);BB.prototype.g=function(a){a&&(a.e===28&&(a=Object.assign({},a,{avas:3})),a.vs===4||a.vs===5)&&(a=Object.assign({},a,{vs:3}));var b=new Ty;b.g=Vy(a,Ry);b.j=Vy(a,Sy);return b};var CB=function(a){this.j=a};CB.prototype.report=function(a,b){var c=this.g(b);if(typeof c==="function"){var d={};var e={};d=Object.assign({},BA!==null&&(d.v=BA,d),(e.sv="963",e.cb=AA,e.e=DB(a),e));e=Cz(b,a,sx());Wj(d,e);b.Hi[a]=e;d=b.Za()==2?Ox(d).join("&"):b.Qg.g(d).g;try{return c(b.Ba,d,a),0}catch(f){return 2}}else return 1};var DB=function(a){var b=EA(a)?"custom_metric_viewable":a;a=Pj(function(c){return c==b});return Ar[a]};CB.prototype.g=function(){return Ia(this.j)};var EB=function(a,b){this.j=a;this.l=b};v(EB,CB);EB.prototype.g=function(a){if(!a.qc)return CB.prototype.g.call(this,a);if(this.l[a.qc])return function(){};Ow(393,Error());return null};var FB=function(){jB.call(this);this.N=void 0;this.W=null;this.J=!1;this.G={};this.R=0;this.D="ACTIVE_VIEW_TRAFFIC_TYPE_UNSPECIFIED"};v(FB,jB);var GB=function(){var a=L(FB),b=qB(a)=="h"||qB(a)=="b",c=!(S(),!1);b&&c&&(a.J=!0,a.W=new Iz)}; + FB.prototype.H=function(a,b){var c=this,d=L(Yz);if(d.g!=null)switch(d.g.getName()){case "nis":var e=HB(this,a,b);break;case "gsv":e=IB(this,a,b);break;case "exc":e=JB(this,a)}e||(b.opt_overlayAdElement?e=void 0:b.opt_adElement&&(e=vB(this,a,b.opt_adElement,b.opt_osdId)));e&&e.Za()==1&&(e.D==yj&&(e.D=function(f){return c.ph(f)}),KB(this,e,b));return e};var KB=function(a,b,c){c=c.opt_configurable_tracking_events;a.g!=null&&Array.isArray(c)&&lB(a,c,b)}; + FB.prototype.ph=function(a){a.j=0;a.T=0;if(a.C=="h"||a.C=="n"){if(S().l)var b=Ia("ima.bridge.getVideoMetadata");else if(a.qc&&LB(this)){var c=this.G[a.qc];c?b=function(e){return MB(c,e)}:c!==null&&Ow(379,Error())}else b=Ia("ima.common.getVideoMetadata");if(typeof b==="function")try{var d=b(a.Ba)}catch(e){a.j|=4}else a.j|=2}else if(a.C=="b")if(b=Ia("ytads.bulleit.getVideoMetadata"),typeof b==="function")try{d=b(a.Ba)}catch(e){a.j|=4}else a.j|=2;else if(a.C=="ml")if(b=Ia("ima.common.getVideoMetadata"), + typeof b==="function")try{d=b(a.Ba)}catch(e){a.j|=4}else a.j|=2;else a.j|=1;a.j||(d===void 0?a.j|=8:d===null?a.j|=16:Rj(d)?a.j|=32:d.errorCode!=null&&(a.T=d.errorCode,a.j|=64));d==null&&(d={});xB(d,a);mx(d.volume)&&mx(this.N)&&(d.volume*=this.N);return d}; + var IB=function(a,b,c){var d=Pz(Sz,b);d||(d=c.opt_nativeTime||-1,d=kB(a,b,qB(a),d),c.opt_osdId&&(d.qc=c.opt_osdId));return d},HB=function(a,b,c){var d=Pz(Sz,b);d||(d=kB(a,b,"n",c.opt_nativeTime||-1));return d},JB=function(a,b){var c=Pz(Sz,b);c||(c=kB(a,b,"h",-1));return c};FB.prototype.eg=function(){if(LB(this))return new EB("ima.common.triggerExternalActivityEvent",this.G);var a=NB(this);return a!=null?new CB(a):null}; + var NB=function(a){var b=S();switch(qB(a)){case "b":return"ytads.bulleit.triggerExternalActivityEvent";case "n":return"ima.bridge.triggerExternalActivityEvent";case "h":if(b.l)return"ima.bridge.triggerExternalActivityEvent";case "m":case "ml":return"ima.common.triggerExternalActivityEvent"}return null};FB.prototype.Ug=function(a){!a.g&&a.Gb&&rB(this,a,"overlay_unmeasurable_impression")&&(a.g=!0)}; + FB.prototype.ni=function(a){a.xi&&(a.Ib()?rB(this,a,"overlay_viewable_end_of_session_impression"):rB(this,a,"overlay_unviewable_impression"),a.xi=!1)}; + var OB=function(a,b,c,d){c=c===void 0?{}:c;var e={};Wj(e,{opt_adElement:void 0,opt_fullscreen:void 0},c);var f=a.H(b,c);c=f?f.Qg:a.dg();if(e.opt_bounds)return c.g(DA("ol",d));if(d!==void 0)if(CA(d)!==void 0)if(wA)a=DA("ue",d);else if(oB(a),vA=="i")a=DA("i",d),a["if"]=0;else if(b=a.H(b,e)){b:{vA=="i"&&(b.Gb=!0,a.Wg(b));f=e.opt_fullscreen;f!==void 0&&yy(b,!!f);var g;if(g=!rx().j&&!Es()&&ow(qw().j)){switch(b.Za()){case 1:sB(b,"pv");break;case 2:a.Ug(b)}pB("pv")}f=d.toLowerCase();if(g=!g)c:{if(cw(S().V, + "ssmol")&&(g=a.l,f==="loaded"))break c;g=ic(xr,f)}if(g&&b.za==0){vA!="i"&&(mA.done=!1);g=e!==void 0?e.opt_nativeTime:void 0;Tw=g=typeof g==="number"?g:Vw();b.Fd=!0;var h=sx();b.za=1;b.ua={};b.ua.start=!1;b.ua.firstquartile=!1;b.ua.midpoint=!1;b.ua.thirdquartile=!1;b.ua.complete=!1;b.ua.resume=!1;b.ua.pause=!1;b.ua.skip=!1;b.ua.mute=!1;b.ua.unmute=!1;b.ua.viewable_impression=!1;b.ua.measurable_impression=!1;b.ua.fully_viewable_audible_half_duration_impression=!1;b.ua.fullscreen=!1;b.ua.exitfullscreen= + !1;b.hg=0;h||(b.Ja().G=g);pA(mA,[b],!h)}(g=b.Sc[f])&&b.qa.reportEvent(g);cw(S().V,"fmd")||ic(yr,f)&&b.Kb&&b.Kb.j(b,null);switch(b.Za()){case 1:var k=EA(f)?a.ca.custom_metric_viewable:a.ca[f];break;case 2:k=a.fa[f]}if(k&&(d=k.call(a,b,e,d),cw(S().V,"fmd")&&ic(yr,f)&&b.Kb&&b.Kb.j(b,null),d!==void 0)){e=DA(void 0,f);Wj(e,d);d=e;break b}d=void 0}b.za==3&&a.o(b);a=d}else a=DA("nf",d);else a=void 0;else wA?a=DA("ue"):f?(a=DA(),Wj(a,Bz(f,!0,!1,!1))):a=DA("nf");return typeof a==="string"?c.g():c.g(a)}; + FB.prototype.T=function(a){this.l&&a.Za()==1&&PB(this,a)};FB.prototype.Wg=function(a){this.l&&a.Za()==1&&PB(this,a)};var PB=function(a,b){var c;if(b.qc&&LB(a)){var d=a.G[b.qc];d?c=function(f,g){QB(d,f,g)}:d!==null&&Ow(379,Error())}else c=Ia("ima.common.triggerViewabilityMeasurementUpdate");if(typeof c==="function"){var e=wz(b);e.nativeVolume=a.N;c(b.Ba,e)}},LB=function(a){return S().l||qB(a)!="h"&&qB(a)!="m"?!1:a.R!=0}; + FB.prototype.F=function(a,b,c,d){if(Aw(S().flags,hB)){var e=cw(S().V,"mm"),f={};(e=(f[vr.Mi]="ACTIVE_VIEW_TRAFFIC_TYPE_AUDIO",f[vr.VIDEO]="ACTIVE_VIEW_TRAFFIC_TYPE_VIDEO",f)[e])&&e&&(this.D=e);this.D==="ACTIVE_VIEW_TRAFFIC_TYPE_UNSPECIFIED"&&Ow(1044,Error())}a=jB.prototype.F.call(this,a,b,c,d);this.J&&(b=this.W,a.o==null&&(a.o=new Gy),b.g[a.Ba]=a.o,a.o.C=Fz);return a};FB.prototype.o=function(a){a&&a.Za()==1&&this.J&&delete this.W.g[a.Ba];return jB.prototype.o.call(this,a)}; + FB.prototype.Gh=function(){this.g||(this.g=this.eg());return this.g==null||this.l?new gz:this.D==="ACTIVE_VIEW_TRAFFIC_TYPE_AUDIO"?new AB(this.g):new QA(this.g)};FB.prototype.dg=function(){return this.D==="ACTIVE_VIEW_TRAFFIC_TYPE_AUDIO"?new BB:new LA};var RB=function(a){var b={};return b.viewability=a.g,b.googleViewability=a.j,b},SB=function(a,b,c){c=c===void 0?{}:c;a=OB(L(FB),b,c,a);return RB(a)};B("Goog_AdSense_Lidar_sendVastEvent",Nw(193,SB,void 0,uB)); + B("Goog_AdSense_Lidar_getViewability",Nw(194,function(a,b){b=b===void 0?{}:b;a=OB(L(FB),a,b);return RB(a)}));B("Goog_AdSense_Lidar_getUrlSignalsArray",Nw(195,function(){return tw()}));B("Goog_AdSense_Lidar_getUrlSignalsList",Nw(196,function(){return JSON.stringify(tw())}));var TB=ia(["//tpc.googlesyndication.com/sodar/",""]);z.console&&typeof z.console.log==="function"&&Ua(z.console.log,z.console);var UB=function(a){for(var b=[],c=a=wl(a.ownerDocument);c!=a.top;c=c.parent)if(c.frameElement)b.push(c.frameElement);else break;return b};var VB=function(a,b){this.type=a;this.currentTarget=this.target=b;this.defaultPrevented=this.g=!1};VB.prototype.stopPropagation=function(){this.g=!0};VB.prototype.preventDefault=function(){this.defaultPrevented=!0};var WB=function(a,b){VB.call(this,a?a.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=0;this.key="";this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.pointerId=0;this.pointerType="";this.Tc=null;a&&this.init(a,b)};Ya(WB,VB); + WB.prototype.init=function(a,b){var c=this.type=a.type,d=a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.currentTarget=b;b=a.relatedTarget;b||(c=="mouseover"?b=a.fromElement:c=="mouseout"&&(b=a.toElement));this.relatedTarget=b;d?(this.clientX=d.clientX!==void 0?d.clientX:d.pageX,this.clientY=d.clientY!==void 0?d.clientY:d.pageY,this.screenX=d.screenX||0,this.screenY=d.screenY||0):(this.clientX=a.clientX!==void 0?a.clientX:a.pageX,this.clientY= + a.clientY!==void 0?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0);this.button=a.button;this.key=a.key||"";this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.pointerId=a.pointerId||0;this.pointerType=a.pointerType;this.state=a.state;this.Tc=a;a.defaultPrevented&&WB.kb.preventDefault.call(this)}; + WB.prototype.stopPropagation=function(){WB.kb.stopPropagation.call(this);this.Tc.stopPropagation?this.Tc.stopPropagation():this.Tc.cancelBubble=!0};WB.prototype.preventDefault=function(){WB.kb.preventDefault.call(this);var a=this.Tc;a.preventDefault?a.preventDefault():a.returnValue=!1};var XB="closure_listenable_"+(Math.random()*1E6|0),YB=function(a){return!(!a||!a[XB])};var ZB=0;var $B=function(a,b,c,d,e){this.listener=a;this.proxy=null;this.src=b;this.type=c;this.capture=!!d;this.Ge=e;this.key=++ZB;this.Vd=this.he=!1},aC=function(a){a.Vd=!0;a.listener=null;a.proxy=null;a.src=null;a.Ge=null};var bC=function(a){this.src=a;this.g={};this.j=0};bC.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.g[f];a||(a=this.g[f]=[],this.j++);var g=cC(a,b,d,e);g>-1?(b=a[g],c||(b.he=!1)):(b=new $B(b,this.src,f,!!d,e),b.he=c,a.push(b));return b};bC.prototype.remove=function(a,b,c,d){a=a.toString();if(!(a in this.g))return!1;var e=this.g[a];b=cC(e,b,c,d);return b>-1?(aC(e[b]),kc(e,b),e.length==0&&(delete this.g[a],this.j--),!0):!1}; + var dC=function(a,b){var c=b.type;c in a.g&&jc(a.g[c],b)&&(aC(b),a.g[c].length==0&&(delete a.g[c],a.j--))};bC.prototype.Hd=function(a,b,c,d){a=this.g[a.toString()];var e=-1;a&&(e=cC(a,b,c,d));return e>-1?a[e]:null};var cC=function(a,b,c,d){for(var e=0;e>>0),jC=function(a){if(typeof a==="function")return a;a[rC]||(a[rC]=function(b){return a.handleEvent(b)});return a[rC]};var U=function(){R.call(this);this.F=new bC(this);this.Pa=this;this.ca=null};Ya(U,R);U.prototype[XB]=!0;l=U.prototype;l.addEventListener=function(a,b,c,d){iC(this,a,b,c,d)};l.removeEventListener=function(a,b,c,d){pC(this,a,b,c,d)}; + l.dispatchEvent=function(a){var b,c=this.ca;if(c)for(b=[];c;c=c.ca)b.push(c);c=this.Pa;var d=a.type||a;if(typeof a==="string")a=new VB(a,c);else if(a instanceof VB)a.target=a.target||c;else{var e=a;a=new VB(d,c);Wj(a,e)}e=!0;if(b)for(var f=b.length-1;!a.g&&f>=0;f--){var g=a.currentTarget=b[f];e=sC(g,d,!0,a)&&e}a.g||(g=a.currentTarget=c,e=sC(g,d,!0,a)&&e,a.g||(e=sC(g,d,!1,a)&&e));if(b)for(f=0;!a.g&&f0){this.j--;var a=this.g;this.g=a.next;a.next=null}else a=this.l();return a};var uC=function(a,b){a.o(b);a.j<100&&(a.j++,b.next=a.g,a.g=b)};var vC,wC=function(){var a=z.MessageChannel;typeof a==="undefined"&&typeof window!=="undefined"&&window.postMessage&&window.addEventListener&&!E("Presto")&&(a=function(){var e=zl(document,"IFRAME");e.style.display="none";document.documentElement.appendChild(e);var f=e.contentWindow;e=f.document;e.open();e.close();var g="callImmediate"+Math.random(),h=f.location.protocol=="file:"?"*":f.location.protocol+"//"+f.location.host;e=Ua(function(k){if((h=="*"||k.origin==h)&&k.data==g)this.port1.onmessage()}, + this);f.addEventListener("message",e,!1);this.port1={};this.port2={postMessage:function(){f.postMessage(g,h)}}});if(typeof a!=="undefined"){var b=new a,c={},d=c;b.port1.onmessage=function(){if(c.next!==void 0){c=c.next;var e=c.Dh;c.Dh=null;e()}};return function(e){d.next={Dh:e};d=d.next;b.port2.postMessage(0)}}return function(e){z.setTimeout(e,0)}};var xC=function(){this.j=this.g=null};xC.prototype.add=function(a,b){var c=yC.get();c.set(a,b);this.j?this.j.next=c:this.g=c;this.j=c};xC.prototype.remove=function(){var a=null;this.g&&(a=this.g,this.g=this.g.next,this.g||(this.j=null),a.next=null);return a};var yC=new tC(function(){return new zC},function(a){return a.reset()}),zC=function(){this.next=this.g=this.j=null};zC.prototype.set=function(a,b){this.j=a;this.g=b;this.next=null};zC.prototype.reset=function(){this.next=this.g=this.j=null};var AC,BC=!1,CC=new xC,EC=function(a,b){AC||DC();BC||(AC(),BC=!0);CC.add(a,b)},DC=function(){if(z.Promise&&z.Promise.resolve){var a=z.Promise.resolve(void 0);AC=function(){a.then(FC)}}else AC=function(){var b=FC;typeof z.setImmediate!=="function"||z.Window&&z.Window.prototype&&z.Window.prototype.setImmediate==z.setImmediate?(vC||(vC=wC()),vC(b)):z.setImmediate(b)}},FC=function(){for(var a;a=CC.remove();){try{a.j.call(a.g)}catch(b){pb(b)}uC(yC,a)}BC=!1};var GC=function(a){if(!a)return!1;try{return!!a.$goog_Thenable}catch(b){return!1}};var IC=function(a){this.g=0;this.D=void 0;this.o=this.j=this.l=null;this.C=this.F=!1;if(a!=yj)try{var b=this;a.call(void 0,function(c){HC(b,2,c)},function(c){HC(b,3,c)})}catch(c){HC(this,3,c)}},JC=function(){this.next=this.context=this.j=this.l=this.g=null;this.o=!1};JC.prototype.reset=function(){this.context=this.j=this.l=this.g=null;this.o=!1}; + var KC=new tC(function(){return new JC},function(a){a.reset()}),LC=function(a,b,c){var d=KC.get();d.l=a;d.j=b;d.context=c;return d},NC=function(a,b,c){MC(a,b,c,null)||EC(Va(b,a))},OC=function(a){return new IC(function(b){var c=a.length,d=[];if(c)for(var e=function(h,k,m){c--;d[h]=k?{Xj:!0,value:m}:{Xj:!1,reason:m};c==0&&b(d)},f=0,g;f1)));g=g.next)e||(f=g);e&&(c.g==0&&d==1?RC(c,b):(f?(d=f,d.next==c.o&&(c.o=d),d.next=d.next.next):SC(c),TC(c,e,3,b)))}a.l=null}else HC(a,3,b)},VC=function(a,b){a.j||a.g!=2&&a.g!=3||UC(a);a.o?a.o.next=b:a.j=b;a.o=b},PC=function(a,b,c,d){var e=LC(null,null,null);e.g=new IC(function(f,g){e.l=b?function(h){try{var k=b.call(d,h);f(k)}catch(m){g(m)}}:f;e.j=c?function(h){try{var k=c.call(d, + h);k===void 0&&h instanceof QC?g(h):f(k)}catch(m){g(m)}}:g});e.g.l=a;VC(a,e);return e.g};IC.prototype.J=function(a){this.g=0;HC(this,2,a)};IC.prototype.N=function(a){this.g=0;HC(this,3,a)}; + var HC=function(a,b,c){a.g==0&&(a===c&&(b=3,c=new TypeError("Promise cannot resolve to itself")),a.g=1,MC(c,a.J,a.N,a)||(a.D=c,a.g=b,a.l=null,UC(a),b!=3||c instanceof QC||WC(a,c)))},MC=function(a,b,c,d){if(a instanceof IC)return VC(a,LC(b||yj,c||null,d)),!0;if(GC(a))return a.then(b,c,d),!0;if(Na(a))try{var e=a.then;if(typeof e==="function")return XC(a,e,b,c,d),!0}catch(f){return c.call(d,f),!0}return!1},XC=function(a,b,c,d,e){var f=!1,g=function(k){f||(f=!0,c.call(e,k))},h=function(k){f||(f=!0,d.call(e, + k))};try{b.call(a,g,h)}catch(k){h(k)}},UC=function(a){a.F||(a.F=!0,EC(a.H,a))},SC=function(a){var b=null;a.j&&(b=a.j,a.j=b.next,b.next=null);a.j||(a.o=null);return b};IC.prototype.H=function(){for(var a;a=SC(this);)TC(this,a,this.g,this.D);this.F=!1}; + var TC=function(a,b,c,d){if(c==3&&b.j&&!b.o)for(;a&&a.C;a=a.l)a.C=!1;if(b.g)b.g.l=null,YC(b,c,d);else try{b.o?b.l.call(b.context):YC(b,c,d)}catch(e){ZC.call(null,e)}uC(KC,b)},YC=function(a,b,c){b==2?a.l.call(a.context,c):a.j&&a.j.call(a.context,c)},WC=function(a,b){a.C=!0;EC(function(){a.C&&ZC.call(null,b)})},ZC=pb,QC=function(a){cb.call(this,a)};Ya(QC,cb);QC.prototype.name="cancel";var $C=function(a,b){U.call(this);this.j=a||1;this.g=b||z;this.l=Ua(this.rl,this);this.o=Wa()};Ya($C,U);l=$C.prototype;l.enabled=!1;l.xb=null;l.rl=function(){if(this.enabled){var a=Wa()-this.o;a>0&&a2147483647?-1:z.setTimeout(a,b||0)},bD=function(a,b){var c=null;return(new IC(function(d,e){c=aD(function(){d(b)},a);c==-1&&e(Error("Failed to schedule timer."))})).G(function(d){z.clearTimeout(c);throw d;})};var cD=function(){return Math.round(Date.now()/1E3)};var dD=function(){this.g={};return this};dD.prototype.remove=function(a){var b=this.g;a in b&&delete b[a]};dD.prototype.set=function(a,b){this.g[a]=b};var eD=function(a,b){a.g.eb=Tj(a.g,"eb",0)|b};dD.prototype.get=function(a){return Tj(this.g,a,null)};var fD=null,gD=function(){this.g={};this.j=0},hD=function(){fD||(fD=new gD);return fD},iD=function(a,b){a.g[b.getName()]=b},jD=function(a,b){this.o=a;this.l=!0;this.g=b};jD.prototype.getName=function(){return this.o};jD.prototype.getValue=function(){return this.g};jD.prototype.j=function(){return String(this.g)};var kD=function(a,b){jD.call(this,String(a),b);this.C=a;this.g=!!b};v(kD,jD);kD.prototype.j=function(){return this.g?"1":"0"};var lD=function(a,b){jD.call(this,a,b)};v(lD,jD); + lD.prototype.j=function(){return this.g?Math.round(this.g.top)+"."+Math.round(this.g.left)+"."+(Math.round(this.g.top)+Math.round(this.g.height))+"."+(Math.round(this.g.left)+Math.round(this.g.width)):""};var mD=function(a){if(a.match(/^-?[0-9]+\.-?[0-9]+\.-?[0-9]+\.-?[0-9]+$/)){a=a.split(".");var b=Number(a[0]),c=Number(a[1]);return new lD("",new Cn(c,b,Number(a[3])-c,Number(a[2])-b))}return new lD("",new Cn(0,0,0,0))};var nD=function(a){var b=new Cn(-Number.MAX_VALUE/2,-Number.MAX_VALUE/2,Number.MAX_VALUE,Number.MAX_VALUE),c=new Cn(0,0,0,0);if(!a||0==a.length)return c;for(var d=0;d0?(e=Dn(b),f=Dn(c),e=e.top>=f.top&&e.top0?(e=Dn(b),f=Dn(c),e=e.bottom<=f.bottom&&e.bottom>f.top):e=!1;iD(a,new kD(1024,e));d&&d>0?(e=Dn(b),f=Dn(c),e=e.left>=f.left&&e.left0?(b=Dn(b),c=Dn(c),c=b.right<=c.right&&b.right>c.left):c=!1;iD(a,new kD(4096,c))}};var qD=function(a,b){var c=0;Mj(wl(),"ima","video","client","tagged")&&(c=1);var d=null;a&&(d=a());if(d){a=hD();a.g={};var e=new kD(32,!0);e.l=!1;iD(a,e);e=wl().document;e=e.visibilityState||e.webkitVisibilityState||e.mozVisibilityState||e.msVisibilityState||"";iD(a,new kD(64,e.toLowerCase().substring(e.length-6)!="hidden"?!0:!1));a:{try{var f=wl().top;try{var g=!!f.location.href||f.location.href===""}catch(n){g=!1}if(g){var h=UB(d);var k=h&&h.length!=0?"1":"0";break a}k="2";break a}catch(n){k="2"; + break a}k=void 0}iD(a,new kD(256,k=="2"));iD(a,new kD(128,k=="1"));h=g=wl().top;k=="2"&&(h=wl());f=oD(d,h);iD(a,new lD("er",f));try{var m=h.document&&!h.document.body?null:ul(h||window)}catch(n){m=null}m?(h=vl(rl(h.document).g),iD(a,new kD(16384,!!h)),m=h?new Cn(h.x,h.y,m.width,m.height):null):m=null;iD(a,new lD("vi",m));if(m&&"1"==k){k=UB(d);d=[];for(h=0;h0?Math.round(window.performance.timing.domLoading/1E3):null;c.set.call(c,"td",cD()-(a!=null?a:b!=null?b:cD()))};new $C(200); + var rD=function(a,b){try{var c=new qD(a,b);a=[];var d=Number(c.g.get("eb"));c.g.remove("eb");var e,f=c.g;b=[];for(var g in f.g)b.push(g+f.g[g]);(e=b.join("_"))&&a.push(e);if(c.j){var h=c.j.serialize();h&&a.push(h)}var k,m=c.l;e=d;f=[];e||(e=0);for(var n in m.g){var p=m.g[n];if(p instanceof kD)p.getValue()&&(e|=p.C);else{var q=m.g[n],r=q.l?q.j():"";r&&f.push(n+r)}}f.push("eb"+String(e));(k=f.join("_"))&&a.push(k);c.g.set("eb",d);return a.join("_")}catch(w){return"tle;"+jl(w.name,12)+";"+jl(w.message, + 40)}};var sD=function(a){this.K=G(a)};v(sD,J);var tD=function(a){var b=new sD;return og(b,1,We(a))};var uD=[0,kj];var vD=function(a){this.K=G(a)};v(vD,J);var wD=function(a){var b=new vD;return lh(b,1,a)},xD=function(a){var b=window.Date.now();b=Number.isFinite(b)?Math.round(b):0;return og(a,3,ff(b))};vD.prototype.getError=function(){return H(this,sD,10)};vD.prototype.Qb=function(a){return Wg(this,10,a)};var yD=pj(vD);var zD=[0,fj,-1,Zi,bj,-2,Zi,Yi,dj,uD,dj];var AD=[0,1,[0,aj,-2],-1,fj,-1,dj,[0,3,kj,fj],Zi,lj,ij];var BD=function(a){this.K=G(a)};v(BD,J);BD.prototype.g=oj([0,gj,AD,gj,zD]);var CD=function(a){this.K=G(a)};v(CD,J);var DD=pj(CD);var ED=function(a){this.K=G(a)};v(ED,J);var FD=function(){this.g=Math.random()},GD=function(){var a=Fm,b=window.google_srt;b>=0&&b<=1&&(a.g=b)},Im=function(a,b,c,d,e){if(((d===void 0?0:d)?a.g:Math.random())<(e||.01))try{if(c instanceof wm)var f=c;else f=new wm,Zl(c,function(h,k){var m=f,n=m.o++;Am(m,n,xm(k,h))});var g=Dm(f,"https:","/pagead/gen_204?id="+b+"&");g&&Km(z,g)}catch(h){}};var Fm,HD,Em=new um(1,window);(function(a){Fm=a!=null?a:new FD;typeof window.google_srt!=="number"&&(window.google_srt=Math.random());GD();HD=new Gm;HD.xf(function(){});HD.Zg(!0);window.document.readyState=="complete"?window.google_measure_js_timing||Em.F():Em.l&&Ej(window,"load",function(){window.google_measure_js_timing||Em.F()})})();var ID=function(a){this.K=G(a)};v(ID,J);var JD=function(a){var b=new ID;Jg(b,1,Ve,a)};JD([1,8,9,10,11,12,2,3,4,5,15,16,19,20,21]);JD([1,6,7,9,10,11,12,2,3,4,5,13,14,18,19,20,21]);JD([1,6,7,9,10,11,12,2,3,4,5,13,14,17,18,19,20,21]);new ID;var KD,LD,MD,ND=function(){return z.navigator?z.navigator.userAgent:""},OD=Db(ND(),"(iPad")||Db(ND(),"(Macintosh")||Db(ND(),"(iPod")||Db(ND(),"(iPhone");var PD=[0,2,1],QD=null;document.addEventListener&&document.addEventListener("mousedown",function(a){QD=a},!0); + window.mb=function(a){if(a){var b;if(b=window.event||QD){var c;(c=b.which?1<=0?b.substring(0,d)+c+b.substring(e):b.substring(0,d)+c}a.href=c.length>6E4?b:c}}};var RD=/^((market|itms|intent|itms-appss):\/\/)/i;var SD=function(a,b,c){this.l=a;this.j=b;this.g=c};var TD=function(a,b,c,d,e){this.url=a;this.g=b;this.Z=d===void 0?null:d;this.mimeType=c===void 0?null:c;this.Zd=!(e===void 0||!e)};var UD=function(a,b){this.url=a;this.g=b===void 0?null:b};var VD=function(a,b,c,d){var e=c===void 0?{}:c;c=e.Aa===void 0?null:e.Aa;e=e.Qd===void 0?null:e.Qd;this.eventType=a;this.url=b;this.g=typeof d==="string"?d:null;this.Aa=c;this.Qd=e;this.id=null};var WD=function(a,b,c,d,e,f){this.g=a;this.url=b;this.o=c===void 0?null:c;this.l=d===void 0?null:d;this.j=e===void 0?null:e;this.id=f===void 0?null:f},XD=function(a){var b=null,c=null;a.Aa?b=parseInt(a.Aa/1E3,10):a.Qd&&(c=a.Qd);return new WD(a.eventType,a.url,b,c,a.g,a.id)},YD=function(a,b,c,d){return new WD(a,b,null,null,c,d===void 0?null:d)},ZD=function(a){return a.url instanceof UD?a.url.url:a.url},$D=function(a){return a.url instanceof UD?a.url:new UD(a.url,a.j)};WD.prototype.getId=function(){return this.id};var aE=function(){this.ga=new Map;this.O=new Map;this.C=[];this.Sb=this.id=null;this.Tb="video";this.G=null;this.ca=[];this.uc=null;this.ub=[]};aE.prototype.getId=function(){return this.id};aE.prototype.nb=function(a){this.ga.has(a.g)?this.ga.get(a.g).push(a):this.ga.set(a.g,[a])};var bE=function(a,b,c){this.j=a;this.l=b;this.g=c===void 0?null:c};bE.prototype.getName=function(){return this.j};var cE=function(){if(window.MutationObserver){var a=[];(new MutationObserver(function(){a.forEach(function(b){return b()});a=[]})).observe(document.createTextNode(""),{characterData:!0})}};typeof Promise==="function"&&String(Promise).indexOf("[native code]")>-1||cE();var dE=function(){this.adPosition=1;this.l=-1;this.wc=[];this.j=this.g=0;this.totalAds=1};dE.prototype.getAdPosition=function(){return this.adPosition};dE.prototype.getPodIndex=function(){return this.g};dE.prototype.getTimeOffset=function(){return this.j};dE.prototype.getTotalAds=function(){return this.totalAds};var hE=function(a,b){a=a===void 0?{}:a;b=b===void 0?new Map:b;eE(b,"ADCOUNT",function(){var e=a.pa;return(e=e===void 0?null:e)?e.getAdPosition().toString():"-1"});eE(b,"AD_MT",function(){var e=a.aa;e=e===void 0?null:e;return e==null?"-1":Math.round(Math.max(0,e.getCurrentTime()*1E3)).toString()});eE(b,"ADPLAYHEAD",function(){var e=a.aa;e=e===void 0?null:e;if(e==null)e="-1";else{e=e.getCurrentTime();var f=!0;f=f===void 0?!1:f;e=e<0?0:e;e=f?e:Math.round(e);if(f){var g=Math.floor(e/3600);if(Number.isFinite(g)){g= + String(g);var h=g.indexOf(".");h===-1&&(h=g.length);var k=g[0]==="-"?"-":"";k&&(g=g.substring(1));g=k+kl("0",Math.max(0,2-h))+g}else g=String(g);g+=":";h=Math.floor(e/60)%60<10?"0":""}else g=e>=3600?Math.floor(e/3600)+":":"",h=Math.floor(e/60)%60<10&&e>=3600?"0":"";e=""+g+h+Math.floor(e/60)%60+":"+(Math.floor(e%60)<10?"0":"")+Math.floor(e%60)+(f?(e%1).toFixed(3).slice(1):"")}return e});eE(b,"ADSERVINGID",function(){var e=a.ad;return(e=(e=e===void 0?null:e)&&e.uc)?e:"-1"});eE(b,"ASSETURI",function(){var e= + a.aa;e=e===void 0?null:e;return e==null?"-1":e.Mf()});fE(b,"CLICKPOS","-1");eE(b,"PODSEQUENCE",function(){var e=a.ad;return(e=e===void 0?null:e)&&e.G?e.G.toString():"-1"});var c=a,d=c.Al;c=c.Bl;fE(b,"UNIVERSALADID",d&&c?d+" "+c:"-1");return gE(a,b)},gE=function(a,b){a=a===void 0?{}:a;b=b===void 0?new Map:b;eE(b,"ADTYPE",function(){var d=a.ad;return(d=d===void 0?null:d)?d.Tb:"-1"});fE(b,"APPBUNDLE",a.appName||"-1");eE(b,"BREAKMAXADS",function(){var d=a.pa;return(d=d===void 0?null:d)?d.getTotalAds().toString(): + "-1"});fE(b,"BREAKMAXADLENGTH","-1");eE(b,"BREAKMAXDURATION",function(){var d=a.pa;return(d=d===void 0?null:d)?d.l.toString():"-1"});fE(b,"BREAKMINADLENGTH","-1");fE(b,"BREAKMINDURATION","-1");eE(b,"BREAKPOSITION",function(){var d=a.pa;d=d===void 0?null:d;d==null?d="-1":(d=d.getPodIndex(),d=d==0?"1":d==-1?"3":"2");return d});eE(b,"CACHEBUSTING",iE);fE(b,"CLICKTYPE",a.Lj||"-1");var c=a;fE(b,"CLIENTUA",jE({oe:c.oe,pe:c.pe,mf:c.mf,nf:c.nf}));fE(b,"CONTENTID","-1");fE(b,"CONTENTURI","-1");fE(b,"DEVICEIP", + "-1");fE(b,"DEVICEUA","-1");fE(b,"DOMAIN",a.domain||kE());fE(b,"GDPRCONSENT",a.Kh?a.Kh:"-1");fE(b,"IFA","-2");fE(b,"IFATYPE","-2");fE(b,"INVENTORYSTATE","-1");fE(b,"LATLONG","-1");eE(b,"LIMITADTRACKING",function(){return"-1"});eE(b,"MEDIAPLAYHEAD",function(){var d=a.pa;return(d=d===void 0?null:d)?d.getTimeOffset().toString():"-1"});eE(b,"OMIDPARTNER",function(){var d=a.Mg,e=a.Ek;d=d===void 0?null:d;e=e===void 0?null:e;return d==null||e==null?"-1":d+"/"+e});fE(b,"PAGEURL",a.pageUrl||lE());fE(b,"PLACEMENTTYPE", + a.gi||"-1");fE(b,"PLAYERSIZE","-1");fE(b,"PLAYERSTATE","-1");fE(b,"REGULATIONS","-1");fE(b,"SERVERSIDE","0");fE(b,"SERVERUA","-1");eE(b,"TIMESTAMP",mE);eE(b,"TRANSACTIONID",function(){var d=a.Pf;return(d=d===void 0?null:d)?d.transactionId.toString():"-1"});fE(b,"US_PRIVACY",a.Dl||"-1");a.Rc&&fE(b,"UACH",a.Rc);return b},fE=function(a,b,c){a.set(b,new bE(b,{toString:function(){return c}}))},eE=function(a,b,c){a.set(b,new bE(b,{toString:function(){return c()}}))},jE=function(a){var b=a.oe===void 0?null: + a.oe;var c=a.pe===void 0?null:a.pe;var d=a.mf===void 0?null:a.mf;a=a.nf===void 0?null:a.nf;if(!b&&!d)return"-1";var e="unknown";b&&(e=b+(c?"/"+c:""));b="";d&&(b=" "+d+(a?"/"+a:""));return e+b},iE=function(){return Math.round(Math.random()*1E8+1E8).toString().slice(1)},kE=function(){var a=ot()==2?null:wl().top.location.hostname;return a?a:"-1"},lE=function(){var a=ot()==2?null:wl().top.location.href;return a?a:"-1"},mE=function(){return(new Date).toISOString()};var nE=/(?:\[|%5B)([a-zA-Z0-9_]+)(?:\]|%5D)/g,oE=function(a,b){return a.replace(nE,function(c,d){d=b.get(d);if(d==null)return c;if(d.g==null)var e=!0;else try{e=d.g(a)||!1}catch(g){e=!1}if(e){b:{try{var f=d.l.toString();break b}catch(g){}f=null}e=f;e=e==null||e!=""&&D(ll(e))?null:encodeURIComponent(e).replace(/%2C/g,",")}else e=null;return e!=null?e:c})};var pE=function(a){this.G=a},qE=function(a,b){return a.map(function(c){c=typeof c==="string"?new UD(c):c;return new UD(oE(c.url,b),c.g==null?null:oE(c.g,b))})},sE=function(a,b,c,d){c=c===void 0?null:c;d=d===void 0?!1:d;b=b.map(function(e){return typeof e==="string"?new UD(e):e});c=c?qE(b,c):b;rE(a.G,c,d)};var uE=function(a,b,c){c=c===void 0?[]:c;this.G=b;var d=this;this.D=a;this.H=c;this.g=new Map;this.j=new Map;this.l=new Map;this.F=[];this.o=this.C=-1;N(M.getInstance(),"ua_e",navigator&&navigator.userActivation?"1":"0");M.getInstance().g.R.push(function(){return tE(d)})};v(uE,pE);uE.prototype.report=function(a,b){b=b===void 0?vE(this,a):b;wE(this,a,b||[])}; + var wE=function(a,b,c){var d=c.map(function(f){return typeof f==="string"?new UD(f):f});if(Ip(jq)){var e=[];a.F.forEach(function(f){f=xE(b,f);f!==void 0&&e.push(f)});e.length===0?yE(a,b,d):Promise.all(e).then(function(f){f=f[0];Array.isArray(f)&&f.every(function(g){return typeof g==="string"})?yE(a,b,f.map(function(g){return new UD(g)})):yE(a,b,d)})}else a.F.forEach(function(f){return xE(b,f)}),yE(a,b,d)},yE=function(a,b,c){zE(a,b)?AE(a,b,c):BE(a,b)&&(b=="skip"&&navigator&&navigator.userActivation&& + (N(M.getInstance(),"uas_hba",navigator.userActivation.hasBeenActive?"1":"0"),N(M.getInstance(),"uas_ia",navigator.userActivation.isActive?"1":"0")),c.filter(function(d){return d.url.match(/\/aclk.*label=video_engaged_view/)}).length&&(b=="complete"&&ho(M.getInstance(),"evoace"),b=="progress"&&ho(M.getInstance(),"evoape"),b=="engagedView"&&ho(M.getInstance(),"evoaeve")),CE(a,b,c))},CE=function(a,b,c){a.g.has(b)?a.g.set(b,a.g.get(b)+1):a.g.set(b,1);c.length&&(c.map(function(d){return{td:Rl(d.url,"ad_signals"), + label:Rl(d.url,"label")}}).filter(function(d){return!!d.td}).forEach(function(d){var e=d.td;d=d.label||"";var f=f===void 0?z:f;if(e!=="")if(b==="impression"||b==="click"){var g=new ED;g=lh(g,1,e);g=lh(g,6,d);if(b==="click"){lh(g,10,Date.now().toString());var h=Kh(g),k;(k=f.fence)==null||k.setReportEventDataForAutomaticBeacons({eventType:"reserved.top_navigation",eventData:h,destination:["buyer"],once:!0});var m;(m=f.fence)==null||m.setReportEventDataForAutomaticBeacons({eventType:"reserved.top_navigation_start", + eventData:h,destination:["buyer"],once:!0})}else b==="impression"&&og(g,9,We(1));var n;(n=f.fence)==null||n.reportEvent({eventType:b,eventData:Kh(g),destination:["buyer"]})}else k={td:e,label:d||b},h=h===void 0?z:h,f=new ED,k!=null&&(k.td!=null&&lh(f,1,k.td),k.yl!=null&&lh(f,3,k.yl),k.label!=null&&lh(f,6,k.label),k.xk!=null&&lh(f,7,k.xk),k.Nj!=null&&lh(f,8,k.Nj),k.dl!=null&&lh(f,11,k.dl)),k=h,k=k===void 0?window:k,(g=k.fence)==null||g.reportEvent({eventType:"interaction",eventData:Kh(f),destination:["buyer"]})}), + c=c.filter(function(d){return!Rl(d.url,"ad_signals")}),c.length&&sE(a,c,a.l,a.H.includes(b)));DE(a,b)},DE=function(a,b){var c=null;b==="impression"?c="measurable_impression":b==="measurable_impression"&&(c="viewable_impression");c!=null&&a.j.has(c)&&(b=a.j.get(c)||[],a.j.delete(c),CE(a,c,b))},EE=function(a,b,c){var d=a.D.get("progress");if(!(d==null||d.length<=0)){var e=[],f=a.C,g=a.o;d.forEach(function(h){var k=h.o,m=h.l;m&&m<=b*1E5/c&&m>a.o?(g=m>g?m:g,e.push($D(h))):k&&k<=b&&k>a.C&&(f=k>f?k:f,e.push($D(h)))}); + a.C=f;a.o=g;e.length>0&&a.report("progress",e)}},FE=function(a,b){a.l.set(b.getName(),b)},GE=function(a,b){b.forEach(function(c){return FE(a,c)})},HE=function(a,b){a.F.push(b)},AE=function(a,b,c){var d=c;a.l!=null&&(d=qE(c,a.l));a.j.has(b)?d.forEach(function(e){return void a.j.get(b).push(e)}):a.j.set(b,d)},zE=function(a,b){if(a.g.has(b))return!1;switch(b){case "measurable_impression":return!a.g.has("impression");case "viewable_impression":return!a.g.has("impression")||!a.g.has("measurable_impression"); + default:return!1}},BE=function(a,b){switch(b){case "abandon":return!a.g.has(b)&&!a.g.has("skip")&&!a.g.has("instreamAdComplete")&&a.g.has("impression");case "instreamAdComplete":case "complete":return!a.g.has(b)&&!a.g.has("skip");case "mute":case "unmute":case "pause":case "resume":case "fullscreen":case "exitFullscreen":case "progress":case "error":case "click":case "expand":case "collapse":return!0;default:return!a.g.has(b)}},xE=function(a,b){try{var c=b(a);if(typeof c==="object"&&typeof c.then=== + "function")return c||Promise.resolve()}catch(d){}},vE=function(a,b){return(a.D.get(b)||[]).map(function(c){return $D(c)})},tE=function(a){N(M.getInstance(),"rec",Array.from(a.g,function(b){var c=t(b);b=c.next().value;c=c.next().value;return b+"-"+c}).join("|"))};var IE={},JE=(IE.GOOGLE_VIEWABILITY="://pubads.g.doubleclick.net ://googleads.g.doubleclick.net ://ad[.-]([a-z0-9]+.){0,1}doubleclick.net ://ade\\.googlesyndication\\.com ://pagead2.googlesyndication.com ://([a-z0-9]+[.])*youtube.com".split(" "),IE),KE=new Map,LE=function(a,b,c,d,e,f){d=d===void 0?!1:d;e=e===void 0?null:e;f=f===void 0?!1:f;R.call(this);var g=this;this.l=e?e:String(Math.floor(Math.random()*1E9));this.j=b;this.g=c;this.H=d;this.G=f;this.o=new jw;this.F=(a=a.O.get(SD))?a.j:"";this.C= + a?a.g:"";this.D=a?a.l:[];HE(this.j,function(h){g.J(h)});a=Pp();fw(a);KE.set(this.l,this)};v(LE,R);LE.prototype.reportEvent=function(a){this.j.report(a)};var NE=function(a,b){FE(a.j,new bE("VIEWABILITY",b.viewability));FE(a.j,new bE("GOOGLE_VIEWABILITY",b.googleViewability,function(c){return function(d){return ME(d,c)}}("GOOGLE_VIEWABILITY")))}; + LE.prototype.J=function(a){var b=this.l,c=this.g,d=this.D;d=d===void 0?[]:d;var e=c.qg()||void 0,f={};c=(f.opt_fullscreen=c.bc(),f.opt_adElement=e,f);a=="start"&&(c.opt_configurable_tracking_events=d);a=SB(a,b,c);NE(this,a)};var ME=function(a,b){b=JE[b];return b==null?!0:b.some(function(c){return a.match(c)!=null})};LE.prototype.Y=function(){KE.delete(this.l);this.g=this.j=null;this.o=new jw};B("ima.common.triggerExternalActivityEvent",function(a,b,c){(a=KE.get(a))&&a.reportEvent(c)}); + B("ima.common.getVideoMetadata",function(a){return(a=KE.get(a))?{currentTime:a.g.getCurrentTime(),duration:a.g.getDuration(),zn:a.G,volume:a.g.Le()?0:a.g.getVolume()}:{}});var OE=function(a){this.g=a===void 0?null:a};var PE=function(a){this.g=a};var QE=function(a){this.K=G(a)};v(QE,J);QE.prototype.getValue=function(){return fh(this,1)};QE.prototype.getVersion=function(){return I(this,5)};var RE=function(a){this.g=a};var SE=function(a){this.g=a};var TE=function(a){this.g=a},UE=function(){TE.apply(this,arguments)};v(UE,TE);var VE=function(){TE.apply(this,arguments)};v(VE,TE);var WE=function(){};var XE=function(a){this.g=a===void 0?null:a};var YE=function(a,b){var c=b===void 0?{}:b;b=c.vendor===void 0?null:c.vendor;var d=c.Pb===void 0?null:c.Pb;var e=c.parameters===void 0?null:c.parameters;c=c.ga===void 0?[]:c.ga;this.g=a;this.vendor=b;this.parameters=e;this.Pb=d;this.ga=c},ZE=function(){this.g=[]},$E=function(a,b,c,d,e,f){a.g.push(new YE(c,{vendor:b,parameters:d,Pb:e,ga:f}))};var aF=function(a){this.g=a};aF.prototype.getDealId=function(){return this.g};var bF=function(a,b,c,d){this.l=a;this.g=d===void 0?null:d;this.o=b;this.j=c}; + bF.prototype.init=function(a){var b,c=window,d=this.l,e=(b=this.g)!=null?b:void 0,f=this.o;b=this.j;var g="v_h."+a,h=f?"//pagead2.googlesyndication.com/bg/"+fl(f)+".js":"";a=c.document;f={};e&&(f._scs_=e);f._bgu_=h;f._bgp_=b;g&&(f._li_=g);(e=c.GoogleTyFxhY)&&typeof e.push=="function"||(e=c.GoogleTyFxhY=[]);e.push(f);e=zl(rl(a).g,"SCRIPT");e.type="text/javascript";e.async=!0;d=Xk(TB,fl(d)+".js");cl(e,d);(c=(c.GoogleTyFxhYEET||{})[e.src])?c():a.getElementsByTagName("head")[0].appendChild(e)};var cF=function(a){this.g=a};var dF=function(a,b,c,d){this.id=a;this.title=b;this.g=c;this.j=d};var eF=function(a,b,c,d,e){this.id=a;this.Hb=d===void 0?!1:d;this.title=b;this.g=c;this.j=!(e===void 0?0:e)};var fF=function(a,b,c){this.j=a;this.l=b;this.g=(c===void 0?null:c)||""};fF.prototype.Hb=function(){return this.j.Hb};var gF=function(a,b,c){b=b===void 0?null:b;c=c===void 0?{}:c;VB.call(this,a);this.l=b;this.j=c};v(gF,VB);gF.prototype.getAd=function(){return this.l};gF.prototype.getAdData=function(){return this.j};var hF=function(a){var b=a.va;var c=a.Da;var d=a.height;var e=a.width;a=a.ta===void 0?!1:a.ta;this.va=b;this.Da=c;this.height=d;this.width=e;this.ta=a};hF.prototype.getHeight=function(){return this.height};hF.prototype.getWidth=function(){return this.width};var iF=function(){this.j=this.resourceType=this.creativeType=this.content=this.Rb=null;this.height=this.width=-1;this.xe=!1;this.Ra=null;this.g=[]};l=iF.prototype;l.getAdSlotId=function(){return this.Rb};l.getContent=function(){return this.content};l.getWidth=function(){return this.width};l.getHeight=function(){return this.height};l.getApiFramework=function(){return this.Z};var jF=function(){this.g=this.l=0;this.Ca=this.creativeType=this.j=null};jF.prototype.clone=function(){var a=new jF;a.l=this.l;a.g=this.g;a.j=this.j;a.creativeType=this.creativeType;a.Ca=this.Ca;return a};var kF=function(){this.Ca=this.Z=this.Ga=null;this.j=this.g=0;this.G=1;this.gb="left";this.ib="top";this.sa=this.Aa=-1;this.H=this.l=this.D=this.o=null;this.F=[];this.C=[];this.J=[]};kF.prototype.getApiFramework=function(){return this.Z};var lF=function(a,b){this.j=a===void 0?"unknown":a;this.g=b===void 0?"unknown":b};lF.prototype.getAdIdValue=function(){return this.j};lF.prototype.getAdIdRegistry=function(){return this.g};var mF=function(){aE.call(this);this.R=this.l=this.Oa=this.description=null;this.j=[];this.o=this.wa=null;this.Fa=[];this.D=this.creativeId=this.T=null;this.lb=[]};v(mF,aE);var nF=function(a){return a.j.length>0?a.j[0]:null};l=mF.prototype;l.getAdSystem=function(){return this.C.length?this.C[0]:null};l.getApiFramework=function(){return this.Z};l.getDescription=function(){return this.description};l.isSkippable=function(){return this.Oa!=null};l.getCreativeId=function(){return this.creativeId}; + l.getCreativeAdId=function(){return this.D};l.getUniversalAdIds=function(){return this.lb};var oF=RegExp("(doubleclick\\.net|googleadservices\\.com|googlesyndication\\.com)"),pF=["ai","sigh"],qF=["xai","sig"];function rF(a){return a&&oF.test(a)?a.includes("/pagead/adview")||a.includes("/pagead/conversion")||a.includes("/gampad/live/conversion")||a.includes("/pagead/interaction")?pF.every(function(b){return Pl(a,0,b,a.search(Ql))>=0}):a.includes("/pcs/view")?qF.every(function(b){return Pl(a,0,b,a.search(Ql))>=0}):!1:!1} + function sF(a,b){var c=a.indexOf("&adurl=");return c!=-1?a.substr(0,c)+b+a.substr(c,a.length):a+b}function tF(a,b){if(a&&b!=null){b=ht()?"6":"5";for(var c=a.search(Ql),d=0,e,f=[];(e=Pl(a,d,"nis",c))>=0;)f.push(a.substring(d,e)),d=Math.min(a.indexOf("&",e)+1||c,c);f.push(a.slice(d));a=f.join("").replace(Sl,"$1");a=sF(a,"&nis="+b)}return a};var uF={Yk:function(a,b){var c=ll(a);if(D(c))return a;rF(c)&&(a=sF(a,"&sdkv="+b),a=sF(a,"&ssss=gima"));return a}},vF=function(a){mF.call(this);this.M=a;this.pa=new dE;this.F=null;this.companionAds=[];this.dealId=null;this.H=[];this.J=[];this.N=[];this.W=String(Math.floor(Math.random()*1E9))};v(vF,mF);l=vF.prototype;l.nb=function(a){var b=uF.Yk(ZD(a),this.M);mF.prototype.nb.call(this,new WD(a.g,b,a.o,a.l,a.j))};l.getAdPodInfo=function(){return this.pa};l.getAdvertiserName=function(){return this.F}; + l.getCompanionAds=function(){return this.companionAds};l.getDealId=function(){return this.dealId};l.getWrapperAdIds=function(){return this.H};l.getWrapperAdSystems=function(){return this.J};l.getWrapperCreativeIds=function(){return this.N};l.ze=function(){return this.W};var wF=function(a){var b=a.Gi;var c=a.Ei;var d=a.wh;var e=a.va;var f=a.Da;var g=a.Fi;var h=a.xh;hF.call(this,{va:e,Da:f,height:a.height,width:a.width,ta:a.ta===void 0?!1:a.ta});this.o=b;this.j=c;this.g=d;this.l=g;this.C=h};v(wF,hF);var xF=function(a){var b=a.Xh;var c=a.mimeType;hF.call(this,{va:a.va,Da:a.Da,height:a.height,width:a.width,ta:a.ta===void 0?!1:a.ta});this.j=b;this.g=c};v(xF,hF);xF.prototype.getMediaUrl=function(){return this.j};var yF=function(a,b,c){this.fb=a;this.resourceType=b;this.creativeType=c===void 0?null:c};var zF=function(a){var b=a===void 0?{}:a;a=b.id===void 0?null:b.id;var c=b.Rb===void 0?null:b.Rb;var d=b.Z===void 0?null:b.Z;var e=b.width===void 0?null:b.width;var f=b.height===void 0?null:b.height;var g=b.xe===void 0?!1:b.xe;var h=b.zb===void 0?null:b.zb;var k=b.ag===void 0?[]:b.ag;var m=b.resources===void 0?[]:b.resources;b=b.ga===void 0?[]:b.ga;this.id=a;this.Rb=c;this.Z=d;this.width=e;this.height=f;this.xe=g;this.zb=h;this.ag=k;this.resources=m;this.ga=b};var AF=function(a){this.g=a};var BF=function(a){var b=a===void 0?{}:a;a=b.url;var c=b.mimeType===void 0?null:b.mimeType;b=b.language===void 0?null:b.language;this.url=a;this.mimeType=c;this.language=b};var CF=function(a,b,c,d){this.Ob=a;this.width=b===void 0?null:b;this.height=c===void 0?null:c;this.Ca=d===void 0?null:d};var DF=function(a){var b=a===void 0?{}:a;a=b.xa===void 0?null:b.xa;var c=b.ob===void 0?[]:b.ob;b=b.Bd===void 0?[]:b.Bd;this.xa=a;this.ob=c;this.Bd=b};var EF=function(a){var b=a===void 0?{}:a;a=b.Ga===void 0?null:b.Ga;var c=b.Z===void 0?null:b.Z;var d=b.gb===void 0?null:b.gb;var e=b.ib===void 0?null:b.ib;var f=b.width===void 0?null:b.width;var g=b.height===void 0?null:b.height;var h=b.Ca===void 0?null:b.Ca;var k=b.wg===void 0?null:b.wg;var m=b.Aa===void 0?null:b.Aa;var n=b.sa===void 0?null:b.sa;var p=b.Oc===void 0?null:b.Oc;var q=b.Ka===void 0?null:b.Ka;var r=b.cd===void 0?[]:b.cd;b=b.resources===void 0?[]:b.resources;this.Ga=a;this.Z=c;this.gb= + d;this.ib=e;this.width=f;this.height=g;this.Ca=h;this.wg=k;this.Aa=m;this.Oc=p;this.sa=n;this.Ka=q;this.cd=r;this.resources=b};var FF=function(a,b){var c=b===void 0?{}:b;b=c.mimeType===void 0?null:c.mimeType;var d=c.Z===void 0?null:c.Z;c=c.Zd===void 0?null:c.Zd;this.Ob=a;this.Z=d;this.mimeType=b;this.Zd=c};var GF=function(a,b){var c=b===void 0?{}:b;b=c.rb===void 0?null:c.rb;var d=c.mimeType===void 0?null:c.mimeType;var e=c.codec===void 0?null:c.codec;var f=c.width===void 0?null:c.width;c=c.height===void 0?null:c.height;this.url=a;this.rb=b;this.mimeType=d;this.codec=e;this.width=f;this.height=c};var HF=function(a,b){var c=b===void 0?{}:b;b=c.height===void 0?null:c.height;var d=c.width===void 0?null:c.width;var e=c.rb===void 0?null:c.rb;var f=c.mimeType===void 0?null:c.mimeType;var g=c.Z===void 0?null:c.Z;var h=c.bitrate===void 0?null:c.bitrate;var k=c.Eg===void 0?null:c.Eg;var m=c.maxBitrate===void 0?null:c.maxBitrate;var n=c.ia===void 0?null:c.ia;GF.call(this,a,{rb:e,mimeType:f,codec:c.codec===void 0?null:c.codec,width:d,height:b});this.Z=g;this.Eg=k||m||h||0;this.maxBitrate=m||k||h||0; + this.ia=n};v(HF,GF);var IF=function(a){var b=a===void 0?{}:a;a=b.xa===void 0?null:b.xa;var c=b.ob===void 0?[]:b.ob;b=b.te===void 0?[]:b.te;this.xa=a;this.ob=c;this.te=b};var RF=function(a){var b=a===void 0?{}:a;a=b.duration===void 0?null:b.duration;var c=b.Oa===void 0?null:b.Oa;var d=b.ga===void 0?[]:b.ga;var e=b.Ye===void 0?[]:b.Ye;var f=b.ub===void 0?[]:b.ub;var g=b.Zf===void 0?[]:b.Zf;var h=b.Ff===void 0?null:b.Ff;var k=b.wa===void 0?null:b.wa;b=b.Fa===void 0?[]:b.Fa;this.duration=a;this.wa=k;this.Oa=c;this.ga=d;this.Ye=e;this.ub=f;this.Zf=g;this.Ff=h;this.Fa=b};var SF=function(a){var b=a===void 0?{}:a;a=b.id===void 0?null:b.id;var c=b.Z===void 0?null:b.Z;var d=b.height===void 0?null:b.height;var e=b.width===void 0?null:b.width;var f=b.Fg===void 0?null:b.Fg;var g=b.resources===void 0?[]:b.resources;var h=b.Kg===void 0?null:b.Kg;var k=b.Lg===void 0?[]:b.Lg;b=b.wa===void 0?null:b.wa;this.id=a;this.Z=c;this.height=d;this.width=e;this.Fg=f;this.resources=g;this.Kg=h;this.Lg=k;this.wa=b};var TF=function(a,b){b=b===void 0?[]:b;this.g=a;this.ga=b};var UF=function(a){var b=a===void 0?{}:a;a=b.Je===void 0?"unknown":b.Je;b=b.Ie===void 0?"unknown":b.Ie;this.Je=a||"unknown";this.Ie=b||"unknown"};var VF=function(a){var b=a===void 0?{}:a;a=b.Ra===void 0?null:b.Ra;var c=b.id===void 0?null:b.id;var d=b.adId===void 0?null:b.adId;var e=b.vb===void 0?null:b.vb;var f=b.gf===void 0?null:b.gf;var g=b.Ac===void 0?null:b.Ac;b=b.lb===void 0?[]:b.lb;this.Ra=a;this.id=c;this.adId=d;this.vb=e;this.gf=f;this.Ac=g;this.lb=b};var WF=function(a,b){this.url=a;this.g=b===void 0?null:b};var XF=function(a){var b=a===void 0?{}:a;a=b.vendor===void 0?null:b.vendor;var c=b.Wd===void 0?null:b.Wd;var d=b.Pb===void 0?null:b.Pb;var e=b.parameters===void 0?null:b.parameters;b=b.ga===void 0?[]:b.ga;this.vendor=a;this.Wd=c;this.Pb=d;this.parameters=e;this.ga=b};var YF=function(a){var b=a===void 0?{}:a;a=b.Va===void 0?null:b.Va;var c=b.errors===void 0?[]:b.errors;var d=b.Eb===void 0?[]:b.Eb;var e=b.ya===void 0?[]:b.ya;var f=b.Ua===void 0?[]:b.Ua;b=b.O===void 0?[]:b.O;this.Va=a;this.g=c;this.j=d;this.ya=e;this.Ua=f;this.O=b};var ZF=function(a,b){var c=b===void 0?{}:b;b=c.id===void 0?null:c.id;var d=c.Ra===void 0?null:c.Ra;c=c.Tb===void 0?null:c.Tb;this.ha=a;this.id=b;this.Ra=d;this.Tb=c=="audio"?"audio":c=="hybrid"?"hybrid":"video"};var $F=function(a){this.g=a=a===void 0?[]:a},aG=function(a,b){var c=[];a.g.forEach(function(d){c=c.concat(d.ha.O.filter(function(e){return e instanceof b}))});return c};var bG=function(a){this.ga=a=a===void 0?[]:a};var cG=function(a,b,c,d){b=b===void 0?[]:b;c=c===void 0?"":c;d=d===void 0?"":d;bG.call(this,a);this.g=b;this.l=c;this.j=d};v(cG,bG);var dG=function(){};dG.prototype.g=function(a,b){var c=[],d="",e="";aG(a,cG).forEach(function(f){c.push.apply(c,u(f.g));d=d||f.l;e=e||f.j});(c.length>0||d||e)&&b.O.set(SD,new SD(c,d,e))};var eG=function(){var a={};var b=a.xc===void 0?"":a.xc;var c=a.yc===void 0?"http://www.google.com/adsense/support":a.yc;var d=a.Tf===void 0?!1:a.Tf;a=a.bh===void 0?0:a.bh;this.xc=b;this.yc=c;this.Tf=d;this.bh=a};var fG=function(a,b){var c=b===void 0?{}:b;b=c.xc===void 0?null:c.xc;var d=c.yc===void 0?null:c.yc;var e=c.cg===void 0?null:c.cg;var f=c.Ag===void 0?!1:c.Ag;var g=c.ff===void 0?[]:c.ff;var h=c.ah===void 0?!1:c.ah;var k=c.uiConfig===void 0?null:c.uiConfig;var m=c.lh===void 0?null:c.lh;c=c.Jf===void 0?null:c.Jf;bG.call(this,a);this.xc=b;this.yc=d;this.cg=e;this.Ag=f;this.ff=g;this.ah=h;this.uiConfig=k;this.lh=m;this.Jf=c};v(fG,bG);var gG=function(){};gG.prototype.g=function(a,b){a=t(a.g);for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.O);for(var d=c.next();!d.done;d=c.next())if(d=d.value,d instanceof fG){b.O.set(OE,new OE(d.Jf,d.ff));return}}};var hG=function(a){this.g=a};function iG(a){return(a==null?[]:a.Bd).map(function(b){var c=new jF;c.l=b.width||0;c.g=b.height||0;c.j=b.Ob?b.Ob.fb:"";c.Ca=b.Ca;return c})} + function jG(a){var b=a.resources.find(function(f){return f.resourceType==="Static"});if(!b)return null;var c=new kF;c.Ga=a.Ga;c.Z=a.Z;c.Ca=a.Ca;c.gb=a.gb!=null?a.gb:"left";c.ib=a.ib!=null?a.ib:"top";c.j=a.height?a.height:0;c.g=a.width?a.width:0;c.G=a.Oc?a.Oc:1;c.Aa=a.Aa?a.Aa:0;c.sa=a.sa?a.sa:-1;c.F=a.cd;if(a.Ka&&a.Ka.xa){c.o=a.Ka.xa.url;c.D=it(a.Ka.xa);for(var d=t(a.Ka.ob),e=d.next();!e.done;e=d.next())c.C.push(e.value.url)}c.J=iG(a.Ka);c.l=b.fb;c.H=b.creativeType;return c}var kG=function(){}; + kG.prototype.g=function(a,b){a=t(a.g);for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.O);for(var d=c.next();!d.done;d=c.next())d=d.value,d instanceof hG&&(d=jG(d.g))&&b.O.set(PE,new PE(d))}};var lG="ad.doubleclick.net bid.g.doubleclick.net ggpht.com google.co.uk google.com googleads.g.doubleclick.net googleads4.g.doubleclick.net googleadservices.com googlesyndication.com googleusercontent.com gstatic.com gvt1.com prod.google.com pubads.g.doubleclick.net s0.2mdn.net static.doubleclick.net surveys.g.doubleclick.net youtube.com ytimg.com".split(" "),mG=["c.googlesyndication.com"]; + function nG(a,b){b=b===void 0?window.location.protocol:b;var c=!1;a==null||!a.startsWith("http")||(a==null?0:a.startsWith("https"))?c=!1:oG(a,mG)?c=!1:b.includes("https")&&oG(a,lG)&&(c=!0);return c?(a=new Ls(a),N(M.getInstance(),"htp","1"),Ms(a,"https"),a.toString()):a}function pG(a){if(!a)return!1;try{var b=typeof a==="string"?new Ls(a):a;return b.o=="gcache"&&!!b.g.get("url")}catch(c){return!1}} + function qG(a){try{var b=typeof a==="string"?new Ls(a):a;if(pG(b)){var c=b.g.get("url");return typeof c==="undefined"?null:c}}catch(d){}return null}function oG(a,b){return(new RegExp("^https?://([a-z0-9-]{1,63}\\.)*("+b.join("|").replace(/\./g,"\\.")+")(:[0-9]+)?([/?#]|$)","i")).test(a)}function rG(a){a=new Ls(a);var b=a.j;if(a.o!="http"&&a.o!="https")a=!1;else if(b.indexOf(".")==-1||b.match(/^[\.0-9]*$/))a=!1;else a:{try{el(a.toString())}catch(c){a=!1;break a}a=!0}return a};var sG=ck(tj(new sj(qj,"about:blank")));ck(tj(new sj(qj,"javascript:undefined")));var tG={"* ARIA-CHECKED":!0,"* ARIA-COLCOUNT":!0,"* ARIA-COLINDEX":!0,"* ARIA-CONTROLS":!0,"* ARIA-DESCRIBEDBY":!0,"* ARIA-DISABLED":!0,"* ARIA-EXPANDED":!0,"* ARIA-GOOG-EDITABLE":!0,"* ARIA-HASPOPUP":!0,"* ARIA-HIDDEN":!0,"* ARIA-LABEL":!0,"* ARIA-LABELLEDBY":!0,"* ARIA-MULTILINE":!0,"* ARIA-MULTISELECTABLE":!0,"* ARIA-ORIENTATION":!0,"* ARIA-PLACEHOLDER":!0,"* ARIA-READONLY":!0,"* ARIA-REQUIRED":!0,"* ARIA-ROLEDESCRIPTION":!0,"* ARIA-ROWCOUNT":!0,"* ARIA-ROWINDEX":!0,"* ARIA-SELECTED":!0,"* ABBR":!0, + "* ACCEPT":!0,"* ACCESSKEY":!0,"* ALIGN":!0,"* ALT":!0,"* AUTOCOMPLETE":!0,"* AXIS":!0,"* BGCOLOR":!0,"* BORDER":!0,"* CELLPADDING":!0,"* CELLSPACING":!0,"* CHAROFF":!0,"* CHAR":!0,"* CHECKED":!0,"* CLEAR":!0,"* COLOR":!0,"* COLSPAN":!0,"* COLS":!0,"* COMPACT":!0,"* CONTROLS":!0,"* COORDS":!0,"* DATETIME":!0,"* DIR":!0,"* DISABLED":!0,"* ENCTYPE":!0,"* FACE":!0,"* FRAME":!0,"* HEIGHT":!0,"* HREFLANG":!0,"* HSPACE":!0,"* ISMAP":!0,"* LABEL":!0,"* LANG":!0,"* MAX":!0,"* MAXLENGTH":!0,"* METHOD":!0, + "* MULTIPLE":!0,"* NOHREF":!0,"* NOSHADE":!0,"* NOWRAP":!0,"* OPEN":!0,"* READONLY":!0,"* REQUIRED":!0,"* REL":!0,"* REV":!0,"* ROLE":!0,"* ROWSPAN":!0,"* ROWS":!0,"* RULES":!0,"* SCOPE":!0,"* SELECTED":!0,"* SHAPE":!0,"* SIZE":!0,"* SPAN":!0,"* START":!0,"* SUMMARY":!0,"* TABINDEX":!0,"* TITLE":!0,"* TYPE":!0,"* VALIGN":!0,"* VALUE":!0,"* VSPACE":!0,"* WIDTH":!0},uG={"* USEMAP":!0,"* ACTION":!0,"* CITE":!0,"* HREF":!0,"* LONGDESC":!0,"* SRC":!0,"LINK HREF":!0,"* FOR":!0,"* HEADERS":!0,"* NAME":!0, + "A TARGET":!0,"* CLASS":!0,"* ID":!0,"* STYLE":!0};var vG={}; + function wG(a){var b=vG.hasOwnProperty(a)?vG[a]:null;if(b)return b;Object.keys(vG).length>65536&&(vG={});var c=[0,0,0,0],d=RegExp("\\\\[0-9A-Fa-f]{1,5}\\s","g");b=xG(a,RegExp("\\\\[0-9A-Fa-f]{6}\\s?","g"));b=xG(b,d);b=xG(b,/\\./g);b=b.replace(RegExp(":not\\(([^\\)]*)\\)","g")," $1 ");b=b.replace(RegExp("{[^]*","gm"),"");b=yG(b,c,RegExp("(\\[[^\\]]+\\])","g"),2);b=yG(b,c,RegExp("(#[^\\#\\s\\+>~\\.\\[:]+)","g"),1);b=yG(b,c,RegExp("(\\.[^\\s\\+>~\\.\\[:]+)","g"),2);b=yG(b,c,/(::[^\s\+>~\.\[:]+|:first-line|:first-letter|:before|:after)/gi,3); + b=yG(b,c,/(:[\w-]+\([^\)]*\))/gi,2);b=yG(b,c,/(:[^\s\+>~\.\[:]+)/g,2);b=b.replace(/[\*\s\+>~]/g," ");b=b.replace(/[#\.]/g," ");yG(b,c,/([^\s\+>~\.\[:]+)/g,3);b=c;return vG[a]=b}function yG(a,b,c,d){return a.replace(c,function(e){b[d]+=1;return Array(e.length+1).join(" ")})}function xG(a,b){return a.replace(b,function(c){return Array(c.length+1).join("A")})};var zG={rgb:!0,rgba:!0,alpha:!0,rect:!0,image:!0,"linear-gradient":!0,"radial-gradient":!0,"repeating-linear-gradient":!0,"repeating-radial-gradient":!0,"cubic-bezier":!0,matrix:!0,perspective:!0,rotate:!0,rotate3d:!0,rotatex:!0,rotatey:!0,steps:!0,rotatez:!0,scale:!0,scale3d:!0,scalex:!0,scaley:!0,scalez:!0,skew:!0,skewx:!0,skewy:!0,translate:!0,translate3d:!0,translatex:!0,translatey:!0,translatez:!0},AG=/[\n\f\r"'()*<>]/g,BG={"\n":"%0a","\f":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29", + "*":"%2a","<":"%3c",">":"%3e"};function CG(a){return BG[a]} + var DG=function(a,b,c){b=ub(b);if(b=="")return null;if(tb(b,"url(")){if(!b.endsWith(")")||(b?b.split("(").length-1:0)>1||(b?b.split(")").length-1:0)>1||!c)a=null;else{a:{b=b.substring(4,b.length-1);for(var d=0;d<2;d++){var e="\"'".charAt(d);if(b.charAt(0)==e&&b.charAt(b.length-1)==e){b=b.substring(1,b.length-1);break a}}}a=c?(a=c(b,a))&&fk(a)!=ek.toString()?'url("'+fk(a).replace(AG,CG)+'")':null:null}return a}if(b.indexOf("(")>0){if(/"|'/.test(b))return null;for(a=/([\-\w]+)\(/g;c=a.exec(b);)if(!(c[1].toLowerCase()in + zG))return null}return b};function EG(a,b){a=z[a];return a&&a.prototype?(b=Object.getOwnPropertyDescriptor(a.prototype,b))&&b.get||null:null}function FG(a,b){return(a=z[a])&&a.prototype&&a.prototype[b]||null}var GG=EG("Element","attributes")||EG("Node","attributes"),HG=FG("Element","hasAttribute"),IG=FG("Element","getAttribute"),JG=FG("Element","setAttribute"),KG=FG("Element","removeAttribute");EG("Element","innerHTML")||EG("HTMLElement","innerHTML"); + var LG=FG("Element","getElementsByTagName"),MG=FG("Element","matches")||FG("Element","msMatchesSelector"),NG=EG("Node","nodeName"),OG=EG("Node","nodeType"),PG=EG("Node","parentNode");EG("Node","childNodes");var QG=EG("HTMLElement","style")||EG("Element","style"),RG=EG("HTMLStyleElement","sheet"),SG=FG("CSSStyleDeclaration","getPropertyValue"),TG=FG("CSSStyleDeclaration","setProperty"),UG=EG("Element","namespaceURI")||EG("Node","namespaceURI"); + function VG(a,b,c,d){if(a)return a.apply(b);a=b[c];if(!d(a))throw Error("Clobbering detected");return a}function WG(a,b,c,d){if(a)return a.apply(b,d);if(xc&&document.documentMode<10){if(!b[c].call)throw Error("IE Clobbering detected");}else if(typeof b[c]!="function")throw Error("Clobbering detected");return b[c].apply(b,d)}function XG(a){return VG(GG,a,"attributes",function(b){return b instanceof NamedNodeMap})} + function YG(a,b,c){try{WG(JG,a,"setAttribute",[b,c])}catch(d){if(d.message.indexOf("A security problem occurred")==-1)throw d;}}function ZG(a){return VG(QG,a,"style",function(b){return b instanceof CSSStyleDeclaration})}function $G(a){return VG(RG,a,"sheet",function(b){return b instanceof CSSStyleSheet})}function aH(a){return VG(NG,a,"nodeName",function(b){return typeof b=="string"})}function bH(a){return VG(OG,a,"nodeType",function(b){return typeof b=="number"})} + function cH(a){return VG(PG,a,"parentNode",function(b){return!(b&&typeof b.name=="string"&&b.name&&b.name.toLowerCase()=="parentnode")})}function dH(a,b){return WG(SG,a,a.getPropertyValue?"getPropertyValue":"getAttribute",[b])||""}function eH(a,b,c){WG(TG,a,a.setProperty?"setProperty":"setAttribute",[b,c])}function fH(a){return VG(UG,a,"namespaceURI",function(b){return typeof b=="string"})};var gH=RegExp("\\s*([^\\s'\",]+[^'\",]*(('([^'\\r\\n\\f\\\\]|\\\\[^])*')|(\"([^\"\\r\\n\\f\\\\]|\\\\[^])*\")|[^'\",])*)","g"),hH={"-webkit-border-horizontal-spacing":!0,"-webkit-border-vertical-spacing":!0},kH=function(a,b,c){var d=[];iH(pc(a.cssRules)).forEach(function(e){if(b&&!/[a-zA-Z][\w-:\.]*/.test(b))throw Error("Invalid container id");if(!(b&&xc&&document.documentMode==10&&/\\['"]/.test(e.selectorText))){var f=b?e.selectorText.replace(gH,"#"+b+" $1"):e.selectorText,g=d.push;e=jH(e.style,c); + if(Db(f,"<"))throw Error("Selector does not allow '<', got: "+f);var h=f.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=\\^$|]+$/.test(h))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=\\^$|] and strings, got: "+f);a:{for(var k={"(":")","[":"]"},m=[],n=0;n"+ + a+"");return a==null||a.sheet==null?Rk:kH(a.sheet,b!=void 0?b:null,c)},lH=function(a){a=Vk(""+a+"");return(new DOMParser).parseFromString(Uk(a),"text/html").body.children[0]},jH=function(a,b){if(!a)return nk;var c=document.createElement("div").style;nH(a).forEach(function(d){var e=zc&&d in hH?d:d.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/i,"");sb(e,"--")||sb(e,"var")||(d=dH(a,d),d=DG(e,d,b),d!=null&&eH(c,e,d))});return new mk(c.cssText|| + "")},pH=function(a){var b=Array.from(WG(LG,a,"getElementsByTagName",["STYLE"])),c=uc(b,function(g){return pc($G(g).cssRules)});c=iH(c);for(var d=[],e=0;e=0)){var e=dH(b,d);eH(a.style,d,e)}})},nH=function(a){La(a)?a=pc(a):(a=Lj(a),jc(a,"cssText"));return a};var qH=typeof WeakMap!="undefined"&&WeakMap.toString().indexOf("[native code]")!=-1,rH=0,sH=function(){this.l=[];this.j=[];this.g="data-elementweakmap-index-"+rH++};sH.prototype.set=function(a,b){if(WG(HG,a,"hasAttribute",[this.g])){var c=parseInt(WG(IG,a,"getAttribute",[this.g])||null,10);this.j[c]=b}else c=this.j.push(b)-1,YG(a,this.g,c.toString()),this.l.push(a);return this}; + sH.prototype.get=function(a){if(WG(HG,a,"hasAttribute",[this.g]))return a=parseInt(WG(IG,a,"getAttribute",[this.g])||null,10),this.j[a]};sH.prototype.clear=function(){this.l.forEach(function(a){WG(KG,a,"removeAttribute",[this.g])},this);this.l=[];this.j=[]};var tH=function(){this.j=document.implementation.createHTMLDocument("")};var uH={APPLET:!0,BASE:!0,BGSOUND:!0,EMBED:!0,FORM:!0,IFRAME:!0,ISINDEX:!0,KEYGEN:!0,LAYER:!0,LINK:!0,META:!0,OBJECT:!0,SCRIPT:!0,SVG:!0,STYLE:!0,TEMPLATE:!0};var vH={A:!0,ABBR:!0,ACRONYM:!0,ADDRESS:!0,AREA:!0,ARTICLE:!0,ASIDE:!0,AUDIO:!0,B:!0,BDI:!0,BDO:!0,BIG:!0,BLOCKQUOTE:!0,BR:!0,BUTTON:!0,CAPTION:!0,CENTER:!0,CITE:!0,CODE:!0,COL:!0,COLGROUP:!0,DATA:!0,DATALIST:!0,DD:!0,DEL:!0,DETAILS:!0,DFN:!0,DIALOG:!0,DIR:!0,DIV:!0,DL:!0,DT:!0,EM:!0,FIELDSET:!0,FIGCAPTION:!0,FIGURE:!0,FONT:!0,FOOTER:!0,FORM:!0,H1:!0,H2:!0,H3:!0,H4:!0,H5:!0,H6:!0,HEADER:!0,HGROUP:!0,HR:!0,I:!0,IMG:!0,INPUT:!0,INS:!0,KBD:!0,LABEL:!0,LEGEND:!0,LI:!0,MAIN:!0,MAP:!0,MARK:!0,MENU:!0,METER:!0, + NAV:!0,NOSCRIPT:!0,OL:!0,OPTGROUP:!0,OPTION:!0,OUTPUT:!0,P:!0,PRE:!0,PROGRESS:!0,Q:!0,S:!0,SAMP:!0,SECTION:!0,SELECT:!0,SMALL:!0,SOURCE:!0,SPAN:!0,STRIKE:!0,STRONG:!0,STYLE:!0,SUB:!0,SUMMARY:!0,SUP:!0,TABLE:!0,TBODY:!0,TD:!0,TEXTAREA:!0,TFOOT:!0,TH:!0,THEAD:!0,TIME:!0,TR:!0,TT:!0,U:!0,UL:!0,VAR:!0,VIDEO:!0,WBR:!0};var wH={"ANNOTATION-XML":!0,"COLOR-PROFILE":!0,"FONT-FACE":!0,"FONT-FACE-SRC":!0,"FONT-FACE-URI":!0,"FONT-FACE-FORMAT":!0,"FONT-FACE-NAME":!0,"MISSING-GLYPH":!0},AH=function(a){this.j=document.implementation.createHTMLDocument("");a=a||new xH;yH(a);this.g=Uj(a.g);this.F=Uj(a.H);this.l=Uj(a.J);this.H=a.D;a.W.forEach(function(b){if(!sb(b,"data-"))throw new eb('Only "data-" attributes allowed, got: %s.',[b]);if(sb(b,"data-sanitizer-"))throw new eb('Attributes with "%s" prefix are not allowed, got: %s.', + ["data-sanitizer-",b]);this.g["* "+b.toUpperCase()]=zH},this);a.N.forEach(function(b){b=b.toUpperCase();if(!Db(b,"-")||wH[b])throw new eb("Only valid custom element tag names allowed, got: %s.",[b]);this.l[b]=!0},this);this.G=a.l;this.C=a.G;this.o=null;this.D=a.F};Ya(AH,tH); + var BH=function(a){return function(b,c){return(b=a(ub(b),c))&&fk(b)!=ek.toString()?fk(b):null}},xH=function(){this.g={};Xb([tG,uG],function(a){Lj(a).forEach(function(b){this.g[b]=zH},this)},this);this.j={};this.W=[];this.N=[];this.H=Uj(uH);this.J=Uj(vH);this.D=!1;this.T=CH;this.R=this.C=this.M=this.l=xj;this.G=null;this.o=this.F=!1},DH=function(a,b){return function(c,d,e,f){c=a(c,d,e,f);return c==null?null:b(c,d,e,f)}},EH=function(a,b,c,d){a[c]&&!b[c]&&(a[c]=DH(a[c],d))};xH.prototype.build=function(){return new AH(this)}; + var yH=function(a){if(a.o)throw Error("HtmlSanitizer.Builder.build() can only be used once.");EH(a.g,a.j,"* USEMAP",FH);var b=BH(a.T);["* ACTION","* CITE","* HREF"].forEach(function(d){EH(this.g,this.j,d,b)},a);var c=BH(a.l);["* LONGDESC","* SRC","LINK HREF"].forEach(function(d){EH(this.g,this.j,d,c)},a);["* FOR","* HEADERS","* NAME"].forEach(function(d){EH(this.g,this.j,d,Va(GH,this.M))},a);EH(a.g,a.j,"A TARGET",Va(HH,["_blank","_self"]));EH(a.g,a.j,"* CLASS",Va(IH,a.C));EH(a.g,a.j,"* ID",Va(JH, + a.C));EH(a.g,a.j,"* STYLE",Va(a.R,c));a.o=!0},CH=function(a){return jk(a)},KH=function(a,b){a||(a="*");return(a+" "+b).toUpperCase()},zH=function(a){return ub(a)},HH=function(a,b){b=ub(b);return ic(a,b.toLowerCase())?b:null},FH=function(a){return(a=ub(a))&&a.charAt(0)=="#"?a:null},GH=function(a,b,c){return a(ub(b),c)},IH=function(a,b,c){b=b.split(/(?:\s+)/);for(var d=[],e=0;e"+b+""),pH(b),b=b.innerHTML);b=Vk(b);var c=document.createElement("template");if("content"in c)Zk(c,b),c=c.content;else{var d=document.implementation.createHTMLDocument("x");c= + d.body;Zk(d.body,b)}b=document.createTreeWalker(c,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,null,!1);for(c=qH?new WeakMap:new sH;d=b.nextNode();){a:{var e=d;switch(bH(e)){case 3:e=LH(this,e);break a;case 1:if(aH(e).toUpperCase()=="TEMPLATE")e=null;else{var f=aH(e).toUpperCase();if(f in this.F||fH(e)!="http://www.w3.org/1999/xhtml")var g=null;else this.l[f]?g=this.j.createElement(f):(g=this.j.createElement("span"),this.H&&YG(g,"data-sanitizer-original-tag",f.toLowerCase()));if(g){var h=g,k=XG(e); + if(k!=null)for(var m=0;f=k[m];m++)if(f.specified){var n=e;var p=f;var q=p.name;if(sb(q,"data-sanitizer-"))p=null;else{var r=aH(n);p=p.value;var w={tagName:ub(r).toLowerCase(),attributeName:ub(q).toLowerCase()},A={Sj:void 0};w.attributeName=="style"&&(A.Sj=ZG(n));n=KH(r,q);n in this.g?(q=this.g[n],p=q(p,w,A)):(q=KH(null,q),q in this.g?(q=this.g[q],p=q(p,w,A)):p=null)}p!==null&&YG(h,f.name,p)}e=g}else e=null}break a;default:e=null}}if(e){if(bH(e)==1&&c.set(d,e),d=cH(d),f=!1,d)g=bH(d),h=aH(d).toLowerCase(), + k=cH(d),g!=11||k?h=="body"&&k&&(g=cH(k))&&!cH(g)&&(f=!0):f=!0,g=null,f||!d?g=a:bH(d)==1&&(g=c.get(d)),g.content&&(g=g.content),g.appendChild(e)}else for(e=d;d=e.firstChild;)e.removeChild(d)}c.clear&&c.clear();XG(a).length>0&&(b=this.j.createElement("span"),b.appendChild(a),a=b);a=(new XMLSerializer).serializeToString(a);return Vk(a.slice(a.indexOf(">")+1,a.lastIndexOf("0?a[0]:null},NH=function(a,b,c){var d=OH(a.resources);if(!d)return null;var e=PH(a,d,b,c);e.g=a.resources.filter(function(f){return f!=d}).map(function(f){return PH(a,f,b,c)});return e},PH=function(a,b,c,d){var e=new iF;e.Rb=a.Rb;e.width=a.width||-1;e.height= + a.height||-1;e.Z=a.Z;e.creativeType=b.creativeType;e.resourceType=b.resourceType;e.j=b.fb;e.Ra=c;if(Ds())d=null;else{var f=QH(a,b);f?(c=zl(document,"div"),c.id=a.id,cx(c,{height:a.height+"px",width:a.width+"px"}),Bl(c,f),a=RH(a.ga),Bl(c,a),"outerHTML"in c?c=c.outerHTML:(a=zl(ql(c),"DIV"),a.appendChild(c.cloneNode(!0)),c=a.innerHTML),b.resourceType=="Static"&&(b=nG(ll(b.fb)),c.indexOf("\n \n \n \n '+c+"\n "),d=c):d=""}e.content=d;return e},QH=function(a,b){if(b.resourceType=="Static"&&ft.includes(b.creativeType|| + "")){b=zl(document,"a");b.target="_blank";var c=a.zb&&a.zb.url;c&&(c=lk(c),c!==void 0&&(b.href=c),a=a.zb,(a==null?void 0:a.g)!=null&&ht()&&b.setAttribute("attributionsrc",ll(a.g)));a=zl(document,"img");a.src="";a.border="0";cx(a,{height:"100%",width:"100%"});Bl(b,a);return b}return b.resourceType=="IFrame"?(b=b.fb,a.zb!=null&&(b=new Ls(b),Zs(b,"clickTAG",encodeURIComponent(String(a.zb.url))),b=b.toString()),c=yl("IFRAME",{marginwidth:0,marginheight:0,hspace:0,vspace:0,frameborder:0,scrolling:"no"}), + c.height=a.height,c.width=a.width,c.setAttribute("src",nG(b)),c):b.resourceType=="Html"?(a=yl("DIV"),b=(new AH).J(b.fb),a.nodeType===1&&bl(a),a.innerHTML=Uk(b),a):null},RH=function(a){a=a.filter(function(b){return b.eventType=="creativeView"||b.eventType=="start"});return a.length==0?null:a.map(function(b){b=b.url;var c=rl().Oj("IFRAME",{frameborder:0,style:"border:0;vertical-align:bottom;"});c.src=ak(sG).toString();cx(c,{display:"block",height:"0px",width:"0px"});var d="iframe"+Math.floor(Math.random()* + 1E9);c.setAttribute("height",0);c.setAttribute("width",0);c.setAttribute("src",nG(b));c.setAttribute("id",d);return c})};var SH=function(){};SH.prototype.g=function(a,b){a=t(a.g);for(var c=a.next();!c.done;c=a.next())TH(c.value,b)};var TH=function(a,b){a=t(a.ha.O);for(var c=a.next();!c.done;c=a.next())c=c.value,c instanceof bG&&c instanceof bG&&c.ga.forEach(function(d){b.nb(XD(d))})};var UH=function(a,b,c,d){this.value=a;this.g=b;this.path=c;this.domain=d};var VH=function(){};VH.prototype.g=function(a,b){a=t(a.g);for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.O);for(var d=c.next();!d.done;d=c.next())if(d=d.value,d instanceof UH){var e=new QE;lh(e,1,d.value);og(e,2,ff(d.g));lh(e,3,d.path);lh(e,4,d.domain);b.O.set(RE,new RE(e))}}};var WH=function(a){this.g=a};var XH=function(){};XH.prototype.g=function(a,b){a=t(a.g);for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.O);for(var d=c.next();!d.done;d=c.next())d=d.value,d instanceof WH&&b.O.set(SE,new SE(d.g))}};var YH=function(a,b,c,d,e){this.value=a;this.g=b;this.path=c;this.domain=d;this.j=e};var ZH=function(){};ZH.prototype.g=function(a,b){a=t(a.g);for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.O);for(var d=c.next();!d.done;d=c.next()){var e=d.value;e instanceof YH&&(d=new QE,lh(d,1,e.value),og(d,2,ff(e.g)),lh(d,3,e.path),lh(d,4,e.domain),e=e.j?VE:UE,d=new e(d),b.O.set(e,d))}}};var $H=function(a,b,c){var d=c===void 0?{}:c;c=d.rb===void 0?null:d.rb;var e=d.ia===void 0?null:d.ia;var f=d.mimeType===void 0?null:d.mimeType;var g=d.va===void 0?null:d.va;var h=d.Da===void 0?null:d.Da;var k=d.kh===void 0?null:d.kh;var m=d.Sf===void 0?null:d.Sf;var n=d.ta===void 0?null:d.ta;var p=d.width===void 0?null:d.width;var q=d.height===void 0?null:d.height;d=d.Ab===void 0?null:d.Ab;this.type=b;this.ia=e;this.Da=h;this.kh=k;this.Sf=m;this.ta=n;this.url=a;this.rb=c;this.mimeType=f;this.va=g; + this.width=p;this.height=q;this.Ab=d};var aI=function(a,b,c,d,e){this.C=a;this.g=b;this.o=c;this.j=d;this.l=e};function bI(a){return new (Function.prototype.bind.apply(a,[null].concat(u(Ea.apply(1,arguments)))))};var cI={},dI=(cI[18]=496,cI[22]=2128,cI[43]=488,cI[44]=848,cI[45]=2128,cI[59]=848,cI[133]=242,cI[134]=400,cI[135]=1E3,cI[136]=2E3,cI[139]=48,cI[140]=128,cI[141]=256,cI[160]=108,cI[242]=150,cI[243]=276,cI[244]=512,cI[245]=1E3,cI[247]=1E3,cI[249]=48,cI[250]=64,cI[251]=128,cI[278]=95,cI[342]=464,cI[343]=1064,cI[344]=2128,cI[345]=496,cI[346]=816,cI[347]=2096,cI),eI={},fI=(eI[18]=-1,eI[22]=-1,eI[43]=350,eI[44]=350,eI[45]=350,eI[59]=-1,eI[133]=350,eI[134]=350,eI[135]=350,eI[136]=350,eI[139]=50,eI[140]= + 50,eI[141]=50,eI[160]=350,eI[242]=150,eI[243]=150,eI[244]=150,eI[245]=150,eI[247]=150,eI[249]=50,eI[250]=50,eI[251]=50,eI[278]=150,eI[342]=-1,eI[343]=-1,eI[344]=-1,eI[345]=-1,eI[346]=-1,eI[347]=-1,eI),gI={},hI=(gI[18]=!1,gI[22]=!1,gI[43]=!0,gI[44]=!0,gI[45]=!0,gI[59]=!1,gI[133]=!0,gI[134]=!0,gI[135]=!0,gI[136]=!0,gI[139]=!0,gI[140]=!0,gI[141]=!0,gI[160]=!0,gI[242]=!0,gI[243]=!0,gI[244]=!0,gI[245]=!0,gI[247]=!0,gI[249]=!0,gI[250]=!0,gI[251]=!0,gI[278]=!0,gI[342]=!1,gI[343]=!1,gI[344]=!1,gI[345]=!1, + gI[346]=!1,gI[347]=!1,gI),iI={},jI=(iI[18]="video/mp4",iI[22]="video/mp4",iI[43]="video/webm",iI[44]="video/webm",iI[45]="video/webm",iI[59]="video/mp4",iI[133]="video/mp4",iI[134]="video/mp4",iI[135]="video/mp4",iI[136]="video/mp4",iI[139]="audio/mp4",iI[140]="audio/mp4",iI[141]="audio/mp4",iI[160]="video/mp4",iI[242]="video/webm",iI[243]="video/webm",iI[244]="video/webm",iI[245]="video/webm",iI[247]="video/webm",iI[249]="audio/webm",iI[250]="audio/webm",iI[251]="audio/webm",iI[278]="video/webm", + iI[342]="video/mp4",iI[343]="video/mp4",iI[344]="video/mp4",iI[345]="video/mp4",iI[346]="video/mp4",iI[347]="video/mp4",iI),kI={},lI=(kI[18]="avc1.42001E, mp4a.40.2",kI[22]="avc1.64001F, mp4a.40.2",kI[43]="vp8, vorbis",kI[44]="vp8, vorbis",kI[45]="vp8, vorbis",kI[59]="avc1.4D001F, mp4a.40.2",kI[133]="avc1.4D401E",kI[134]="avc1.4D401E",kI[135]="avc1.4D401E",kI[136]="avc1.4D401E",kI[139]="mp4a.40.2",kI[140]="mp4a.40.2",kI[141]="mp4a.40.2",kI[160]="avc1.4D401E",kI[242]="vp9",kI[243]="vp9",kI[244]="vp9", + kI[245]="vp9",kI[247]="vp9",kI[249]="opus",kI[250]="opus",kI[251]="opus",kI[278]="vp9",kI[342]="avc1.42E01E, mp4a.40.2",kI[343]="avc1.42E01E, mp4a.40.2",kI[344]="avc1.42E01E, mp4a.40.2",kI[345]="avc1.42E01E, mp4a.40.2",kI[346]="avc1.42E01E, mp4a.40.2",kI[347]="avc1.4D001F, mp4a.40.2",kI);var mI=function(a){switch(a){case 0:return"No Error";case 1:return"Access denied to content document";case 2:return"File not found";case 3:return"Firefox silently errored";case 4:return"Application custom error";case 5:return"An exception occurred";case 6:return"Http response at 400 or 500 level";case 7:return"Request was aborted";case 8:return"Request timed out";case 9:return"The resource is not available offline";default:return"Unrecognized error code"}};var nI=function(){};nI.prototype.g=null;var oI=function(a){var b;(b=a.g)||(b=a.g={});return b};var pI,qI=function(){};Ya(qI,nI);pI=new qI;var rI=function(a){U.call(this);this.headers=new Map;this.la=a||null;this.j=!1;this.G=this.g=null;this.M="";this.o=0;this.l=this.J=this.C=this.H=!1;this.R=0;this.D=null;this.fa="";this.T=!1};Ya(rI,U); + var sI=/^https?$/i,tI=["POST","PUT"],wI=function(a,b,c,d){if(a.g)throw Error("[goog.net.XhrIo] Object is active with another request="+a.M+"; newUri="+b);c=c?c.toUpperCase():"GET";a.M=b;a.o=0;a.H=!1;a.j=!0;a.g=new XMLHttpRequest;a.G=a.la?oI(a.la):oI(pI);a.g.onreadystatechange=Ua(a.ba,a);try{a.J=!0,a.g.open(c,String(b),!0),a.J=!1}catch(g){uI(a);return}b=d||"";d=new Map(a.headers);var e=Array.from(d.keys()).find(function(g){return"content-type"==g.toLowerCase()}),f=z.FormData&&b instanceof z.FormData; + !ic(tI,c)||e||f||d.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");c=t(d);for(d=c.next();!d.done;d=c.next())e=t(d.value),d=e.next().value,e=e.next().value,a.g.setRequestHeader(d,e);a.fa&&(a.g.responseType=a.fa);"withCredentials"in a.g&&a.g.withCredentials!==a.T&&(a.g.withCredentials=a.T);try{vI(a),a.R>0&&(a.D=aD(a.ra,a.R,a)),a.C=!0,a.g.send(b),a.C=!1}catch(g){uI(a)}};rI.prototype.ra=function(){typeof Ha!="undefined"&&this.g&&(this.o=8,this.dispatchEvent("timeout"),this.abort(8))}; + var uI=function(a){a.j=!1;a.g&&(a.l=!0,a.g.abort(),a.l=!1);a.o=5;xI(a);yI(a)},xI=function(a){a.H||(a.H=!0,a.dispatchEvent("complete"),a.dispatchEvent("error"))};rI.prototype.abort=function(a){this.g&&this.j&&(this.j=!1,this.l=!0,this.g.abort(),this.l=!1,this.o=a||7,this.dispatchEvent("complete"),this.dispatchEvent("abort"),yI(this))};rI.prototype.Y=function(){this.g&&(this.j&&(this.j=!1,this.l=!0,this.g.abort(),this.l=!1),yI(this,!0));rI.kb.Y.call(this)}; + rI.prototype.ba=function(){this.Fb()||(this.J||this.C||this.l?zI(this):this.na())};rI.prototype.na=function(){zI(this)}; + var zI=function(a){if(a.j&&typeof Ha!="undefined"&&(!a.G[1]||AI(a)!=4||BI(a)!=2))if(a.C&&AI(a)==4)aD(a.ba,0,a);else if(a.dispatchEvent("readystatechange"),AI(a)==4){a.j=!1;try{var b=BI(a);a:switch(b){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var c=!0;break a;default:c=!1}var d;if(!(d=c)){var e;if(e=b===0){var f=String(a.M).match(Ml)[1]||null;!f&&z.self&&z.self.location&&(f=z.self.location.protocol.slice(0,-1));e=!sI.test(f?f.toLowerCase():"")}d=e}d?(a.dispatchEvent("complete"), + a.dispatchEvent("success")):(a.o=6,xI(a))}finally{yI(a)}}},yI=function(a,b){if(a.g){vI(a);var c=a.g,d=a.G[0]?function(){}:null;a.g=null;a.G=null;b||a.dispatchEvent("ready");try{c.onreadystatechange=d}catch(e){}}},vI=function(a){a.D&&(z.clearTimeout(a.D),a.D=null)};rI.prototype.isActive=function(){return!!this.g}; + var AI=function(a){return a.g?a.g.readyState:0},BI=function(a){try{return AI(a)>2?a.g.status:-1}catch(b){return-1}},CI=function(a){if(a.g){a:{a=a.g.responseText;if(z.JSON)try{var b=z.JSON.parse(a);break a}catch(c){}b=ko(a)}return b}};var DI=RegExp("/itag/(\\d+)/"),EI=RegExp("/cpn/([\\w-]{16})(/|$)"),FI=RegExp("^[\\w-]{16}$");function GI(a){var b=Number(Rl(a,"itag"));return b?b:(a=a.match(DI))&&a.length===2?Number(a[1]):null}function HI(a){var b=jI[a];a=lI[a];b?(b=ll(b).toLowerCase(),b=a?b+'; codecs="'+ll(a)+'"':b):b="";return b}function II(a,b){if(typeof CustomEvent==="function")return new CustomEvent(a,{detail:b});var c=document.createEvent("CustomEvent");c.initCustomEvent(a,!1,!0,b);return c};var KI=function(){var a=new JI;this.j=a===void 0?null:a}; + KI.prototype.g=function(a,b){if(b instanceof mF&&this.j&&!(b.j.length>0)){a=t(a.g);for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.O);for(var d=c.next();!d.done;d=c.next())if(d=d.value,d instanceof aI){a:{var e=this.j;ho(M.getInstance(),"ghmsh_s");for(var f="",g="",h="",k=0,m=t(d.j),n=m.next();!n.done;n=m.next())n=n.value,f+=n.ia+",",n.url.indexOf("gvt1.com")>=0&&k++;m=t(d.l);for(n=m.next();!n.done;n=m.next())n=n.value,g+=n.ia+",",n.url.indexOf("gvt1.com")>=0&&k++;m=t(d.g);for(n=m.next();!n.done;n= + m.next())n=n.value,h+=n.ia+",",n.url.indexOf("gvt1.com")>=0&&k++;m=t(d.o);for(n=m.next();!n.done;n=m.next())n=n.value,n.mimeType=="application/dash+xml"?N(M.getInstance(),"ghmsh_hd","1"):n.mimeType=="application/vnd.apple.mpegurl"&&N(M.getInstance(),"ghmsh_hh","1");N(M.getInstance(),"ghmsh_mi",f);N(M.getInstance(),"ghmsh_vi",g);N(M.getInstance(),"ghmsh_ai",h);N(M.getInstance(),"ghmsh_gvt",k.toString());e=LI(e,d);e||(ho(M.getInstance(),"ghmsh_f"),d.j.length>0?e=MI(d.j[0]):d.g.length>0&&d.l.length> + 0?e=NI(d.l[0],d.g[0]):(ho(M.getInstance(),"ghmsh_ff"),e=null));if(e){(f=e)?(N(M.getInstance(),"ams","1"),f.getWidth()&&f.getHeight()&&N(M.getInstance(),"vs",f.getWidth()+"x"+f.getHeight()),f.va&&N(M.getInstance(),"vc",f.va),f instanceof xF?(f.g&&N(M.getInstance(),"mt",f.g),f.getMediaUrl().indexOf("gvt1.com")>=0&&N(M.getInstance(),"gvt1","1"),OI(f.getMediaUrl())):f instanceof wF&&(f.l&&N(M.getInstance(),"mt",f.l),f.j&&(N(M.getInstance(),"bit",String(f.j)),f.o.indexOf("gvt1.com")>=0&&N(M.getInstance(), + "gvt1","1")),f.g&&N(M.getInstance(),"bait",String(f.g)),OI(f.o))):N(M.getInstance(),"ams","0");PI(e);if(Ip(eq)&&(f=(f=QI(d,18))?f:null)){e=[e,f];break a}e=[e]}else e=[]}f=void 0;if(e.length>0)for(g=t(e),h=g.next();!h.done;h=g.next())if(h=h.value,k=void 0,h instanceof xF&&(k=h.getMediaUrl()),h instanceof wF&&(k=h.o),k&&(h=k,h=(k=Rl(h,"cpn"))&&k.match(FI)?k:(h=h.match(EI))&&h.length===3?h[1]:null,h)){f=h;break}d=f?f:d.C;N(M.getInstance(),"cpn",d);b.T=d;d=t(e);for(e=d.next();!e.done;e=d.next())b.j.push(e.value)}}}};var RI=function(a){this.g=a};var SI=function(){};SI.prototype.g=function(a,b){a=t(a.g);for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.O);for(var d=c.next();!d.done;d=c.next())if(d=d.value,d instanceof RI)try{var e=d.g;var f=Db(e,"&")?"document"in z?hl(e):il(e):e;var g=DD(f);b.O.set(WE,new WE(g));return}catch(h){}}};var TI=function(){};TI.prototype.g=function(a,b){b instanceof mF&&(b.o=UI(a),b.o&&(b.o.F.forEach(function(c){b.nb(new WD("vastIconRendered",c))}),b.o.C.forEach(function(c){b.nb(new WD("vastIconClicked",c))})))}; + var UI=function(a){a=VI(a);a=t(a);for(var b=a.next();!b.done;b=a.next())if(b=WI(b.value))return b;return null},VI=function(a){var b=[];a=t(a.g);for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.ya);for(var d=c.next();!d.done;d=c.next())d=d.value,d.vb&&b.push.apply(b,u(d.vb.Fa))}return b},XI=function(a){return(a==null?[]:a.Bd).map(function(b){var c=new jF;c.l=b.width||0;c.g=b.height||0;c.j=b.Ob?b.Ob.fb:"";c.Ca=b.Ca;return c})},WI=function(a){var b=a.resources.find(function(f){return f.resourceType=== + "Static"});if(!b)return null;var c=new kF;c.Ga=a.Ga;c.Z=a.Z;c.Ca=a.Ca;c.gb=a.gb!=null?a.gb:"left";c.ib=a.ib!=null?a.ib:"top";c.j=a.height?a.height:0;c.g=a.width?a.width:0;c.G=a.Oc?a.Oc:1;c.Aa=a.Aa?a.Aa:0;c.sa=a.sa?a.sa:-1;c.F=a.cd;if(a.Ka&&a.Ka.xa){c.o=a.Ka.xa.url;c.D=it(a.Ka.xa);for(var d=t(a.Ka.ob),e=d.next();!e.done;e=d.next())c.C.push(e.value.url)}c.J=XI(a.Ka);c.l=b.fb;c.H=b.creativeType;return c};var YI=function(a){var b=a===void 0?{}:a;a=b.uc===void 0?null:b.uc;var c=b.Va===void 0?null:b.Va;var d=b.Sb===void 0?null:b.Sb;var e=b.de===void 0?null:b.de;var f=b.description===void 0?null:b.description;var g=b.eh===void 0?null:b.eh;YF.call(this,{Va:c,errors:b.errors===void 0?[]:b.errors,Eb:b.Eb===void 0?[]:b.Eb,ya:b.ya===void 0?[]:b.ya,Ua:b.Ua===void 0?[]:b.Ua,O:b.O===void 0?[]:b.O});this.uc=a;this.Sb=d;this.de=e;this.description=f;this.eh=g};v(YI,YF);var ZI=function(){}; + ZI.prototype.g=function(a,b){if(b instanceof mF)if(b.j.length>0)N(M.getInstance(),"msm","0");else{N(M.getInstance(),"msm","1");a=t(a.g);for(var c=a.next();!c.done;c=a.next()){c=c.value;for(var d=t(c.ha.ya),e=d.next();!e.done;e=d.next())if((e=e.value.vb)&&c.ha instanceof YI&&(e=e.Ye[0])){var f=new Ls(e.url);f.j==="www.youtube.com"&&f.l==="/get_video"&&N(M.getInstance(),"ugvu","1");f=(e.url=e.url)?GI(e.url):null;f=new xF({Xh:e.url,ia:f,mimeType:e.mimeType,va:e.codec,Da:e.codec,height:e.height,width:e.width, + Ab:null});b.Z=e.Z;b.j.push(f)}}}};var $I=function(a,b){this.g=a===void 0?null:a;this.j=b===void 0?null:b};var aJ=function(){};aJ.prototype.g=function(a,b){a=t(a.g);for(var c=a.next();!c.done;c=a.next()){a:{var d=b;c=t(c.value.ha.O);for(var e=c.next();!e.done;e=c.next())if(e=e.value,e instanceof $I){d.O.set(XE,new XE(e.g,e.j));d=!0;break a}d=!1}if(d)break}};var bJ=function(){};v(bJ,TI);bJ.prototype.g=function(a,b){b instanceof mF&&(b.Fa=cJ(a))};var cJ=function(a){var b=new Set;return VI(a).map(function(c){return WI(c)}).filter(function(c){if(!c||b.has(c.Ga))return!1;b.add(c.Ga);return!0})};var dJ=function(a){this.Ua=a=a===void 0?[]:a};var eJ=function(){};eJ.prototype.g=function(a,b){var c=new ZE,d=[];aG(a,dJ).forEach(function(e){d=d.concat(e.Ua)});a.g.forEach(function(e){d=d.concat(e.ha.Ua)});d.forEach(function(e){var f=e.Wd;if(f){var g=e.ga.map(function(h){return XD(h)});$E(c,e.vendor,f,e.parameters,e.Pb,g)}});c.g.length&&b.O.set(ZE,c)};var fJ=function(a){this.dealId=a};var gJ=function(){};gJ.prototype.g=function(a,b){a=t(a.g.slice().reverse());for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.O);for(var d=c.next();!d.done;d=c.next())if(d=d.value,d instanceof fJ&&(d=d.dealId)&&!D(d)){b.O.set(aF,new aF(d));return}}};var kJ=function(){this.j=[new dG,new gG,new kG,new MH,new SH,new VH,new XH,new ZH,new KI,new SI,new ZI,new aJ,new bJ,new eJ,new gJ,new hJ,new iJ,new jJ]};kJ.prototype.g=function(a,b,c){for(var d=t(this.j),e=d.next();!e.done;e=d.next())e.value.g(a,b,c)};var lJ=function(a,b,c,d){this.l=a;this.j=d===void 0?null:d;this.o=b;this.g=c};var hJ=function(){};hJ.prototype.g=function(a,b){a=t(a.g.slice());for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.O);for(var d=c.next();!d.done;d=c.next())if(d=d.value,d instanceof lJ){b.O.set(bF,new bF(d.l,d.o,d.g,d.j));return}}};var mJ=function(a){this.g=a===void 0?!1:a};var iJ=function(){};iJ.prototype.g=function(a,b){for(var c=t(a.g),d=c.next();!d.done;d=c.next()){d=t(d.value.ha.O);for(var e=d.next();!e.done;e=d.next())if(e=e.value,e instanceof mJ&&(e=new cF(e.g),!e.g)){b.O.set(cF,e);return}}a=t((a.g.length<1?null:a.g[a.g.length-1]).ha.O);for(c=a.next();!c.done;c=a.next())c=c.value,c instanceof mJ&&b.O.set(cF,new cF(c.g))};var nJ=function(a){var b=a===void 0?{}:a;a=b.videoId===void 0?null:b.videoId;var c=b.Hb===void 0?!1:b.Hb;var d=b.ae===void 0?null:b.ae;var e=b.Gf===void 0?null:b.Gf;var f=b.fd===void 0?!1:b.fd;var g=b.me===void 0?null:b.me;var h=b.zd===void 0?null:b.zd;var k=b.yd===void 0?null:b.yd;var m=b.ke===void 0?null:b.ke;var n=b.format===void 0?null:b.format;var p=b.lf===void 0?null:b.lf;b=b.Hf===void 0?null:b.Hf;this.videoId=a;this.Hb=c;this.ae=d;this.Gf=e;this.fd=f;this.me=g;this.zd=h;this.yd=k;this.ke=m; + this.format=n;this.lf=p;this.Hf=b;N(M.getInstance(),"ytext_viu",this.fd?"1":"0");N(M.getInstance(),"ytext_hd",this.ae&&this.yd&&this.zd?"1":"0");this.fd&&N(M.getInstance(),"ytext_vi",this.videoId?this.videoId:"Undefined")};var jJ=function(){};jJ.prototype.g=function(a,b){a=t(a.g);for(var c=a.next();!c.done;c=a.next()){c=t(c.value.ha.O);for(var d=c.next();!d.done;d=c.next())if(d=d.value,d instanceof nJ){b.O.set(fF,new fF(new eF(d.videoId,d.ae,d.Gf,d.Hb,d.fd),new dF(d.me,d.zd,d.yd,d.ke),d.format,d.Hf,d.lf));return}}};var oJ=function(){};oJ.prototype.j=function(a){var b=new aE;this.g(a,b);return b};oJ.prototype.g=function(a,b){a.g.forEach(function(e){pJ(e,b);e.ha.Va&&b.C.push(e.ha.Va)});if(a.g.length>0){var c=a.g[0];c.id&&(b.id=c.id);c.Tb&&(b.Tb=c.Tb);c.Ra&&(b.G=c.Ra);if(Ip(yq)){a=t([].concat(u(a.g)).reverse());for(var d=a.next();!d.done;d=a.next())d=d.value,d.Ra&&b.ca.push(d.Ra)}c=c.ha;c instanceof YI&&(b.Sb=c.Sb,b.uc=c.uc,qJ(c,b))}}; + var pJ=function(a,b){var c=a.ha.j;a.ha.g.forEach(function(d){b.nb(new WD("error",d))});c.forEach(function(d){b.nb(YD("impression",d.url,d.g))})},qJ=function(a,b){a=t(a.ya);for(var c=a.next();!c.done;c=a.next())if((c=c.value.vb)&&c.ub&&c.ub.length>0){a=t(c.ub);for(c=a.next();!c.done;c=a.next())c=c.value,b.ub.push(new TD(c.Ob.resourceType==="Url"?c.Ob.fb:null,c.Ob.resourceType==="Html"?c.Ob.fb:null,c.mimeType,c.Z,c.Zd));break}};var rJ=function(a,b){a=Error.call(this,a);this.message=a.message;"stack"in a&&(this.stack=a.stack);this.Wa=b===void 0?900:b};v(rJ,Error);var sJ=function(a){this.j=a;this.g=Date.now()};sJ.prototype.reset=function(){this.g=Date.now()};var tJ=function(a){a=a.g+a.j-Date.now();return a>0?a:0};var uJ="://secure-...imrworldwide.com/ ://cdn.imrworldwide.com/ ://aksecure.imrworldwide.com/ ://[^.]*.moatads.com ://youtube[0-9]+.moatpixel.com ://pm.adsafeprotected.com/youtube ://pm.test-adsafeprotected.com/youtube ://e[0-9]+.yt.srs.doubleverify.com www.google.com/pagead/xsul www.youtube.com/pagead/slav".split(" "),vJ=/\bocr\b/;function wJ(a){if(D(ll(a))||xc&&a.length>2048)return!1;try{if((new Ls(a)).F.match(vJ))return!0}catch(b){}return uJ.find(function(b){return a.match(b)!=null})!=null};var xJ=function(a,b){var c=Error.call(this,a);this.message=c.message;"stack"in c&&(this.stack=c.stack);this.errorCode=a;this.qk=b};v(xJ,Error);var yJ=function(a){if(typeof DOMParser!="undefined"){var b=new DOMParser;a=Vk(a===null?"null":a===void 0?"undefined":a);return b.parseFromString(Uk(a),"application/xml")}throw Error("Your browser does not support loading xml documents");};var zJ=function(a){R.call(this);this.j=a;this.g={}};Ya(zJ,R);var AJ=[];zJ.prototype.listen=function(a,b,c,d){Array.isArray(b)||(b&&(AJ[0]=b.toString()),b=AJ);for(var e=0;e0?a[a.length-1]:null} + function V(a){if(a.childNodes.length==0)return null;var b="";a=t(a.childNodes);for(var c=a.next();!c.done;c=a.next())switch(c=c.value,c.nodeType){case 4:case 3:b+=c.nodeValue}return b.trim()}function XJ(a){var b=null;if(a.hasAttribute("attributiontype")){var c=a.getAttribute("attributiontype");c==="SINGLE_PING"?b="":c==="DOUBLE_PING"&&a.hasAttribute("attributionsrc")&&(b=a.getAttribute("attributionsrc"))}else a.hasAttribute("attributionsrc")&&(b=a.getAttribute("attributionsrc"));return b} + function YJ(a,b){return a.hasAttribute("type")&&a.getAttribute("type").toLowerCase()==b.toLowerCase()}function ZJ(a){var b=(a||"").split(":");if(b.length==3){a=parseInt(b[0],10);var c=parseInt(b[1],10),d=b[2].split("."),e=parseInt(d[0],10);b=0;d.length==2&&(b=parseInt(d[1],10));if(!(isNaN(a)||isNaN(c)||isNaN(e)||isNaN(b)))return a=a*36E5+c*6E4+e*1E3,a+=b}} + function $J(a){var b=[];a=t(K(a));for(var c=a.next();!c.done;c=a.next()){var d=c.value;if(d.nodeName=="Verification"){c={vendor:d.getAttribute("vendor"),ga:[]};d=t(K(d));for(var e=d.next();!e.done;e=d.next())switch(e=e.value,e.nodeName){case "JavaScriptResource":c.Wd=V(e);c.Pb=e.getAttribute("apiFramework");break;case "VerificationParameters":c.parameters=V(e);break;case "TrackingEvents":c.ga=aK(e)}c.Wd!=null&&b.push(new XF(c))}}return b} + function bK(a){var b=[];a=t(K(a));for(var c=a.next();!c.done;c=a.next())c=c.value,c.nodeName=="CustomTracking"&&b.push.apply(b,u(aK(c)));return b}function cK(a,b){var c=a.getAttribute("id");a=XJ(a);b=new Ks(b,c,a);b.url=tF(b.url,b.g);return b} + function aK(a){var b=[];a=t(K(a));for(var c=a.next();!c.done;c=a.next()){var d=c.value;if(d.nodeName=="Tracking"){c=d.getAttribute("event");var e=V(d);if(e!=null&&!D(e)){var f=d.getAttribute("offset"),g=null,h=null;f&&f.endsWith("%")?h=parseInt(f,10):f&&f.includes(":")&&(g=ZJ(f));d=XJ(d);e=tF(e,d);b.push(new VD(c,e,{Aa:g,Qd:h},d))}}}return b}function dK(a){return a==null||a==="about:blank"?null:a} + function eK(a){var b={};b.Ga=a.getAttribute("program");b.Z=a.getAttribute("apiFramework");b.Ca=a.getAttribute("altText");b.wg=a.getAttribute("hoverText");b.width=TJ(a,"width");b.height=TJ(a,"height");b.gb=a.getAttribute("xPosition");b.ib=a.getAttribute("yPosition");b.sa=ZJ(a.getAttribute("duration"));b.Oc=ZJ(a.getAttribute("pxratio"));b.Aa=fK(a.getAttribute("offset"),b.sa);b.resources=gK(a);b.cd=[];a=t(K(a));for(var c=a.next();!c.done;c=a.next()){var d=c.value;switch(d.nodeName){case "IconViewTracking":b.cd.push(V(d)); + break;case "IconClicks":c=null;var e=[],f=[];d=t(K(d));for(var g=d.next();!g.done;g=d.next()){g=g.value;var h=V(g),k=g.getAttribute("id");switch(g.nodeName){case "IconClickThrough":h!=null&&(c=cK(g,h));break;case "IconClickTracking":h!=null&&e.push(new Ks(h,k));break;case "IconClickFallbackImages":f=hK(g)}}b.Ka=new DF({xa:c,ob:e,Bd:f})}}return new EF(b)}function fK(a,b){if(a!=null)return a.endsWith("%")&&b!=null?parseInt(a,10)*b/100:ZJ(a)} + function gK(a){var b=[];a=t(K(a));for(var c=a.next();!c.done;c=a.next()){c=c.value;var d=V(c);if(d!=null)switch(c.nodeName){case "StaticResource":b.push(new yF(d,"Static",c.getAttribute("creativeType")));break;case "HTMLResource":b.push(new yF(d,"Html"));break;case "IFrameResource":b.push(new yF(d,"IFrame"))}}return b} + function hK(a){var b=[];a=t(K(a));for(var c=a.next();!c.done;c=a.next()){var d=c.value;c=gK(d).filter(function(g){return g.resourceType=="Static"});if(c.length>0){var e=TJ(d,"width"),f=TJ(d,"height");d=iK(d);b.push(new CF(c[0],e,f,d))}}return b}function iK(a){a=t(K(a));for(var b=a.next();!b.done;b=a.next())if(b=b.value,b.nodeName=="AltText")return V(b);return null};var jK=function(){this.g=[]},kK=function(a,b){a.g.includes(b)||a.g.push(b)},lK=function(a,b){var c=[];b=t(b);for(var d=b.next();!d.done;d=b.next())if(d=d.value,d.nodeName=="Extension")for(var e=t(a.g),f=e.next();!f.done;f=e.next())if(f=f.value.g(d),f!=null){c.push(f);break}return c},mK=function(a){var b={lb:[]};b.Ra=TJ(a,"sequence");b.id=a.getAttribute("id");b.adId=a.getAttribute("adId");for(var c=t(K(a)),d=c.next();!d.done;d=c.next()){var e=d.value;switch(e.nodeName){case "Linear":for(var f=void 0, + g=void 0,h=void 0,k=[],m=[],n=[],p=[],q=[],r=t(K(e)),w=r.next();!w.done;w=r.next()){var A=w.value;switch(A.nodeName){case "TrackingEvents":k=aK(A);break;case "VideoClicks":for(var C=null,Q=[],F=[],fa=t(K(A)),Xa=fa.next();!Xa.done;Xa=fa.next()){var Dd=Xa.value,Ed=V(Dd);if(Ed!=null){var se=Dd.getAttribute("id");switch(Dd.nodeName){case "ClickThrough":C=cK(Dd,Ed);break;case "ClickTracking":var ki=XJ(Dd);Q.push(new Ks(Ed,se,ki));break;case "CustomClick":F.push(new Ks(Ed,se))}}}h=new IF({xa:C,ob:Q,te:F}); + break;case "MediaFiles":for(var Fd=[],$a=[],te=[],ad=t(K(A)),Ec=ad.next();!Ec.done;Ec=ad.next()){var Ma=Ec.value;switch(Ma.nodeName){case "MediaFile":var vg=void 0,bd=V(Ma);if(bd==null)var ue=null;else{bd.indexOf("www.youtube.com/get_video")!=-1?N(M.getInstance(),"hgvu","1"):bd.indexOf("redirector.gvt1.com/get_video")!=-1&&N(M.getInstance(),"hgvuc","1");var Nb={};Nb.height=TJ(Ma,"height");Nb.width=TJ(Ma,"width");Nb.rb=Ma.getAttribute("delivery");Nb.bitrate=TJ(Ma,"bitrate");Nb.Eg=TJ(Ma,"minBitrate"); + Nb.maxBitrate=TJ(Ma,"maxBitrate");Nb.mimeType=(vg=Ma.getAttribute("type"))==null?void 0:vg.toLowerCase();Nb.Z=Ma.getAttribute("apiFramework");Nb.codec=Ma.getAttribute("codec");var cd=GI(bd);cd!=null&&(Nb.ia=cd);ue=new HF(bd,Nb)}var ve=ue;ve!==null&&Fd.push(ve);break;case "ClosedCaptionFiles":for(var ac=[],we=t(K(Ma)),xe=we.next();!xe.done;xe=we.next()){var Gd=xe.value,ye=V(Gd);if(ye!==null){var lc={url:ye},bc=void 0;lc.mimeType=(bc=Gd.getAttribute("type"))==null?void 0:bc.toLowerCase();lc.language= + Gd.getAttribute("language");ac.push(new BF(lc))}}te=ac;break;case "InteractiveCreativeFile":var wg=void 0,ze=WJ(Ma,"HTMLResource");if(ze){var mc="Html";var Ae=V(ze)}else mc="Url",Ae=V(Ma);if(!Ae||D(Ae))var Be=null;else{var Hd=new yF(Ae,mc),Id={};Id.mimeType=(wg=Ma.getAttribute("type"))==null?void 0:wg.toLowerCase();Id.Z=Ma.getAttribute("apiFramework");Id.Zd=UJ(Ma.getAttribute("variableDuration"));var mf=new FF(Hd,Id);mc==="Html"?io("lima_p_ich"):io("lima_p_icu");Be=mf}var Ce=Be;Ce!==null&&$a.push(Ce)}}N(M.getInstance(), + "vmfc",""+Fd.length);var xg=te.length===0?"0":"1";N(M.getInstance(),"vhc",xg);var nf=Fd;var zk=te;var Ak=$a;m=nf;p=zk;n=Ak;break;case "Duration":g=ZJ(V(A));break;case "AdParameters":f=ll(V(A));break;case "Icons":for(var Bk=[],Co=t(K(A)),li=Co.next();!li.done;li=Co.next()){var Do=li.value;Do.nodeName=="Icon"&&Bk.push(eK(Do))}var mi=q=Bk;N(M.getInstance(),"icc",mi.length.toString());if(mi.length>0){for(var Eo=0,Fo=0,Go=0,Ho=0,ab=null,Ck="ns",Io="ns",yg=t(mi),of=yg.next();!of.done;of=yg.next()){for(var Jd= + of.value,Dk=t(Jd.resources),zg=Dk.next();!zg.done;zg=Dk.next())switch(zg.value.resourceType){case "Html":Eo++;break;case "IFrame":Fo++;break;case "Static":Go++;break;default:Ho++}ab=Jd.Ga;Io=Jd.width?Jd.width.toString():"ns";Ck=Jd.height?Jd.height.toString():"ns"}N(M.getInstance(),"icrh",Eo.toString());N(M.getInstance(),"icri",Fo.toString());N(M.getInstance(),"icrs",Go.toString());N(M.getInstance(),"icru",Ho.toString());ab&&(ab.length>16&&(ab=ab.substring(0,15)+"*"),N(M.getInstance(),"icp",ab));N(M.getInstance(), + "icdi",Ck+"x"+Io)}}}var Ek=fK(e.getAttribute("skipoffset"),g);b.vb=new RF({duration:g,Oa:Ek,ga:k,Ye:m,ub:n,Zf:p,Ff:h,wa:f,Fa:q});break;case "NonLinearAds":for(var Fk=[],Gk=[],Hk=t(K(e)),ni=Hk.next();!ni.done;ni=Hk.next()){var pf=ni.value;switch(pf.nodeName){case "NonLinear":for(var Ik=Fk,qf=Ik.push,Kd=pf,Jo=gK(Kd),Bu=Kd.getAttribute("id"),Cu=TJ(Kd,"width"),Ko=TJ(Kd,"height"),rf=Kd.getAttribute("apiFramework"),Lo=ZJ(Kd.getAttribute("minSuggestedDuration")),Jk=null,Kk=null,Mo=[],Lk=t(K(Kd)),wb=Lk.next();!wb.done;wb= + Lk.next()){var bb=wb.value,oi=V(bb);if(oi!=null)switch(bb.nodeName){case "NonLinearClickThrough":Kk=cK(bb,oi);break;case "NonLinearClickTracking":var Du=XJ(bb);Mo.push(new Ks(oi,bb.getAttribute("id"),Du));break;case "AdParameters":Jk=ll(oi)}}qf.call(Ik,new SF({id:Bu,Z:rf,width:Cu,height:Ko,Fg:Lo,Kg:Kk,Lg:Mo,resources:Jo,wa:Jk}));break;case "TrackingEvents":Gk=aK(pf)}}b.gf=new TF(Fk,Gk);var pi=b.gf.g;N(M.getInstance(),"nlc",pi.length.toString());if(pi.length>0){for(var No=0,Oo=0,Po=0,Qo=0,Mk=!1,Ro= + t(pi),qi=Ro.next();!qi.done;qi=Ro.next())for(var So=t(qi.value.resources),Nk=So.next();!Nk.done;Nk=So.next()){var Ag=Nk.value;switch(Ag.resourceType){case "Html":No++;Mk=Mk||Db(Ag.fb,"<");break;case "IFrame":Oo++;break;case "Static":Po++;break;default:Qo++}}N(M.getInstance(),"nlrh",No.toString());N(M.getInstance(),"nlri",Oo.toString());N(M.getInstance(),"nlrs",Po.toString());N(M.getInstance(),"nlru",Qo.toString());N(M.getInstance(),"nlrhc",Mk.toString())}break;case "CompanionAds":var To=[];e.getAttribute("required"); + for(var Uo=t(K(e)),ri=Uo.next();!ri.done;ri=Uo.next()){var Vo=ri.value;if(Vo.nodeName=="Companion"){for(var si=To,De=si.push,Fc=void 0,Gc=Vo,Ok=gK(Gc),Wo=Gc.getAttribute("id"),Pk=Gc.getAttribute("adSlotID"),Eu=Gc.getAttribute("apiFramework"),Fu=Gc.getAttribute("width")==="fluid"&&Gc.getAttribute("height")==="fluid",Xo=TJ(Gc,"width"),Gu=TJ(Gc,"height"),Bg=[],ti=null,Yo=[],Qk=t(K(Gc)),Zo=Qk.next();!Zo.done;Zo=Qk.next()){var Cg=Zo.value;switch(Cg.nodeName){case "TrackingEvents":Bg=aK(Cg);break;case "CompanionClickThrough":Fc= + V(Cg);Fc==null||D(Fc)||(ti=cK(Cg,Fc));break;case "CompanionClickTracking":if(Fc=V(Cg),Fc!=null&&!D(Fc)){var yU=XJ(Cg);Yo.push(new Ks(Fc,Cg.getAttribute("id"),yU))}}}De.call(si,new zF({id:Wo,Rb:Pk,Z:Eu,width:Xo,height:Gu,xe:Fu,zb:ti,ag:Yo,resources:Ok,ga:Bg}))}}b.Ac=new AF(To);var Hu=b.Ac.g;N(M.getInstance(),"ccc",Hu.length.toString());if(Hu.length>0){for(var JF=0,KF=0,LF=0,MF=0,Iu=!1,NF=t(Hu),Ju=NF.next();!Ju.done;Ju=NF.next())for(var OF=t(Ju.value.resources),Ku=OF.next();!Ku.done;Ku=OF.next()){var PF= + Ku.value;switch(PF.resourceType){case "Html":JF++;Iu=Iu||Db(PF.fb,"<");break;case "IFrame":KF++;break;case "Static":LF++;break;default:MF++}}N(M.getInstance(),"ccrh",JF.toString());N(M.getInstance(),"ccri",KF.toString());N(M.getInstance(),"ccrs",LF.toString());N(M.getInstance(),"ccru",MF.toString());N(M.getInstance(),"ccrhc",Iu.toString())}break;case "UniversalAdId":var QF=b.lb,zU=QF.push,Lu=V(e);Lu||(Lu=e.getAttribute("idValue"));var AU=e.getAttribute("idRegistry");zU.call(QF,new UF({Ie:AU,Je:Lu}))}}return new VF(b)};var nK=function(a,b){this.j=a;this.g=b===void 0?null:b};var oK=function(a,b){bG.call(this,a);this.g=b};v(oK,bG);var pK=function(){};v(pK,oJ);pK.prototype.j=function(a){var b=new mF;this.g(a,b);return b}; + pK.prototype.g=function(a,b){oJ.prototype.g.call(this,a,b);for(var c=t(a.g),d=c.next();!d.done;d=c.next())d=d.value,qK(d,b),d=d.ha,d instanceof YI&&(b.description=d.description);a:if(c=a.g.length<1?null:a.g[0])if(d=aG(a,nK),d.length>0)for(a=t(d),c=a.next();!c.done;c=a.next())c=c.value,c.j&&(b.Oa=c.g?c.g:5E3);else{c=t(c.ha.ya);for(d=c.next();!d.done;d=c.next())if((d=d.value.vb)&&d.Oa!=null){b.Oa=d.Oa;break a}c=aG(a,bG);c=t(c);for(d=c.next();!d.done;d=c.next()){d=t(d.value.ga);for(var e=d.next();!e.done;e= + d.next())if(e.value.eventType=="skip"){b.Oa=5E3;break a}}a=aG(a,oK);a=t(a);for(c=a.next();!c.done;c=a.next())if(c.value.g=="Generic"){b.Oa=5E3;break}}}; + var qK=function(a,b){for(var c=t(a.ha.ya),d=c.next();!d.done;d=c.next()){d=d.value;var e=d.vb;if(e){b.creativeId=d.id;b.D=d.adId;b.lb=d.lb.map(function(k){return new lF(k.Je,k.Ie)});for(var f=t(e.ga),g=f.next();!g.done;g=f.next())b.nb(XD(g.value));if(f=e.Ff){g=t(f.ob);for(var h=g.next();!h.done;h=g.next())h=h.value,b.nb(YD("click",h.url,h.g,h.id));g=t(f.te);for(h=g.next();!h.done;h=g.next())h=h.value,h.id&&b.nb(new WD(h.id,h.url))}a.ha instanceof YI&&(b.sa=d.vb.duration,e.wa&&(b.wa=e.wa),f&&f.xa&& + (b.g=f.xa.url,b.l=it(f.xa),b.R=f.xa.g))}}};var rK=function(a){this.l=a};v(rK,pK);rK.prototype.j=function(a){var b=new vF(this.l);this.g(a,b);return b};rK.prototype.g=function(a,b){pK.prototype.g.call(this,a,b);b.F=a.g[0].ha.de};function sK(a,b){b=b!=null?b:"";xc&&(b="");if(!D(ll(a))){var c=a instanceof dk||!RD.test(a)?a:new dk(a);a=c instanceof dk?c:jk(a);c=window;a=lk(a);a!==void 0&&c.open(a,"_blank",b)}};function tK(a,b){for(var c;!(c=a.next()).done;)b(c.value)}var uK=function(a,b){this.g=a[z.Symbol.iterator]();this.j=b};uK.prototype[Symbol.iterator]=function(){return this};uK.prototype.next=function(){var a=this.g.next();return{value:a.done?void 0:this.j.call(void 0,a.value),done:a.done}};var vK=function(a,b){return new uK(a,b)};var wK=function(a,b){var c=new Set(a);tK(b[Symbol.iterator](),function(d){return c.add(d)});return c};var xK=new Map,yK=function(){this.j=this.g=null};function zK(a,b,c,d){var e=ix(a);b==e||b&&e&&b.width==e.width&&b.height==e.height?(e=setTimeout(function(){return zK(a,b,c,d)},200),d.j=e):(AK(d),c(e))} + function BK(a){var b=new yK,c=new Promise(function(f){var g=ix(a);if("ResizeObserver"in window){var h=new ResizeObserver(function(k){window.requestAnimationFrame(function(){for(var m=new al(0,0),n=t(k),p=n.next();!p.done;p=n.next())if(p=p.value,p.contentBoxSize?(p=Array.isArray(p.contentBoxSize)?p.contentBoxSize[0]:p.contentBoxSize,m.width=Math.floor(p.inlineSize),m.height=Math.floor(p.blockSize)):(m.width=Math.floor(p.contentRect.width),m.height=Math.floor(p.contentRect.height)),!(g==m||g&&m&&g.width== + m.width&&g.height==m.height))return AK(b),f(m)})});b.g=h;h.observe(a)}else zK(a,g,f,b)}),d,e=(d=xK.get(c))!=null?d:new Set;e.add(b);xK.set(c,e);return c}function CK(a){var b=b===void 0?new al(1,1):b;var c=function(g){var h=BK(a),k,m=(k=xK.get(g))!=null?k:new Set,n;k=(n=xK.get(h))!=null?n:new Set;xK.set(g,wK(m,k));return h},d=function(g,h){c(g).then(function(k){return b.width<=k.width&&b.height<=k.height?(DK(g),h(k)):d(g,h)})},e,f=new Promise(function(g){e=g});d(f,e);return f} + function DK(a){a=xK.get(a);a=t(a);for(var b=a.next();!b.done;b=a.next())AK(b.value)}function AK(a){a.j&&window.clearTimeout(a.j);a.g&&(a.g.disconnect(),a.g=null)};var EK=function(a){U.call(this);this.g=a;this.o=this.C=!1;this.D=this.G=0;this.j=new $C(1E3);Mt(this,this.j);iC(this.j,"tick",this.H,!1,this);iC(this.g,"pause",this.l,!1,this);iC(this.g,"playing",this.l,!1,this);iC(this.g,"ended",this.l,!1,this);iC(this.g,"timeupdate",this.l,!1,this)};v(EK,U);var FK=function(a){var b;return(b=a.g.currentTime)!=null?b:a.g.getCurrentTime()}; + EK.prototype.l=function(a){switch(a.type){case "playing":GK(this);break;case "pause":case "ended":this.j.enabled&&this.j.stop();break;case "timeupdate":!this.C&&FK(this)>0&&(this.C=!0,GK(this))}};var GK=function(a){!a.j.enabled&&a.C&&(a.G=FK(a)*1E3,a.D=Date.now(),a.o=!1,a.j.start())};EK.prototype.H=function(){var a=Date.now(),b=a-this.D,c=FK(this)*1E3;c-this.G3;if(c){a.o===null&&(a.o=400);var d=II("media_source_error",{code:a.l>0?MediaError.MEDIA_ERR_NETWORK:MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED,message:'Response code "'+a.o+'" with '+a.g+" bytes requested and "+a.l+" bytes loaded"});a.dispatchEvent(d)}a.l=400)return N(M.getInstance(),"lvlfes",d.status.toString()),a.o=d.status,k.return(Promise.reject());f=(e=d.body)==null?void 0:e.getReader();if(!f)return ho(M.getInstance(),"lvlmr"),a.o=d.status,k.return(Promise.reject());g=[];h=function(){var m,n,p,q,r,w;return y(function(A){if(A.g==1)return x(A,f.read(),2);m=A.j;n=m.done;p=m.value;if(n)return q=b0&&a.j.Of(d.buffer,a.uri,0,c)},ZK=function(a,b){b!==null&&(b=b.slice(0),a.l+=b.byteLength,a.dispatchEvent({type:"progress",Wf:b}))};UK.prototype.Y=function(){var a;((a=this.j)==null?0:a.Ic())&&this.j.close();TK.prototype.Y.call(this)};var aL=["doubleclick.net"]; + function bL(){if(Ub()||E("iPad")||E("iPod"))var a=!1;else if(Tb()){if(MD===void 0){a:{if(KD===void 0){if(OD){a=Db(ND(),"Safari");var b=(new Ls(window.location.href)).g.Zc("js");b:{if((b=b.length?b[0]:"")&&sb(b,"afma-")){var c=b.lastIndexOf("v");if(c>-1&&(b=b.substr(c+1).match(/^(\d+\.\d+\.\d+|^\d+\.\d+|^\d+)(-.*)?$/))){b=b[1];break b}}b="0.0.0"}if(!a||b!=="0.0.0"){a=KD=!0;break a}}KD=!1}a=KD}a||(LD===void 0&&(LD=Db(ND(),"afma-sdk-a")?!0:!1),a=LD);MD=a}a=MD?!0:Kl()?!1:cL()}else a=!1;return a} + function cL(){var a=!1,b=(new Ls(window.location.href)).j;aL.forEach(function(c){b.includes(c)&&(a=!0)});return a};var dL,gL=function(a,b,c){if(typeof a==="number")var d={name:eL(a)};else d=a,a=fL(a.name);this.code=a;this.g=d;b="Error "+b+": "+this.getName();c&&(b+=", "+c);cb.call(this,b)};Ya(gL,cb);gL.prototype.getName=function(){return this.g.name||""}; + var hL={zj:1,Im:2,NOT_FOUND_ERR:3,Ti:4,Xi:5,Jm:6,yj:7,ABORT_ERR:8,wj:9,jn:10,TIMEOUT_ERR:11,uj:12,INVALID_ACCESS_ERR:13,INVALID_STATE_ERR:14},iL=(z.g||z.j||hL).zj,jL=(z.g||z.j||hL).NOT_FOUND_ERR,kL=(z.g||z.j||hL).Ti,lL=(z.g||z.j||hL).Xi,mL=(z.g||z.j||hL).yj,nL=(z.g||z.j||hL).ABORT_ERR,oL=(z.g||z.j||hL).wj,pL=(z.g||z.j||hL).TIMEOUT_ERR,qL=(z.g||z.j||hL).uj,rL=(z.DOMException||hL).INVALID_ACCESS_ERR,sL=(z.DOMException||hL).INVALID_STATE_ERR,fL=function(a){switch(a){case "UnknownError":return iL;case "NotFoundError":return jL; + case "ConstraintError":return kL;case "DataError":return lL;case "TransactionInactiveError":return mL;case "AbortError":return nL;case "ReadOnlyError":return oL;case "TimeoutError":return pL;case "QuotaExceededError":return qL;case "InvalidAccessError":return rL;case "InvalidStateError":return sL;default:return iL}},eL=function(a){switch(a){case iL:return"UnknownError";case jL:return"NotFoundError";case kL:return"ConstraintError";case lL:return"DataError";case mL:return"TransactionInactiveError"; + case nL:return"AbortError";case oL:return"ReadOnlyError";case pL:return"TimeoutError";case qL:return"QuotaExceededError";case rL:return"InvalidAccessError";case sL:return"InvalidStateError";default:return"UnknownError"}},tL=function(a,b){return"error"in a?new gL(a.error,b):new gL({name:"UnknownError"},b)},uL=function(a,b){return"name"in a?new gL(a,b+": "+a.message):new gL({name:"UnknownError"},b)};var vL=function(a){this.g=a},wL=z.IDBKeyRange||z.webkitIDBKeyRange;/* + + Copyright 2005, 2007 Bob Ippolito. All Rights Reserved. + Copyright The Closure Library Authors. + SPDX-License-Identifier: MIT +*/ + var xL=function(){this.C=[];this.o=this.l=!1;this.j=void 0;this.H=this.N=this.D=!1;this.F=0;this.g=null;this.G=0};xL.prototype.cancel=function(a){if(this.l)this.j instanceof xL&&this.j.cancel();else{if(this.g){var b=this.g;delete this.g;a?b.cancel(a):(b.G--,b.G<=0&&b.cancel())}this.H=!0;this.l||yL(this,new zL(this))}};xL.prototype.J=function(a,b){this.D=!1;AL(this,a,b)};var AL=function(a,b,c){a.l=!0;a.j=c;a.o=!b;BL(a)},DL=function(a){if(a.l){if(!a.H)throw new CL(a);a.H=!1}}; + xL.prototype.callback=function(a){DL(this);AL(this,!0,a)};var yL=function(a,b){DL(a);AL(a,!1,b)},FL=function(a,b){return EL(a,b,null)},EL=function(a,b,c,d){a.C.push([b,c,d]);a.l&&BL(a);return a};xL.prototype.then=function(a,b,c){var d,e,f=new IC(function(g,h){e=g;d=h});EL(this,e,function(g){g instanceof zL?f.cancel():d(g);return GL},this);return f.then(a,b,c)};xL.prototype.$goog_Thenable=!0; + var HL=function(a){return dc(a.C,function(b){return typeof b[1]==="function"})},GL={},BL=function(a){if(a.F&&a.l&&HL(a)){var b=a.F,c=IL[b];c&&(z.clearTimeout(c.g),delete IL[b]);a.F=0}a.g&&(a.g.G--,delete a.g);b=a.j;for(var d=c=!1;a.C.length&&!a.D;){var e=a.C.shift(),f=e[0],g=e[1];e=e[2];if(f=a.o?g:f)try{var h=f.call(e||null,b);h===GL&&(h=void 0);h!==void 0&&(a.o=a.o&&(h==b||h instanceof Error),a.j=b=h);if(GC(b)||typeof z.Promise==="function"&&b instanceof z.Promise)d=!0,a.D=!0}catch(k){b=k,a.o=!0, + HL(a)||(c=!0)}}a.j=b;d&&(h=Ua(a.J,a,!0),d=Ua(a.J,a,!1),b instanceof xL?(EL(b,h,d),b.N=!0):b.then(h,d));c&&(b=new JL(b),IL[b.g]=b,a.F=b.g)},CL=function(){cb.call(this)};Ya(CL,cb);CL.prototype.message="Deferred has already fired";CL.prototype.name="AlreadyCalledError";var zL=function(){cb.call(this)};Ya(zL,cb);zL.prototype.message="Deferred was canceled";zL.prototype.name="CanceledError";var JL=function(a){this.g=z.setTimeout(Ua(this.l,this),0);this.j=a}; + JL.prototype.l=function(){delete IL[this.g];throw this.j;};var IL={};var KL=function(){U.call(this)};Ya(KL,U);KL.prototype.g=null;KL.prototype.next=function(a){if(a)this.g["continue"](a);else this.g["continue"]()};KL.prototype.remove=function(){var a=new xL;try{var b=this.g["delete"]()}catch(c){return yL(a,uL(c,"deleting via cursor")),a}b.onsuccess=function(){a.callback()};b.onerror=function(c){yL(a,tL(c.target,"deleting via cursor"))};return a};KL.prototype.getValue=function(){return this.g.value}; + var LL=function(a,b){var c=new KL;try{var d=a.openCursor(b?b.g:null)}catch(e){throw c.dispose(),uL(e,a.name);}d.onsuccess=function(e){c.g=e.target.result||null;c.g?c.dispatchEvent("n"):c.dispatchEvent("c")};d.onerror=function(){c.dispatchEvent("e")};return c};var ML=function(a){this.g=a};ML.prototype.getName=function(){return this.g.name};var NL=function(a,b,c){var d=new xL;try{var e=a.g.get(c)}catch(f){return b+=" with key "+dl(c),yL(d,uL(f,b)),d}e.onsuccess=function(f){d.callback(f.target.result)};e.onerror=function(f){b+=" with key "+dl(c);yL(d,tL(f.target,b))};return d};ML.prototype.get=function(a){return NL(this,"getting from index "+this.getName(),a)};var OL=function(a,b){return LL(a.g,b)};var PL=function(a){this.g=a};PL.prototype.getName=function(){return this.g.name};var QL=function(a,b,c,d,e){var f=new xL;try{var g=e?a.g[b](d,e):a.g[b](d)}catch(h){return c+=dl(d),e&&(c+=", with key "+dl(e)),yL(f,uL(h,c)),f}g.onsuccess=function(h){f.callback(h.target.result)};g.onerror=function(h){c+=dl(d);e&&(c+=", with key "+dl(e));yL(f,tL(h.target,c))};return f},RL=function(a,b){return QL(a,"put","putting into "+a.getName()+" with value",b)}; + PL.prototype.add=function(a,b){return QL(this,"add","adding into "+this.getName()+" with value ",a,b)};PL.prototype.remove=function(a){var b=new xL;try{var c=this.g["delete"](a instanceof vL?a.g:a)}catch(e){return c="removing from "+this.getName()+" with key "+dl(a),yL(b,uL(e,c)),b}c.onsuccess=function(){b.callback()};var d=this;c.onerror=function(e){var f="removing from "+d.getName()+" with key "+dl(a);yL(b,tL(e.target,f))};return b}; + PL.prototype.get=function(a){var b=new xL;try{var c=this.g.get(a)}catch(e){return c="getting from "+this.getName()+" with key "+dl(a),yL(b,uL(e,c)),b}c.onsuccess=function(e){b.callback(e.target.result)};var d=this;c.onerror=function(e){var f="getting from "+d.getName()+" with key "+dl(a);yL(b,tL(e.target,f))};return b}; + PL.prototype.clear=function(){var a="clearing store "+this.getName(),b=new xL;try{var c=this.g.clear()}catch(d){return yL(b,uL(d,a)),b}c.onsuccess=function(){b.callback()};c.onerror=function(d){yL(b,tL(d.target,a))};return b};var SL=function(a){try{return new ML(a.g.index("timestamp"))}catch(b){throw uL(b,"getting index timestamp");}};var TL=function(a,b){U.call(this);this.g=a;this.l=b;this.j=new zJ(this);this.j.listen(this.g,"complete",Ua(this.dispatchEvent,this,"complete"));this.j.listen(this.g,"abort",Ua(this.dispatchEvent,this,"abort"));this.j.listen(this.g,"error",this.ij)};Ya(TL,U);l=TL.prototype;l.ij=function(a){a.target instanceof gL?this.dispatchEvent({type:"error",target:a.target}):this.dispatchEvent({type:"error",target:tL(a.target,"in transaction")})}; + l.objectStore=function(a){try{return new PL(this.g.objectStore(a))}catch(b){throw uL(b,"getting object store "+a);}};l.commit=function(a){if(this.g.commit||!a)try{this.g.commit()}catch(b){throw uL(b,"cannot commit the transaction");}};l.wait=function(){var a=new xL;hC(this,"complete",Ua(a.callback,a));var b=hC(this,"abort",function(){qC(c);yL(a,new gL(nL,"waiting for transaction to complete"))});var c=hC(this,"error",function(e){qC(b);yL(a,e.target)});var d=this.l;return FL(a,function(){return d})}; + l.abort=function(){this.g.abort()};l.Y=function(){TL.kb.Y.call(this);this.j.dispose()};var UL=function(a){U.call(this);this.g=a;this.j=new zJ(this);this.j.listen(this.g,"abort",Ua(this.dispatchEvent,this,"abort"));this.j.listen(this.g,"error",this.jj);this.j.listen(this.g,"versionchange",this.Vj);this.j.listen(this.g,"close",Ua(this.dispatchEvent,this,"close"))};Ya(UL,U);l=UL.prototype;l.Ng=!0;l.jj=function(a){a=(a=a.target)&&a.error;this.dispatchEvent({type:"error",errorCode:a&&a.severity})};l.Vj=function(a){this.dispatchEvent(new VL(a.oldVersion,a.newVersion))}; + l.close=function(){this.Ng&&(this.g.close(),this.Ng=!1)};l.Ic=function(){return this.Ng};l.getName=function(){return this.g.name};l.getVersion=function(){return Number(this.g.version)};var WL=function(a){var b=["MediaSourceVideoChunk"];try{var c=a.g.transaction(b,"readwrite");return new TL(c,a)}catch(d){throw uL(d,"creating transaction");}};UL.prototype.Y=function(){UL.kb.Y.call(this);this.j.dispose()};var VL=function(a,b){VB.call(this,"versionchange");this.oldVersion=a;this.newVersion=b};Ya(VL,VB);var XL=function(a){var b=new xL;dL==void 0&&(dL=z.indexedDB||z.mozIndexedDB||z.webkitIndexedDB||z.moz_indexedDB);var c=dL.open("IndexedDbVideoChunkPersistentStorage",6);c.onsuccess=function(d){d=new UL(d.target.result);b.callback(d)};c.onerror=function(d){yL(b,tL(d.target,"opening database IndexedDbVideoChunkPersistentStorage"))};c.onupgradeneeded=function(d){if(a){var e=new UL(d.target.result);a(new VL(d.oldVersion,d.newVersion),e,new TL(d.target.transaction,e))}};c.onblocked=function(){};return b};var YL=function(){U.apply(this,arguments);this.g=null};v(YL,U);YL.prototype.initialize=function(){var a=this;return Promise.resolve(XL(this.j)).then(function(b){a.g=b},function(b){N(M.getInstance(),"codf",b.message)})};YL.prototype.Ic=function(){return this.g!==null&&this.g.Ic()};YL.prototype.close=function(){var a=this;return(new Promise(function(b){ZL(a,b)})).then(function(){return $L()}).then(function(){a.g.close()})}; + var $L=function(){var a;return((a=navigator.storage)==null?0:a.estimate)?navigator.storage.estimate().then(function(b){N(M.getInstance(),"csue",String(b.usage))}):Promise.resolve(void 0)};YL.prototype.ug=function(a){return(a=aM(a,0))?bM(this,cM(a),a.Pe):Promise.resolve(null)};YL.prototype.Of=function(a,b,c,d){(b=aM(b,c))?(c=b.startIndex,dM(this,{on:cM(b),startIndex:c,mg:c+a.byteLength-1,Pe:b.Pe,timestamp:new Date(Date.now()),Md:d,ia:b.ia,video:a})):Promise.resolve(void 0)}; + YL.prototype.j=function(a,b){if(b.g.objectStoreNames.contains("MediaSourceVideoChunk"))try{b.g.deleteObjectStore("MediaSourceVideoChunk")}catch(d){throw uL(d,"deleting object store MediaSourceVideoChunk");}a={keyPath:"cacheId"};try{var c=new PL(b.g.createObjectStore("MediaSourceVideoChunk",a))}catch(d){throw uL(d,"creating object store MediaSourceVideoChunk");}b={unique:!1};try{c.g.createIndex("timestamp","timestamp",b)}catch(d){throw uL(d,"creating new index timestamp with key path timestamp");}}; + var ZL=function(a,b){var c=new Date(Date.now());c.setDate(c.getDate()-30);c=new vL(wL.upperBound(c,void 0));var d=OL(SL(WL(a.g).objectStore("MediaSourceVideoChunk")),c),e=d.listen("n",function(){d.remove();d.next()});hC(d,"c",function(){qC(e);b()})},aM=function(a,b){var c=new NK(a);a=c.getId();var d=PK(c,"itag"),e=c.Id(),f=PK(c,"lmt");c=QK(c);var g=[];a?d?e?f?c===null&&g.push("startIndex"):g.push("lmt"):g.push("source"):g.push("itag"):g.push("videoId");return g.length>0?(N(M.getInstance(),"civp", + g.join("-")),null):{videoId:a,ia:d,source:e,Pe:f,startIndex:c+b}},cM=function(a){for(var b=[a.videoId,a.source,a.startIndex].join(),c=0,d=0;d3;if(c&&a.o!==null){var d=II("media_source_error",{code:a.j>0?MediaError.MEDIA_ERR_NETWORK:MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED,message:'Response code "'+a.o+'" with '+a.g+" bytes requested and "+a.j+" bytes loaded"});a.dispatchEvent(d)}a.j=400)N(M.getInstance(),"lvlxes",d.status.toString()),a.o=d.status,c();else{var g=d.response;g.byteLength0&&a.l.Of(g,a.uri,0,g.byteLength=400)a.o=d.status;else{var g=kM(a,d.response,e);e+=g}});d.responseType="arraybuffer";d.open("get",a.uri.toString());d.send(null)})},kM=function(a,b,c){if(b===null)return 0;b=b.slice(c);a.j+=b.byteLength;a.dispatchEvent({type:"progress",Wf:b});return b.byteLength};eM.prototype.Y=function(){this.C&&this.l.Ic()&&this.l.close();TK.prototype.Y.call(this)};var lM={En:2E5,Cn:7E4,Eh:3E5,Bn:5E3,Gn:5E3,Dn:6E3};function mM(a){return[43,44,45].includes(a)&&Dc?!1:hI[a]?(a=HI(a),!!a&&!!window.MediaSource&&MediaSource.isTypeSupported(a)):!1};var nM=function(){};nM.prototype.Dk=function(a,b,c){return c===0?1E6:b-a<5E3?3E5:0};var pM=function(a,b){var c=this;this.g=a;this.index=b;this.j=[];this.g||ho(M.getInstance(),"msms_sbf"+this.index);this.g.addEventListener("updateend",function(){oM(c)});this.g.addEventListener("error",function(){ho(M.getInstance(),"msms_sbe"+c.index)})},oM=function(a){if(a.j.length>0&&!a.g.updating){var b=a.j.shift();a.g.appendBuffer(b)}};var qM=function(){this.g=this.cache=null};l=qM.prototype;l.initialize=function(){var a=this;return window.caches.open("CACHE_VIDEO_CHUNK_PERSISTENT_STORAGE").then(function(b){a.cache=b},function(b){N(M.getInstance(),"codf",b.message)})};l.Ic=function(){return this.cache!==null};l.close=function(){return Promise.resolve()}; + l.ug=function(a){var b=this;a=rM(this,a);return this.Ic()&&a?this.cache.match(a).then(function(c){if(!c)return N(M.getInstance(),"cenf","1"),Promise.resolve(null);N(M.getInstance(),"cef","1");return c.arrayBuffer().then(function(d){var e=QK(b.g),f;(f=b.g.uri.g.get("range"))?(f=f.split("-")[1],f=!f||isNaN(Number(f))?null:Number(f)):f=null;e=e+d.byteLength-1;f=f>e;return{ia:PK(b.g,"itag"),mg:e,Md:f,video:d}})},function(c){N(M.getInstance(),"cgvf",c.message);return Promise.resolve(null)}):(N(M.getInstance(), + "cgvf","1"),Promise.resolve(null))};l.Of=function(a,b){b=rM(this,b);a=new Response(a);this.Ic()&&b?this.cache.put(b,a).then(function(){N(M.getInstance(),"cavs","1")},function(c){N(M.getInstance(),"cavf",c.message)}):(N(M.getInstance(),"cavf","1"),Promise.resolve())}; + var rM=function(a,b){a.g=new NK(b);b=a.g.getId();var c=PK(a.g,"itag"),d=a.g.Id(),e=PK(a.g,"lmt");a=PK(a.g,"range");if(b&&c&&d&&a)return new Request("http://url/videoplayback?id="+b+"&itag="+c+"&source="+d+"&lmt="+e+"&range="+a);N(M.getInstance(),"civp","1");return null};var uM=function(a){U.call(this);var b=this;this.l=a;this.g=[];this.C=null;this.D=0;this.R=!1;this.H=0;this.G=[];if(Ip(lq)){var c=null;bL()&&(Ip(nq)?c=bI(qM):c=bI(YL));this.o=this.l.map(function(d){return bI(UK,d.url,pG(d.url)?null:c)})}else this.o=this.l.map(function(d){return bI(eM,d.url)});this.j=bI(MediaSource);this.M=function(){sM(b)};this.j.addEventListener("sourceopen",this.M);this.J=tM(this)};v(uM,U); + var tM=function(a){for(var b=[],c=0;c0&&!d.rc.updating){var e=a.G.shift();d.rc.appendBuffer(e)}}}(b)),b.rc.addEventListener("error",function(d){return function(){ho(M.getInstance(),"msms_sbe"+d.ab)}}(b)),b.Re.listen("progress",function(d){return function(e){var f= + d.rc,g=d.Re;e=e.Wf;e.byteLength!==0&&(Ip(lq)?f.updating?a.G.push(e):f.appendBuffer(e):f.appendBuffer(e));g.D()&&(a.D++,a.D===a.g.length&&vM(a))}}(b)),b.Re.listen("media_source_error",function(d){a.dispatchEvent(d)}),a.g.push(b.rc)):ho(M.getInstance(),"msms_sbf"+b.ab))}N(M.getInstance(),"msms_ns",a.g.length.toString());a.R=!0;wM(a)},vM=function(a){Promise.all(a.g.map(function(b){return new Promise(function(c){b.updating?b.addEventListener("updateend",function(){c()}):c()})})).then(function(){a.j.endOfStream()})}, + wM=function(a){if(a.R)for(var b=0;b0&&this.o==0)for(;c=this.l.pop();)this.C(c)}}}};var NM=function(a,b,c){EC(function(){a.apply(b,c)})}; + KM.prototype.clear=function(a){if(a){var b=this.j[a];b&&(b.forEach(this.C,this),delete this.j[a])}else this.g.length=0,this.j={}};KM.prototype.Y=function(){KM.kb.Y.call(this);this.clear();this.l.length=0};var OM=function(a){R.call(this);this.g=new KM(a);Mt(this,this.g)};Ya(OM,R);OM.prototype.clear=function(a){this.g.clear(a!==void 0?a.toString():void 0)};var PM=function(a){a=a===void 0?null:a;R.call(this);this.g=new zJ(this);Mt(this,this.g);this.Qc=a};v(PM,R);var QM=function(a,b,c){a.Qc&&(LM(a.Qc.g,b,c),Lt(a,function(){MM(a.Qc.g,b,c)}))};var RM=function(a,b){PM.call(this,b);QM(this,function(c){a.g.mode=c?"showing":"hidden"},this)};v(RM,PM);var SM=function(){U.call(this);this.j=new zJ(this);Mt(this,this.j)};v(SM,U);var UM=function(a,b,c){c=c===void 0?!0:c;SM.call(this);a.setAttribute("crossorigin","anonymous");var d=yl("TRACK");d.setAttribute("kind","captions");d.setAttribute("src",b);d.setAttribute("default","");a.appendChild(d);this.g=a.textTracks[0];TM(this);this.g.mode=c?"showing":"hidden"};v(UM,SM);var TM=function(a){var b=a.g;b.addEventListener("cuechange",function(){for(var c=b.cues,d=0;d0&&d>0&&e>0&&f>0?(b=b.width/b.height,c/=d,c=Math.min(c,b)/Math.max(c, + b)>=.97?"cover":"contain"):c=null;c!==null&&cx(a.X,{"object-fit":c})})});a.X.addEventListener("play",function(){a.oi||(EM(a.X,"first_play"),a.oi=!0)});a.X.addEventListener("pause",function(){a.uf||(EM(a.X,"first_pause"),GM(a.X),a.uf=!0)});iC(z,"pagehide",function(){a.uf||(EM(a.X,"first_pause"),GM(a.X),a.uf=!0)});a.X.addEventListener("stalled",function(){N(M.getInstance(),"ves","1")});(new EK(a.X)).listen("playbackStalled",function(){return N(M.getInstance(),"pbs","1")});a.X.addEventListener("media_source_error", + function(b){mN(a);b=b.detail;nN(a,new cN(b.code,b.message))});qN(a)},gN=function(a){var b=bN(a.childNodes);b&&rN(a,b);a.je===null&&sN(a)},sN=function(a){if(z.MutationObserver){var b=new MutationObserver(function(c){c=t(c);for(var d=c.next();!d.done;d=c.next())if(d=d.value,d.type==="childList"&&(d=bN(d.addedNodes))){rN(a,d);b.disconnect();break}});b.observe(a,ZM)}},fN=function(a){a.X.addEventListener("volumechange",function(){a.Qc.g.D(IM.toString(),a.X.muted);a.zl||a.Qc.g.D(JM.toString(),a.X.muted)})}, + rN=function(a,b){if(a.je===null&&b.hasAttribute("src")){var c=b.getAttribute("src");a.je=new UM(a.X,c,b.hasAttribute("default"));new RM(a.je,a.Qc);c.includes("kind=asr")&&N(M.getInstance(),"act","1")}},jN=function(a,b){if(b!==a.ki){a.ki=b;a.Cl&&b&&pG(b)&&(b=qG(b));var c=b?GI(b):null,d=!!c&&mM(c);N(M.getInstance(),"umsem",d?"1":"0");d?(b=bI(FM,b,HI(c),fI[c]*1E3,null),a.Ma=bI(uM,[b]),a.Dd&&a.Ma.yf(a.Dd),a.Ma.listen("media_source_error",function(e){e=II("media_source_error",e.detail);a.X.dispatchEvent(e)}), + a.Sd=function(){var e=a.Ma;e.H=a.X.currentTime*1E3;wM(e)},a.X.addEventListener("timeupdate",a.Sd),lN(a,"src",xM(a.Ma))):(mN(a),lN(a,"src",b));a.yi||iN(a)}},kN=function(a){a.src&&nN(a,new cN(MediaError.MEDIA_ERR_ABORTED,"Setting demuxed src after src is already set."));if(!a.Vc&&!a.Cc&&a.Ma)mN(a),lN(a,"src",null),iN(a);else if(a.Vc&&a.Cc){var b=GI(pG(a.Cc)?qG(a.Cc):a.Cc),c=GI(pG(a.Vc)?qG(a.Vc):a.Vc);if(b&&mM(b))if(c&&mM(c)){var d=!!b&&mM(b)&&!!c&&mM(c);N(M.getInstance(),"umsed",d?"1":"0");b=bI(FM, + a.Cc,HI(b),-1,null);c=bI(FM,a.Vc,HI(c),-1,null);a.Ma=bI(uM,[b,c]);a.Dd&&a.Ma.yf(a.Dd);a.Ma.listen("media_source_error",function(e){e=II("media_source_error",e.detail);a.X.dispatchEvent(e)});a.Sd=function(){var e=a.Ma;e.H=a.X.currentTime*1E3;wM(e)};a.X.addEventListener("timeupdate",a.Sd);lN(a,"src",xM(a.Ma));a.yi||iN(a)}else nN(a,new dN('Audio itag "'+c+'" not supported.'));else nN(a,new dN('Video itag "'+b+'" not supported.'))}},oN=function(a){for(var b=t(YM),c=b.next(),d={};!c.done;d={Nb:void 0, + getValue:void 0},c=b.next())d.Nb=c.value,d.Nb in a.X&&(typeof a.X[d.Nb]==="function"?(d.getValue=a.X[d.Nb].bind(a.X),Object.defineProperty(a,d.Nb,{set:function(e){return function(f){a.X[e.Nb]=f}}(d),get:function(e){return function(){return e.getValue}}(d)})):Object.defineProperty(a,d.Nb,{set:function(e){return function(f){a.X[e.Nb]=f}}(d),get:function(e){return function(){return a.X[e.Nb]}}(d)}))},pN=function(a){Object.defineProperty(a,"error",{set:function(){},get:function(){return a.X.error?a.X.error: + a.vh}})},qN=function(a){a.X.style.width=gx();a.X.style.height=gx()};hN.prototype.disconnectedCallback=function(){this.If&&DK(this.If);aN.prototype.disconnectedCallback&&aN.prototype.disconnectedCallback.call(this)}; + da.Object.defineProperties(hN.prototype,{Vc:{configurable:!0,enumerable:!0,set:function(a){this.setAttribute("demuxedaudiosrc",a)},get:function(){return this.getAttribute("demuxedaudiosrc")}},Cc:{configurable:!0,enumerable:!0,set:function(a){this.setAttribute("demuxedvideosrc",a)},get:function(){return this.getAttribute("demuxedvideosrc")}},src:{configurable:!0,enumerable:!0,set:function(a){this.setAttribute("src",a)},get:function(){return this.getAttribute("src")}}}); + da.Object.defineProperties(hN,{observedAttributes:{configurable:!0,enumerable:!0,get:function(){return XM}}});z.customElements&&(z.customElements.get("lima-video")||z.customElements.define("lima-video",hN));RegExp.prototype.hasOwnProperty("sticky");function tN(a){return typeof a!="object"?!1:qe(a.width)&&qe(a.height)&&qe(a.x)&&qe(a.y)};var uN=function(a){a=a===void 0?{}:a;this.wa=a.wa;this.Xf=a.Xf;this.Yf=a.Yf;this.creativeWidth=a.creativeWidth;this.creativeHeight=a.creativeHeight;this.creativeX=a.creativeX;this.creativeY=a.creativeY;this.code=a.code;this.currentTime=a.currentTime;this.duration=a.duration;this.errorCode=a.errorCode;this.fullscreen=a.fullscreen;this.message=a.message;this.muted=a.muted;this.Ig=a.Ig;this.ld=a.ld;this.md=a.md;this.fh=a.fh;this.uri=a.uri;this.jh=a.jh;this.version=a.version;this.videoHeight=a.videoHeight; + this.videoWidth=a.videoWidth;this.videoX=a.videoX;this.videoY=a.videoY;this.volume=a.volume;this.url=a.url};function vN(a){a=a.trackingUrls;if(!(a instanceof Array))return ho(M.getInstance(),"sp_s_vrt_ia"),!1;if(a.every(function(b){return typeof b=="string"}))return ho(M.getInstance(),"sp_s_vrt_s"),!0;ho(M.getInstance(),"sp_s_vrt_iu");return!1} + function wN(a){if(!tN(a.videoDimensions))return ho(M.getInstance(),"sp_s_vr_ivd"),!1;if(!tN(a.creativeDimensions))return ho(M.getInstance(),"sp_s_vr_icd"),!1;if(typeof a.fullscreen!="boolean")return ho(M.getInstance(),"sp_s_vr_ifs"),!1;ho(M.getInstance(),"sp_s_vr_s");return!0} + var xN=function(){},yN=function(a,b){switch(a){case "SIMID:Creative:requestChangeAdDuration":return a=b.duration,isNaN(a)||typeof a!="number"?null:new uN({duration:a});case "SIMID:Creative:reportTracking":return vN(b)?new uN({fh:b.trackingUrls}):null;case "SIMID:Creative:requestResize":return wN(b)?new uN({videoX:b.videoDimensions.x,videoY:b.videoDimensions.y,videoWidth:b.videoDimensions.width,videoHeight:b.videoDimensions.height,creativeX:b.creativeDimensions.x,creativeY:b.creativeDimensions.y,creativeWidth:b.creativeDimensions.width, + creativeHeight:b.creativeDimensions.height,fullscreen:b.fullscreen}):null;case "SIMID:Creative:requestChangeVolume":return new uN({volume:b.volume,muted:b.muted});case "SIMID:Creative:requestNavigation":return typeof b.uri!="string"?null:new uN({uri:b.uri});case "SIMID:Creative:log":return typeof b.message!="string"?null:new uN({message:b.message})}return new uN};var zN=function(a,b,c,d){this.type=a;this.args=d;this.messageId=b;this.g=c};var AN=function(a,b,c){VB.call(this,a.type);this.resolve=b;this.reject=c;this.args=a.args};v(AN,VB);var BN=function(a,b,c,d){d=d===void 0?{}:d;a=d.we===void 0?!1:d.we;d=d.ve===void 0?!1:d.ve;U.call(this);this.D=new Ev;this.J=c;this.C={we:a,ve:d};this.l="";this.M=1;this.G=this.H=window;this.g=b;this.o=new zJ(this);Mt(this,this.o);this.j=new Map};v(BN,U); + var FN=function(a){a.o.listen(window,"message",function(b){a:{b=b.Tc;var c=a.G===b.source;if(a.C.we){var d=a.g==null||a.g==="*"||b.origin===a.g;if(!c||!d)break a}else if(b.origin!==a.g&&!c&&a.g!="*")break a;b:if(b.data){c={};try{c=JSON.parse(b.data)}catch(h){b=null;break b}b=typeof c!="object"?null:c}else b=null;var e=b;if(e!=null&&(b=e.type,c=e.sessionId,c==a.l||b=="createSession")&&(!a.C.ve||b!=="createSession"||a.l==null)&&(d=e.args,e=e.messageId,e!=null)){var f=null;try{if(b=="resolve"||b=="reject"){var g= + d.messageId;f=g==null?null:new uN({md:g,ld:d.value})}else f=yN(b,d)}catch(h){if(h.cause===1210){g=JSON.stringify({type:"TimingEvent",key:"smd_ss_nfo_init"});a.sendMessage("SIMID:Creative:log",new uN({message:g}));g=JSON.stringify({type:"OneShotParameter",key:"smd_ss_nfo_init_r",value:h.message});a.sendMessage("SIMID:Creative:log",new uN({message:g}));break a}throw h;}if(f)switch(b==="SIMID:Player:init"&&(g=JSON.stringify({type:"TimingEvent",key:"smd_ss_so_init"}),a.sendMessage("SIMID:Creative:log", + new uN({message:g}))),g=new zN(b,e,c,f),g.type){case "resolve":case "reject":if(b=g.args.md)c=g.args.ld||{},a.j.has(b)&&(d=a.j.get(b),g.type=="resolve"?d.resolve(c):g.type=="reject"&&d.reject(c),a.j.delete(b));break;case "createSession":a.l=g.g;CN(a,g.messageId);a.D.resolve();break;default:DN(a,g)}else EN(a,e,{errorCode:1211,message:"Invalid message arguments."})}}})}; + BN.prototype.sendMessage=function(a,b){b=b===void 0?new uN:b;var c=this.M++,d={};d.type=a;d.sessionId=this.l;d.messageId=c;d.timestamp=Date.now();if(a=="resolve"||a=="reject"){var e={};b=(e.messageId=b.md,e.value=b.ld,e)}else{e={};switch(a){case "SIMID:Player:init":var f={};f=(f.adParameters=b.wa,f.clickThruUri=b.Xf,f.clickThruUrl=b.Yf,f);var g={},h={},k={};b=(k.videoDimensions=(g.height=b.videoHeight,g.width=b.videoWidth,g.x=0,g.y=0,g),k.creativeDimensions=(h.height=b.videoHeight,h.width=b.videoWidth, + h.x=0,h.y=0,h),k.fullscreen=b.fullscreen,k.fullscreenAllowed=!0,k.variableDurationAllowed=b.jh,k.skippableState="adHandles",k.navigationSupport=b.Ig,k.version="1.0",k.muted=b.muted,k.volume=b.volume,k);e.environmentData=b;e.creativeData=f;break;case "SIMID:Media:timeupdate":e.currentTime=b.currentTime;break;case "SIMID:Media:volumechange":e.volume=b.volume;e.muted=b.muted;break;case "SIMID:Media:durationchange":e.duration=b.duration;break;case "SIMID:Player:adStopped":e.code=b.code;break;case "SIMID:Player:resize":f= + {};f=(f.height=b.creativeHeight,f.width=b.creativeWidth,f.x=b.creativeX,f.y=b.creativeY,f);g={};g=(g.height=b.videoHeight,g.width=b.videoWidth,g.x=b.videoX,g.y=b.videoY,g);e.creativeDimensions=f;e.videoDimensions=g;e.fullscreen=b.fullscreen;break;case "SIMID:Player:fatalError":e.errorCode=b.errorCode;break;case "SIMID:Player:log":e.message=b.message}b=e}d.args=b;this.H.postMessage(JSON.stringify(d),"*");return this.J.includes(a)?(a=new Ev,this.j.set(c,a),a.promise):Promise.resolve({})}; + var DN=function(a,b){a.dispatchEvent(new AN(b,function(c){c=c===void 0?{}:c;CN(a,b.messageId,c)},function(c){c=c===void 0?{}:c;EN(a,b.messageId,c)}))},CN=function(a,b,c){c=c===void 0?{}:c;a.sendMessage("resolve",new uN({md:b,ld:c}))},EN=function(a,b,c){a.sendMessage("reject",new uN({md:b,ld:c}))},GN=function(a,b){var c=b.source;b=b.target;a.G=c;a.H=b};function HN(a){return(a=a.ub.find(function(b){return ll(b.Z)=="SIMID"&&b.mimeType=="text/html"&&!!b.url&&!D(b.url)}))?a.url:null}function IN(a){return(a=a.ub.find(function(b){return ll(b.Z)=="SIMID"&&b.mimeType=="text/html"&&!!b.g&&!D(b.g)}))?a.g:null}function JN(a){return IN(a)!=null||HN(a)!=null};var KN="SIMID:Player:adSkipped SIMID:Player:adStopped SIMID:Player:appBackgrounded SIMID:Player:fatalError SIMID:Player:init SIMID:Player:startCreative".split(" "),LN=function(a,b,c){c=c===void 0?!1:c;U.call(this);var d=null;if(a){if(c)try{var e=(new URL(a,window.location.href)).origin}catch(f){e=null}else e=(a=new Ls(a),a.o+"://"+a.j);d=e}this.g=new BN(new xN,d,KN,b);this.j=null;this.l=0};v(LN,U); + var MN=function(a){FN(a.g);Object.values(qt).forEach(function(b){a.g.listen(b,function(c){b==="SIMID:Creative:log"&&c.args.message==="cr"?a.l=0:a.dispatchEvent(c)})})},NN=function(a){return a.g.sendMessage("SIMID:Player:startCreative")};LN.prototype.log=function(a){return this.g.sendMessage("SIMID:Player:log",new uN({message:a}))}; + var PN=function(a){if(!a.j)return a.l=0,a.j=new Ev,ON(a),a.j.promise},ON=function(a){a.j&&(a.l===2?(a.j.resolve(),a.j=null):(a.log("pp"),a.l++,setTimeout(function(){return ON(a)},2E3)))};var QN={ENDED:"ended",ERROR:"error",PLAY:"play",PAUSE:"pause",Ql:"appBackgrounding",Rl:"appForegrounding",SEEKED:"seeked",SEEKING:"seeking",SKIPPED:"skipped",STALLED:"stalled",TIME_UPDATE:"timeUpdate",Cj:"volumeChange",DURATION_CHANGE:"durationChange",en:"resize"};var RN=function(a,b,c){R.call(this);this.g=a;this.j=b;this.o=c;Mt(this,this.o);this.C=new zJ(this);Mt(this,this.C);this.l=null};v(RN,R); + var SN=function(a,b,c){a=new RN(b,a,c);Mt(a,b);return a},VN=function(a){if(a.l)return a.l.promise;var b=TN(a.o);a.l=new Ev;MN(a.g);GN(a.g.g,b);return a.g.g.D.promise.then(function(){UN(a);return a.l.promise})},ZN=function(a){var b=!0;b=b===void 0?!1:b;a.l||VN(a);a.C.listen(a.g,Object.values(qt),function(c){return void WN(a,c)});a.C.listen(a.j,Object.values(QN),function(c){return void XN(a,c)});b?a.l.promise.then(function(){YN(a.o.g,"showIframe")}).then(function(){return NN(a.g)}):a.l.promise.then(function(){return NN(a.g)}).then(function(){YN(a.o.g, + "showIframe")})},UN=function(a){$N(a.j).then(function(b){var c=ix(a.j.aa.g),d={};a:{var e=a.j.ad.wa||"";d=(d.sdkv=gv(fv.getInstance()),d.eid=Mp().sort().join(","),d.ssss="gima",d);try{var f=JSON.parse(e)}catch(g){break a}e=typeof f==="object"&&f.hasOwnProperty("youtubeVideoId")?JSON.stringify(Object.assign({},f,d)):e}b={wa:e,Xf:a.j.ad.g,Yf:a.j.ad.g,fullscreen:b.fullscreen,muted:b.muted,Ig:nv()?"notSupported":"adHandles",jh:!1,videoWidth:c.width,videoHeight:c.height,volume:b.volume};a.g.g.sendMessage("SIMID:Player:init", + new uN(b)).then(a.l.resolve).catch(a.l.reject);ho(M.getInstance(),"ima_si");Number.isInteger(c.width)&&Number.isInteger(c.height)||ho(M.getInstance(),"ima_vsni")})},XN=function(a,b){switch(b.type){case "appBackgrounding":a.g.g.sendMessage("SIMID:Player:appBackgrounded");break;case "appForegrounding":a.g.g.sendMessage("SIMID:Player:appForegrounded");break;case "ended":a.g.g.sendMessage("SIMID:Media:ended");case "error":case "pause":a.g.g.sendMessage("SIMID:Media:pause");break;case "play":a.g.g.sendMessage("SIMID:Media:play"); + break;case "seeked":a.g.g.sendMessage("SIMID:Media:seeked");break;case "seeking":a.g.g.sendMessage("SIMID:Media:seeking");break;case "skipped":a.g.g.sendMessage("SIMID:Player:adSkipped");break;case "stalled":a.g.g.sendMessage("SIMID:Media:stalled");break;case "timeUpdate":$N(a.j).then(function(e){return a.g.g.sendMessage("SIMID:Media:timeupdate",new uN({currentTime:e.currentTime}))});break;case "volumeChange":$N(a.j).then(function(e){return a.g.g.sendMessage("SIMID:Media:volumechange",new uN({volume:e.volume, + muted:e.muted}))});break;case "durationChange":$N(a.j).then(function(e){return a.g.g.sendMessage("SIMID:Media:durationchange",new uN({duration:e.duration}))});break;case "resize":b=ix(a.j.aa.g);var c=new Cn(0,0,b.width,b.height),d=aO(a.j);a.g.g.sendMessage("SIMID:Player:resize",new uN({creativeX:c.left,creativeY:c.top,creativeWidth:c.width,creativeHeight:c.height,videoX:d.left,videoY:d.top,videoWidth:d.width,videoHeight:d.height,fullscreen:jt(b.width,b.height)}))}},WN=function(a,b){bO(a,b.type,b.args).then(function(c){return b.resolve(c)}).catch(function(c){return b.reject(c)})}, + bO=function(a,b,c){switch(b){case "SIMID:Creative:clickThru":return cO(a.j);case "SIMID:Creative:getMediaState":return $N(a.j).then(function(d){var e={};return e.currentSrc=d.currentSrc,e.currentTime=d.currentTime,e.duration=d.duration,e.ended=d.ended,e.muted=d.muted,e.paused=d.paused,e.volume=d.volume,e.fullscreen=d.fullscreen,e});case "SIMID:Creative:reportTracking":return dO(c.fh);case "SIMID:Creative:requestPause":return a.j.pause();case "SIMID:Creative:requestPlay":return LK(a.j.aa);case "SIMID:Creative:requestSkip":return a.j.skip().then(function(){return a.g.g.sendMessage("SIMID:Player:adSkipped")}); + case "SIMID:Creative:requestChangeVolume":return Promise.resolve(void 0);case "SIMID:Creative:requestResize":return eO(a,c);case "SIMID:Creative:requestNavigation":return Promise.reject();case "SIMID:Creative:requestStop":return a.j.stop();case "SIMID:Creative:log":return a.j.log(c.message);default:return Promise.reject()}},eO=function(a,b){var c=b.videoWidth,d=b.videoHeight,e=b.videoX,f=b.videoY,g=b.creativeWidth,h=b.creativeHeight,k=b.creativeX;b=b.creativeY;var m=ix(a.j.aa.g);m=new Cn(0,0,m.width, + m.height);c=new Cn(e,f,c,d);En(m,new Cn(k,b,g,h))||ho(M.getInstance(),"sp_rrc");g=Fn(m,c);if(!g)return ho(M.getInstance(),"sp_rrv_oob"),Promise.reject();En(g,c)?ho(M.getInstance(),"sp_arv"):ho(M.getInstance(),"sp_arv_c");return a.j.resize(g)};var fO=function(a){var b=a===void 0?{}:a;a=b.currentSrc;var c=b.currentTime===void 0?-1:b.currentTime;var d=b.duration===void 0?-1:b.duration;var e=b.ended===void 0?!1:b.ended;var f=b.fullscreen===void 0?!1:b.fullscreen;var g=b.muted===void 0?!1:b.muted;var h=b.paused===void 0?!1:b.paused;b=b.volume===void 0?1:b.volume;this.currentSrc=a;this.currentTime=c;this.duration=d;this.ended=e;this.fullscreen=f;this.muted=g;this.paused=h;this.volume=b};var gO=function(){}; + gO.prototype.g=function(a){if(!YJ(a,"activeview"))return null;var b=[],c=VJ(a,"trackingConfiguration");c=t(c);for(var d=c.next();!d.done;d=c.next()){d=VJ(d.value,"trackingEventConfiguration");d=t(d);for(var e=d.next();!e.done;e=d.next()){var f=e.value;e=f.getAttribute("event");var g=f.getAttribute("id");if(g==null||e==null)e=null;else{e=e.toLowerCase();g=g.toLowerCase();var h=[];f=VJ(f,"trackingEventCriteria");f=t(f);for(var k=f.next();!k.done;k=f.next())k=k.value.getAttribute("value"),k!=null&&h.push(k.toLowerCase()); + e=h.length?new rr(g,e,h):null}e&&b.push(e)}}c=bK(a);e=WJ(a,"activeViewMetadata");d="";e&&(d=V(e)||"");a=WJ(a,"activeViewFlags");e="";a&&(e=V(a)||"");return new cG(c,b,d,e)};var hO=function(){}; + hO.prototype.g=function(a){if(!YJ(a,"adsense"))return null;for(var b=null,c=null,d=null,e,f=[],g,h=null,k=null,m=null,n=t(K(a)),p=n.next();!p.done;p=n.next())switch(p=p.value,p.nodeName.toLowerCase()){case "attributiontext":b=V(p);break;case "attributionurl":c=V(p);break;case "conversionurl":d=V(p);break;case "is_pharma":e=UJ(p.getAttribute("bool"));break;case "checkedevents":f=iO(p);break;case "showyoutubeannotations":g=UJ(V(p));break;case "ui":h=null;p=WJ(p,"config");if(p!=null){var q=WJ(p,"context"); + if(q!=null&&q.getAttribute("data").toLowerCase()=="default"&&(h=new eG,q=WJ(p,"params"))){p=h;q=t(K(q));for(var r=q.next();!r.done;r=q.next())switch(r=r.value,r.nodeName.toLowerCase()){case "audio_muted_on_start":p.Tf=UJ(r.getAttribute("bool"))||!1;break;case "attribution_text":p.xc=r.getAttribute("data");break;case "attribution_url":p.yc=r.getAttribute("data");break;case "signals":p.bh=TJ(r,"int")||0}}}break;case "visibleurl":k=V(p);break;case "whythisad":a:{m=t(K(p));for(p=m.next();!p.done;p=m.next())if(p= + p.value,p.nodeName.toLowerCase()=="wtaclickthroughurl"){m=V(p);break a}m=null}m&&N(M.getInstance(),"wta","1")}return new fG(bK(a),{xc:b,yc:c,cg:d,Ag:e,ff:f,ah:g,uiConfig:h,lh:k,Jf:m})};var iO=function(a){var b=[];Array.from(K(a)).forEach(function(c){(c=c.getAttribute("id"))&&b.push(c.toLowerCase())});return b};var jO=function(){};jO.prototype.g=function(a){if(!YJ(a,"AdVerifications"))return null;var b=[];a=VJ(a,"AdVerifications");a=t(a);for(var c=a.next();!c.done;c=a.next())b.push.apply(b,u($J(c.value)));return new dJ(b)};var kO=function(){};kO.prototype.g=function(a){if(!YJ(a,"companion_about_this_ad"))return null;a=VJ(a,"Icon");if(a.length<1)return null;a=eK(a[0]);return new hG(a)};var lO=function(){};lO.prototype.g=function(a){a=bK(a);return a.length>0?new bG(a):null};var mO=function(){};mO.prototype.g=function(a){if(!YJ(a,"eoid_cookie"))return null;a=t(K(a));for(var b=a.next();!b.done;b=a.next()){var c=b.value;if(c.nodeName=="Cookie"){b=c.getAttribute("domain");var d=TJ(c,"expires"),e=c.getAttribute("path"),f=void 0;c=(f=c.getAttribute("value"))!=null?f:"";if(b&&d!=null&&e)return new UH(c,d,e,b)}}return null};var nO=function(){};nO.prototype.g=function(a){if(!YJ(a,"esp"))return null;var b=[];a=t(K(a));for(var c=a.next();!c.done;c=a.next()){var d=c.value;d.nodeName=="EspLibrary"&&(c=WJ(d,"LibraryName"))&&(c=V(c))&&(d=(d=WJ(d,"LibraryUrl"))?V(d):null,b.push({qe:c,An:d}))}return new WH(b)};var oO=function(){};oO.prototype.g=function(a){var b=YJ(a,"gfp_cookie"),c=YJ(a,"gfp_cookie_v2");if(!b&&!c)return null;a=t(K(a));for(b=a.next();!b.done;b=a.next()){var d=b.value;if(d.nodeName=="Cookie"){b=d.getAttribute("domain");var e=TJ(d,"expires"),f=d.getAttribute("path"),g=void 0;d=(g=d.getAttribute("value"))!=null?g:"";if(b&&e!=null&&f)return new YH(d,e,f,b,c)}}return null};var pO=function(){}; + pO.prototype.g=function(a){if(!YJ(a,"GoogleHostedMedia"))return null;N(M.getInstance(),"hghme","1");var b=[],c=[],d=[],e=[],f,g=WJ(a,"clientplaybacknonce");g&&(f=V(g));a=t(K(a));for(g=a.next();!g.done;g=a.next()){var h=g.value;g=null;switch(h.nodeName.toLowerCase()){case "audiourls":g="audio";break;case "manifestsurls":g="manifest";break;case "muxedmediaurls":g="muxed";break;case "videourls":g="video"}if(g){h=t(K(h));for(var k=h.next();!k.done;k=h.next()){k=k.value;var m=V(k),n=k.getAttribute("delivery"), + p=TJ(k,"itag"),q=void 0,r=(q=k.getAttribute("mimeType"))==null?void 0:q.toLowerCase();q=UJ(k.getAttribute("mseCompatible"));var w=TJ(k,"contentLength"),A=null,C=null,Q=null,F=null,fa=null,Xa=null;if(g=="video"||g=="muxed")A=k.getAttribute("videoCodec"),C=TJ(k,"videoBitrate"),fa=TJ(k,"width"),Xa=TJ(k,"height");if(g=="audio"||g=="muxed")Q=k.getAttribute("audioCodec"),F=TJ(k,"audioBitrate");if(m!=null&&g!=null)switch(k=new $H(m,g,{rb:n,ia:p,mimeType:r,va:A,Da:Q,kh:C,Sf:F,ta:q,width:fa,height:Xa,Ab:w}), + g){case "audio":b.push(k);break;case "manifest":c.push(k);break;case "muxed":d.push(k);break;case "video":e.push(k)}}}}return new aI(f?f:"None",b,c,d,e)};var qO=function(){};qO.prototype.g=function(a){if(!YJ(a,"gpid_wta"))return null;a=t(K(a));for(var b=a.next();!b.done;b=a.next())if(b=b.value,b.nodeName=="AttributionData"&&(b=V(b)))return new RI(b);return null};var rO=function(){};rO.prototype.g=function(a){if(!YJ(a,"metrics"))return null;a=t(K(a));for(var b=a.next();!b.done;b=a.next())switch(b=b.value,b.nodeName){case "AdEventId":var c=Il(b);break;case "FeEventId":var d=Il(b)}return new $I(c,d)};var sO=function(){};sO.prototype.g=function(a){return YJ(a,"programmatic")?(a=WJ(a,"DealId"))&&(a=V(a))&&!D(a)?new fJ(a):null:null};var tO=function(){};tO.prototype.g=function(a){if(!YJ(a,"sodar"))return null;var b=null;a=t(K(a));for(var c=a.next();!c.done;c=a.next())switch(c=c.value,c.nodeName){case "Siub":var d=V(c);break;case "Scs":b=V(c)||null;break;case "Bgub":var e=V(c);break;case "Bgp":var f=V(c)}return d&&b&&e&&f?new lJ(d,e,f,b):null};var uO=function(){};uO.prototype.g=function(a){if(!YJ(a,"uisettings"))return null;var b;(a=WJ(a,"uihideable"))&&(b=UJ(V(a)));return new mJ(b)};var vO=function(){}; + vO.prototype.g=function(a){if(!YJ(a,"youtubehostedad"))return null;var b=null,c=!1,d=null,e=null,f=!1,g=null,h=null,k=null,m=null,n=null,p=null,q=null,r=WJ(a,"youtubevideoid");r&&(b=V(r));if(r=WJ(a,"istrueview"))r=UJ(V(r)),r!=void 0&&(c=r);(r=WJ(a,"videotitle"))&&(d=V(r));(r=WJ(a,"videothumbnailurl"))&&(e=V(r));if(r=WJ(a,"isvideounlisted"))r=UJ(V(r)),r!=void 0&&(f=r);(r=WJ(a,"channelid"))&&(g=V(r));(r=WJ(a,"channeltitle"))&&(h=V(r));(r=WJ(a,"channelthumbnailurl"))&&(k=V(r));(r=WJ(a,"channelcustomurl"))&& + (m=V(r));(r=WJ(a,"format"))&&(n=V(r));(r=WJ(a,"youtubeownershipfingerprint"))&&(p=V(r));(a=WJ(a,"youtubevisitordata"))&&(q=V(a));return new nJ({videoId:b,Hb:c,ae:d,Gf:e,fd:f,me:g,zd:h,yd:k,ke:m,format:n,lf:p,Hf:q})};function wO(a){if(!a)return!1;if(a=a.O.get(fF)){if(a.g=="TRUEVIEW"||a.g=="SKIPPABLE")return!0;if(a.g)return!1;ho(M.getInstance(),"ytu_nf");return a.Hb()}return!1};function xO(){var a=wl(),b=document;return new Ls(a.parent===a?a.location.href:b.referrer)}function yO(a,b){Zs(a,"url","");try{var c=2083-a.toString().length-1;if(c<=0)return a.toString();for(var d=b.slice(0,c),e=encodeURIComponent(d),f=c;f>0&&e.length>c;)d=b.slice(0,f--),e=encodeURIComponent(d);Zs(a,"url",d)}catch(g){}return a.toString()};var zO="acceptInvitation acceptInvitationLinear click collapse complete exitFullscreen expand firstQuartile fullscreen impression loaded midpoint pause resume skip start thirdQuartile videoClicked volumeChange".split(" ");var AO=new JJ;function BO(a){var b=b===void 0?AO:b;var c=c===void 0?null:c;OJ(b,new UD(a,c?c:c))};var CO=function(){this.g=Math.random()<.01;this.l=Math.floor(Math.random()*4503599627370496);this.j=null}; + CO.prototype.report=function(a,b,c){b=b===void 0?{}:b;if(z.G_testRunner==null&&(this.g||(c===void 0?0:c))){b.lid=a;gv(fv.getInstance())&&(b.sdkv=gv(fv.getInstance()));this.j&&(b.palv=this.j);a=Mp().sort().join(",");D(ll(a))||(b.e=a);b=DO(this,b);var d=new Ls("http://pagead2.googlesyndication.com/pagead/gen_204");Gj(b,function(e,f){e!=null&&Zs(d,f,e==null?"":typeof e==="boolean"?e?"t":"f":""+e)},this);b=xO().o;b!=="http"&&b!=="https"||Ms(d,b);b=d.toString();a=d.g.get("url");a!=null&&Pb()&&b.length> + 2083&&(b=yO(d,a));BO(b)}};var DO=function(a,b){b.id="ima_html5";var c=xO();b.c=a.l;b.domain=c.j;return b};CO.getInstance=function(){return L(CO)};function EO(a){var b=Date.now(),c={};a=(c["x-afma-token-requester-type"]=a,c);c="https://pubads.g.doubleclick.net/adsid/integrator.json?aos="+encodeURIComponent(Dv());return(new DJ).get({url:c,withCredentials:!0,timeout:new sJ(5E3),headers:a}).then(function(d){var e=Date.now();d=d.newToken||"";var f={};CO.getInstance().report(182,(f.t=e-b,f.aos=Dv(),f));return new FO(d)}).catch(function(d){var e="not instanceof Error";d instanceof Error&&(e=mI(Number(d.message)));d=Date.now();var f={};CO.getInstance().report(182, + (f.except=e,f.t=d-b,f));return Promise.resolve(GO)})}var HO=function(){U.call(this);this.g=null;this.o=new zJ(this);Mt(this,this.o);this.j=new $C(72E5);this.l=Promise.resolve(GO)};v(HO,U);var IO=function(a){var b="requester_type_8";b=b===void 0?"requester_type_9":b;var c=function(d){a.g=d;return a.g};a.l=EO(b).then(c);a.j=new $C(72E5);a.o.listen(a.j,"tick",function(){a.l=EO(b).then(c)});a.j.start();Lt(a,function(){a.j.stop()})}; + HO.prototype.getId=function(){var a=this;return y(function(b){if(b.g==1)return a.g!=null&&a.g!==GO?(b.g=2,b=void 0):b=x(b,a.l,3),b;b.g!=2&&(a.g=b.j);return b.return(a.g)})};var FO=function(a){this.id=a},GO=new FO("");function JO(a){for(var b=a.length,c=new Uint8Array(b),d=0;da.data.length-a.position)throw Error("Invalid skip");a.position+=b},MO=function(a){var b=a.data[a.position]&255;a.position++;return b},NO=function(a,b){if(b<0||b>a.data.length-a.position)throw Error("Invalid byteCount");var c=[],d=0;b=a.position+b;for(var e=a.position;e4&&LO(a.g,f-4);e-=f}(d&8)!==0&&(e-=10);for(d=e;d>0;){e=NO(a.g,4);f=String.fromCharCode.apply(null,e);e=OO(a.g);if(e<=1){a=b;break a}LO(a.g,2);if("TXXX"===f){f=MO(a.g);switch(f){case 0:case 2:case 3:break;default:throw Error("Unsupported encoding "+ + f);}var g=DataView,h=a.g,k=e-1;if(k<0||k>h.data.length-h.position)throw Error("Invalid byteCount");var m=new ArrayBuffer(k);m=new Uint8Array(m);for(var n=0,p=h.position+k,q=h.position;q191&&m<224?(n=f[h++],g[k++]=String.fromCharCode((m&31)<<6|n&63)):m>239&&m<365?(n=f[h++],p=f[h++],q=f[h++],m=((m&7)<<18|(n&63)<<12|(p&63)<<6|q&63)-65536,g[k++]=String.fromCharCode(55296+ + (m>>10)),g[k++]=String.fromCharCode(56320+(m&1023))):(n=f[h++],p=f[h++],g[k++]=String.fromCharCode((m&15)<<12|(n&63)<<6|p&63));f=g.join("");break b;default:f="";break b}f=void 0}b.push(f)}else LO(a.g,e-1);d-=e+10}if(b.length===0)throw Error("No TXXX frames found.");a=b}a=a[0]}else a=b;a.indexOf("google_")===0&&(a={value:a,Ph:!1},c=Math.floor(c),this.g.has(c)?this.g.get(c).push(a):this.g.set(c,[a]))}};var VO=function(a,b,c){this.key=a;this.duration=b;this.position=c};var WO=function(a){this.data=a};l=WO.prototype;l.getAdPosition=function(a){return((this.data.ads||{})[a]||{}).position||0};l.Wb=function(a){return((this.data.ads||{})[a]||{})["break"]||""};l.getTotalAds=function(a){return((this.data.breaks||{})[a]||{}).ads||0};l.rg=function(a){return((this.data.breaks||{})[a]||{}).duration||0};l.Lh=function(a){return((this.data.breaks||{})[a]||{}).expected_duration||0}; + l.tg=function(a){var b=this.data.ads||{},c=this.getAdPosition(a);a=this.Wb(a);for(var d=0,e=t(Object.keys(b)),f=e.next();!f.done;f=e.next()){f=b[f.value]||{};var g=f.position||Number.MAX_SAFE_INTEGER,h=f.duration||0;a===f["break"]&&g>0&&g0}).sort(function(g,h){return g.position-h.position})};var XO=function(a){var b=a===void 0?{}:a;a=b.adBreakDuration===void 0?0:b.adBreakDuration;var c=b.rd===void 0?0:b.rd;var d=b.adPeriodDuration===void 0?0:b.adPeriodDuration;var e=b.adPosition===void 0?0:b.adPosition;var f=b.ud===void 0?0:b.ud;var g=b.currentTime===void 0?0:b.currentTime;var h=b.duration===void 0?0:b.duration;var k=b.wc===void 0?[]:b.wc;b=b.totalAds===void 0?0:b.totalAds;this.adBreakDuration=a;this.rd=c;this.adPeriodDuration=d;this.adPosition=e;this.ud=f;this.currentTime=g;this.duration= + h;this.wc=k;this.totalAds=b},YO=function(a){var b={};b.adBreakDuration=a.adBreakDuration;b.adBreakStartTime=a.rd;b.adPeriodDuration=a.adPeriodDuration;b.adPosition=a.adPosition;b.adStartTime=a.ud;b.currentTime=a.currentTime;b.duration=a.duration;b.adsDurationsMs=a.wc;b.totalAds=a.totalAds;return b};var ZO=function(a){this.played=!1;this.data=a};ZO.prototype.contains=function(a){return Math.floor($O(this))<=a&&a<=Math.ceil(aP(this))};var $O=function(a){return a.data.start_float},aP=function(a){return a.data.end_float};ZO.prototype.ed=function(){return $O(this)<=aP(this)};ZO.prototype.Vb=function(a){return a?$O(this)===$O(a)&&aP(this)===aP(a)&&this.played===a.played:!1};var bP=function(a){var b={};b.end=aP(a);b.start=$O(a);b.played=a.played;return b};var cP={html:"Html",iframe:"IFrame","static":"Static"}; + function dP(a,b){var c=a.deal_id||null;b=new vF(b);b.C=eP(a);b.Sb=a.title||null;b.F=a.advertiser||null;b.g=a.clickthrough_url||"";b.l=a.attribution_params;b.creativeId=a.creative_id||null;b.D=a.creative_ad_id||null;b.description=a.description||null;b.sa=a.duration*1E3||-1;b.id=a.ad_id||null;b.lb=fP(a);b.N=gP(a,"creative_id");b.H=gP(a,"ad_id");b.J=gP(a,"system");b.dealId=hP(a)||c;c=(a.extensions||[]).map(function(d){return yJ(d).documentElement});c=lK(iP(),c);c=new $F([new ZF(new YI({ya:jP(a.companions), + O:c}))]);(new kJ).g(c,b,new nt);(a=kP(a))&&b.O.set(ZE,a);return b}function lP(a,b){var c=a.vast||"";if(!c)return null;b=mP(c,b);if(!b)return null;b.N=gP(a,"creative_id");b.J=gP(a,"system");b.H=gP(a,"ad_id");a=hP(a);b.dealId=a||b.dealId;return b}function hP(a){a=t(a.wrappers||[]);for(var b=a.next();!b.done;b=a.next())if(b=b.value,b.deal_id)return b.deal_id;return""}function jP(a){if(!a||a.length===0)return[];var b=[];a=t(a);for(var c=a.next();!c.done;c=a.next())b.push(nP(c.value));return b} + function nP(a){var b=new Ks(a.click_data.url),c=a.tracking_events.map(function(d){return new VD(d.event,d.uri)});return new VF({Ac:new AF([new zF({Rb:a.ad_slot_id,Z:a.api_framework,width:a.width,height:a.height,zb:b,ga:c,resources:[new yF(a.resource,cP[a.type],a.creative_type)]})])})}function gP(a,b){var c=[];(a.wrappers||[]).forEach(function(d){return c.push(d[b]||"")});return c.reverse()} + function mP(a,b){try{var c=yJ(a);if(c){var d=c.documentElement;if(d&>(d)){var e=iP();if(!d)throw Error("VAST string is empty.");if(!gt(d))throw Error("Response string is not a valid VAST document.");a=[];c=[];for(var f=t(K(d)),g=f.next();!g.done;g=f.next()){var h=g.value;switch(h.nodeName){case "Ad":d=void 0;var k=e,m={};m.id=h.getAttribute("id");m.Ra=TJ(h,"sequence");m.Tb=h.getAttribute("adType");for(var n=t(K(h)),p=n.next();!p.done;p=n.next()){var q=p.value;if(q.nodeName=="InLine"){for(var r= + void 0,w=void 0,A=void 0,C=void 0,Q=void 0,F=void 0,fa=void 0,Xa=[],Dd=[],Ed=[],se=[],ki=t(K(q)),Fd=ki.next();!Fd.done;Fd=ki.next()){var $a=Fd.value;switch($a.nodeName){case "AdServingId":fa=V($a);break;case "AdSystem":F=V($a);break;case "AdTitle":Q=V($a);break;case "AdVerifications":se=se.concat($J($a));break;case "Advertiser":C=V($a);break;case "Creatives":for(var te=t(K($a)),ad=te.next();!ad.done;ad=te.next()){var Ec=ad.value;Ec.nodeName=="Creative"&&Ed.push(mK(Ec))}break;case "Description":A= + V($a);break;case "Error":V($a)!=null&&Xa.push(V($a));break;case "Extensions":r=lK(k,K($a));break;case "Impression":var Ma=dK(V($a)),vg=XJ($a);Ma!=null&&Dd.push(new WF(Ma,vg));break;case "Survey":w=V($a)}}d=new YI({uc:fa,Va:F,Sb:Q,de:C,description:A,eh:w,errors:Xa,Eb:Dd,ya:Ed,Ua:se,O:r});break}else if(q.nodeName=="Wrapper"){A=w=r=void 0;C=k;Q=q;F=[];fa=[];k=[];Xa=[];for(var bd=Q.getAttribute("followAdditionalWrappers")!="false",ue=Q.getAttribute("allowMultipleAds")=="true",Nb=Q.getAttribute("fallbackOnNoAd")== + "true",cd=t(K(Q)),ve=cd.next();!ve.done;ve=cd.next()){var ac=ve.value;switch(ac.nodeName){case "AdSystem":A=V(ac);break;case "VASTAdTagURI":var we=V(ac);w=we?we:void 0;break;case "Creatives":for(var xe=t(K(ac)),Gd=xe.next();!Gd.done;Gd=xe.next()){var ye=Gd.value;ye.nodeName=="Creative"&&k.push(mK(ye))}break;case "Error":var lc=V(ac);lc!=null&&F.push(lc);break;case "AdVerifications":Xa=Xa.concat($J(ac));break;case "Extensions":r=lK(C,K(ac));break;case "Impression":var bc=dK(V(ac)),wg=XJ(ac);bc!=null&& + fa.push(new WF(bc,wg))}}d=new SJ({Va:A,pg:bd,Qf:ue,og:Nb,Nf:w,errors:F,Eb:fa,ya:k,Ua:Xa,O:r});break}}if(!d)throw Error("Vast Ad contains neither inline nor wrapper data.");a.push(new ZF(d,m));break;case "Error":var ze=V(h);ze&&c.push(ze)}}for(var mc=M.getInstance(),Ae=t(["lima_p_ich","lima_p_icu"]),Be=Ae.next();!Be.done;Be=Ae.next()){var Hd=Be.value;mc.j.has(Hd)?(N(mc,Hd,""+mc.j.get(Hd)),mc.j.delete(Hd)):N(mc,Hd,"0")}var Id=mc.g;Id.ca=!0;Xn(Id);var mf=new RJ({ads:a,Jg:c})}else mf=null;var Ce=mf}else Ce= + null;if(!Ce)return null;var xg=new $F(Ce.g),nf=(new rK(b)).j(xg);if(!nf)return null;(new kJ).g(xg,nf,new nt);return nf}catch(zk){return null}}function iP(){var a=new jK;kK(a,new gO);kK(a,new hO);kK(a,new jO);kK(a,new sO);kK(a,new tO);kK(a,new lO);kK(a,new uO);kK(a,new rO);kK(a,new vO);kK(a,new pO);kK(a,new oO);kK(a,new mO);kK(a,new nO);kK(a,new qO);kK(a,new kO);return a}function eP(a){var b=a.ad_system||"";a=gP(a,"system");return[b].concat(u(a))} + function kP(a){a=a.verifications||null;if(!a)return null;var b=new ZE;a.forEach(function(c){var d=c.vendor,e=c.parameters,f=oP(c);c=c.java_script_resources||[];c.length>0&&(c=c[0],$E(b,d,c.script_url||"",e,c.api_framework||"",f))});return b}function oP(a){var b=[];(a.tracking_events||[]).forEach(function(c){b.push(new WD(c.event,c.uri))});return b}function fP(a){return(a=a.universal_ad_id||null)?[new lF(a.id_value||"unknown",a.id_registry||"unknown")]:[]};var pP=function(){WO.apply(this,arguments)};v(pP,WO);pP.prototype.Lf=function(a){return((this.data.tags||{})[a]||{}).type||""};pP.prototype.qh=function(a){return((this.data.tags||{})[a]||{}).ad||""};pP.prototype.getAd=function(a,b){var c=(this.data.ads||{})[a];if(!c)return null;b=lP(c,b);if(!b)return null;b.pa=this.getAdPodInfo(a);return b};pP.prototype.g=function(){for(var a=this.data.tags||{},b=t(Object.keys(a)),c=b.next();!c.done;c=b.next())if((a[c.value].type||"")==="progress")return!0;return!1}; + var qP=function(a,b){a=a.Lf(b);return!!a&&a.toLowerCase()!=="progress"};pP.prototype.getAdPodInfo=function(a,b){b=WO.prototype.getAdPodInfo.call(this,a,b===void 0?0:b);a=this.Wb(a);var c=((this.data.breaks||{})[a]||{}).type||"";b.g=-2;switch(c){case "pre":b.g=0;break;case "mid":a=Number(a),isNaN(a)||(b.g=a)}return b};var rP=function(){pP.apply(this,arguments)};v(rP,pP);l=rP.prototype;l.Lf=function(a){return sP(this,a).type||""};l.qh=function(a){return sP(this,a).ad||""};l.Wb=function(a){return((this.data.ads||{})[a]||{}).ad_break_id||""};l.getTotalAds=function(a){return((this.data.ad_breaks||{})[a]||{}).ads||0};l.rg=function(a){return((this.data.ad_breaks||{})[a]||{}).duration||0};l.Lh=function(a){return((this.data.ad_breaks||{})[a]||{}).expected_duration||0}; + l.tg=function(a){var b=this.data.ads||{},c=this.getAdPosition(a);a=this.Wb(a);for(var d=0,e=t(Object.keys(b)),f=e.next();!f.done;f=e.next()){f=b[f.value]||{};var g=f.position||Number.MAX_SAFE_INTEGER,h=f.duration||0;a===f.ad_break_id&&g>0&&g0}).sort(function(g,h){return g.position-h.position})};var sP=function(a,b){a=a.data.tags||{};for(var c=t(Object.keys(a)),d=c.next();!d.done;d=c.next())if(d=d.value,b.startsWith(d))return a[d];return{}};var tP=function(a,b){b=b===void 0?{}:b;VB.call(this,a);this.data=b||{}};v(tP,VB);var uP=function(a){this.data=a=a===void 0?{}:a},vP=function(a){return a.data.metadata_url||""},wP=function(a){var b=a.data.polling_frequency;return isNaN(b)||b==null||b<0?10:a.data.polling_frequency},xP=function(a){return a.data.stream_id||""};uP.prototype.De=function(){return this.data.pod_manifest_url||""}; + uP.prototype.Ee=function(){var a={};return a.pod_manifest_url=this.De(),a.manifestFormat=this.data.manifest_format||"",a.streamUrl=this.data.stream_manifest||"",a.subtitles=this.data.subtitles||[],a.streamId=xP(this),a};var yP=function(a){return a.data.stream_type==="live"};var zP=function(){WO.apply(this,arguments)};v(zP,WO);zP.prototype.getCuePoints=function(){var a=(this.data.cuepoints||[]).map(function(b){return new ZO(b)});a=a.filter(function(b){return b.ed()});a.sort(function(b,c){return $O(b)-$O(c)});return a};zP.prototype.getAd=function(a,b,c){c=c===void 0?0:c;var d=(this.data.ads||{})[a];if(!d)return null;b=lP(d,b);if(!b)return null;b.pa=this.getAdPodInfo(a,c);return b}; + zP.prototype.g=function(){for(var a=this.data.times||{},b=t(Object.keys(a)),c=b.next();!c.done;c=b.next()){c=a[c.value];for(var d=0;d0&&$O(a[0])===0;a.some(function(e,f){return e.contains(b||0)?(c.g=d?f:f+1,c.j=$O(e),!0):!1})}return c};var AP=function(){U.call(this);this.j=this.currentTime=0;this.g=!1};v(AP,U);AP.prototype.lc=function(a){this.currentTime=a;a=Math.abs(this.currentTime-this.j);this.g&&a>2.5&&(this.g=!1,this.dispatchEvent(new tP("adPeriodEnded")))};AP.prototype.reset=function(){this.j=this.currentTime=0;this.g=!1};function BP(a,b){var c=b;a.forEach(function(d){var e=$O(d);d=aP(d);b>=d?c-=d-e:be&&(c-=b-e)});return c}function CP(a,b){var c=b,d=0,e=0;a.forEach(function(f){var g=$O(f);f=aP(f);d+=g-e;if(d>b)return c;c+=f-g;e=f});return c};var DP=function(a,b,c,d){this.D=a;this.G=b;this.ba=c;this.fa=d;this.j=null;this.H=0;this.l="";this.J=0;this.F=!1;this.ca=!0;this.W=!1;this.o=0;this.C=this.g=null;this.M=this.N=this.T=!1;this.volume=1;this.R=new Set},EP=function(a){Kt(a.g);a.M=!1;a.g=null;a.j=null;a.l=""},FP=function(a){a.F||(a.H=a.o,a.F=!0,a.dispatchEvent(new tP("adBreakStarted")))},GP=function(a){a.F&&(a.ca&&(a.ca=!1,(yP(a.D)||a.D.data.stream_type==="on_demand")&&CO.getInstance().report(206,{st:yP(a.D)?"live":"vod",meta:a.W?"1": + "0",pt:zt.getPlayerType()||"",pv:zt.getPlayerVersion()||"",n:"0",ctv:nv()?"1":"0"})),a.dispatchEvent(new tP("adBreakEnded")),a.F=!1)};DP.prototype.Xa=function(){if(this.C){var a=this.C;var b=this.l,c=this.o,d=this.J;if(a==null||D(b))a=null;else{var e=a.Wb(b);a=new XO({adBreakDuration:a.rg(e),rd:this.H,adPeriodDuration:a.Lh(e),adPosition:a.getAdPosition(b),ud:d,currentTime:c-d,duration:((a.data.ads||{})[b]||{}).duration||0,totalAds:a.getTotalAds(e),wc:a.getAdPodInfo(b,d).wc})}}else a=null;return a}; + DP.prototype.getCurrentTime=function(){var a=this.Xa();return a!=null?a.currentTime:0};DP.prototype.getDuration=function(){var a=this.Xa();return a!=null?a.duration:0};DP.prototype.getVolume=function(){return this.volume};var KP=function(a,b){D(a.l)||a.l!==b||(HP(a,!0),IP(a,"complete"),JP(a))},LP=function(a,b,c){return D(a.l)||a.l!==c?!1:(IP(a,b),!0)},NP=function(a,b){if(a.R.has(b)||!a.C)return null;a.R.add(b);var c=a.C.getAd(b,a.G,a.o);if(!c)return EP(a),null;a.j=c;a.l=b;a.J=a.o;MP(a,c);return c}; + DP.prototype.Cb=function(a){IP(this,a);a==="skip"&&JP(this)};var OP=function(a){(a=a.O.get(bF))&&a.init("3.659.0")},PP=function(a){var b=a.D.Ee();a.dispatchEvent(new tP("loadStream",b))};DP.prototype.Lc=function(a){this.T||(QP(this,a),this.T=!0);this.N&&(IP(this,"resume"),this.N=!1)};DP.prototype.Kc=function(){this.N||(IP(this,"pause"),this.N=!0)};DP.prototype.Mc=function(a){QP(this,a)}; + var RP=function(a){if(a.j){var b=a.Xa();a.dispatchEvent(new tP("adProgress",b!=null?YO(b):{}));a.g&&(b=a.getDuration()*1E3,EE(a.g,a.getCurrentTime(),b))}},HP=function(a,b){b=b===void 0?!1:b;var c;!a.M&&(c=a.j)!=null&&c.isSkippable()&&(a.getCurrentTime()>=30||b)&&(a.M=!0,IP(a,"engagedView"))},SP=function(a){if(!a.F&&a.C){var b=a.C.tg(a.l);a.H=a.J-b;a.F=!0;a.dispatchEvent(new tP("adBreakStarted"))}IP(a,"loaded");IP(a,"adCanPlay");IP(a,"impression");IP(a,"creativeView");IP(a,"start");a.volume===0&&IP(a, + "mute")},IP=function(a,b){a.j&&(a.g!=null&&a.g.report(b),a.dispatchEvent(new gF(b,a.j)))},JP=function(a){var b=a.C,c=a.l;if(b==null||D(c))var d=!0;else d=b.getTotalAds(b.Wb(c)),b=b.getAdPosition(c),d=typeof d!=="number"||typeof b!=="number"?!0:b>=d;EP(a);d&&GP(a)};DP.prototype.dispatchEvent=function(a){this.ba.dispatchEvent(a)}; + var MP=function(a,b){Kt(a.g);a.g=new uE(b.ga,new JJ(!1));b=hE({gi:"1",pa:b.getAdPodInfo(),ad:b,aa:a.fa});GE(a.g,b);FE(a.g,new bE("SDKV",{toString:function(){return a.G}}))},QP=function(a,b){if(a.j!=null){var c=b===0,d=a.volume===0;c&&!d?IP(a,"mute"):!c&&d&&IP(a,"unmute");a.volume!==b&&a.dispatchEvent(new gF("volumeChange",a.j,{volume:b}))}a.volume=b};function TP(a){var b;return((b=a.O.get(XE))==null?void 0:b.g)||null}function UP(a){return a.some(function(b){return b.Ga==="GoogleWhyThisAd"})}function VP(a){a.forEach(function(b){if(b.Ga==="GoogleWhyThisAd"||b.Ga==="AdChoices")b.gb="left",b.ib="top",b.g=20,b.j=20})}function WP(a){a.forEach(function(b){b.Ga==="GoogleWhyThisAd"&&(b.g<46||b.j<46)&&(b.g=46,b.j=46)})}var XP=function(){this.l=-1;this.j=this.g=!0;this.o=!1;this.C=!0;this.D=this.N=!1;this.H=null;this.Fa=[];this.G=!1;this.F=null}; + XP.prototype.getUiElements=function(){var a=[];this.g&&a.push("adAttribution");this.j&&a.push("countdown");return a};XP.prototype.isSkippable=function(){return this.l>=0};function YP(a){var b={};return b.skipTime=a.l,b.enableAttributionBar=a.g,b.enableCountdown=a.j,b.enableLearnMoreButton=a.o,b.enableTitleBar=a.C,b.enableYouTubeMetadata=a.N,b.gvnStyleAnnotation=a.D,b.wtaClickthroughUrl=a.H,b.icons=a.Fa.map(function(c){var d={};return d.program=c.Ga,d.apiFramework=c.Z,d.widthPx=c.g,d.heightPx=c.j,d.pxRatio=c.G,d.xPosition=c.gb,d.yPosition=c.ib,d.offsetMs=c.Aa,d.durationMs=c.sa,d.clickthroughUrl=c.o,d.attributionParams=c.D,d.staticResourceUrl=c.l,d.staticResourceMimeType= + c.H,d.iconViewTrackingUrls=c.F,d.iconClickTrackingUrls=c.C,d}),b.hasClickthrough=a.G,b.gpidAttributionData=a.J?JSON.stringify(Jh(a.J)):null,b};var ZP=function(){},$P=function(a,b){a=new Ls(a);b.g&&Ns(a,"dai.google.com");return a},aQ=function(a){var b=a.adTagParameters,c=new Map;if(b!=null)for(var d=t(Object.keys(b)),e=d.next();!e.done;e=d.next()){e=e.value;var f=b[e];f!=null&&c.set(e,f)}c.set("api-key",a.apiKey);c.set("auth-token",a.authToken);c.set("dai-sam-id",a.streamActivityMonitorId);a.g&&c.set("cld","1");return c};ZP.prototype.Ah=function(){return null};ZP.prototype.zh=function(){return null};function bQ(a,b,c){return a+"/"+b+"/vid/"+c+"/streams"}function cQ(a,b){var c={},d={},e={};return e.url="https://videostitcher.googleapis.com/v1/projects/"+a.projectNumber+"/locations/"+a.region+"/liveSessions",e.content=Object.assign({},a.videoStitcherSessionOptions,(d.live_config="projects/"+a.projectNumber+"/locations/"+a.region+"/liveConfigs/"+a.liveStreamEventId,d.gam_settings=(c.stream_id=b,c),d)),e} + function dQ(a,b){var c={},d={},e={};return e.url="https://videostitcher.googleapis.com/v1/projects/"+a.projectNumber+"/locations/"+a.region+"/vodSessions",e.content=Object.assign({},a.videoStitcherSessionOptions,(d.ad_tag_uri=a.adTagUrl,d.source_uri=a.contentSourceUrl,d.ad_tracking="CLIENT",d.vod_config=a.vodConfigId?"projects/"+a.projectNumber+"/locations/"+a.region+"/vodConfigs/"+a.vodConfigId:"",d.gam_settings=(c.network_code=a.networkCode,c.stream_id=b,c),d)),e} + function eQ(a,b){b.forEach(function(c,d){D(c)||Zs(a,d,c)})};var fQ=function(){};v(fQ,ZP);fQ.prototype.Pc=function(a){return gQ(a)&&a.format==="dash"};fQ.prototype.zc=function(a,b){b=b===void 0?new Map:b;var c=$P(D(a.assetKey)?bQ("https://pubads.g.doubleclick.net/ondemand/dash/content",a.contentSourceId,a.videoId):"https://pubads.g.doubleclick.net/ssai/event/"+a.assetKey+"/streams",a);a=aQ(a);eQ(c,a);eQ(c,b);return c.toString()};var hQ=function(){};v(hQ,ZP);hQ.prototype.Pc=function(a){return gQ(a)&&a.format!=="dash"};hQ.prototype.zc=function(a,b){b=b===void 0?new Map:b;var c=$P(D(a.assetKey)?bQ("https://pubads.g.doubleclick.net/ondemand/hls/content",a.contentSourceId,a.videoId):"https://pubads.g.doubleclick.net/ssai/event/"+a.assetKey+"/streams",a);a=aQ(a);eQ(c,a);eQ(c,b);return c.toString()};var iQ=function(){};v(iQ,ZP);iQ.prototype.Pc=function(a){return jQ(a)||kQ(a)};iQ.prototype.zc=function(a,b){b=b===void 0?new Map:b;var c=$P("https://pubads.g.doubleclick.net/ssai/pods/api/v1/network/"+a.networkCode+"/custom_asset/"+a.customAssetKey+"/stream",a),d=aQ(a);eQ(c,d);eQ(c,b);Zs(c,"manifest-type",a.format);return c.toString()};var lQ=function(){};v(lQ,ZP);lQ.prototype.Pc=function(a){return mQ(a)||nQ(a)||oQ(a)};lQ.prototype.zc=function(a){return $P("https://pubads.g.doubleclick.net/ondemand/pods/api/v1/network/"+a.networkCode+"/stream_registration",a).toString()};lQ.prototype.Ah=function(a){var b=Object.fromEntries(a);Object.keys(b).forEach(function(c){b[c]=String(b[c])});a={};return JSON.stringify((a.targeting_parameters=b,a))};lQ.prototype.zh=function(){var a={};return a["Content-Type"]="application/json",a};var pQ=function(){};v(pQ,ZP);pQ.prototype.Pc=function(a){return gQ(a)&&a.o}; + pQ.prototype.zc=function(a,b){b=b===void 0?new Map:b;var c=new Ls(jQ(a)?"https://truman-qa.sandbox.google.com/ssai/pods/api/v1/network/"+a.networkCode+"/custom_asset/"+a.customAssetKey+"/stream":D(a.assetKey)?a.format==="dash"?bQ("https://truman-qa.sandbox.google.com/ondemand/dash/content",a.contentSourceId,a.videoId):bQ("https://truman-qa.sandbox.google.com/ondemand/hls/content",a.contentSourceId,a.videoId):"https://truman-qa.sandbox.google.com/ssai/event/"+a.assetKey+"/streams"),d=aQ(a);eQ(c,d); + eQ(c,b);jQ(a)&&!D(a.format)&&Zs(c,"manifest-type",a.format);return c.toString()};var qQ=function(){};v(qQ,ZP);qQ.prototype.Pc=function(){return!1};qQ.prototype.zc=function(){return""};var rQ=function(){this.g=[]},sQ=function(a,b){a=t(a.g);for(var c=a.next();!c.done;c=a.next())if(c=c.value,c.Pc(b))return c;return new qQ};var tQ=function(){};v(tQ,ZP);tQ.prototype.Pc=function(){return!1};tQ.prototype.zc=function(a,b){b=b===void 0?new Map:b;var c="";D(a.assetKey)?uQ(a)?c=a.contentSourceId:jQ(a)&&(c=a.networkCode):c=a.assetKey;c=new Ls(c);a=aQ(a);eQ(c,a);eQ(c,b);return c.toString()};var vQ=function(){this.g=new rQ},wQ=function(a,b){b&&a.g.g.push(b)},zQ=function(a,b,c,d){d=d===void 0?new Map:d;var e=new rJ("Invalid stream initialization request.",2001);if(!gQ(b))return Promise.reject(e);var f=sQ(a.g,b),g=f.zc(b,d);c.Jc==="tvos"&&g.startsWith("https://pubads.g.doubleclick.net")&&Ip(sq)&&(g=g.replace("https://pubads.g.doubleclick.net/","https://pubads-att.g.doubleclick.net/"));a=f.zh();d=f.Ah(d);if(D(g))return Promise.reject(e);var h=Date.now();return FJ({headers:a!=null?a:void 0, + url:g,timeout:new sJ(xQ(b)),withCredentials:!b.g,content:d!=null?d:void 0}).then(function(k){var m=c.Cd;var n=new rn;n=kh(n,1,h);n=kh(n,2,Date.now());Wg(m,14,n);m=new uP(k);if(m.data.stream_id==null)throw new rJ("Stream initialization response was invalid.\nResponse: "+JSON.stringify(k),2002);return m}).catch(function(k){var m=new rJ("Stream initialization failed",2002);k instanceof rJ?m=k:k instanceof xJ?m=yQ(b,g,k.qk):k instanceof Error&&(k=Number(k.message),k=isNaN(k)?500:Math.floor(k),m=yQ(b, + g,k));throw m;})},yQ=function(a,b,c){var d=2002,e="Stream initialization failed because\nHTTP status code: ";c===404?(d=2002,D(a.assetKey)?uQ(a)&&(e="Stream initialization failed because either: \n1. Content source ID or video ID was incorrect. \n2. The stream is inactive.\nHTTP status code: "):e="Stream initialization failed because either: \n1. Asset key was incorrect.\n2. The stream is inactive.\nHTTP status code: "):c===401||c===403?(d=2004,e="Stream initialization failed because: \nAPI key was incorrect. Access unauthorized\nHTTP status code: "): + c===408&&(d=2003,e="Stream initialization failed because: \nRequest timed out\nHTTP status code: ");return new rJ(e+(c+" with URL: "+b),d)};var AQ=function(){this.adTagParameters=null;this.customAssetKey=this.contentSourceUrl=this.contentSourceId=this.authToken=this.assetKey=this.apiKey="";this.g=this.j=!1;this.streamActivityMonitorId=this.networkCode="";this.o=!1;this.videoId="";this.omidAccessModeRules={};this.vodConfigId=this.adTagUrl=this.oAuthToken=this.projectNumber=this.region=this.liveStreamEventId="";this.enableNonce=!1;this.videoStitcherSessionOptions=this.l=null;this.format="hls"},xQ=function(a){if(!a.adTagParameters)return 8E3; + a=a.adTagParameters["dai-apto"];isFinite(a)&&(a=String(a));a=typeof a==="string"?/^\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN;return isNaN(a)?8E3:a+4E3},gQ=function(a){return!D(a.assetKey)||uQ(a)||jQ(a)||mQ(a)||nQ(a)||oQ(a)||kQ(a)},jQ=function(a){return!D(a.networkCode)&&!D(a.customAssetKey)},mQ=function(a){return!D(a.networkCode)&&!jQ(a)&&!(nQ(a)||oQ(a))&&!kQ(a)&&!!D(a.assetKey)&&!uQ(a)},kQ=function(a){return jQ(a)&&!D(a.liveStreamEventId)&&!D(a.region)&&!D(a.projectNumber)&&!D(a.oAuthToken)}, + nQ=function(a){return!D(a.vodConfigId)&&!D(a.region)&&!D(a.projectNumber)&&!D(a.oAuthToken)&&!D(a.networkCode)},oQ=function(a){return D(a.vodConfigId)&&!D(a.networkCode)&&!D(a.region)&&!D(a.projectNumber)&&!D(a.oAuthToken)&&!D(a.adTagUrl)&&!D(a.contentSourceUrl)},uQ=function(a){return!D(a.contentSourceId)&&!D(a.videoId)};var BQ=function(a,b,c){b=b===void 0?null:b;c=c===void 0?null:c;VB.call(this,a);this.ad=b;this.j=c};v(BQ,VB);var CQ=function(a){return new BQ(a.type,null,a.data)};BQ.prototype.getAd=function(){return this.ad};BQ.prototype.getAdData=function(){return this.j};var GQ=function(a){if(a instanceof DQ||a instanceof EQ||a instanceof FQ)return a;if(typeof a.next=="function")return new DQ(function(){return a});if(typeof a[Symbol.iterator]=="function")return new DQ(function(){return a[Symbol.iterator]()});if(typeof a.Uc=="function")return new DQ(function(){return a.Uc()});throw Error("Not an iterator or iterable.");},DQ=function(a){this.g=a};DQ.prototype.Uc=function(){return new EQ(this.g())};DQ.prototype[Symbol.iterator]=function(){return new FQ(this.g())}; + DQ.prototype.j=function(){return new FQ(this.g())};var EQ=function(a){this.g=a};v(EQ,Ey);EQ.prototype.next=function(){return this.g.next()};EQ.prototype[Symbol.iterator]=function(){return new FQ(this.g)};EQ.prototype.j=function(){return new FQ(this.g)};var FQ=function(a){DQ.call(this,function(){return a});this.l=a};v(FQ,DQ);FQ.prototype.next=function(){return this.l.next()};var HQ=function(a,b){this.j={};this.g=[];this.l=this.size=0;var c=arguments.length;if(c>1){if(c%2)throw Error("Uneven number of arguments");for(var d=0;d2*this.size&&IQ(this),!0):!1};var IQ=function(a){if(a.size!=a.g.length){for(var b=0,c=0;b=d.g.length)return Fy;var f=d.g[b++];return{value:a?f:d.j[f],done:!1}};return e};var JQ=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};var LQ=null,MQ=function(){U.call(this);this.G=this.aa=this.j=null;this.H=-1;this.g=new HQ;this.l=new Map;this.o=new zJ(this);Mt(this,this.o);this.D=new Map;S().l=!0;lv()};v(MQ,U); + var NQ=function(){LQ==null&&(LQ=new MQ);return LQ},OQ=function(a,b){var c={};a=(c.queryId=a,c.viewabilityString=b,c);NQ().dispatchEvent(CQ({type:"measurable_impression",data:a}))},PQ=function(a,b){var c={};a=(c.queryId=a,c.viewabilityString=b,c);NQ().dispatchEvent(CQ({type:"viewable_impression",data:a}))},QQ=function(a,b,c){var d={};a=(d.queryId=a,d.viewabilityString=b,d.eventName=c,d);NQ().dispatchEvent(CQ({type:"externalActivityEvent",data:a}))}; + MQ.prototype.destroy=function(){this.o.Yd(this.j,"activityMonitor",this.C);this.j=null}; + MQ.prototype.C=function(a){var b=a.j();switch(a.l()){case "appStateChanged":L(FB);b=b.appState;a=rx();a.H!=b&&(a.H=b,(a=L(Yz).g)&&Ax(a.g,!b));break;case "externalActivityEvent":QQ(b.queryId,b.viewabilityString,b.eventName);break;case "measurableImpression":OQ(b.queryId,b.viewabilityString);break;case "viewableImpression":PQ(b.queryId,b.viewabilityString);break;case "engagementData":b=b.engagementString;NQ().G=b;NQ().H=Wa();break;case "viewability":a=b.queryId;var c=b.vastEvent;this.l.get(a)&&c=== + "start"&&this.l.get(a);a=b.eventId;clearTimeout(a);if(c=this.g.get(a))this.g.delete(a),c(b.viewabilityData);break;case "viewabilityMeasurement":L(FB);S();break;case "engagement":a=b.eventId;clearTimeout(a);c=this.g.get(a);if(CO.getInstance().g){var d=!1;c||(d=!0);Nj(b,"loggingId")&&CO.getInstance().report(43,{step:"receivedResponse",time:Wa(),timeout:d,logid:b.loggingId,timediff:-1})}c&&(this.g.delete(a),c(b.engagementString))}};B("ima.bridge.getNativeViewability",function(a,b){NQ();b({})}); + B("ima.bridge.getVideoMetadata",function(a){return(a=NQ().D.get(a))?a():{}});B("ima.bridge.triggerViewEvent",PQ);B("ima.bridge.triggerMeasurableEvent",OQ);B("ima.bridge.triggerExternalActivityEvent",QQ);var RQ=function(){U.apply(this,arguments)};v(RQ,U);RQ.prototype.Ci=function(){return null};RQ.prototype.zf=function(){};RQ.prototype.wi=function(){};var SQ=Object.values({FULL:"full",DOMAIN:"domain",LIMITED:"limited"});function TQ(a,b){return Object.keys(a).some(function(c){return SQ.includes(c)})?UQ(a,b):VQ(a,b)}function UQ(a,b){return WQ(a,"limited",b)?"limited":WQ(a,"domain",b)?"domain":WQ(a,"full",b)?"full":VQ({},b)}function WQ(a,b,c){return(a[b]||[]).some(function(d){return d.test(c)})}function VQ(a,b){b=Is(b);Object.keys(a).includes(""+b)||(b=1);return(a=a[b])&&SQ.includes(a)?a:"limited"};function XQ(a){CO.getInstance().report(211,{message:a})};var YQ=ia(["https://pagead2.googlesyndication.com/omsdk/releases/live/omweb-v1.js"]),ZQ=ia(["https://pagead2.googlesyndication.com/omsdk/releases/control/omweb-v1.js"]),$Q=ia(["https://pagead2.googlesyndication.com/omsdk/releases/canary/omweb-v1.js"]),aR=ia(["https://pagead2.googlesyndication.com/omsdk/releases/experimental/omweb-v1.js"]),bR=Xk(YQ),cR=Xk(ZQ),dR=Xk($Q),eR=Xk(aR);var fR=!1; + function gR(a){var b=new Map;var c=new hR;var d=c.ad,e=c.pa,f=c.Pf;c=c.display;var g=fv.getInstance().appName,h=nv()?"0":Ll()||Kl()?"2":"1",k=null,m=null;d instanceof mF&&d.lb.length>0&&(m=d.lb[0],k=m.getAdIdValue(),m=m.getAdIdRegistry());var n=null,p=null;mv()&&(n="Google1",p="3.659.0");var q=fv.getInstance().j;q=(new Ls(q)).j||"";var r=(f==null?void 0:f.pageUrl)||null;r=rG(r)?r:fv.getInstance().j;var w=zt.getPlayerType(),A=zt.getPlayerVersion(),C=uu(fv.getInstance().g),Q=fv.getInstance().Rc,F=yu(fv.getInstance().g), + fa=uu(fv.getInstance().g);/^[\.\w_-]*$/.test(fa)||fR||(CO.getInstance().report(141,{tcstring:fa}),fR=!0);hE({aa:c,gi:"1",pa:e,ad:d,Pf:f,appName:g,Lj:h,Bl:k,Al:m,Mg:n,Ek:p,oe:w,pe:A,mf:"IMA",nf:"3.659.0",domain:q,pageUrl:r,Kh:C,Rc:Q,Dl:F},b);d=b;d=d===void 0?new Map:d;fE(d,"REASON",a);return b}var hR=function(){var a=null;this.Pf=this.display=this.pa=this.ad=null;this.error=a===void 0?null:a};var iR=function(a,b,c,d){this.isSkippable=a;this.j=b;this.g=c;this.position=d};iR.prototype.toJSON=function(){return{isSkippable:this.isSkippable,skipOffset:this.j,isAutoPlay:this.g,position:this.position}};function jR(a,b){if(!b)throw Error("Value for "+a+" is undefined, null or blank.");if(typeof b!=="string"&&!(b instanceof String))throw Error("Value for "+a+" is not a string.");if(b.trim()==="")throw Error("Value for "+a+" is empty string.");}function kR(a,b){if(b==null)throw Error("Value for "+a+" is undefined or null");}function lR(a,b){if(b==null)throw Error(a+" must not be null or undefined.");if(typeof b!=="number"||isNaN(b))throw Error("Value for "+a+" is not a number");} + function mR(a,b){lR(a,b);if(b<0||b>1)throw Error("Value for "+a+" is outside the range [0,1]");};function nR(){return/\d+\.\d+\.\d+(-.*)?/.test("1.4.10-google_20240110")}function oR(){for(var a=["1","4","10"],b=["1","0","3"],c=0;c<3;c++){var d=parseInt(a[c],10),e=parseInt(b[c],10);if(d>e)break;else if(d=0&&(b=b.adEvents);JR.indexOf(a)>=0&&(b=b.mediaEvents);b=b[a];if(!b)throw Error("Unrecognized method name: "+a+".");b.apply(null,u(c))};var OR=function(a,b,c){kR("AdSession.context",a);this.g=uR();this.o=a;this.G=!1;var d=this.o.g||void 0;if(!b){var e;typeof e==="undefined"&&typeof window!=="undefined"&&window&&(e=window);e=AR(e)?e:zR;var f=f===void 0?xR:f;b=[e,AR(e)?e.top:zR];d&&b.unshift(d);a:{d=t(b);for(var g=d.next();!g.done;g=d.next()){b:{b=e;g=g.value;var h=f;if(!BR(g))try{var k=ER(g);if(k){var m=new yR(k);break b}}catch(n){}m=h(g)?new CR(b,g):null}if(b=m)break a}b=null}}this.C=b;this.J=c||new LR;this.H=this.W=this.N=!1;this.l= + this.j=null;this.D=!1;this.F={};this.C&&(this.C.onMessage=this.bk.bind(this));this.oa("setClientInfo","1.4.10-google_20240110",this.o.j.name,this.o.j.version,this.g);MR(this,a.F);(a=a.o)&&this.oa("setContentUrl",a,this.g);NR(this)},PR=function(a){return!!a.C||a.J.g!=null};l=OR.prototype;l.registerSessionObserver=function(a){this.sendMessage("registerSessionObserver",a,this.g)};l.start=function(){this.oa("startSession",{customReferenceData:this.o.C,underEvaluation:this.o.l},this.g)}; + l.error=function(a,b){this.oa("sessionError",a,b,this.g)};l.oa=function(a){this.sendMessage.apply(this,[a,null].concat(u(Ea.apply(1,arguments))))};l.sendMessage=function(a,b){var c=Ea.apply(2,arguments);if(this.C){var d=uR();b&&(this.F[d]=b);c=new pR(d,"SessionService."+a,"1.4.10-google_20240110",nR()&&oR()?c:JSON.stringify(c));this.C.sendMessage(c)}else if(this.J.g!=null)try{this.J.sendMessage(a,b,c)}catch(e){vR("Failed to communicate with SessionInterface with error:"),vR(e)}}; + l.bk=function(a){var b=a.method,c=a.g;a=a.args;if(b==="response"&&this.F[c]){var d=nR()&&oR()?a?a:[]:a&&typeof a==="string"?JSON.parse(a):[];this.F[c].apply(this,d)}b==="error"&&window.console&&vR(a)};var MR=function(a,b){b&&(b=b.map(function(c){return c.toJSON()}),a.oa("injectVerificationScriptResources",b,a.g))},NR=function(a){a.registerSessionObserver(function(b){b.type==="sessionStart"&&(a.H=!0,a.j=b.data.creativeType,a.l=b.data.impressionType);b.type==="sessionFinish"&&(a.H=!1)})}; + Hs("OmidSessionClient.AdSession",OR);var QR=function(a){kR("AdEvents.adSession",a);this.j=a.g;try{if(a.N)throw Error("AdEvents already registered.");a.N=!0;a.oa("registerAdEvents",a.g);this.g=a}catch(b){throw Error("AdSession already has an ad events instance registered");}}; + QR.prototype.loaded=function(a){a=a===void 0?null:a;var b=this.g;if(b.j==="definedByJavaScript")throw Error("Creative type has not been redefined");if(b.l==="definedByJavaScript")throw Error("Impression type has not been redefined");b.D=!0;a=a?a.toJSON():null;this.g.oa("loaded",a,this.j)};Hs("OmidSessionClient.AdEvents",QR);var RR=function(a){kR("MediaEvents.adSession",a);this.j=a.g;try{if(a.W)throw Error("MediaEvents already registered.");a.W=!0;a.oa("registerMediaEvents",a.g);this.g=a}catch(b){throw Error("AdSession already has a media events instance registered");}};RR.prototype.start=function(a,b){lR("MediaEvents.start.duration",a);mR("MediaEvents.start.mediaPlayerVolume",b);this.g.oa("start",a,b,this.j)};RR.prototype.pause=function(){this.g.oa("pause",this.j)};RR.prototype.resume=function(){this.g.oa("resume",this.j)}; + var SR=function(a,b){kR("MediaEvents.playerStateChange.playerState",b);a.g.oa("playerStateChange",b,a.j)},TR=function(a,b){kR("MediaEvents.adUserInteraction.interactionType",b);a.g.oa("adUserInteraction",b,a.j)};Hs("OmidSessionClient.MediaEvents",RR);var UR=function(a,b,c,d){U.call(this);this.ad=a;this.R=b;this.M=c;this.omidAccessModeRules=d;this.l=null;this.D=[];this.J=this.T=this.G=this.ba=!1;this.C=this.g=this.H=this.j=null;this.o=new zJ(this);this.o.listen(this.R,zO,this.la);this.o.listen(this.R,["adError","streamError"],this.fa)};v(UR,U); + var cS=function(a,b,c){var d=VR(a);WR(d);d.length===0?YR(a,"noVerifications"):(b=new HR(b,d,fv.getInstance().j),c&&(b.zf(c),c=Object.keys(a.omidAccessModeRules).length>0,b.l=!c,CO.getInstance().report(159,{pcp:c})),a.j=new OR(b),XQ("sc"),PR(a.j)?(a.H=new QR(a.j),a.g=new RR(a.j),a.j.registerSessionObserver(function(e){if(!ZR(a))switch(e.type){case "sessionStart":XQ("ss");e=e.data;a.G=!0;$R(a,e==null?void 0:e.creativeType);aS(a,e==null?void 0:e.impressionType);bS(a);break;case "sessionFinish":XQ("sf"); + a.T=!0;a.dispatchEvent(new VB("omidAdSessionCompleted"));break;case "sessionError":XQ("se")}}),a.ba=!0,$R(a),aS(a),a.j.start(),XQ("ssa")):(a.j=null,YR(a,"notSupported")))};UR.prototype.la=function(a){this.J||ZR(this)||(a.type!=="firstQuartile"||this.G||XQ("bf"),a.type!=="complete"||this.G||XQ("bc"),this.D.push(a),bS(this))};UR.prototype.fa=function(a){this.D.push(a);bS(this)};UR.prototype.na=function(){bS(this)}; + var dS=function(a){if(!a.J){a.J=!0;var b;(b=a.j)!=null&&b.oa("finishSession",b.g);aD(function(){ZR(a)||(XQ("le"),YR(a,"sessionLingering"))},5E3)}},bS=function(a){if(a.G&&!ZR(a))for(;a.D.length>0;){var b=a.D[0];if(b.type==="start"&&(a.l==null?0:a.l.getVolume())<0)break;a.D.shift();var c=a;if(b instanceof BQ||b instanceof gF){var d=void 0;if(c.H&&c.g)switch(b.type){case "loaded":XQ("oml");b=c.H;d=b.loaded;var e=c;c="preroll";e.ad.getAdPodInfo().getPodIndex()<0?c="postroll":e.ad.getAdPodInfo().getPodIndex()> + 0&&(c="midroll");var f=e.ad.isSkippable(),g=e.ad.getSkipTimeOffset();e=e.ad;d.call(b,new iR(f,g,e.g&&e.g.adTagParameters?e.g.adTagParameters.vpa==="auto":!1,c));break;case "impression":XQ("i");c=c.H;if(!c.g.H)throw Error("Session not started.");b=c.g;if(b.j==="definedByJavaScript")throw Error("Creative type has not been redefined");if(b.l==="definedByJavaScript")throw Error("Impression type has not been redefined");b.G=!0;c.g.oa("impressionOccurred",c.j);break;case "start":XQ("ps");c.g.start(c.ad.getDuration(), + c.l==null?0:c.l.getVolume());((d=c.l)==null?0:d.bc())&&SR(c.g,"fullscreen");break;case "firstQuartile":c=c.g;c.g.oa("firstQuartile",c.j);break;case "midpoint":c=c.g;c.g.oa("midpoint",c.j);break;case "thirdQuartile":c=c.g;c.g.oa("thirdQuartile",c.j);break;case "complete":b=c.g;b.g.oa("complete",b.j);dS(c);break;case "pause":c.g.pause();break;case "resume":c.g.resume();break;case "skip":b=c.g;b.g.oa("skipped",b.j);dS(c);break;case "volumeChange":b=b.getAdData();c=c.g;b=b.volume;mR("MediaEvents.volumeChange.mediaPlayerVolume", + b);c.g.oa("volumeChange",b,c.j);break;case "click":case "videoClicked":TR(c.g,"click");break;case "fullscreen":SR(c.g,"fullscreen");break;case "exitFullscreen":SR(c.g,"normal");break;case "expand":SR(c.g,"expanded");break;case "collapse":SR(c.g,"collapsed");break;case "acceptInvitation":case "acceptInvitationLinear":TR(c.g,"invitationAccept")}}else b instanceof tP&&b.type==="streamError"&&(d=void 0,(d=c.j)==null||d.error("video",b.data.errorMessage||""),dS(c))}},YR=function(a,b){a.C=b;a.dispatchEvent(new VB("omidAdSessionAbandoned")); + XQ("ab");a.C==="notSupported"&&eS(a,fS(a.ad),"3","notSupported")},$R=function(a,b){b=b===void 0?null:b;if(a.j&&(!b||b==="definedByJavaScript")){b=a.j;a=a.ad.getContentType().startsWith("audio")?"audio":"video";if(a==="definedByJavaScript")throw Error("Creative type cannot be redefined with value definedByJavaScript");if(b.G)throw Error("Impression has already occurred");if(b.D)throw Error("Creative has already loaded");if(b.j&&b.j!=="definedByJavaScript")throw Error("Creative type cannot be redefined"); + if(b.j===void 0)throw Error("Native integration is using OMID 1.2 or earlier");b.oa("setCreativeType",a,b.g);b.j=a}},aS=function(a,b){b=b===void 0?null:b;if(a.j&&(!b||b==="definedByJavaScript")){a=a.j;if(a.G)throw Error("Impression has already occurred");if(a.D)throw Error("Creative has already loaded");if(a.l&&a.l!=="definedByJavaScript")throw Error("Impression type cannot be redefined");if(a.l===void 0)throw Error("Native integration is using OMID 1.2 or earlier");a.oa("setImpressionType","beginToRender", + a.g);a.l="beginToRender"}},ZR=function(a){return a.T||a.C!=null};UR.prototype.getAd=function(){return this.ad}; + var VR=function(a){for(var b=[],c=a.ad;c!=null;){var d=fS(c);c=[];d=t(d);for(var e=d.next();!e.done;e=d.next())if(e=e.value,e.Pb==="omid")if(e.g==null)eS(a,[e],"3","nullUrl");else{var f=new GR(e.g,e.vendor||void 0,e.parameters||void 0,TQ(a.omidAccessModeRules,e.g));b.push(f);c.push(e)}else eS(a,[e],"2");c=null}return b},eS=function(a,b,c,d){var e=[];b=t(b);for(var f=b.next();!f.done;f=b.next())f=f.value,e=[].concat(u(e),u(f.ga.map(function(g){return ZD(g)})));d&&(e=e.map(function(g){g=new Ls(g);Zs(g, + "dbg",d);return g.toString()}));GE(a.M,gR(c));a.M.report("verificationNotExecuted",e)};UR.prototype.Y=function(){CJ(this.o);Kt(this.o);U.prototype.Y.call(this)};var WR=function(a){a=a.map(function(b){return[b.j||"",b.g]});CO.getInstance().report(129,{omData:JSON.stringify(a)});XQ("oms")};var gS=null,hS=function(){U.call(this);this.o=!0;this.Mg=new FR("Google1","3.659.0");this.j=[];this.C=this.g=null;this.l=new zJ(this)};v(hS,U);hS.prototype.wi=function(){this.o=!1;this.dispatchEvent(new VB("omidUnavailable"));CO.getInstance().report(128,{status:"disabled",reason:"iframeLoadFailed",description:"The OM SDK iframe failed to load. No measurements can be taken."})}; + hS.prototype.Ci=function(a,b,c,d){var e=this;d=d===void 0?{}:d;XQ("omo");var f=new UR(a,b,c,d);if(!this.o)return eS(f,fS(a),"3","notEnabled"),null;this.l.Pd(b,["show_ad","start","adError"],function(g){switch(g.type){case "show_ad":iS(e,f);break;case "start":iS(e,f);break;case "adError":f.G||eS(f,fS(f.getAd()),"3","A fatal ad error occurred, so no OMID ad session was started.")}});this.l.listen(f,"omidAdSessionAbandoned",function(){jS(!0,f);f.dispose();e.g=null;kS(e)});this.l.listen(f,"omidAdSessionCompleted", + function(){jS(!1,f);f.dispose();e.g=null;kS(e)});return f};var iS=function(a,b){b.ba||ZR(b)||a.j.includes(b)||(a.j.push(b),a.g&&(XQ("saa"),dS(a.g)),kS(a))},kS=function(a){a.o&&!a.g&&a.j.length!==0&&a.C&&(a.g=a.j.shift(),cS(a.g,a.Mg,a.C))};hS.prototype.zf=function(a){this.C=a;kS(this)};var jS=function(a,b){var c={es:a?"abandon":"complete",ai:b.getAd().getAdId(),qy:b.getAd().ze()};a&&b.C!=null&&(c.ar=b.C);CO.getInstance().report(87,c)};function lS(){if(nv())var a=new RQ;else gS==null&&(gS=new hS),a=gS;return a};var mS=function(a,b){this.ad=a;this.g=b};mS.prototype.getDuration=function(){var a=this.ad.sa;return a?a/1E3:0};var fS=function(a){return(a=a.ad.O.get(ZE))?a.g:[]};l=mS.prototype;l.isSkippable=function(){return this.ad.isSkippable()};l.getSkipTimeOffset=function(){var a=this.ad.Oa;return a!=null?a/1E3:-1};l.getAdPodInfo=function(){return this.ad.getAdPodInfo()}; + l.getContentType=function(){if(!this.g)return"";switch(this.g.format){case "dash":return"application/dash+xml";case "hls":return"application/x-mpegURL";default:return""}};l.ze=function(){return this.ad.ze()};l.getAdId=function(){return this.ad.getId()};function nS(a,b,c){if(!a)return null;a=new LE(b,a,c,lv(),b.ze());GB();a.H&&a.o.ed()&&(rx().N=!0,L(FB),b=a.o,S().F=b);b=L(FB);c=a.F;b.M=c;S().rf(c);L(FB);b=a.C;c=S();try{var d=Pc(b);c.sf(d)}catch(e){Dw(Fw,"lidarv",{processDecodedFlagsFailure:1},!0,1E-6),c.sf(b)}bw(c.V,"fmd",Aw(c.flags,gB)?1:0);return a}function oS(a,b,c,d,e){var f=lS();c.g&&(b=f.Ci(new mS(e,d),b,c.g,d.omidAccessModeRules))&&(b.l=a,b.o.listen(b.l,"start",b.na))};var pS=function(a,b){U.call(this);this.j=a;this.aa=b;this.g=null};v(pS,U);l=pS.prototype;l.getVolume=function(){return this.aa.getVolume()};l.Ke=function(){return this.aa.Ke()};l.bc=function(){return this.aa.bc()};l.zg=function(){return this.aa.zg()};l.Le=function(){return this.aa.Le()};l.getCurrentTime=function(){return this.j.getCurrentTime()};l.getDuration=function(){return this.j.getDuration()||-1};l.Mf=function(){return this.aa.Mf()}; + l.Bf=function(){this.sc();this.g=new zJ(this);this.g.listen(this.j,"adProgress",this.lc);this.g.listen(this.j,"complete",this.Ik)};l.sc=function(){var a;(a=this.g)==null||a.dispose();this.g=null};l.qg=function(){return this.aa.qg()};l.lc=function(){this.dispatchEvent("timeUpdate")};l.Ik=function(){this.dispatchEvent("end");this.sc()};var qS={Kj:[],Ij:0,Uj:[],gl:!1};var rS=function(){};rS.getInstance=function(){throw Error("Must be overridden");};var sS=function(){this.g=0};v(sS,rS);sS.Fc=void 0;sS.getInstance=function(){return sS.Fc?sS.Fc:sS.Fc=new sS};function tS(a,b,c,d){c=c===void 0?null:c;d=d===void 0?{}:d;var e=sS.getInstance();e.g===0&&(e.g=Math.random()<.001?2:1);e.g===2&&(e={},Mm(Object.assign({},(e.c=String(a),e.pc=String(em()),e.em=c,e.lid=b,e.eids=L(Fp).g().join(),e),d),"esp"))};function uS(){var a=window;var b=b===void 0?function(){}:b;return new Promise(function(c){var d=function(){c(b());Fj(a,"load",d)};Ej(a,"load",d)})};var vS=function(){this.cache={}},xS=function(){wS||(wS=new vS);return wS},yS=function(a){var b=jf(lg(a,3));if(!b)return 3;if($g(a,2)===void 0)return 4;a=Date.now();return a>b+2592E5?2:a>b+432E5?1:0}; + vS.prototype.get=function(a,b){if(this.cache[a])return{nd:this.cache[a],success:!0};var c="";try{c=b.getItem("_GESPSK-"+a)}catch(g){var d;tS(6,a,(d=g)==null?void 0:d.message);return{nd:null,success:!1}}if(!c)return{nd:null,success:!0};try{var e=yD(c);this.cache[a]=e;return{nd:e,success:!0}}catch(g){var f;tS(5,a,(f=g)==null?void 0:f.message);return{nd:null,success:!1}}}; + vS.prototype.set=function(a,b){var c=$g(a,1),d="_GESPSK-"+c;xD(a);try{b.setItem(d,Kh(a))}catch(f){var e;tS(7,c,(e=f)==null?void 0:e.message);return!1}this.cache[c]=a;return!0};vS.prototype.remove=function(a,b){a=$g(a,1);try{b.removeItem("_GESPSK-"+a),delete this.cache[a]}catch(d){var c;tS(8,a,(c=d)==null?void 0:c.message)}};var wS=null;function zS(a,b){return Vg(a,vD,2,qg()).some(function(c){return $g(c,1)===b&&$g(c,2)!=null})};var AS=function(a){a=Error.call(this,a);this.message=a.message;"stack"in a&&(this.stack=a.stack);Object.setPrototypeOf(this,AS.prototype);this.name="InputError"};v(AS,Error);var BS=function(){this.dc=!1},CS=function(){BS.apply(this,arguments);this.tf=new Ev};v(CS,BS);var DS=function(a,b){a.dc||(a.dc=!0,a.kf=b,a.tf.resolve(b))}; + da.Object.defineProperties(CS.prototype,{promise:{configurable:!0,enumerable:!0,get:function(){return this.tf.promise}},ri:{configurable:!0,enumerable:!0,get:function(){return this.dc}},error:{configurable:!0,enumerable:!0,get:function(){return this.Og}}});var ES=function(){CS.apply(this,arguments)};v(ES,CS);var FS=function(a,b){DS(a,b)},GS=function(a,b){b.then(function(c){DS(a,c)})};ES.prototype.Qb=function(a){this.dc||(this.dc=!0,this.kf=null,this.Og=a,this.tf.reject(a))}; + var HS=function(a){this.dc=!1;this.g=a};v(HS,BS);HS.prototype.ri=function(){return this.g.dc};da.Object.defineProperties(HS.prototype,{error:{configurable:!0,enumerable:!0,get:function(){return this.g.Og}}});var IS=function(a){HS.call(this,a);this.g=a};v(IS,HS);da.Object.defineProperties(IS.prototype,{value:{configurable:!0,enumerable:!0,get:function(){return this.g.kf}}});var JS=function(a){HS.call(this,a);this.g=a};v(JS,HS); + da.Object.defineProperties(JS.prototype,{value:{configurable:!0,enumerable:!0,get:function(){var a;return(a=this.g.kf)!=null?a:null}}});var KS=function(){CS.apply(this,arguments)};v(KS,CS);KS.prototype.notify=function(){DS(this,null)};var LS=function(){R.apply(this,arguments);this.g=[];this.j=[];this.l=[]};v(LS,R);var MS=function(a,b){a.j.push({ge:!1,ig:b})};LS.prototype.ge=function(a){var b=this.j.find(function(c){return c.ig===a});b&&(b.ge=!0)};LS.prototype.Y=function(){this.g.length=0;this.l.length=0;this.j.length=0;R.prototype.Y.call(this)};function NS(a,b){var c,d;return y(function(e){if(e.g==1)return c=b?a.filter(function(f){return!f.ge}):a,x(e,Promise.all(c.map(function(f){return f.ig.promise})),2);if(a.length===c.length)return e.return();d=a.filter(function(f){return f.ge});return x(e,Promise.race([Promise.all(d.map(function(f){return f.ig.promise})),new Promise(function(f){return void setTimeout(f,b)})]),0)})}var OS=function(a,b){R.call(this);this.id=a;this.timeoutMs=b;this.D=!1;this.g=new LS;Mt(this,this.g)};v(OS,R); + OS.prototype.start=function(){var a=this,b,c;return y(function(d){if(d.g==1){if(a.D)return d.return();a.D=!0;d.l=2;return x(d,NS(a.g.j,(b=a.M)!=null?b:a.timeoutMs),4)}if(d.g!=2){if(!a.Fb()){for(var e=0,f=t(a.g.l),g=f.next();!g.done;g=f.next()){if(g.value.g.kf==null)throw Error("missing input: "+a.id+"/"+e);++e}a.j()}return wa(d,0)}c=xa(d);if(a.Fb())return d.return();if(!(c instanceof AS)&&c instanceof Error&&(a.G?a.G(a.id,c):a.C(a.id,c),a.g.g.length))for(e=new AS(c.message),f=t(a.g.g),g=f.next();!g.done;g= + f.next())if(g=g.value,!g.ri){var h=e;g.dc=!0;g.Og=h;g.tf.reject(h)}d.g=0})};var PS=function(a){var b=b===void 0?new ES:b;a.g.g.push(b);return b},QS=function(a){var b=b===void 0?new KS:b;a.g.g.push(b);return b},RS=function(a,b){MS(a.g,b);b=new IS(b);a.g.l.push(b);return b},SS=function(a,b){MS(a.g,b);return new JS(b)};var TS=function(){R.call(this);this.o=[];this.F=[];this.C={};this.g=[];this.j=new Ev;this.l={}};v(TS,R); + var US=function(a,b){Mt(a,b);a.o.push(b)},VS=function(a,b){b=t(b);for(var c=b.next();!c.done;c=b.next())US(a,c.value)},WS=function(a){var b,c,d,e,f,g,h,k,m,n,p,q;y(function(r){switch(r.g){case 1:if(!a.g.length){r.g=2;break}return x(r,Promise.all(a.g.map(function(w){return w.j.promise})),2);case 2:b=t(a.o);for(c=b.next();!c.done;c=b.next())d=c.value,d.start();e=t(a.F);for(f=e.next();!f.done;f=e.next())g=f.value,WS(g);if(!a.l){r.g=4;break}h=Object.keys(a.l);if(!h.length){r.g=4;break}return x(r,Promise.all(Object.values(a.l).map(function(w){return w.promise})), + 6);case 6:for(k=r.j,m=0,n=t(h),p=n.next();!p.done;p=n.next())q=p.value,a.C[q]=k[m++];case 4:return a.j.resolve(a.C),r.return(a.j.promise)}})};TS.prototype.Y=function(){R.prototype.Y.call(this);this.o.length=0;this.F.length=0;this.g.length=0};var XS=function(a,b){OS.call(this,a);this.id=a;this.C=b};v(XS,OS);var YS=function(a,b,c,d){XS.call(this,1041,d);this.storage=b;this.o=RS(this,a);c&&(this.l=SS(this,c))};v(YS,XS);YS.prototype.j=function(){var a=this.o.value,b,c,d=(c=this.storage)!=null?c:(b=this.l)==null?void 0:b.value;d&&xS().set(a,d)&&$g(a,2)!=null&&tS(27,$g(a,1))};var ZS=function(a,b){XS.call(this,1094,b);this.l=QS(this);this.o=RS(this,a)};v(ZS,XS);ZS.prototype.j=function(){var a=this.o.value;if(a){if(a!==void 0)for(var b=t(Object.keys(a)),c=b.next();!c.done;c=b.next())if(c=c.value,c.startsWith("_GESPSK"))try{a.removeItem(c)}catch(d){}wS=new vS;this.l.notify()}};var $S=function(a,b){XS.call(this,1048,b);this.l=PS(this);this.o=PS(this);this.F=RS(this,a)};v($S,XS);$S.prototype.j=function(){var a=this.F.value,b=function(c){var d={};tS(c,$g(a,1),null,(d.tic=String(Math.round((Date.now()-jf(lg(a,3)))/6E4)),d))};switch(yS(a)){case 0:b(24);break;case 1:b(25);DS(this.o,a);break;case 2:b(26);DS(this.l,a);break;case 3:tS(9,$g(a,1));DS(this.l,a);break;case 4:b(23),DS(this.l,a)}};var aT=function(a,b,c){XS.call(this,1027,c);this.qe=a;this.storage=b;this.l=PS(this);this.o=PS(this)};v(aT,XS);aT.prototype.j=function(){var a=xS().get(this.qe,this.storage).nd;if(!a){a=xD(wD(this.qe));var b=this.o,c=a.Qb(tD(100));DS(b,c)}DS(this.l,a)};var bT=function(a,b,c){XS.call(this,1046,c);this.output=QS(this);this.l=PS(this);this.o=RS(this,b);MS(this.g,a)};v(bT,XS);bT.prototype.j=function(){DS(this.l,this.o.value)};var cT=function(a,b,c){XS.call(this,1047,c);this.collectorFunction=a;this.l=PS(this);this.o=PS(this);this.F=PS(this);this.H=RS(this,b)};v(cT,XS);cT.prototype.j=function(){var a=this,b=this.H.value,c=$g(b,1);tS(18,c);try{var d=om();this.collectorFunction().then(function(e){tS(29,c,null,{delta:String(om()-d)});var f=a.l,g=lh(b,2,e);DS(f,g);DS(a.F,e!=null?e:null)}).catch(function(e){tS(28,c,dT(e));e=a.o;var f=b.Qb(tD(106));DS(e,f)})}catch(e){tS(1,c,dT(e)),FS(this.o,b.Qb(tD(107)))}}; + function dT(a){return typeof a==="string"?a:a instanceof Error?a.message:null};var eT=function(a,b){XS.call(this,1028,b);this.l=PS(this);this.o=RS(this,a)};v(eT,XS);eT.prototype.j=function(){var a=this.o.value,b=$g(a,1);jf(lg(a,3))!=null||tS(35,b);DS(this.l,a)};var fT=function(a,b,c,d){XS.call(this,1050,d);this.F=c;this.l=PS(this);this.o=RS(this,a);this.H=SS(this,b)};v(fT,XS);fT.prototype.j=function(){var a=this.o.value,b=$g(a,1),c=this.H.value;if(c==null)tS(41,b),a.Qb(tD(111)),DS(this.l,a);else if(typeof c!=="string")tS(21,b),b=this.l,a=a.Qb(tD(113)),DS(b,a);else{if(c.length>this.F){var d={};tS(12,b,null,(d.sl=String(c.length),d));b=a.Qb(tD(108));og(b,2)}else c.length||tS(20,b),og(a,10);DS(this.l,a)}};var gT=function(a){XS.call(this,1046,a);this.output=QS(this)};v(gT,XS);gT.prototype.j=function(){var a=this;uS().then(function(){a.output.notify()})};function hT(a,b,c,d,e){var f,g,h,k,m,n,p,q,r,w,A,C,Q;return y(function(F){return F.g==1?(f=new TS,g=new aT(a,c,e),US(f,g),US(f,new YS(g.o,void 0,d,e)),h=new eT(g.l,e),US(f,h),k=new $S(h.l,e),US(f,k),m=new cT(b,k.l,e),US(f,m),US(f,new YS(m.o,void 0,d,e)),n=new fT(m.l,m.F,1024,e),US(f,n),US(f,new YS(n.l,void 0,d,e)),p=new gT(e),US(f,p),q=new bT(p.output,k.o,e),US(f,q),r=new cT(b,q.l,e),US(f,r),w=new YS(r.l,void 0,d,e),US(f,w),WS(f),Q=a,x(F,n.l.promise,2)):F.return({id:Q,collectorGeneratedData:(C=(A= + F.j)==null?void 0:$g(A,2))!=null?C:null})})};var iT=function(a,b,c,d){XS.call(this,1059,d);this.H=b;this.F=c;this.l=PS(this);this.J=RS(this,a);this.o=SS(this,c)};v(iT,XS);iT.prototype.j=function(){var a=this.o.value;if(a){var b=this.J.value,c=b.id,d=b.collectorFunction,e;b=(e=b.networkCode)!=null?e:c;c={};tS(42,b,null,(c.ea=String(Number(this.H)),c));GS(this.l,hT(b,d,a,this.F,this.C))}};var jT=function(a,b,c){c=c===void 0?qS:c;XS.call(this,1057,b);this.l=a;this.H=c;this.o=PS(this);this.F=PS(this)};v(jT,XS); + jT.prototype.j=function(){if(this.l)if(typeof this.l!=="object")tS(46,"UNKNOWN_COLLECTOR_ID"),kT(this,"UNKNOWN_COLLECTOR_ID",112);else{var a=this.l.id,b=this.l.networkCode;a&&b&&(delete this.l.id,tS(47,a+";"+b));a=b!=null?b:a;typeof a!=="string"?(b={},tS(37,"INVALID_COLLECTOR_ID",null,(b.ii=JSON.stringify(a),b)),kT(this,"INVALID_COLLECTOR_ID",102)):typeof this.l.collectorFunction!=="function"?(tS(14,a),kT(this,a,105)):this.H.Uj.includes(a)?(tS(22,a),kT(this,a,104)):DS(this.F,this.l)}else tS(39,"UNKNOWN_COLLECTOR_ID"), + kT(this,"UNKNOWN_COLLECTOR_ID",110)};var kT=function(a,b,c){a=a.o;b=wD(b).Qb(tD(c));DS(a,b)};var lT=function(a,b,c,d,e){var f=document;f=f===void 0?document:f;e=e===void 0?qS:e;this.j=b;this.o=c;this.C=f;this.H=d;this.g=e;this.G=[];this.D=[];this.F=[];this.l=0;a=t(a);for(b=a.next();!b.done;b=a.next())this.push(b.value)}; + lT.prototype.push=function(a){var b=this;this.o||this.H();var c=function(f,g){return void mT(b,f,g)};a=new jT(a,c,this.g);var d=new YS(a.o,void 0,this.j,c);c=new iT(a.F,this.o,this.j,c,this.g);var e=new TS;VS(e,[a,d,c]);WS(e);a=c.l.promise;this.G.push(a);d=t(this.D);for(c=d.next();!c.done;c=d.next())a.then(c.value)};lT.prototype.addOnSignalResolveCallback=function(a){this.D.push(a);for(var b=t(this.G),c=b.next();!c.done;c=b.next())c.value.then(a)};lT.prototype.addErrorHandler=function(a){this.F.push(a)}; + lT.prototype.clearAllCache=function(){var a=this,b=this.C.currentScript instanceof HTMLScriptElement?this.C.currentScript.src:"";if(this.l===1){var c={};tS(49,"",null,(c.url=b,c))}else if(this.g.Kj.includes(String($l(b!=null?b:""))))c={},tS(48,"",null,(c.url=b,c));else{var d=new TS;c=new ZS(this.j,function(e,f){return void mT(a,e,f)});US(d,c);WS(d);this.l=1;setTimeout(function(){a.l=0},this.g.Ij*1E3);d={};tS(43,"",null,(d.url=b,d));return c.l.promise}}; + var mT=function(a,b,c){a=t(a.F);for(var d=a.next();!d.done;d=a.next())d=d.value,d(b,c)},nT=function(a){this.push=function(b){a.push(b)};this.addOnSignalResolveCallback=function(b){a.addOnSignalResolveCallback(b)};this.addErrorHandler=function(b){a.addErrorHandler(b)};this.clearAllCache=function(){a.clearAllCache()}};function oT(a,b,c,d,e,f){f=f===void 0?qS:f;Wl()!==Xl()?tS(16,""):pT(a,"encryptedSignalProviders",c,e)&&pT(a,"secureSignalProviders",c,e)||(tS(38,""),qT(a,"encryptedSignalProviders",b,f,c,d,e),qT(a,"secureSignalProviders",b,f,c,function(){},e))}function pT(a,b,c,d){if(a[b]===void 0||a[b]instanceof Array)return!1;a=a[b];d&&a.addOnSignalResolveCallback(d);a.addErrorHandler(c);return!0} + function qT(a,b,c,d,e,f,g){var h,k=new lT((h=a[b])!=null?h:[],c,b==="secureSignalProviders",f,d);a[b]=new nT(k);g&&k.addOnSignalResolveCallback(g);k.addErrorHandler(e)}function rT(a,b,c,d,e){var f=f===void 0?qS:f;var g=new ES;DS(g,b);oT(a,g,c,d,e,f)} + function sT(a,b,c,d){var e=tT,f=new Map;b.map(function(g){var h=g.qe;return new Promise(function(k){f.set(h,k)})});rT(a,c,d,e,function(g){var h=g.collectorGeneratedData;g=g.id;var k;return void((k=f.get(g))==null?void 0:k({collectorGeneratedData:h,id:g}))})};function uT(){var a;return(a=z.googletag)!=null?a:z.googletag={cmd:[]}};function vT(a){if(!a||Mu(a))return null;try{return window.localStorage}catch(b){return null}}function wT(a,b){(b=vT(b))&&a.length!==0&&sT(uT(),a,b,function(){})}function tT(){};function xT(a){var b="";a.forEach(function(c,d){D(c)||(c=encodeURIComponent(c),b+=d+"="+c+"&")});return b.slice(0,-1)};function yT(a){return(a=El(a))&&a.omidSessionInterface?a.omidSessionInterface:null} + function zT(){var a=document.body,b,c,d,e,f,g;return y(function(h){if(h.g==1)return b=yl("IFRAME",{style:"display: none",title:"Advertisement"}),c=new Promise(function(k){b.addEventListener("load",function(){k()})}),a.appendChild(b),x(h,c,2);d=yl("SCRIPT");e=AT();cl(d,e);f=new Promise(function(k,m){d.addEventListener("load",function(){yT(b)?k(b):m()})});g=b.contentDocument||b.contentWindow.document;g.head.appendChild(d);return h.return(f)})} + function AT(){switch(L(br).g(Bs.g,Bs.defaultValue)){case 0:return bR;case 1:return cR;case 2:return dR;case 3:return eR;default:return bR}};function BT(a,b,c){c=c.T;var d=null;try{d=(new URL(decodeURIComponent(b))).hostname}catch(e){}d!==c&&a.set("cdm",c)};function CT(a,b,c){var d,e,f;return y(function(g){if(g.g==1){var h,k=d=new Map(Object.entries((h=a.adTagParameters)!=null?h:{})),m=c.g,n=gv(c)||"",p=c.J||"",q=p?"ima-"+p:"",r=new Map;r.set("ctv",String(pv()));r.set("mv",c.fa==null?"":c.fa+"."+c.Gd);r.set("ms",c.ye||"");r.set("js",q);r.set("correlator",jv.toString());r.set("mpt",k.get("mpt")||zt.getPlayerType()||"");r.set("mpv",k.get("mpv")||zt.getPlayerVersion()||"");r.set("ptt",(20).toString());var w=ll(zt.getPpid());D(w)||r.set("ppid",w);if(lv()){var A= + r.set,C=String,Q=2,F=T&&Zw(T).bb?!1:ow(qw().j);!nv()&&F&&(Q|=2048);A.call(r,"osd",C(Q))}r.set("sdr","1");var fa=r.set,Xa=1;a.j&&(Xa=Xa+4+1024);!nv()&&(Xa+=64);var Dd=Xa.toString(16);fa.call(r,"sdki",Dd);r.set("sdkv",n);c.Rc&&r.set("uach",c.Rc);r.set("ua",Jb());c.appName!=null&&(r.set("an",c.appName),c.Jc==="android"&&r.set("msid",c.appName));var Ed,se=pt((Ed=k.get("eid"))!=null?Ed:"");D(se)||r.set("eid",se);r.set("frm",String(c.R));c.N!=null&&r.set("submodel",c.N);var ki=fv.getInstance();if(mv()){var Fd; + var $a="Google1/"+((Fd=ki.J)!=null?Fd:"h.3.659.0")}else $a=null;var te=$a;te!=null&&r.set("omid_p",te);var ad=a.j;ad=ad===void 0?!0:ad;var Ec=[];!fv.getInstance().xd&&zt.j!==0&&Ec.push("2");mv()&&Ec.push("7");(fv.getInstance().o||!nv())&&ad&&Ec.push("8");Ec.length>0&&r.set("sdk_apis",Ec.join(","));ov(a.j)||r.set("wta","0");k.get("sid")||r.set("sid",c.xl);var Ma=c.na;Ma==null||Mu(m)||r.set("adsid",Ma);var vg;if(Mu(c.g))var bd=null;else{var ue=vT(c.g);var Nb=qS.gl;var cd=new BD;Nb&&tS(56,"",null);if(ue){var ve= + [],ac=RegExp("^_GESPSK-(.+)$");try{for(var we=0;we1024){var mc={};tS(55,lc.Kd,null,(mc.sl=String(ze.length),mc));var Ae=bc.Qb(tD(108));og(Ae,2)}var Be=vD,Hd=cd.K,Id=Ad(Hd);Wd(Id);var mf=Ug(Hd,Id,Be, + 2,2,!0),Ce=bc!=null?bc:new Be;mf.push(Ce);zd(Ce.K)&2?yd(mf,8):yd(mf,16);var xg=$g(bc,2),nf=void 0,zk=void 0,Ak={};tS(19,lc.Kd,null,(Ak.hs=xg?"1":"0",Ak.sl=String((zk=(nf=xg)==null?void 0:nf.length)!=null?zk:-1),Ak))}}}}if(Vg(cd,vD,2,qg()).length){var Bk={};tS(50,"",null,(Bk.ns=String(Vg(cd,vD,2,qg()).length),Bk));bd=Nc(cd.g(),3)}else bd=null}(vg=bd)&&r.set("a3p",vg);var Co=c.Wh||{},li=a.l;li&&r.set("scar",li);r.set("ssss","gima");var Do=Map,mi=[],Eo=mi.concat,Fo=u(r),Go=u(Co),Ho=u(DT(a,c));var ab= + new Map;c.la?ab.set("attmas",c.la):c.C!=null&&ab.set("is_lat",c.C?"1":"0");if(!Mu(c.g)){if(Ip(rq)){var Ck=new Ht;nh(Ig(Ck,3,tf(""),""),4,0);var Io=Nc(qb(Kh(Ck)),3);ab.set("psd",Io)}var yg=c.deviceId,of=c.g;if(of.j){var Jd=xu(of,"tfcd");var Dk=Jd==="0"||Jd==="false"?(0).toString():qu(Jd)?(1).toString():""}else Dk="";var zg;if(!(zg=Dk===(1).toString())){if(of.j){var Ek=xu(of,"tfua");var Fk=Ek==="0"||Ek==="false"?(0).toString():qu(Ek)?(1).toString():""}else Fk="";zg=Fk===(1).toString()}var Gk=zg;var Hk= + yg&&yg!=="00000000-0000-0000-0000-000000000000"&&!Gk;c.G&&ab.set("idtype",c.G);yg&&!Gk&&ab.set("rdid",yg);var ni=c.Rh;if(ni&&!Hk){ab.set("paid",ni);var pf=c.Ta;if(pf){var Ik=new Av;xv(Ik,qb(pf));var qf=rb(yv(Ik)).substring(0,32).toUpperCase();var Kd=qf.length===32?[qf.substring(0,8),qf.substring(8,12),qf.substring(12,16),qf.substring(16,20),qf.substring(20)].join("-"):void 0;Kd&&ab.set("vid1",Kd)}var Jo=c.Th,Bu=!c.Uh,Cu=c.yb&&Ip(oq);if(Jo&&!Cu&&(ab.set("paid2",Jo),ab.set("paopt",Bu?"1":"0"),pf)){var Ko= + new Av;xv(Ko,qb(pf));var rf=rb(yv(Ko)).substring(32).toUpperCase();var Lo=rf.length===32?[rf.substring(0,8),rf.substring(8,12),rf.substring(12,16),rf.substring(16,20),rf.substring(20)].join("-"):void 0;Lo&&ab.set("vid2",Lo)}}var Jk=c.ra,Kk=c.Pa;Jk&&Kk&&!Hk&&(ab.set("pvid",Jk),ab.set("pvid_s",""+Kk))}var Mo=u(ab),Lk=new Map;ov(!0)||Lk.set("wta","0");var wb=c.g,bb=new Map,oi=bb.set;if(wb.j){var Du=xu(wb,"rdp");var pi=qu(Du)?"1":""}else pi="";oi.call(bb,"rdp",pi);bb.set("us_privacy",yu(wb));var No=bb.set, + Oo=xu(wb,"npa"),Po=qu(Oo);No.call(bb,"npa",wb.j&&Po?"1":"");bb.set("gdpr",zu(wb));bb.set("gdpr_consent",uu(wb));var Qo=bb.set,Mk=xu(wb,"addtl_consent");Qo.call(bb,"addtl_consent",wb.g.j||Mk||"");bb.set("gpp",wb.g.gppString);bb.set("gpp_sid",wb.g.o);bb.set("ltd",Au(wb)?"1":"");ru(bb);var Ro=Map,qi=[],So=qi.concat,Nk=u(Lk);var Ag=new Map;Mu(c.g)||(D(zt.g)||Ag.set("adsid",zt.g),D("")||Ag.set("pucrd",""),D("")||Ag.set("jar",""));var To=new Ro(So.call(qi,Nk,u(Ag),u(bb)));var Uo=u(To),ri;var Vo=(ri=DT(a, + c).get("url"))!=null?ri:"",si=Ip(iq),De=new Map;if(!zt.isCookiesEnabled())De.set("co","1");else if(c.ca&&!Mu(c.g)){var Fc=c.l,Gc=Fc!=null&&!/[;\r\n]/.test(Fc);Gc&&De.set("cookie",Fc);var Ok=c.D,Wo=Ok!=null&&!/[;\r\n]/.test(Ok);si&&Wo&&De.set("gpic",Ok);if(!Gc||si&&!Wo)De.set("cookie_enabled","1"),BT(De,Vo,c);var Pk=c.M,Eu=Pk!=null&&!/[;\r\n]/.test(Pk);si&&Eu&&De.set("pdopt",Pk)}var Fu=u(De),Xo,Gu=(Xo=DT(a,c).get("url"))!=null?Xo:"",Bg=new Map,ti=c.F;ti==null||/[;\r\n]/.test(ti)?c.W&&(Bg.set("eoidce", + "1"),BT(Bg,Gu,c)):Bg.set("eo_id_str",ti);e=new Do(Eo.call(mi,Fo,Go,Ho,Mo,Uo,Fu,u(Bg)));var Yo=d.get("ctv",""),Qk={};CO.getInstance().report(197,(Qk.pctv=Yo,Qk));return x(g,ET(a,e,b),2)}f=g.j;return g.return(new Map([].concat(u(d),u(f),u(e))))})} + function ET(a,b,c){var d,e,f,g;return y(function(h){switch(h.g){case 1:d=new Map;e=RO;d.set(e.Li,a.apiKey);d.set(e.Qi,a.authToken);d.set(e.xj,a.streamActivityMonitorId);!D(a.assetKey)||jQ(a)?d.set(e.sh,"0"):(fv.getInstance(),a.j)&&d.set(e.sh,"1");if(!a.enableNonce){h.g=2;break}h.l=3;f=xT(b);return x(h,c.encrypt(f),5);case 5:g=h.j;d.set(e.ej,g);wa(h,2);break;case 3:xa(h);case 2:return h.return(d)}})} + function DT(a,b){var c=a.adTagParameters||{},d;a=(d=c.page_url)!=null?d:"";var e;d=(e=c.description_url)!=null?e:"";e=rG(a)?a:d;e=new Ls(e);d=new Ls(b.H);c=new Ls(b.j);var f="unknown";$s(c,d)?f="flat":$s(e,d)?f="bottom":$s(e,c)&&(f="top");CO.getInstance().report(160,{contentLocation:f});e=new Map;d=b.referrer;D(ll(d))||e.set("ref",d);if(rG(a)){e.set("url",a);var g;e.set("top",(g=b.j)!=null?g:"");e.set("loc",b.H)}else g=e.set,b=b.j&&rG(b.j)?b.j:b.referrer&&rG(b.referrer)?b.referrer:"null",g.call(e, + "url",b);return e}function FT(a,b,c){var d,e;return y(function(f){if(f.g==1)return x(f,CT(a,b,c),2);d=f.j;e=new Ls;d.forEach(function(g,h){D(g)||Zs(e,h,g)});return f.return(e.g.toString())})};var GT=function(){this.g=[];this.j=[]};l=GT.prototype;l.isEmpty=function(){return this.g.length===0&&this.j.length===0};l.clear=function(){this.g=[];this.j=[]};l.contains=function(a){return ic(this.g,a)||ic(this.j,a)};l.remove=function(a){var b=this.g;var c=Wb(b,a);c>=0?(kc(b,c),b=!0):b=!1;return b||jc(this.j,a)};l.Zc=function(){for(var a=[],b=this.g.length-1;b>=0;--b)a.push(this.g[b]);var c=this.j.length;for(b=0;b=0;c--){var d=b[c];if($O(d)3)c=[String(Math.floor(a))];else{c=[];for(var d=Math.floor(b);d<=Math.floor(a);d++)c.push(String(d))}c=t(c);for(d=c.next();!d.done;d=c.next())XT(this,d.value);try{a-=b,1<=a&&a<3&&CO.getInstance().report(146,{n:"0",ctv:nv()?"1":"0"},!0)}catch(e){}YT(this);RP(this.controller)}}; + var XT=function(a,b){var c,d=((c=a.g)==null?void 0:(c.data.times||{})[b]||[])||[];d.length===0||a.D.has(b)||(a.D.add(b),d.forEach(function(e){a.handleEvent(b,ll(e.type),e.ad||"",e.url||"")}))},YT=function(a){a.controller.j&&!a.l.some(function(b){return b.contains(a.controller.o)})&&(EP(a.controller),GP(a.controller))};l=VT.prototype;l.Td=function(){this.controller.W=!0};l.Lc=function(){this.controller.Lc(this.j.getVolume())};l.Kc=function(){this.controller.Kc()};l.Mc=function(a){this.controller.Mc(a)}; + l.kd=function(){};l.getVolume=function(){return this.controller.getVolume()};l.bc=function(){return this.j.bc()}; + l.handleEvent=function(a,b,c,d){if(D(c))D(d)||b.toLowerCase()!=="start"&&b.toLowerCase()!=="complete"||QJ([d]);else switch(b.toLowerCase()){case "start":(b=NP(this.controller,c))&&this.g&&(this.j.Bf(),this.o=nS(this.controller.g,b,this.j),oS(this,this,this.controller,this.C,b),this.g.getAdPosition(this.controller.l)===1&&ZT(this,a),SP(this.controller),OP(b));break;case "firstquartile":LP(this.controller,"firstQuartile",c);break;case "midpoint":LP(this.controller,"midpoint",c);break;case "thirdquartile":LP(this.controller, + "thirdQuartile",c);break;case "complete":KP(this.controller,c),Kt(this.o),this.o=null,this.j.sc()}};var WT=function(a){var b={};b=(b.cuepoints=a.l.map(function(c){return bP(c)}),b);a.dispatchEvent(new tP("cuepointsChanged",b))},ZT=function(a,b){FP(a.controller);a.l.forEach(function(c){Math.floor($O(c))!==Number(b)||c.played||(c.played=!0,WT(a))})};var $T=function(a,b){VB.call(this,a);this.data=b||{}};v($T,VB);function aU(a,b,c,d){var e=new Ev,f="",g=function(k){try{var m=typeof k.data==="object"?k.data:JSON.parse(k.data);f===m.paw_id&&(Fj(a,"message",g),m.error?e.reject(Error(m.error)):e.resolve(d(m)))}catch(n){}},h=bU(a);return h?(Ej(a,"message",g),f=c(h),e.promise):(c=cU(a))?(f=String(Math.floor(Yl()*2147483647)),Ej(a,"message",g),b(c,f),e.promise):null} + function dU(a){return aU(a,function(b,c){var d,e;return void((d=(e=b.getGmaQueryInfo)!=null?e:b.getGmaSig)==null?void 0:d.postMessage(c))},function(b){return b.getQueryInfo()},function(b){return b.signal})}function eU(){var a=window;return!!bU(a)||!!cU(a)}function bU(a){var b;if(typeof((b=a.gmaSdk)==null?void 0:b.getQueryInfo)==="function")return a.gmaSdk} + function cU(a){var b,c,d,e,f,g;if(typeof((b=a.webkit)==null?void 0:(c=b.messageHandlers)==null?void 0:(d=c.getGmaQueryInfo)==null?void 0:d.postMessage)==="function"||typeof((e=a.webkit)==null?void 0:(f=e.messageHandlers)==null?void 0:(g=f.getGmaSig)==null?void 0:g.postMessage)==="function")return a.webkit.messageHandlers} + (function(a){return pe(function(b){if(!Fe(b))return!1;for(var c=t(Object.entries(a)),d=c.next();!d.done;d=c.next()){var e=t(d.value);d=e.next().value;e=e.next().value;if(!(d in b)){if(e.uk===!0)continue;return!1}if(!e(b[d]))return!1}return!0})})({vc:re,pn:re,eid:re,vnm:function(a){return Ge(pe(function(b,c){return b===void 0?!0:a(b,c)}))}(re),js:re},"RawGmaSdkStaticSignalObject");var fU=function(){this.timeoutMs=500;this.j=dU;this.signal=null;this.g=0},gU=function(a){if(Ip(kq)||!eU())return Promise.resolve(null);var b;return((b=a.j(window))!=null?b:Promise.resolve(null)).catch(function(){return"0"})},iU=function(a){var b;return y(function(c){if(c.g==1)return b=Date.now()-a.g,!a.signal||b>3E5?c=x(c,hU(a),3):(c.g=2,c=void 0),c;c.g!=2&&(a.signal=c.j,a.g=Date.now());return c.return(a.signal)})},hU=function(a){return Promise.race([gU(a).then(function(b){if(b==null)return null; + a.signal=b.length>1E4?"0":b;a.g=Date.now();return a.signal}),bD(a.timeoutMs,"0")])};/* + + Copyright 2020 Google LLC + SPDX-License-Identifier: Apache-2.0 +*/ + var W=function(a){a=Error.call(this,a);this.message=a.message;"stack"in a&&(this.stack=a.stack);Object.setPrototypeOf(this,W.prototype)};v(W,Error);W.prototype.name="SecurityException";var jU=function(a){this.K=G(a)};v(jU,J);var kU=function(a){this.K=G(a)};v(kU,J);kU.prototype.getVersion=function(){return ch(this,1)};var lU=function(a){this.K=G(a)};v(lU,J);var mU=function(a){this.K=G(a)};v(mU,J);mU.prototype.getVersion=function(){return ch(this,1)};var nU=function(a){this.K=G(a)};v(nU,J);nU.prototype.getVersion=function(){return ch(this,1)};var oU=[0,jj];var pU=[0,mj,jj];var qU=nj(nU,[0,jj,[0,jj,oU,hj],[0,jj,pU,hj]]);var rU=function(a){this.K=G(a)};v(rU,J);var sU=function(a){this.K=G(a)};v(sU,J);sU.prototype.getVersion=function(){return ch(this,3)};var tU=function(a){this.K=G(a)};v(tU,J);var uU=nj(tU,[0,[0,oU,jj],[0,pU,jj,-1]]);var vU=function(a){this.K=G(a)};v(vU,J);vU.prototype.getVersion=function(){return ch(this,1)};var wU=nj(vU,[0,jj,1,hj]);var xU=function(a){this.K=G(a)};v(xU,J);xU.prototype.getVersion=function(){return ch(this,3)};var BU=nj(xU,[0,1,jj,-1]);var CU=function(a){this.K=G(a)};v(CU,J);CU.prototype.getValue=function(){return Fg(this,2)};var DU=function(a){this.K=G(a)};v(DU,J);var EU=[0,1,[0,ej,hj,mj]];var FU=function(a){this.K=G(a)};v(FU,J);var GU=[0,mj,-1,8,hj];var HU=function(a){this.K=G(a)};v(HU,J);var IU=[0,GU,EU,mj];var JU=function(a){this.K=G(a)};v(JU,J);var KU=nj(JU,[0,IU]);var LU=function(a){this.K=G(a)};v(LU,J);LU.prototype.getVersion=function(){return ch(this,1)};var MU=[0,jj,IU,hj,-1];var NU=function(a){this.K=G(a)};v(NU,J);NU.prototype.getVersion=function(){return ch(this,1)};var OU=nj(NU,[0,jj,MU,hj]);var PU=nj(LU,MU);var QU=function(a){this.K=G(a)};v(QU,J);QU.prototype.Dc=function(){return I(this,3)};var RU=[0,mj,-2];var SU=function(a){this.K=G(a)};v(SU,J);var TU=[0,RU];SU.prototype.g=oj(TU);var UU=nj(SU,TU);var VU=function(a){this.K=G(a)};v(VU,J);VU.prototype.getVersion=function(){return ch(this,1)};var WU=[0,jj,RU,hj];var XU=function(a){this.K=G(a)};v(XU,J);XU.prototype.getVersion=function(){return ch(this,1)};var YU=nj(XU,[0,jj,WU,hj]);var ZU=nj(VU,WU);var $U=function(a){this.K=G(a)};v($U,J);$U.prototype.getValue=function(){return Fg(this,2)};var aV=[0,ej,hj,mj];var bV=function(a){this.K=G(a)};v(bV,J);var cV=[0,aV,mj,jj,mj];var dV=function(a){this.K=G(a)};v(dV,J);var eV=function(a){return Vg(a,bV,2,qg())};var fV=nj(dV,[0,jj,gj,cV]);var gV=function(a){this.g=a};gV.prototype.read=function(){try{var a=fV(this.g)}catch(b){throw new W("Could not parse the given serialized proto as a keyset proto.");}if(eV(a).length===0)throw new W("Could not parse the given serialized proto as a keyset proto.");return a};var X=function(a){a=Error.call(this,a);this.message=a.message;"stack"in a&&(this.stack=a.stack);Object.setPrototypeOf(this,X.prototype)};v(X,Error);X.prototype.name="InvalidArgumentsException";var hV=function(a,b){b=[b];var c=b.concat;if(!Number.isInteger(a)||a<0||a>=Math.pow(2,32))throw new X("Number has to be unsigned 32-bit integer.");for(var d=Array(4),e=0;e<4;e++)d[e]=255&a>>8*(4-e-1);b=c.call(b,d);return new Uint8Array(b)},iV=new Uint8Array(0);var jV=function(a,b,c){this.l=a;this.g=b;this.j=c};jV.prototype.Ya=function(){return this.l};var kV=function(a){this.l=a;this.j=null;this.g=new Map};kV.prototype.Ea=function(){return this.l};var mV=function(a,b){return(a=lV(a,b))?a:[]},lV=function(a,b){b instanceof Uint8Array&&(b=[].concat(u(b)).toString());return a.g.get(b)};/* + + Copyright 2022 Google LLC + SPDX-License-Identifier: Apache-2.0 +*/ + function nV(a){return a==null?void 0:new Uint8Array(hd(a)||0)}function oV(a){a==null?a=void 0:a=(a=hd(a))?a.length:0;return a};function pV(){for(var a=0,b=0;bNumber.MAX_SAFE_INTEGER)throw new X("cannot convert number larger than "+Number.MAX_SAFE_INTEGER);var b=Math.pow(2,32),c=a%b;a/=b;b=new Uint8Array(8);for(var d=7;d>=4;d--)b[d]=c&255,c>>>=8;for(c=3;c>=0;c--)b[c]=a&255,a>>>=8;return b}function rV(a){for(var b="",c=0;c1?d:"0"+d}return b} + function sV(a){a=a.replace(/-/g,"+").replace(/_/g,"/");return tV(globalThis.atob(a))}function uV(a){for(var b="",c=0;ca&&(c=c.slice(c.length-a,c.length));b.length>a&&(b=b.slice(b.length-a,b.length));d=new Uint8Array(2*a);d.set(c,0);d.set(b, + a);return d;case 2:b=c.x;d=c.y;if(b===void 0)throw new X("x must be provided");if(d===void 0)throw new X("y must be provided");c=sV(b);b=sV(d);c.length>a&&(c=c.slice(c.length-a,c.length));b.length>a&&(b=b.slice(b.length-a,b.length));d=new Uint8Array(1+a);d.set(c,1+a-c.length);d[0]=AV(BigInt("0x"+rV(b)),0)?3:2;return d;default:throw new W("invalid format");}} + function BV(a){switch(a){case 1:return BigInt("115792089210356248762697446949407573530086143415290314195533631308867097853951");case 2:return BigInt("39402006196394479212279040100143613805079739270465446667948293404245721771496870329047266088258938001861606973112319");case 3:return BigInt("6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151");default:throw new X("invalid curve");}} + function CV(a){a=a.toString(16);a=a.length%2===0?a:"0"+a;if(a.length%2!=0)throw new X("Hex string length must be multiple of 2");for(var b=new Uint8Array(a.length/2),c=0;c=d)throw new W("x is out of range");d=BV(wV(a));var e=d-BigInt(3);a:switch(wV(a)){case 1:var f=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b");break a;case 2:f=BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef");break a;case 3:f=BigInt("0x051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"); + break a;default:throw new X("invalid curve");}if(d<=BigInt(0))throw new X("p must be positive");e=((c*c+e)*c+f)%d%d;if(AV(d,0)&&AV(d,1)){var g=d+BigInt(1)>>BigInt(2);if(g===BigInt(0))f=BigInt(1);else{f=e;g=g.toString(2);for(var h=1;hb){for(var d=0;db)throw new W("Version is out of bound, must be between 0 and "+b+".");};var bW=function(a,b){this.key=a;this.ec=b};bW.prototype.encrypt=function(a){var b=this,c,d,e,f;return y(function(g){if(g.g==1)return $V(a),c=UV(b.ec),d=new Uint8Array(16),d.set(c),e={name:"AES-CTR",counter:d,length:128},x(g,globalThis.crypto.subtle.encrypt(e,b.key,a),2);f=g.j;return g.return(pV(c,new Uint8Array(f)))})}; + bW.prototype.decrypt=function(a){var b=this,c,d,e;return y(function(f){if(f.g==1){$V(a);if(a.length16)throw new W("invalid IV length, must be at least 12 and at most 16");$V(a);ZV(a.length);return x(d,globalThis.crypto.subtle.importKey("raw",a,{name:"AES-CTR",length:a.length},!1,["encrypt","decrypt"]),2)}c=d.j;return d.return(new bW(c,b))})};var dW=function(){};var eW=function(a,b,c){this.hash=a;this.key=b;this.tc=c};v(eW,dW);var fW=function(a,b){var c;return y(function(d){if(d.g==1)return $V(b),x(d,globalThis.crypto.subtle.sign({name:"HMAC",hash:{name:a.hash}},a.key,b),2);c=d.j;return d.return(new Uint8Array(c.slice(0,a.tc)))})},gW=function(a,b,c){var d;return y(function(e){if(e.g==1)return $V(b),$V(c),x(e,fW(a,c),2);d=e.j;if(b.length!==d.length)var f=!1;else{for(var g=f=0;g20)throw new X("tag too long, must not be larger than 20 bytes");break;case "SHA-256":if(c>32)throw new X("tag too long, must not be larger than 32 bytes");break;case "SHA-384":if(c>48)throw new X("tag too long, must not be larger than 48 bytes");break; + case "SHA-512":if(c>64)throw new X("tag too long, must not be larger than 64 bytes");break;default:throw new X(a+" is not supported");}return x(e,globalThis.crypto.subtle.importKey("raw",b,{name:"HMAC",hash:{name:a},length:b.length*8},!1,["sign","verify"]),2)}d=e.j;return e.return(new eW(a,d,c))})};var iW=function(a,b,c,d){this.g=a;this.ec=b;this.j=c;this.tc=d};v(iW,XV);iW.prototype.encrypt=function(a,b){b=b===void 0?new Uint8Array(0):b;var c=this,d,e,f;return y(function(g){if(g.g==1)return $V(a),x(g,c.g.encrypt(a),2);if(g.g!=3)return d=g.j,$V(b),e=qV(b.length*8),x(g,fW(c.j,pV(b,d,e)),3);f=g.j;if(c.tc!=f.length)throw new W("invalid tag size, expected "+c.tc+" but got "+f.length);return g.return(pV(d,f))})}; + iW.prototype.decrypt=function(a,b){b=b===void 0?new Uint8Array(0):b;var c=this,d,e,f,g,h;return y(function(k){if(k.g==1){$V(a);if(a.length16)throw new W("Invalid AES CTR HMAC key format: IV size is out of range: "+c);return{Ej:a,ee:b,ec:c}},mW=function(a){if(!a)throw new W("Invalid AES CTR HMAC key format: key format undefined");var b=ch(a,2);if(b<16)throw new W("Invalid AES CTR HMAC key format: HMAC key is too small: "+ + ch(a,2));a=H(a,lU,1);if(!a)throw new W("Invalid AES CTR HMAC key format: params undefined");var c=ch(a,2);if(c<10)throw new W("Invalid HMAC params: tag size "+c+" is too small.");if(!nW.has(I(a,1)))throw new W("Unknown hash type.");if(c>nW.get(I(a,1)))throw new W("Invalid HMAC params: tag size "+c+" is out of range.");switch(I(a,1)){case 1:var d="SHA-1";break;case 3:d="SHA-256";break;case 4:d="SHA-512";break;default:d="UNKNOWN HASH"}return{pk:a,nk:b,mk:d,tc:c}},nW=new Map([[1,20],[3,32],[4,64]]), + oW=function(){this.g=new kW};l=oW.prototype; + l.Ya=function(a,b){var c,d,e,f,g,h=this,k,m,n,p,q,r;return y(function(w){if(w.g==1){if(a!=h.Ea())throw new W("Requested primitive type which is not supported by this key manager.");if(b instanceof $U){if(!h.Wc(fh(b,1)))throw new W("Key type "+fh(b,1)+" is not supported. This key manager supports "+h.Ia()+".");try{k=qU(b.getValue())}catch(F){throw new W("Could not parse the key in key data as a serialized proto of type.googleapis.com/google.crypto.tink.AesCtrHmacAeadKey");}if(k===null||k===void 0)throw new W("Could not parse the key in key data as a serialized proto of type.googleapis.com/google.crypto.tink.AesCtrHmacAeadKey"); + }else if(b instanceof nU)k=b;else throw new W("Given key type is not supported. This key manager supports "+h.Ia()+".");var A=H(k,kU,2);if(!A)throw new W("Invalid AES CTR HMAC key format: key undefined");aW(A.getVersion(),h.getVersion());var C=new rU;var Q=H(A,jU,2);C=Wg(C,1,Q);Q=oV(Fg(A,3));C=jh(C,2,Q);C=lW(C).ec;f=nV(Fg(A,3));g=C;m=f;n=g;A=H(k,mU,3);if(!A)throw new W("Invalid AES CTR HMAC key format: key undefined");aW(A.getVersion(),h.getVersion());C=new sU;Q=H(A,lU,2);C=Wg(C,1,Q);Q=oV(Fg(A,3)); + C=jh(C,2,Q);Q=mW(C);C=Q.mk;Q=Q.tc;c=nV(Fg(A,3));d=C;e=Q;p=c;q=d;r=e;return x(w,jW(m,n,q,p,r),2)}return w.return(w.j)})};l.Wc=function(a){return a===this.Ia()};l.Ia=function(){return"type.googleapis.com/google.crypto.tink.AesCtrHmacAeadKey"};l.Ea=function(){return XV};l.getVersion=function(){return 0};l.Yc=function(){return this.g};var pW=function(a){var b=a.key;a=a.Lb;this.key=b;this.Lb=a};pW.prototype.encrypt=function(a,b,c){var d=this,e,f;return y(function(g){if(g.g==1){if(a.length!==12)throw new W("IV must be 12 bytes");e={name:"AES-GCM",iv:a,tagLength:128};c&&(e.additionalData=c);return x(g,globalThis.crypto.subtle.encrypt(e,d.key,b),2)}f=g.j;return g.return(d.Lb?pV(a,new Uint8Array(f)):new Uint8Array(f))})}; + pW.prototype.decrypt=function(a,b,c){var d=this,e,f,g,h,k;return y(function(m){if(m.g==1){e=d.Lb?28:16;if(b.length5)){k.g=2;break}d=a.subarray(0,5);return x(k,mV(c.g,d),3);case 3:return e=k.j,f=a.subarray(5,a.length),k.l=4,x(k,xW(e,f,b),6);case 6:g=k.j;wa(k,5);break;case 4:xa(k);case 5:if(g)return k.return(g);case 2:return x(k,mV(c.g,iV),7);case 7:return h=k.j,k.return(xW(h,a,b))}})}; + var xW=function(a,b,c){var d,e,f,g;return y(function(h){switch(h.g){case 1:d=a.length,e=0;case 2:if(!(e5100)throw new X("size too large");break;case "SHA-256":f=32;if(a>8160)throw new X("size too large");break;case "SHA-512":f=64;if(a>16320)throw new X("size too large");break;default:throw new X(b+" is not supported");}$V(c);$V(d);g=e;if(e==null||g===void 0||g.length==0)g=new Uint8Array(f); + $V(g);return x(w,hW(b,g,f),2);case 2:return h=w.j,x(w,fW(h,c),3);case 3:return k=w.j,x(w,hW(b,k,f),4);case 4:h=w.j,m=1,n=0,p=new Uint8Array(0),q=new Uint8Array(a);case 5:return r=new Uint8Array(p.length+d.length+1),r.set(p,0),r.set(d,p.length),r[r.length-1]=m,x(w,fW(h,r),8);case 8:p=w.j;if(n+p.length>8*(a-d-1)&255;return c}function dX(a){var b=a.ac;var c=a.Zb;return pV(cX,a.Sa,tV(b),c)}function eX(a){var b=a.Ec;var c=a.info;var d=a.Sa;return pV(TW(2,a.length),cX,d,tV(b),c)}function fX(a){switch(a){case 2:return 1;case 4:return 3;default:throw new X("Unrecognized NIST HPKE KEM identifier");}} + function gX(a,b){var c;return y(function(d){return d.g==1?(c=DV(a,1,b),x(d,HV(c),2)):d.return(d.j)})}function hX(a){var b=a.fg;var c=a.publicKey;var d=a.privateKey;var e;return y(function(f){return f.g==1?(e=DV(b,1,c),e.d=uV(d),x(f,IV(e),2)):f.return(f.j)})}function iX(a){var b,c;return y(function(d){if(d.g==1)return b=a.algorithm,x(d,GV(a),2);c=d.j;if(!c.crv)throw new W("Curve has to be defined.");return d.return(zV(b.namedCurve,1,c))})};var jX=function(a,b,c,d){this.lg=a;this.key=b;this.l=c;this.j=d;this.g=BigInt(0);this.o=(BigInt(1)<>BigInt(8*(12-d-1)))&255;b=a.l;if(b.length!==c.length)throw new X("Both byte arrays should be of the same length");d=new Uint8Array(b.length);for(var e=0;e=a.o)throw new W("message limit reached");a.g+=BigInt(1);return d}; + function lX(a,b,c,d,e,f){var g,h,k,m,n,p,q;return y(function(r){switch(r.g){case 1:a:{switch(e.Me){case 16:var w=ZW;break a;case 32:w=$W;break a}w=void 0}a:{switch(d.He){case "SHA-256":var A=XW;break a;case "SHA-512":A=YW;break a}A=void 0}g=pV(bX,mX(c),A,w);return x(r,nX(d,{Zb:new Uint8Array(0),ac:"psk_id_hash",Sa:g}),2);case 2:return h=r.j,x(r,nX(d,{Zb:f,ac:"info_hash",Sa:g}),3);case 3:return k=r.j,m=pV(UW,h,k),x(r,nX(d,{Zb:new Uint8Array(0),ac:"secret",Sa:g,salt:b}),4);case 4:return n=r.j,x(r,oX(d, + {ji:n,info:m,Ec:"key",Sa:g,length:e.Me}),5);case 5:return p=r.j,x(r,oX(d,{ji:n,info:m,Ec:"base_nonce",Sa:g,length:12}),6);case 6:return q=r.j,r.return(new jX(a,p,q,e))}})}function pX(a,b,c,d,e){var f,g,h;return y(function(k){return k.g==1?x(k,b.kg(a),2):k.g!=3?(f=k.j,g=f.lg,h=f.ml,x(k,lX(g,h,b,c,d,e),3)):k.return(k.j)})}function qX(a,b,c,d,e,f){var g;return y(function(h){return h.g==1?x(h,c.gg(a,b),2):h.g!=3?(g=h.j,x(h,lX(a,g,c,d,e,f),3)):h.return(h.j)})};var rX=function(a,b){this.privateKey=a;this.publicKey=b},sX=function(a){return y(function(b){return b.g==1?x(b,iX(a.publicKey),2):b.return(b.j)})};function tX(a){var b=a.privateKey;var c=a.publicKey;var d=a.fg;var e,f;return y(function(g){if(g.g==1){if(!b)throw new X("KEM private key was null or undefined");if(!c)throw new X("KEM public key was null or undefined");return x(g,gX(vV(d),c),2)}if(g.g!=3)return e=g.j,x(g,hX({fg:vV(d),publicKey:c,privateKey:b}),3);f=g.j;return g.return(new rX(f,e))})} + function uX(a){return y(function(b){vX(a.privateKey,"private");vX(a.publicKey,"public");return b.return(new rX(a.privateKey,a.publicKey))})}function vX(a,b){if(b!==a.type)throw new X("keyPair "+b+" key was of type "+a.type);a=a.algorithm;if("ECDH"!==a.name)throw new X("keyPair "+b+" key should be ECDH but found "+a.name);};var wX=function(a){this.Me=a};wX.prototype.seal=function(a){var b=a.key;var c=a.nonce;var d=a.Xk;var e=a.Rf;var f=this,g;return y(function(h){if(h.g==1){if(b.length!==f.Me)throw new W("Unexpected key length: "+b.length.toString());return x(h,qW({key:b,Lb:!1}),2)}return h.g!=3?(g=h.j,x(h,g.encrypt(c,d,e),3)):h.return(h.j)})}; + wX.prototype.open=function(a){var b=a.key;var c=a.nonce;var d=a.Jj;var e=a.Rf;var f=this,g;return y(function(h){if(h.g==1){if(b.length!==f.Me)throw new W("Unexpected key length: "+b.length.toString());return x(h,qW({key:b,Lb:!1}),2)}g=h.j;return h.return(g.decrypt(c,d,e))})};var xX=function(a){this.He=a},nX=function(a,b){var c=b.Zb;var d=b.ac;var e=b.Sa;var f=b.salt;return y(function(g){return g.g==1?x(g,yX(a,dX({ac:d,Zb:c,Sa:e}),f),2):g.return(g.j)})},oX=function(a,b){var c=b.ji;var d=b.info;var e=b.Ec;var f=b.Sa;var g=b.length;return y(function(h){return h.g==1?x(h,a.expand(c,eX({Ec:e,info:d,Sa:f,length:g}),g),2):h.return(h.j)})},zX=function(a,b){var c=b.Zb;var d=b.ac;var e=b.info;var f=b.Ec;var g=b.Sa;var h=b.length;var k=b.salt;var m;return y(function(n){return n.g== + 1?x(n,yX(a,dX({ac:d,Zb:c,Sa:g}),k),2):n.g!=3?(m=n.j,x(n,a.expand(m,eX({Ec:f,info:e,Sa:g,length:h}),h),3)):n.return(n.j)})}; + xX.prototype.expand=function(a,b,c){var d=this,e,f,g,h,k,m,n;return y(function(p){switch(p.g){case 1:if(!Number.isInteger(c))throw new W("length must be an integer");if(c<=0)throw new W("length must be positive");e=AX(d);if(c>255*e)throw new W("length too large");$V(b);return x(p,hW(d.He,a,e),2);case 2:f=p.j,g=1,h=0,k=new Uint8Array(0),m=new Uint8Array(c);case 3:return n=new Uint8Array(k.length+b.length+1),n.set(k,0),n.set(b,k.length),n[n.length-1]=g,x(p,fW(f,n),6);case 6:k=p.j;if(h+k.length0?!1:!JN(a)&&!(a instanceof mF&&wO(a));this.disableUi=b};l=Y.prototype;l.getTraffickingParametersString=function(){return this.ad.wa}; + l.getAdId=function(){return this.ad.getId()||""};l.getCreativeId=function(){return this.ad.getCreativeId()||""};l.getCreativeAdId=function(){return this.ad.getCreativeAdId()||""};l.getAdSystem=function(){return this.ad.getAdSystem()||""};l.getAdvertiserName=function(){return this.ad.getAdvertiserName()||""};l.getTitle=function(){return this.ad.Sb||""};l.getDescription=function(){return this.ad.getDescription()||""};l.getApiFramework=function(){return this.ad.getApiFramework()}; + l.getDuration=function(){return(this.ad.sa||0)/1E3||-1};l.getVastMediaWidth=function(){var a=nF(this.ad);return a?a.getWidth()||-1:-1};l.getVastMediaHeight=function(){var a=nF(this.ad);return a?a.getHeight()||-1:-1};l.getWrapperAdIds=function(){return this.ad.getWrapperAdIds()||[]};l.getWrapperCreativeIds=function(){return this.ad.getWrapperCreativeIds()||[]};l.getWrapperAdSystems=function(){return this.ad.getWrapperAdSystems()||[]};l.getUniversalAdIds=function(){return this.ad.getUniversalAdIds().map(function(a){return new hY(a)})}; + l.getUniversalAdIdValue=function(){var a=this.getUniversalAdIds();return a.length?a[0].getAdIdValue():"unknown"};l.getUniversalAdIdRegistry=function(){var a=this.getUniversalAdIds();return a.length?a[0].getAdIdRegistry():"unknown"};l.getDealId=function(){return this.ad.getDealId()||""};l.getAdPodInfo=function(){return this.pa};l.getCompanionAds=function(){return this.ad.getCompanionAds().map(function(a){return new gY(a)})};l.isSkippable=function(){return this.ad.isSkippable()}; + l.getSkipTimeOffset=function(){return this.isSkippable()?(this.ad.Oa||0)/1E3:-1};l.wk=function(){return this.disableUi};Y.prototype.isUiDisabled=Y.prototype.wk;Y.prototype.getSkipTimeOffset=Y.prototype.getSkipTimeOffset;Y.prototype.isSkippable=Y.prototype.isSkippable;Y.prototype.getCompanionAds=Y.prototype.getCompanionAds;Y.prototype.getAdPodInfo=Y.prototype.getAdPodInfo;Y.prototype.getDealId=Y.prototype.getDealId;Y.prototype.getUniversalAdIdRegistry=Y.prototype.getUniversalAdIdRegistry; + Y.prototype.getUniversalAdIdValue=Y.prototype.getUniversalAdIdValue;Y.prototype.getUniversalAdIds=Y.prototype.getUniversalAdIds;Y.prototype.getWrapperAdSystems=Y.prototype.getWrapperAdSystems;Y.prototype.getWrapperCreativeIds=Y.prototype.getWrapperCreativeIds;Y.prototype.getWrapperAdIds=Y.prototype.getWrapperAdIds;Y.prototype.getVastMediaHeight=Y.prototype.getVastMediaHeight;Y.prototype.getVastMediaWidth=Y.prototype.getVastMediaWidth;Y.prototype.getDuration=Y.prototype.getDuration; + Y.prototype.getApiFramework=Y.prototype.getApiFramework;Y.prototype.getDescription=Y.prototype.getDescription;Y.prototype.getTitle=Y.prototype.getTitle;Y.prototype.getAdvertiserName=Y.prototype.getAdvertiserName;Y.prototype.getAdSystem=Y.prototype.getAdSystem;Y.prototype.getCreativeAdId=Y.prototype.getCreativeAdId;Y.prototype.getCreativeId=Y.prototype.getCreativeId;Y.prototype.getAdId=Y.prototype.getAdId;B("google.ima.dai.api.Ad",Y);var iY=function(a){this.adBreakDuration=a.adBreakDuration;this.adPeriodDuration=a.adPeriodDuration;this.adPosition=a.adPosition;this.currentTime=a.currentTime;this.duration=a.duration;this.totalAds=a.totalAds};B("google.ima.dai.api.AdProgressData",iY);var jY=function(a){this.start=a.start;this.end=a.end;this.played=a.played};B("google.ima.dai.api.CuePoint",jY);var kY=function(){};kY.prototype.setFeatureFlags=function(a){zt.setFeatureFlags(a)};kY.prototype.getFeatureFlags=function(){return zt.getFeatureFlags()};kY.prototype.getFeatureFlags=kY.prototype.getFeatureFlags;kY.prototype.setFeatureFlags=kY.prototype.setFeatureFlags;B("google.ima.dai.api.DaiSdkSettings",new kY);B("google.ima.dai.api.OmidVerificationVendor",{COMSCORE:7,DOUBLEVERIFY:3,GOOGLE:9,INTEGRAL_AD_SCIENCE:4,MEETRICS:8,MOAT:2,NIELSEN:6,PIXELATE:5,OTHER:1,7:"COMSCORE",3:"DOUBLEVERIFY",9:"GOOGLE",4:"INTEGRAL_AD_SCIENCE",8:"MEETRICS",2:"MOAT",6:"NIELSEN",5:"PIXELATE",1:"OTHER"});var lY=function(a){var b=a=a===void 0?{}:a;a=b.apiKey;var c=b.authToken,d=b.format,e=b.networkCode,f=b.streamActivityMonitorId;b=b.adTagParameters;this.omidAccessModeRules={};this.enableNonce=!1;this.g=null;this.apiKey=a||"";this.format=d==="dash"?"dash":"hls";this.networkCode=e||"";this.authToken=c||"";this.streamActivityMonitorId=f||"";this.adTagParameters=b||null};B("google.ima.dai.api.StreamRequest",lY);B("google.ima.dai.api.StreamRequest.StreamFormat.HLS","hls"); + B("google.ima.dai.api.StreamRequest.StreamFormat.DASH","dash");var mY=function(a){a=a===void 0?{}:a;var b=a.assetKey;lY.call(this,{apiKey:a.apiKey,authToken:a.authToken,format:a.format,networkCode:a.networkCode,streamActivityMonitorId:a.streamActivityMonitorId,adTagParameters:a.adTagParameters});this.assetKey=b||""};v(mY,lY);B("google.ima.dai.api.LiveStreamRequest",mY);B("google.ima.dai.api.OmidAccessMode",{LIMITED:"limited",DOMAIN:"domain",FULL:"full"});var nY=function(a){a=a===void 0?{}:a;var b=a.customAssetKey;lY.call(this,{apiKey:a.apiKey,authToken:a.authToken,format:a.format,networkCode:a.networkCode,streamActivityMonitorId:a.streamActivityMonitorId,adTagParameters:a.adTagParameters});this.customAssetKey=b||""};v(nY,lY);B("google.ima.dai.api.PodStreamRequest",nY);var oY=function(a){a=a===void 0?{}:a;lY.call(this,{format:a.format,streamActivityMonitorId:a.streamActivityMonitorId,adTagParameters:a.adTagParameters,networkCode:a.networkCode})};v(oY,lY);B("google.ima.dai.api.PodVodStreamRequest",oY);var pY=function(){this.g=this.url=this.subtitles=this.streamId=this.manifestFormat=this.errorMessage=this.cuepoints=this.adProgressData=null};pY.prototype.De=function(a,b){return this.g&&!D(this.g)?(a=new Ls(this.g.replace("$pod-id$",a)),Zs(a,"pd",b),a.toString()):null};pY.prototype.getStandalonePodManifestUrl=pY.prototype.De;B("google.ima.dai.api.StreamData",pY);var qY={LOADED:"loaded",AD_BREAK_STARTED:"adBreakStarted",AD_BREAK_ENDED:"adBreakEnded",AD_PERIOD_STARTED:"adPeriodStarted",AD_PERIOD_ENDED:"adPeriodEnded",AD_PROGRESS:"adProgress",CUEPOINTS_CHANGED:"cuepointsChanged",CLICK:"click",ERROR:"error",STARTED:"started",FIRST_QUARTILE:"firstquartile",MIDPOINT:"midpoint",STREAM_INITIALIZED:"streamInitialized",THIRD_QUARTILE:"thirdquartile",COMPLETE:"complete",SKIPPABLE_STATE_CHANGED:"skippableStateChanged",SKIPPED:"skip",VIDEO_CLICKED:"videoClicked",PAUSED:"paused", + RESUMED:"resumed"},sY=function(a,b,c){b=b===void 0?{}:b;c=c===void 0?null:c;VB.call(this,rY[a]||"");this.data=b;this.ad=c};v(sY,VB); + sY.prototype.Ee=function(){var a=new pY,b=this.data.manifestFormat,c=this.data.streamId;switch(this.type){case "adProgress":a.adProgressData=new iY(this.data);break;case "loaded":a.manifestFormat=b!=null?b:null;a.streamId=c!=null?c:null;var d;a.subtitles=(d=this.data.subtitles)!=null?d:null;var e;a.url=(e=this.data.streamUrl)!=null?e:null;break;case "streamInitialized":a.streamId=c!=null?c:null;a.manifestFormat=b!=null?b:null;a.g=this.data.pod_manifest_url;break;case "cuepointsChanged":a.cuepoints= + (this.data.cuepoints||[]).map(function(f){return new jY(f)});break;case "error":a.errorMessage=this.data.errorMessage}return a};sY.prototype.getAd=function(){return this.ad};sY.prototype.getAd=sY.prototype.getAd;sY.prototype.getStreamData=sY.prototype.Ee;B("module$exports$google3$javascript$ads$interactivemedia$sdk$dai$api$stream_event.StreamEvent.Type",qY); + var tY={},rY=(tY.adBreakStarted="adBreakStarted",tY.adBreakEnded="adBreakEnded",tY.adPeriodStarted="adPeriodStarted",tY.adPeriodEnded="adPeriodEnded",tY.adProgress="adProgress",tY.cuepointsChanged="cuepointsChanged",tY.loadStream="loaded",tY.streamError="error",tY.streamInitialized="streamInitialized",tY.start="started",tY.firstQuartile="firstquartile",tY.midpoint="midpoint",tY.thirdQuartile="thirdquartile",tY.complete="complete",tY.click="click",tY.skip="skip",tY.skipShown="skippableStateChanged", + tY.videoClicked="videoClicked",tY.pause="paused",tY.resume="resumed",tY);B("google.ima.dai.api.StreamEvent",sY);B("google.ima.dai.api.StreamEvent.Type",qY);var uY=function(){this.locale="en"};uY.prototype.getLocale=function(){return this.locale};uY.prototype.setLocale=function(a){if(a=kt(a))this.locale=a};uY.prototype.setLocale=uY.prototype.setLocale;uY.prototype.getLocale=uY.prototype.getLocale;B("google.ima.dai.api.UiSettings",uY);var vY=function(a){a=a===void 0?{}:a;var b=a.liveStreamEventId,c=a.region,d=a.projectNumber,e=a.oAuthToken,f=a.videoStitcherSessionOptions;nY.call(this,{apiKey:a.apiKey,authToken:a.authToken,format:a.format,streamActivityMonitorId:a.streamActivityMonitorId,adTagParameters:a.adTagParameters,networkCode:a.networkCode,customAssetKey:a.customAssetKey});this.liveStreamEventId=b||"";this.region=c||"";this.projectNumber=d||"";this.oAuthToken=e||"";this.videoStitcherSessionOptions=f||null};v(vY,nY); + B("google.ima.dai.api.VideoStitcherLiveStreamRequest",vY);B("google.ima.dai.api.CloudPodStreamRequest",vY);var wY=function(a){a=a===void 0?{}:a;var b=a.contentSourceUrl,c=a.region,d=a.oAuthToken,e=a.projectNumber,f=a.adTagUrl,g=a.vodConfigId,h=a.videoStitcherSessionOptions;lY.call(this,{apiKey:a.apiKey,authToken:a.authToken,format:a.format,networkCode:a.networkCode,streamActivityMonitorId:a.streamActivityMonitorId,adTagParameters:a.adTagParameters});this.contentSourceUrl=b||"";this.region=c||"";this.oAuthToken=d||"";this.projectNumber=e||"";this.adTagUrl=f||"";this.vodConfigId=g||"";this.videoStitcherSessionOptions= + h||null};v(wY,lY);B("google.ima.dai.api.VideoStitcherVodStreamRequest",wY);var xY=function(a){a=a===void 0?{}:a;var b=a.contentSourceId,c=a.videoId;lY.call(this,{apiKey:a.apiKey,authToken:a.authToken,format:a.format,networkCode:a.networkCode,streamActivityMonitorId:a.streamActivityMonitorId,adTagParameters:a.adTagParameters});this.contentSourceId=b||"";this.videoId=c||""};v(xY,lY);B("google.ima.dai.api.VODStreamRequest",xY);var yY=Promise;var zY=function(a){this.j=a};zY.prototype.g=function(a,b,c){this.j.then(function(d){d.g(a,b,c)})};var AY=function(a){this.data=a};var BY=function(a){this.j=a};BY.prototype.g=function(a,b,c){c=c===void 0?[]:c;var d=new MessageChannel;CY(d.port1,b);this.j.postMessage(a,[d.port2].concat(c))};var DY=function(a,b){CY(a,b);return new BY(a)},CY=function(a,b){b&&(a.onmessage=function(c){b(new AY(c.data,DY(c.ports[0])))})};var EY=function(a){this.g=a},FY=function(a){var b=Object.create(null);(typeof a==="string"?[a]:a).forEach(function(c){if(c==="null")throw Error("Receiving from null origin not allowed without token verification. Please use NullOriginConnector.");b[c]=!0});return function(c){return b[c]===!0}};var HY=function(a){var b=a.destination;var c=a.Db;var d=a.origin;var e=a.ne===void 0?"ZNWN1d":a.ne;var f=a.onMessage===void 0?void 0:a.onMessage;a=a.jf===void 0?void 0:a.jf;return GY({destination:b,Id:function(){return c.contentWindow},Vk:d instanceof EY?d:typeof d==="function"?new EY(d):new EY(FY(d)),ne:e,onMessage:f,jf:a})},GY=function(a){var b=a.destination;var c=a.Id;var d=a.Vk;var e=a.ul===void 0?void 0:a.ul;var f=a.ne;var g=a.onMessage===void 0?void 0:a.onMessage;var h=a.jf===void 0?void 0: + a.jf;return new zY(new yY(function(k,m){var n=function(p){p.source&&p.source===c()&&d.g(p.origin)&&(p.data.n||p.data)===f&&(b.removeEventListener("message",n,!1),e&&p.data.t!==e?m(Error('Token mismatch while establishing channel "'+f+'". Expected '+e+", but received "+p.data.t+".")):(k(DY(p.ports[0],g)),h&&h(p)))};b.addEventListener("message",n,!1)}))};var JY=function(a,b){var c=Array.prototype.slice.call(arguments),d=c.shift();if(typeof d=="undefined")throw Error("[goog.string.format] Template required");return d.replace(/%([0\- \+]*)(\d+)?(\.(\d+))?([%sfdiu])/g,function(e,f,g,h,k,m,n,p){if(m=="%")return"%";var q=c.shift();if(typeof q=="undefined")throw Error("[goog.string.format] Not enough arguments");arguments[0]=q;return IY[m].apply(null,arguments)})},IY={s:function(a,b,c){return isNaN(c)||c==""||a.length>=Number(c)?a:a=b.indexOf("-",0)>-1? + a+kl(" ",Number(c)-a.length):kl(" ",Number(c)-a.length)+a},f:function(a,b,c,d,e){d=a.toString();isNaN(e)||e==""||(d=parseFloat(a).toFixed(e));var f=Number(a)<0?"-":b.indexOf("+")>=0?"+":b.indexOf(" ")>=0?" ":"";Number(a)>=0&&(d=f+d);if(isNaN(c)||d.length>=Number(c))return d;d=isNaN(e)?Math.abs(Number(a)).toString():Math.abs(Number(a)).toFixed(e);a=Number(c)-d.length-f.length;return d=b.indexOf("-",0)>=0?f+d+kl(" ",a):f+kl(b.indexOf("0",0)>=0?"0":" ",a)+d},d:function(a,b,c,d,e,f,g,h){return IY.f(parseInt(a, + 10),b,c,d,0,f,g,h)}};IY.i=IY.d;IY.u=IY.d;var LY=function(a,b){U.call(this);b=(bm()?"https:":"http:")+JY("//imasdk.googleapis.com/js/core/dai_iframe3.659.0_%s.html",b);b=new Ls(b);b.g.add("origin",window.location.origin);this.g=b;this.Db=yl("IFRAME",{src:this.g.toString(),allowFullscreen:!0,style:"height: 100%; border: 0; margin: 0; padding: 0;position: relative; width: 100%; color-scheme: light",title:"Advertisement"});a.appendChild(this.Db);this.j=KY(this,this.Db);a={experimentIds:Mp().sort().join(",")};b=zt;var c=c===void 0?null:c;var d= + {};c!=null&&(d.activeViewPushUpdates=c);d.activityMonitorMode=0;d.adsToken=b.g;d.autoPlayAdBreaks=b.C;d.companionBackfill=b.getCompanionBackfill();d.cookiesEnabled=b.isCookiesEnabled();d.disableCustomPlaybackForIOS10Plus=b.getDisableCustomPlaybackForIOS10Plus();d.engagementDetection=!0;d.isFunctionalTest=!1;d.isVpaidAdapter=b.o;d["1pJar"]="";d.numRedirects=b.getNumRedirects();d.pageCorrelator=b.M;d.persistentStateCorrelator=Nn();d.playerType=b.getPlayerType();d.playerVersion=b.getPlayerVersion(); + d.ppid=b.getPpid();d.privacyControls="";d.reportMediaRequests=!1;d.sessionId=b.G;d.streamCorrelator=b.ca;d.testingConfig=yt(b).g;d.urlSignals=b.ba;d.vpaidMode=b.j;d.featureFlags=b.getFeatureFlags();d.cookieDeprecationLabel="";d.cookieDeprecationLabelStatus=0;a.imaSdkSettings=d;a.topAccessiblePageUrl=Cv();c=em();b=Yf(Jq());d={};b=(d.experimentStateProto=Kh(b),d);a.genotypeExperimentData=b;a.pvsid=c;YN(this,"loaded",a);cx(this.Db,{display:"none"})};v(LY,U); + var MY=function(a){var b=a.g.j;return b?a.g.o+"://"+b:window.location.origin},KY=function(a,b){return HY({destination:window,Db:b,origin:MY(a),ne:"uiChannel",onMessage:function(c){var d=c.data.type;c=c.data.data;c=c===void 0?{}:c;switch(d){case "iframeCreated":case "videoClicked":case "click":case "pause":case "resume":case "skip":case "skipShown":case "updateGfpCookie":a.dispatchEvent(new $T(d,c))}}})};LY.prototype.focus=function(){YN(this,"focus")};LY.prototype.pause=function(){YN(this,"pause")}; + LY.prototype.resume=function(){YN(this,"resume")};var YN=function(a,b,c){c=c===void 0?{}:c;var d={};d.type=b;d.data=c;a.j.g(d)};var NY=function(a,b){R.call(this);this.j=a;this.g=b};v(NY,R);var TN=function(a){return{source:a.g.Db.contentWindow,target:a.j}};var OY=function(a,b,c){U.call(this);this.j=a;this.g=b;this.l=c};v(OY,U);var PY=function(a,b){switch(b.type){case "iframeCreated":b=b.data;var c,d=(c=a.j.Db.contentWindow)==null?void 0:c.frames[b];c=SN(a.l,a.g,new NY(d,a.j));Mt(a,c);VN(c).then(function(){ho(M.getInstance(),"ima_lsc");var e;(e=PN(a.g))==null||e.then(function(){ho(M.getInstance(),"ima_csr")},function(){ho(M.getInstance(),"ima_cmc")})});ZN(c)}};OY.prototype.Y=function(){var a;(a=this.g)!=null&&a.j&&(a.j.reject(),a.j=null);U.prototype.Y.call(this)};rl();var QY={},RY=(QY.play="play",QY.pause="pause",QY.seeked="seeked",QY.seeking="seeking",QY.stalled="stalled",QY.timeUpdate="timeUpdate",QY.volumeChange="volumeChange",QY),SY=function(a,b,c,d){U.call(this);var e=this;this.aa=a;this.g=b;this.ad=c;this.l=d;this.j=new zJ(this);Mt(this,this.j);this.j.listen(this.aa,Object.keys(RY),function(f){return void e.dispatchEvent(RY[f.type])})};v(SY,U); + var $N=function(a){var b=a.g.Xa(),c=!0;b&&(c=b.duration0&&(Lp.reset(),Np(new Rp(e)));if(a==null)throw Error("Media element must be provided.");var f;((f=a.tagName)==null?void 0:f.toUpperCase())!== + "VIDEO"&&console.warn("Media element must be a