{"version":3,"file":"ssp.js","mappings":"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","sources":["webpack://sssp/./node_modules/@iva/debugger/dist/esm/constants.js","webpack://sssp/./node_modules/@iva/debugger/dist/esm/getShouldLog.js","webpack://sssp/./node_modules/@iva/debugger/dist/esm/index.js","webpack://sssp/./node_modules/@iva/debugger/dist/esm/log.js","webpack://sssp/./node_modules/@iva/debugger/dist/esm/permanent.js","webpack://sssp/./node_modules/@iva/debugger/dist/esm/status.js","webpack://sssp/./node_modules/@iva/debugger/dist/esm/url.js","webpack://sssp/./node_modules/@iva/debugger/dist/esm/window.js","webpack://sssp/./node_modules/@iva/postscribe/dist/parser/HtmlParser.js","webpack://sssp/./node_modules/@iva/postscribe/dist/parser/fixedReadTokenFactory.js","webpack://sssp/./node_modules/@iva/postscribe/dist/parser/streamReaders.js","webpack://sssp/./node_modules/@iva/postscribe/dist/parser/supports.js","webpack://sssp/./node_modules/@iva/postscribe/dist/parser/tokens.js","webpack://sssp/./node_modules/@iva/postscribe/dist/parser/utils.js","webpack://sssp/./node_modules/@iva/postscribe/dist/postscribe.js","webpack://sssp/./node_modules/@iva/postscribe/dist/utils.js","webpack://sssp/./node_modules/@iva/postscribe/dist/write-stream.js","webpack://sssp/./src/constants.ts","webpack://sssp/./src/modules/ads/gam/handleGamNoAdResponse.ts","webpack://sssp/./src/modules/ads/gam/index.ts","webpack://sssp/./src/modules/config/configValues.ts","webpack://sssp/./src/modules/config/getPackageVersion.js","webpack://sssp/./node_modules/@iva/types/dot/index.ts","webpack://sssp/./src/modules/config/validation.ts","webpack://sssp/./src/modules/config/index.ts","webpack://sssp/./src/modules/utils/cookies.ts","webpack://sssp/./src/modules/utils/dbg.ts","webpack://sssp/./src/modules/utils/events.ts","webpack://sssp/./src/modules/utils/getOverrides.ts","webpack://sssp/./src/modules/utils/helpers/extractId.ts","webpack://sssp/./src/modules/utils/helpers/getDomainName.ts","webpack://sssp/./src/modules/utils/helpers/getJson.ts","webpack://sssp/./src/modules/utils/helpers/getRandomString.ts","webpack://sssp/./src/modules/utils/helpers/getUrlParams.ts","webpack://sssp/./src/modules/utils/helpers/setElementAttributes.ts","webpack://sssp/./src/modules/utils/identityStorage.ts","webpack://sssp/./src/modules/utils/loadScript.ts","webpack://sssp/./src/modules/utils/safeCallback.ts","webpack://sssp/./src/modules/utils/scriptParams.ts","webpack://sssp/./src/modules/utils/sendHit.ts","webpack://sssp/./src/modules/utils/timestamp.ts","webpack://sssp/./src/modules/utils/topWindow.ts","webpack://sssp/./src/modules/utils/urls.ts","webpack://sssp/./src/modules/utils/user.ts","webpack://sssp/./src/modules/ads/adRepository.js","webpack://sssp/./src/modules/ads/cids.js","webpack://sssp/./src/modules/ads/done.js","webpack://sssp/./src/modules/utils/runInfoCallback.ts","webpack://sssp/./src/modules/ads/dspTest.js","webpack://sssp/./src/modules/ads/urlDataToCallback.js","webpack://sssp/./src/modules/ads/processAdData.js","webpack://sssp/./src/modules/cmp/browserSniffing.js","webpack://sssp/./src/modules/cmp/externalPaws.js","webpack://sssp/./src/modules/config/globalFlags.js","webpack://sssp/./src/modules/customs/index.js","webpack://sssp/./src/modules/impress/backgroundAdsReloads.js","webpack://sssp/./src/modules/impress/dotLoader.js","webpack://sssp/./src/modules/impress/hitError.js","webpack://sssp/./src/modules/impress/served.js","webpack://sssp/./src/modules/impress/sync3rdParty/index.js","webpack://sssp/./src/modules/impress/testMetric.js","webpack://sssp/./src/modules/impress/visibilityMeasure.js","webpack://sssp/./src/modules/rendering/createPawIconTemplate.js","webpack://sssp/./src/modules/rendering/getPawHTML.js","webpack://sssp/./src/modules/rendering/adTemplate.js","webpack://sssp/./src/modules/rendering/getTargetElement.js","webpack://sssp/./src/modules/rendering/prerenderAdToPage.js","webpack://sssp/./src/modules/rendering/sizing.js","webpack://sssp/./src/modules/rendering/writeAd/writeIframe.js","webpack://sssp/./src/modules/rendering/createElements.js","webpack://sssp/./src/modules/rendering/writeAd/cacheBuster.js","webpack://sssp/./src/modules/rendering/writeAd/writeCodeToPage.js","webpack://sssp/./src/modules/rendering/writeAd/syncId.js","webpack://sssp/./src/modules/rendering/writeAd/index.js","webpack://sssp/./src/modules/session/dopSource.js","webpack://sssp/./src/modules/session/sessionCookies.js","webpack://sssp/./src/modules/session/sessionDetection.js","webpack://sssp/./src/modules/utils/documentwrite.js","webpack://sssp/./src/modules/utils/helpers/getLocation.js","webpack://sssp/./src/modules/session/spentTime.js","webpack://sssp/./src/modules/utils/pageView.js","webpack://sssp/./node_modules/lodash.clonedeep/index.js","webpack://sssp/./node_modules/@babel/runtime-corejs3/core-js-stable/url-search-params.js","webpack://sssp/./node_modules/@babel/runtime-corejs3/core-js-stable/url.js","webpack://sssp/./node_modules/@babel/runtime-corejs3/core-js/instance/replace-all.js","webpack://sssp/./node_modules/core-js-pure/actual/instance/replace-all.js","webpack://sssp/./node_modules/core-js-pure/actual/object/define-property.js","webpack://sssp/./node_modules/core-js-pure/actual/symbol/index.js","webpack://sssp/./node_modules/core-js-pure/actual/symbol/iterator.js","webpack://sssp/./node_modules/core-js-pure/actual/symbol/to-primitive.js","webpack://sssp/./node_modules/core-js-pure/es/instance/replace-all.js","webpack://sssp/./node_modules/core-js-pure/es/object/define-property.js","webpack://sssp/./node_modules/core-js-pure/es/string/virtual/replace-all.js","webpack://sssp/./node_modules/core-js-pure/es/symbol/index.js","webpack://sssp/./node_modules/core-js-pure/es/symbol/iterator.js","webpack://sssp/./node_modules/core-js-pure/es/symbol/to-primitive.js","webpack://sssp/./node_modules/core-js-pure/features/instance/replace-all.js","webpack://sssp/./node_modules/core-js-pure/full/instance/replace-all.js","webpack://sssp/./node_modules/core-js-pure/full/object/define-property.js","webpack://sssp/./node_modules/core-js-pure/full/symbol/index.js","webpack://sssp/./node_modules/core-js-pure/full/symbol/iterator.js","webpack://sssp/./node_modules/core-js-pure/full/symbol/to-primitive.js","webpack://sssp/./node_modules/core-js-pure/internals/a-callable.js","webpack://sssp/./node_modules/core-js-pure/internals/a-possible-prototype.js","webpack://sssp/./node_modules/core-js-pure/internals/add-to-unscopables.js","webpack://sssp/./node_modules/core-js-pure/internals/an-instance.js","webpack://sssp/./node_modules/core-js-pure/internals/an-object.js","webpack://sssp/./node_modules/core-js-pure/internals/array-from.js","webpack://sssp/./node_modules/core-js-pure/internals/array-includes.js","webpack://sssp/./node_modules/core-js-pure/internals/array-iteration.js","webpack://sssp/./node_modules/core-js-pure/internals/array-method-has-species-support.js","webpack://sssp/./node_modules/core-js-pure/internals/array-slice.js","webpack://sssp/./node_modules/core-js-pure/internals/array-sort.js","webpack://sssp/./node_modules/core-js-pure/internals/array-species-constructor.js","webpack://sssp/./node_modules/core-js-pure/internals/array-species-create.js","webpack://sssp/./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js","webpack://sssp/./node_modules/core-js-pure/internals/classof-raw.js","webpack://sssp/./node_modules/core-js-pure/internals/classof.js","webpack://sssp/./node_modules/core-js-pure/internals/correct-prototype-getter.js","webpack://sssp/./node_modules/core-js-pure/internals/create-iter-result-object.js","webpack://sssp/./node_modules/core-js-pure/internals/create-non-enumerable-property.js","webpack://sssp/./node_modules/core-js-pure/internals/create-property-descriptor.js","webpack://sssp/./node_modules/core-js-pure/internals/create-property.js","webpack://sssp/./node_modules/core-js-pure/internals/define-built-in-accessor.js","webpack://sssp/./node_modules/core-js-pure/internals/define-built-in.js","webpack://sssp/./node_modules/core-js-pure/internals/define-built-ins.js","webpack://sssp/./node_modules/core-js-pure/internals/define-global-property.js","webpack://sssp/./node_modules/core-js-pure/internals/descriptors.js","webpack://sssp/./node_modules/core-js-pure/internals/document-create-element.js","webpack://sssp/./node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js","webpack://sssp/./node_modules/core-js-pure/internals/dom-iterables.js","webpack://sssp/./node_modules/core-js-pure/internals/engine-user-agent.js","webpack://sssp/./node_modules/core-js-pure/internals/engine-v8-version.js","webpack://sssp/./node_modules/core-js-pure/internals/enum-bug-keys.js","webpack://sssp/./node_modules/core-js-pure/internals/export.js","webpack://sssp/./node_modules/core-js-pure/internals/fails.js","webpack://sssp/./node_modules/core-js-pure/internals/function-apply.js","webpack://sssp/./node_modules/core-js-pure/internals/function-bind-context.js","webpack://sssp/./node_modules/core-js-pure/internals/function-bind-native.js","webpack://sssp/./node_modules/core-js-pure/internals/function-call.js","webpack://sssp/./node_modules/core-js-pure/internals/function-name.js","webpack://sssp/./node_modules/core-js-pure/internals/function-uncurry-this-accessor.js","webpack://sssp/./node_modules/core-js-pure/internals/function-uncurry-this-clause.js","webpack://sssp/./node_modules/core-js-pure/internals/function-uncurry-this.js","webpack://sssp/./node_modules/core-js-pure/internals/get-built-in-prototype-method.js","webpack://sssp/./node_modules/core-js-pure/internals/get-built-in.js","webpack://sssp/./node_modules/core-js-pure/internals/get-iterator-method.js","webpack://sssp/./node_modules/core-js-pure/internals/get-iterator.js","webpack://sssp/./node_modules/core-js-pure/internals/get-json-replacer-function.js","webpack://sssp/./node_modules/core-js-pure/internals/get-method.js","webpack://sssp/./node_modules/core-js-pure/internals/get-substitution.js","webpack://sssp/./node_modules/core-js-pure/internals/global.js","webpack://sssp/./node_modules/core-js-pure/internals/has-own-property.js","webpack://sssp/./node_modules/core-js-pure/internals/hidden-keys.js","webpack://sssp/./node_modules/core-js-pure/internals/html.js","webpack://sssp/./node_modules/core-js-pure/internals/ie8-dom-define.js","webpack://sssp/./node_modules/core-js-pure/internals/indexed-object.js","webpack://sssp/./node_modules/core-js-pure/internals/inspect-source.js","webpack://sssp/./node_modules/core-js-pure/internals/internal-state.js","webpack://sssp/./node_modules/core-js-pure/internals/is-array-iterator-method.js","webpack://sssp/./node_modules/core-js-pure/internals/is-array.js","webpack://sssp/./node_modules/core-js-pure/internals/is-callable.js","webpack://sssp/./node_modules/core-js-pure/internals/is-constructor.js","webpack://sssp/./node_modules/core-js-pure/internals/is-forced.js","webpack://sssp/./node_modules/core-js-pure/internals/is-null-or-undefined.js","webpack://sssp/./node_modules/core-js-pure/internals/is-object.js","webpack://sssp/./node_modules/core-js-pure/internals/is-possible-prototype.js","webpack://sssp/./node_modules/core-js-pure/internals/is-pure.js","webpack://sssp/./node_modules/core-js-pure/internals/is-regexp.js","webpack://sssp/./node_modules/core-js-pure/internals/is-symbol.js","webpack://sssp/./node_modules/core-js-pure/internals/iterator-close.js","webpack://sssp/./node_modules/core-js-pure/internals/iterator-create-constructor.js","webpack://sssp/./node_modules/core-js-pure/internals/iterator-define.js","webpack://sssp/./node_modules/core-js-pure/internals/iterators-core.js","webpack://sssp/./node_modules/core-js-pure/internals/iterators.js","webpack://sssp/./node_modules/core-js-pure/internals/length-of-array-like.js","webpack://sssp/./node_modules/core-js-pure/internals/math-trunc.js","webpack://sssp/./node_modules/core-js-pure/internals/object-assign.js","webpack://sssp/./node_modules/core-js-pure/internals/object-create.js","webpack://sssp/./node_modules/core-js-pure/internals/object-define-properties.js","webpack://sssp/./node_modules/core-js-pure/internals/object-define-property.js","webpack://sssp/./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","webpack://sssp/./node_modules/core-js-pure/internals/object-get-own-property-names-external.js","webpack://sssp/./node_modules/core-js-pure/internals/object-get-own-property-names.js","webpack://sssp/./node_modules/core-js-pure/internals/object-get-own-property-symbols.js","webpack://sssp/./node_modules/core-js-pure/internals/object-get-prototype-of.js","webpack://sssp/./node_modules/core-js-pure/internals/object-is-prototype-of.js","webpack://sssp/./node_modules/core-js-pure/internals/object-keys-internal.js","webpack://sssp/./node_modules/core-js-pure/internals/object-keys.js","webpack://sssp/./node_modules/core-js-pure/internals/object-property-is-enumerable.js","webpack://sssp/./node_modules/core-js-pure/internals/object-set-prototype-of.js","webpack://sssp/./node_modules/core-js-pure/internals/object-to-string.js","webpack://sssp/./node_modules/core-js-pure/internals/ordinary-to-primitive.js","webpack://sssp/./node_modules/core-js-pure/internals/path.js","webpack://sssp/./node_modules/core-js-pure/internals/regexp-flags.js","webpack://sssp/./node_modules/core-js-pure/internals/regexp-get-flags.js","webpack://sssp/./node_modules/core-js-pure/internals/require-object-coercible.js","webpack://sssp/./node_modules/core-js-pure/internals/safe-get-built-in.js","webpack://sssp/./node_modules/core-js-pure/internals/set-to-string-tag.js","webpack://sssp/./node_modules/core-js-pure/internals/shared-key.js","webpack://sssp/./node_modules/core-js-pure/internals/shared-store.js","webpack://sssp/./node_modules/core-js-pure/internals/shared.js","webpack://sssp/./node_modules/core-js-pure/internals/string-multibyte.js","webpack://sssp/./node_modules/core-js-pure/internals/string-punycode-to-ascii.js","webpack://sssp/./node_modules/core-js-pure/internals/symbol-constructor-detection.js","webpack://sssp/./node_modules/core-js-pure/internals/symbol-define-to-primitive.js","webpack://sssp/./node_modules/core-js-pure/internals/symbol-is-registered.js","webpack://sssp/./node_modules/core-js-pure/internals/symbol-is-well-known.js","webpack://sssp/./node_modules/core-js-pure/internals/symbol-registry-detection.js","webpack://sssp/./node_modules/core-js-pure/internals/to-absolute-index.js","webpack://sssp/./node_modules/core-js-pure/internals/to-indexed-object.js","webpack://sssp/./node_modules/core-js-pure/internals/to-integer-or-infinity.js","webpack://sssp/./node_modules/core-js-pure/internals/to-length.js","webpack://sssp/./node_modules/core-js-pure/internals/to-object.js","webpack://sssp/./node_modules/core-js-pure/internals/to-primitive.js","webpack://sssp/./node_modules/core-js-pure/internals/to-property-key.js","webpack://sssp/./node_modules/core-js-pure/internals/to-string-tag-support.js","webpack://sssp/./node_modules/core-js-pure/internals/to-string.js","webpack://sssp/./node_modules/core-js-pure/internals/try-to-string.js","webpack://sssp/./node_modules/core-js-pure/internals/uid.js","webpack://sssp/./node_modules/core-js-pure/internals/url-constructor-detection.js","webpack://sssp/./node_modules/core-js-pure/internals/use-symbol-as-uid.js","webpack://sssp/./node_modules/core-js-pure/internals/v8-prototype-define-bug.js","webpack://sssp/./node_modules/core-js-pure/internals/validate-arguments-length.js","webpack://sssp/./node_modules/core-js-pure/internals/weak-map-basic-detection.js","webpack://sssp/./node_modules/core-js-pure/internals/well-known-symbol-define.js","webpack://sssp/./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js","webpack://sssp/./node_modules/core-js-pure/internals/well-known-symbol.js","webpack://sssp/./node_modules/core-js-pure/modules/es.array.concat.js","webpack://sssp/./node_modules/core-js-pure/modules/es.array.iterator.js","webpack://sssp/./node_modules/core-js-pure/modules/es.json.stringify.js","webpack://sssp/./node_modules/core-js-pure/modules/es.json.to-string-tag.js","webpack://sssp/./node_modules/core-js-pure/modules/es.object.define-property.js","webpack://sssp/./node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js","webpack://sssp/./node_modules/core-js-pure/modules/es.string.iterator.js","webpack://sssp/./node_modules/core-js-pure/modules/es.string.replace-all.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.async-iterator.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.constructor.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.for.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.has-instance.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.iterator.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.key-for.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.match-all.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.match.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.replace.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.search.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.species.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.split.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.to-primitive.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.to-string-tag.js","webpack://sssp/./node_modules/core-js-pure/modules/es.symbol.unscopables.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.function.metadata.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.string.replace-all.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.custom-matcher.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.dispose.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.is-registered-symbol.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.is-registered.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.is-well-known-symbol.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.is-well-known.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.matcher.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.metadata.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.observable.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js","webpack://sssp/./node_modules/core-js-pure/modules/esnext.symbol.replace-all.js","webpack://sssp/./node_modules/core-js-pure/modules/web.dom-collections.iterator.js","webpack://sssp/./node_modules/core-js-pure/modules/web.url-search-params.constructor.js","webpack://sssp/./node_modules/core-js-pure/modules/web.url-search-params.js","webpack://sssp/./node_modules/core-js-pure/modules/web.url.can-parse.js","webpack://sssp/./node_modules/core-js-pure/modules/web.url.constructor.js","webpack://sssp/./node_modules/core-js-pure/modules/web.url.js","webpack://sssp/./node_modules/core-js-pure/modules/web.url.parse.js","webpack://sssp/./node_modules/core-js-pure/stable/instance/replace-all.js","webpack://sssp/./node_modules/core-js-pure/stable/object/define-property.js","webpack://sssp/./node_modules/core-js-pure/stable/symbol/index.js","webpack://sssp/./node_modules/core-js-pure/stable/symbol/iterator.js","webpack://sssp/./node_modules/core-js-pure/stable/symbol/to-primitive.js","webpack://sssp/./node_modules/core-js-pure/stable/url-search-params/index.js","webpack://sssp/./node_modules/core-js-pure/stable/url/index.js","webpack://sssp/./node_modules/core-js-pure/web/url-search-params.js","webpack://sssp/./node_modules/core-js-pure/web/url.js","webpack://sssp/./node_modules/@babel/runtime-corejs3/helpers/esm/typeof.js","webpack://sssp/./node_modules/@babel/runtime-corejs3/helpers/esm/toPropertyKey.js","webpack://sssp/./node_modules/@babel/runtime-corejs3/helpers/esm/toPrimitive.js","webpack://sssp/./node_modules/@babel/runtime-corejs3/helpers/esm/defineProperty.js","webpack://sssp/./node_modules/@sklik/cmp2-common/dist/iabtcf/Base64Url.js","webpack://sssp/./node_modules/@sklik/cmp2-common/dist/cmpone.js","webpack://sssp/./node_modules/@sklik/cmp2-common/dist/cookie.js","webpack://sssp/./node_modules/@sklik/cmp2-common/dist/consent.js","webpack://sssp/webpack/bootstrap","webpack://sssp/webpack/runtime/compat get default export","webpack://sssp/webpack/runtime/define property getters","webpack://sssp/webpack/runtime/global","webpack://sssp/webpack/runtime/hasOwnProperty shorthand","webpack://sssp/webpack/runtime/make namespace object","webpack://sssp/webpack/runtime/node module decorator","webpack://sssp/./node_modules/@iva/refresher/src/index.js","webpack://sssp/./src/modules/utils/helpers/scaling.js","webpack://sssp/./src/safeframe/sf.host.js","webpack://sssp/./node_modules/@iva/error-reporter/dist/esm/modules/browser.js","webpack://sssp/./node_modules/@iva/error-reporter/dist/esm/constants.js","webpack://sssp/./node_modules/@iva/error-reporter/dist/esm/modules/HitSender.js","webpack://sssp/./node_modules/@iva/error-reporter/dist/esm/modules/storage.js","webpack://sssp/./node_modules/@iva/error-reporter/dist/esm/main.js","webpack://sssp/./src/modules/utils/functionStack.js","webpack://sssp/./src/modules/rendering/renderRequestedPaw.js","webpack://sssp/./src/modules/rendering/pawVisibilityListener.js","webpack://sssp/./src/modules/cmp/consentCookie.js","webpack://sssp/./src/modules/cmp/consentProvider.js","webpack://sssp/./src/modules/utils/reporting.js","webpack://sssp/./src/modules/session/leaderFollowerSync.js","webpack://sssp/./src/modules/session/abTest.js","webpack://sssp/./src/modules/cmp/consentAccountSwitch.js","webpack://sssp/./node_modules/@iva/utils/dist/modules/debug.js","webpack://sssp/./node_modules/@iva/utils/dist/sid.js","webpack://sssp/./node_modules/@iva/utils/dist/types/address.js","webpack://sssp/./node_modules/@iva/utils/dist/address.js","webpack://sssp/./src/modules/ads/createRequestPayload.js","webpack://sssp/./src/modules/utils/collocation.ts","webpack://sssp/./src/modules/utils/keywords.ts","webpack://sssp/./src/modules/utils/helpers/getFormattedUaDataHeaders.ts","webpack://sssp/./node_modules/@iva/utils/dist/uadata.js","webpack://sssp/./src/modules/ads/getVastAds.ts","webpack://sssp/./src/modules/utils/request.js","webpack://sssp/./src/modules/utils/vastData.ts","webpack://sssp/./src/modules/init.js","webpack://sssp/./src/modules/impress/logAds.js","webpack://sssp/./src/modules/ads/callPositionErrorCallback.js","webpack://sssp/./src/modules/utils/validatePosition.ts","webpack://sssp/./src/modules/cmp/cmpServerApi.js","webpack://sssp/./src/modules/cmp/whitelist.js","webpack://sssp/./src/modules/cmp/DOT.js","webpack://sssp/./src/modules/cmp/sync.js","webpack://sssp/./src/modules/cmp/cmpLoader.js","webpack://sssp/./src/modules/ads/getAds.js","webpack://sssp/./src/modules/ads/getAdsByTags.js","webpack://sssp/./src/modules/rendering/appendPawToElement.js","webpack://sssp/./src/modules/rendering/appendCoopIconToElement.ts","webpack://sssp/./src/modules/utils/base64.ts","webpack://sssp/./src/modules/global/api.ts","webpack://sssp/./src/modules/global/constructor.ts","webpack://sssp/./src/ssp.ts"],"sourcesContent":["const ENABLER = 'sznivadbg';\nconst PERMANENT_ENABLER = 'sznivadbgsave';\nconst EVENT_PREFIX = 'iva_dbg_event_';\nconst DEFAULTS = {\n FCOLOR: 'white',\n BCOLOR: 'black',\n};\nexport { ENABLER, EVENT_PREFIX, DEFAULTS, PERMANENT_ENABLER };\n","import { getGlobalDebuggerObject, getTopFrameRule, isTopLevel, upsertGlobalDebuggerObject } from './window';\nimport { ENABLER } from './constants';\nimport { getParamValue } from './url';\nimport { log } from './log';\nimport { getInternalConfig } from './index';\nconst getDebuggerRule = () => {\n var _a;\n const paramValue = getParamValue(ENABLER);\n if (paramValue) {\n return paramValue;\n }\n const topFrameRule = getTopFrameRule();\n if (topFrameRule) {\n return topFrameRule;\n }\n try {\n const localStorageRule = ((_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.getItem(ENABLER)) || '';\n if (localStorageRule) {\n return localStorageRule;\n }\n }\n catch (error) {\n log(getInternalConfig(), 'warn', undefined, JSON.stringify(error));\n }\n return '';\n};\n/**\n * Finds component name in provided string and decides whether to log based on it.\n * @param {String | null} paramValue Value of debug UTM\n * @param {*} name Name of current library\n * @return {Boolean} Should log or not\n */\nconst findNameInValue = (paramValue, name) => {\n // empty string, or any falsey\n if (!paramValue) {\n return false;\n }\n // if paramValue === \"1\" always log\n if (paramValue === '1') {\n return true;\n }\n // if paramValue contains \"!\" allowed libraries are defined by exclusion\n if (~paramValue.indexOf('!')) {\n if (~paramValue.toLowerCase().indexOf(`!${name.toLowerCase()}`)) {\n return false;\n }\n return true;\n }\n // if paramValue isn't \"1\" and contains name - should log\n if (~paramValue.toLowerCase().indexOf(name.toLowerCase())) {\n return true;\n }\n // did not fit any category - should NOT log\n return false;\n};\n/**\n * Decides whether current library should be logging.\n * @param {*} name Name of current library\n * @return {Boolean} Should log or not\n */\nconst getShouldLog = (name) => {\n var _a;\n const rule = getDebuggerRule();\n if (!((_a = getGlobalDebuggerObject()) === null || _a === void 0 ? void 0 : _a.welcomeNotified) && rule && isTopLevel()) {\n upsertGlobalDebuggerObject({ welcomeNotified: true });\n log(getInternalConfig(), 'log', undefined, '===============================================\\n' +\n ` | 🕷 DEBUGGER is set to \"${rule}\".\\n` +\n ` | Use \"1\" to let any component log or use component name[s] to filter them.\\n` +\n ` | Using \\\"!component\\\" lets log all components except those listed.\\n` +\n ` | Save the rule to local storage using GET parameter \"?sznivadbgsave=${rule}\"\\n` +\n ` | and remove it by \"?sznivadbgsave=\".\\n` +\n ` \\`=======================================================`);\n }\n return findNameInValue(rule, name);\n};\nexport { findNameInValue, getShouldLog, getDebuggerRule };\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { log } from './log';\nimport { status } from './status';\nimport { getShouldLog } from './getShouldLog';\nimport { DEFAULTS } from './constants';\nimport { initIframeBridge } from './window';\nimport { permanentEnabler } from './permanent';\n/**\n * Returns debugger Config for the debugger itself.\n * @returns Debugger Config\n */\nconst getInternalConfig = () => ({\n name: 'debugger',\n fColor: '#AAA',\n bColor: '#777',\n});\ninitIframeBridge();\n/**\n * Returns debug function based on config (name and colors)\n */\nconst debugFactory = (config) => {\n permanentEnabler();\n config = Object.assign({ fColor: DEFAULTS.FCOLOR, bColor: DEFAULTS.BCOLOR }, config);\n if (!(config && config.name && config.fColor && config.bColor)) {\n // in order not to break whomever is importing\n // return a function that can still be called\n return () => false;\n }\n const debug = (...args) => {\n const types = ['log', 'warn', 'error', 'info', 'table'];\n const argsCount = args.length;\n const shouldLog = getShouldLog(config.name);\n if (!shouldLog || argsCount === 0) {\n // nothing to log, just return shouldLog\n return shouldLog;\n }\n // debug({type: 'error', subName: '7845', message: 'Oh no', data: {...}, ...});\n // or debug({state: '...', ...})\n if (argsCount === 1 && typeof args[0] === 'object' && !Array.isArray(args[0]) && args[0] !== null) {\n const [firstArg] = args;\n const { state, type, subName, message } = firstArg, data = __rest(firstArg, [\"state\", \"type\", \"subName\", \"message\"]);\n if (shouldLog) {\n const logArgs = [];\n if (message !== undefined) {\n logArgs.push(message);\n }\n if (Object.values(data).length === 1) {\n logArgs.push(data[Object.keys(data)[0]]);\n }\n else if (Object.values(data).length) {\n logArgs.push(data);\n }\n log(config, type, subName, ...logArgs);\n }\n if (state) {\n status(config, state, data);\n }\n return shouldLog;\n }\n // debug('Look what happens.');\n // debug(['someData', '...'}); anything else then object\n if (shouldLog && argsCount === 1) {\n log(config, 'log', undefined, args[0]);\n return shouldLog;\n }\n // debug('error', 'Oh no, there is an error.'); or other types, like warn, info, table...\n // debug('error', {someData: '...'});\n if (shouldLog && argsCount === 2 && ~types.indexOf(args[0])) {\n log(config, args[0], undefined, args[1]);\n return shouldLog;\n }\n // debug('Look at this data', data, [moreData, ...]);\n if (shouldLog && argsCount > 1 && !~types.indexOf(args[0])) {\n log(config, 'log', undefined, ...args);\n return shouldLog;\n }\n // debug('error', 'Oh no, there is an error, look at this data', data, [moreData, ...]);\n // debug('table', 'Look at this data', data);\n if (shouldLog && argsCount > 2 && ~types.indexOf(args[0])) {\n log(config, args[0], undefined, ...args.slice(1));\n return shouldLog;\n }\n // Some other args combination we forgot to cover? This shouldn't happen.\n log(getInternalConfig(), 'warn', undefined, 'Debugger received unknown argument combination. args:', args);\n return shouldLog;\n };\n return debug;\n};\nexport { debugFactory, getInternalConfig };\n","import cloneDeep from 'lodash.clonedeep';\n/**\n * Logs message into console if proper UTM set to truthy value.\n * @param {object} - Configuration with log details.\n * @param {('log'|'warn'|'error'|'info'|'table')} [type = 'log'] - Type of console, if not specified defaults to \"log\".\n * @param {string | number} [subName] - additional service name subtype, can be used to log error code number\n * @param {unknown[]} [messages] - Data to be displayed as in console.\n */\nconst log = (config, type = 'log', subName, ...messages) => {\n const { name, fColor, bColor } = config;\n const style = `display: inline-block; color: ${fColor}; background: ${bColor}; padding: 1px 4px; border-radius: 3px;`;\n const badge = `%c${name}${subName ? ' ' + subName : ''}`;\n const messagesCopy = (messages !== null && messages !== void 0 ? messages : []).map((v) => cloneDeep(v));\n if (type === 'table' && messagesCopy.length === 1) {\n // print data in table, badge in the separate log\n console.log(badge, style);\n console.table(messagesCopy[0]);\n }\n else if (type === 'table' && messagesCopy.length === 2) {\n // print data in table, badge and message in the separate log\n console.log(badge, style, messagesCopy[0]);\n console.table(messagesCopy[1]);\n }\n else {\n // print any messages with a badge\n console[type](badge, style, ...messagesCopy);\n }\n};\nexport { log };\n","import { getInternalConfig } from './window';\nimport { log } from './log';\nimport { ENABLER, PERMANENT_ENABLER } from './constants';\nimport { getParamValue } from './url';\n/**\n * Checking of save command in GET params and saving the value to local storage.\n */\nconst permanentEnabler = () => {\n var _a, _b, _c;\n const paramValue = getParamValue(PERMANENT_ENABLER);\n // nothing in URL\n if (paramValue === null) {\n return;\n }\n const lastValue = (_a = window.localStorage) === null || _a === void 0 ? void 0 : _a.getItem(ENABLER);\n if (\n // rule in URL is the same as the saved one (preventing console bloating)\n paramValue === lastValue ||\n // rule was already deleted\n (lastValue === null && paramValue === '')) {\n // do nothing\n return;\n }\n if (paramValue === '') {\n // blank string to remove the saved rule\n (_b = window.localStorage) === null || _b === void 0 ? void 0 : _b.removeItem(ENABLER);\n log(getInternalConfig(), undefined, undefined, 'Rule was removed from the local storage.');\n }\n else {\n // a string to save to the local storage\n (_c = window.localStorage) === null || _c === void 0 ? void 0 : _c.setItem(ENABLER, paramValue !== null && paramValue !== void 0 ? paramValue : '');\n log(getInternalConfig(), undefined, undefined, `Rule \"${paramValue}\" was saved to the local storage.`);\n }\n};\nexport { permanentEnabler };\n","import { EVENT_PREFIX } from './constants';\n/**\n * Saves current progress into window object and emits CustomEvent\n * @param {Object} config Object holding necessary constants\n * @param {('start'|'done'|'error')} state Event describing current state\n * @param {Object} data Data to be saved to window and emitted with event\n */\nconst status = (config, state, data) => {\n const { name } = config;\n const EVENT_TYPE = `${EVENT_PREFIX}${name}`;\n const detail = Object.assign({ state }, data);\n // Add to window\n window.sznIVA = window.sznIVA || {};\n window.sznIVA[name] = window.sznIVA[name] || {};\n // Overwrite data, but do not remove any properties\n Object.assign(window.sznIVA[name], detail);\n // Emit CustomEvent\n const event = new CustomEvent(EVENT_TYPE, { detail });\n window.dispatchEvent(event);\n};\nexport { status };\n","const getParamValue = (param) => {\n const queryString = window.location.search || '';\n const paramRegex = new RegExp(`${param}=([^&]*)`);\n const matches = queryString.match(paramRegex) || [];\n return matches.length > 1 ? matches[1] : null;\n};\nexport { getParamValue };\n","import { getDebuggerRule } from './getShouldLog';\nimport { EVENT_PREFIX } from './constants';\nimport { log } from './log';\nimport { getInternalConfig } from './index';\nconst isTopLevel = (win = window) => (win.top === win.self || !!win.Cypress) && !win.frameElement;\n/**\n * Gets debugger window object from window.sznIVA.debugger, or returns undefined if it doesn't exist.\n * @returns\n */\nconst getGlobalDebuggerObject = () => { var _a; return (_a = window.sznIVA) === null || _a === void 0 ? void 0 : _a.debugger; };\n/**\n * Creates or updates debugger window object in window.sznIVA.debugger.\n * @param windowObject Object with properties to update.\n */\nconst upsertGlobalDebuggerObject = (windowObject) => {\n window.sznIVA = window.sznIVA || {};\n window.sznIVA.debugger = Object.assign(Object.assign({}, window.sznIVA.debugger), windowObject);\n};\n/**\n * Returns top frame debugger rule saved in the window object.\n */\nconst getTopFrameRule = () => { var _a; return (_a = getGlobalDebuggerObject()) === null || _a === void 0 ? void 0 : _a.topFrameRule; };\n/**\n * Handles message event from iframes requesting debugger rule.\n */\nconst handlerFromChildMessage = (event) => {\n var _a, _b, _c;\n try {\n if (typeof ((_a = event === null || event === void 0 ? void 0 : event.source) === null || _a === void 0 ? void 0 : _a.postMessage) === 'function' &&\n ((_b = event === null || event === void 0 ? void 0 : event.data) === null || _b === void 0 ? void 0 : _b.type) === `${EVENT_PREFIX}request_debug_settings`) {\n const rule = getDebuggerRule();\n event.source.postMessage({\n type: `${EVENT_PREFIX}debug_settings`,\n rule,\n }, { targetOrigin: '*' });\n if (!((_c = getGlobalDebuggerObject()) === null || _c === void 0 ? void 0 : _c.iframeBridgeNotified)) {\n if (rule) {\n log(getInternalConfig(), undefined, undefined, `Top frame sends a debugger rule \"${rule}\" to iframes.`);\n }\n upsertGlobalDebuggerObject({ iframeBridgeNotified: true });\n }\n }\n }\n catch (e) {\n log(getInternalConfig(), 'error', undefined, `${e instanceof Error ? e.message : 'An unknown error occurred in handlerFromChildMessage'}`);\n }\n};\n/**\n * Handles message event from top window containing debugger rule.\n */\nconst handlerFromTopMessage = (event) => {\n if (event.data.type === `${EVENT_PREFIX}debug_settings`) {\n upsertGlobalDebuggerObject({ topFrameRule: event.data.rule });\n }\n};\n/**\n * Init mechanism of getting current debugging rule from top window.\n */\nconst initIframeBridge = () => {\n if (isTopLevel()) {\n window.addEventListener('message', (event) => handlerFromChildMessage(event));\n }\n else {\n window.addEventListener('message', (event) => handlerFromTopMessage(event));\n try {\n window.top.postMessage({ type: `${EVENT_PREFIX}request_debug_settings` }, document.referrer || '*');\n }\n catch (e) {\n log(getInternalConfig(), 'error', undefined, `${e instanceof Error ? e.message : 'An unknown error occurred during initIframeBridge'}`);\n }\n }\n};\nexport { getInternalConfig, getTopFrameRule, getGlobalDebuggerObject, initIframeBridge, isTopLevel, upsertGlobalDebuggerObject, };\n","import * as supports from './supports';\nimport * as streamReaders from './streamReaders';\nimport fixedReadTokenFactory from './fixedReadTokenFactory';\nimport { escapeQuotes } from './utils';\nconst detect = {\n comment: /^<!--/,\n endTag: /^<\\//,\n atomicTag: /^<\\s*(script|style|noscript|iframe|textarea)[\\s\\/>]/i,\n startTag: /^</,\n chars: /^[^<]/,\n};\nexport class HtmlParser {\n constructor(stream = '', options = {}) {\n this.stream = stream;\n let fix = false;\n const fixedTokenOptions = {};\n for (const key in supports) {\n if ({ ...supports }.hasOwnProperty(key)) {\n if (options.autoFix) {\n fixedTokenOptions[`${key}Fix`] = true;\n }\n fix = fix || fixedTokenOptions[`${key}Fix`];\n }\n }\n if (fix) {\n this._readToken = fixedReadTokenFactory(this, fixedTokenOptions, () => this._readTokenImpl());\n this._peekToken = fixedReadTokenFactory(this, fixedTokenOptions, () => this._peekTokenImpl());\n }\n else {\n this._readToken = this._readTokenImpl;\n this._peekToken = this._peekTokenImpl;\n }\n }\n append(str) {\n this.stream += str;\n }\n prepend(str) {\n this.stream = str + this.stream;\n }\n _readTokenImpl() {\n const token = this._peekTokenImpl();\n if (token) {\n this.stream = this.stream.slice(token.length);\n return token;\n }\n }\n _peekTokenImpl() {\n for (const type in detect) {\n if (detect.hasOwnProperty(type)) {\n if (detect[type].test(this.stream)) {\n const token = streamReaders[type](this.stream);\n if (token) {\n if (token.type === 'startTag' && /script|style/i.test(token.tagName)) {\n return null;\n }\n else {\n token.text = this.stream.substring(0, token.length);\n return token;\n }\n }\n }\n }\n }\n }\n peekToken() {\n return this._peekToken();\n }\n readToken() {\n return this._readToken();\n }\n readTokens(handlers) {\n let tok = null;\n while ((tok = this.readToken())) {\n if (handlers[tok.type] && handlers[tok.type](tok) === false) {\n return;\n }\n }\n }\n clear() {\n const rest = this.stream;\n this.stream = '';\n return rest;\n }\n rest() {\n return this.stream;\n }\n}\nHtmlParser.tokenToString = (tok) => tok.toString();\nHtmlParser.escapeAttributes = (attrs) => {\n const escapedAttrs = {};\n for (const name in attrs) {\n if (attrs.hasOwnProperty(name)) {\n escapedAttrs[name] = escapeQuotes(attrs[name], null);\n }\n }\n return escapedAttrs;\n};\nHtmlParser.supports = supports;\nfor (const key in supports) {\n if ({ ...supports }.hasOwnProperty(key)) {\n HtmlParser.browserHasFlaw = HtmlParser.browserHasFlaw || (!supports[key] && key);\n }\n}\n","const EMPTY = /^(AREA|BASE|BASEFONT|BR|COL|FRAME|HR|IMG|INPUT|ISINDEX|LINK|META|PARAM|EMBED)$/i;\nconst CLOSESELF = /^(COLGROUP|DD|DT|LI|OPTIONS|P|TD|TFOOT|TH|THEAD|TR)$/i;\nfunction correct(tok) {\n if (tok && tok.type === 'startTag') {\n tok.unary = EMPTY.test(tok.tagName) || tok.unary;\n tok.html5Unary = !/\\/>$/.test(tok.text);\n }\n return tok;\n}\nfunction peekToken(parser, readTokenImpl) {\n const tmp = parser.stream;\n const tok = correct(readTokenImpl());\n parser.stream = tmp;\n return tok;\n}\nfunction closeLast(parser, stack) {\n const tok = stack.pop();\n parser.prepend(`</${tok.tagName}>`);\n}\nfunction newStack() {\n const stack = [];\n stack.last = function () {\n return this[this.length - 1];\n };\n stack.lastTagNameEq = function (tagName) {\n const last = this.last();\n return last && last.tagName && last.tagName.toUpperCase() === tagName.toUpperCase();\n };\n stack.containsTagName = function (tagName) {\n for (let i = 0, tok; (tok = this[i]); i++) {\n if (tok.tagName === tagName) {\n return true;\n }\n }\n return false;\n };\n return stack;\n}\nexport default function fixedReadTokenFactory(parser, options, readTokenImpl) {\n const stack = newStack();\n const handlers = {\n startTag(tok) {\n const tagName = tok.tagName;\n if (tagName.toUpperCase() === 'TR' && stack.lastTagNameEq('TABLE')) {\n parser.prepend('<TBODY>');\n prepareNextToken();\n }\n else if (options.selfCloseFix && CLOSESELF.test(tagName) && stack.containsTagName(tagName)) {\n if (stack.lastTagNameEq(tagName)) {\n closeLast(parser, stack);\n }\n else {\n parser.prepend(`</${tok.tagName}>`);\n prepareNextToken();\n }\n }\n else if (!tok.unary) {\n stack.push(tok);\n }\n },\n endTag(tok) {\n const last = stack.last();\n if (last) {\n if (options.tagSoupFix && !stack.lastTagNameEq(tok.tagName)) {\n closeLast(parser, stack);\n }\n else {\n stack.pop();\n }\n }\n else if (options.tagSoupFix) {\n readTokenImpl();\n prepareNextToken();\n }\n },\n };\n function prepareNextToken() {\n const tok = peekToken(parser, readTokenImpl);\n if (tok && handlers[tok.type]) {\n handlers[tok.type](tok);\n }\n }\n return function fixedReadToken() {\n prepareNextToken();\n return correct(readTokenImpl());\n };\n}\n","import { CommentToken, CharsToken, StartTagToken, AtomicTagToken, EndTagToken } from './tokens';\nconst REGEXES = {\n startTag: /^<([\\-A-Za-z0-9_!:]+)((?:\\s+[\\w\\-]+(?:\\s*=?\\s*(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>\\s]+))?)*)\\s*(\\/?)>/,\n doctype4: /<(!DOCTYPE)([^>]*)(>)/i,\n xmlProlog: /<(\\?xml)([\\s\\S]*?)(\\?>)/,\n endTag: /^<\\/([\\-A-Za-z0-9_:]+)[^>]*>/,\n attr: /(?:([\\-A-Za-z0-9_]+)\\s*=\\s*(?:(?:\"((?:\\\\.|[^\"])*)\")|(?:'((?:\\\\.|[^'])*)')|([^>\\s]+)))|(?:([\\-A-Za-z0-9_]+)(\\s|$)+)/g,\n fillAttr: /^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noresize|noshade|nowrap|readonly|selected)$/i,\n};\nexport function comment(stream) {\n const index = stream.indexOf('-->');\n if (index >= 0) {\n return new CommentToken(stream.substring(4, index));\n }\n}\nexport function chars(stream) {\n const index = stream.indexOf('<');\n return new CharsToken(index >= 0 ? index : stream.length);\n}\nexport function unescapeHTMLEntities(html) {\n const map = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n };\n const replace = Object.keys(map).join('|');\n return html.replaceAll(new RegExp(replace, 'g'), function (m) {\n return map[m];\n });\n}\nexport function startTag(stream) {\n const endTagIndex = stream.indexOf('>');\n if (endTagIndex !== -1) {\n const match = stream.match(REGEXES.startTag) || stream.match(REGEXES.xmlProlog) || stream.match(REGEXES.doctype4);\n if (match) {\n const attrs = {};\n const booleanAttrs = {};\n let rest = match[2];\n match[2].replace(REGEXES.attr, function (match, name) {\n if (!(arguments[2] || arguments[3] || arguments[4] || arguments[5])) {\n attrs[name] = '';\n }\n else if (arguments[5]) {\n attrs[arguments[5]] = '';\n booleanAttrs[arguments[5]] = true;\n }\n else {\n const value = arguments[2] || arguments[3] || arguments[4] || (REGEXES.fillAttr.test(name) && name) || '';\n attrs[name] = unescapeHTMLEntities(value);\n }\n rest = rest.replace(match, '');\n });\n return new StartTagToken(match[1], match[0].length, attrs, booleanAttrs, !!match[3], rest.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, ''));\n }\n }\n}\nexport function atomicTag(stream) {\n const start = startTag(stream);\n if (start) {\n const rest = stream.slice(start.length);\n if (rest.match(new RegExp('</\\\\s*' + start.tagName + '\\\\s*>', 'i'))) {\n const match = rest.match(new RegExp('([\\\\s\\\\S]*?)</\\\\s*' + start.tagName + '\\\\s*>', 'i'));\n if (match) {\n return new AtomicTagToken(start.tagName, match[0].length + start.length, start.attrs, start.booleanAttrs, match[1]);\n }\n }\n }\n}\nexport function endTag(stream) {\n const match = stream.match(REGEXES.endTag);\n if (match) {\n return new EndTagToken(match[1], match[0].length);\n }\n}\n","let tagSoup = false;\nlet selfClose = false;\nlet work = window.document.createElement('div');\ntry {\n const html = '<P><I></P></I>';\n work.innerHTML = html;\n tagSoup = work.innerHTML !== html;\n}\ncatch (e) {\n tagSoup = false;\n}\ntry {\n work.innerHTML = '<P><i><P></P></i></P>';\n selfClose = work.childNodes.length === 2;\n}\ncatch (e) {\n selfClose = false;\n}\nwork = null;\nexport { tagSoup, selfClose };\n","import { escapeQuotes } from './utils';\nexport class Token {\n constructor(type, length) {\n this.type = type;\n this.length = length;\n this.text = '';\n }\n}\nexport class CommentToken extends Token {\n constructor(content) {\n super('comment', '<!--'.length + content.length + '-->'.length);\n this.content = content;\n }\n toString() {\n return `<!--${this.content}-->`;\n }\n}\nexport class CharsToken extends Token {\n constructor(length) {\n super('chars', length);\n }\n toString() {\n return this.text;\n }\n}\nexport class TagToken extends Token {\n constructor(type, tagName, length, attrs, booleanAttrs, unary = false, html5Unary = false) {\n super(type, length);\n this.tagName = tagName;\n this.attrs = attrs;\n this.booleanAttrs = booleanAttrs;\n this.unary = unary;\n this.html5Unary = html5Unary;\n }\n formatTag(options) {\n let str = `<${this.tagName}`;\n const attrs = Object.entries(this.attrs).map(([key, val]) => {\n if (!this.booleanAttrs.hasOwnProperty(key)) {\n return `${key}=\"${escapeQuotes(val)}\"`;\n }\n else {\n return key;\n }\n });\n str += ` ${attrs.join(' ')}`;\n if (options.rest) {\n str += ` ${options.rest}`;\n }\n if (this.unary && !this.html5Unary) {\n str += '/>';\n }\n else {\n str += '>';\n }\n if (options.content !== undefined && !this.unary) {\n str += `${options.content}</${this.tagName}>`;\n }\n return str;\n }\n}\nexport class StartTagToken extends TagToken {\n constructor(tagName, length, attrs, booleanAttrs, unary, rest) {\n super('startTag', tagName, length, attrs, booleanAttrs, unary);\n this.rest = rest;\n }\n toString() {\n return this.formatTag({ rest: this.rest });\n }\n}\nexport class AtomicTagToken extends TagToken {\n constructor(tagName, length, attrs, booleanAttrs, content) {\n super('atomicTag', tagName, length, attrs, booleanAttrs);\n this.content = content;\n }\n toString() {\n return this.formatTag({ content: this.content });\n }\n}\nexport class EndTagToken extends Token {\n constructor(tagName, length) {\n super('endTag', length);\n this.tagName = tagName;\n }\n toString() {\n return `</${this.tagName}>`;\n }\n}\n","export function escapeQuotes(value, defaultValue = '') {\n return !value\n ? defaultValue\n : value.replace(/([^\"]*)\"/g, (_, prefix) => {\n return /\\\\/.test(prefix) ? `${prefix}\"` : `${prefix}"`;\n });\n}\n","import WriteStream from './write-stream';\nimport * as utils from './utils';\nfunction doNothing() { }\nconst OPTIONS = {\n afterAsync: doNothing,\n afterDequeue: doNothing,\n afterStreamStart: doNothing,\n afterWrite: doNothing,\n autoFix: true,\n beforeEnqueue: doNothing,\n beforeWriteToken: (tok) => tok,\n beforeWrite: (str) => str,\n done: doNothing,\n error(e) {\n throw new Error(e.msg);\n },\n releaseAsync: false,\n};\nlet nextId = 0;\nlet queue = [];\nlet active = null;\nfunction nextStream() {\n const args = queue.shift();\n if (args) {\n const options = utils.last(args);\n options.afterDequeue();\n args.stream = runStream(...args);\n options.afterStreamStart();\n }\n}\nfunction runStream(el, html, options) {\n active = new WriteStream(el, options);\n active.id = nextId++;\n active.name = options.name || active.id;\n postscribe.streams[active.name] = active;\n const doc = el.ownerDocument;\n const stash = {\n close: doc.close,\n open: doc.open,\n write: doc.write,\n writeln: doc.writeln,\n };\n function write(str) {\n str = options.beforeWrite(str);\n active.write(str);\n options.afterWrite(str);\n }\n Object.assign(doc, {\n close: doNothing,\n open: doNothing,\n write: (...str) => write(str.join('')),\n writeln: (...str) => write(str.join('') + '\\n'),\n });\n const oldOnError = active.win.onerror || doNothing;\n active.win.onerror = (message, url, line, col) => {\n const msg = `Postscribe error: '${message}', url: ${url} at ${line}:${col}`;\n options.error({ msg });\n oldOnError.apply(active.win, [msg, url, line, col]);\n };\n active.write(html, () => {\n Object.assign(doc, stash);\n active.win.onerror = oldOnError;\n options.done();\n active = null;\n nextStream();\n });\n return active;\n}\nexport function postscribe(el, html, options) {\n if (utils.isFunction(options)) {\n options = { done: options };\n }\n else if (options === 'clear') {\n queue = [];\n active = null;\n nextId = 0;\n return;\n }\n options = utils.defaults(options, OPTIONS);\n if (/^#/.test(el)) {\n el = window.document.getElementById(el.substring(1));\n }\n else {\n el = el.jquery ? el[0] : el;\n }\n const args = [el, html, options];\n el.postscribe = {\n cancel: () => {\n if (args.stream) {\n args.stream.abort();\n }\n else {\n args[1] = doNothing;\n }\n },\n };\n options.beforeEnqueue(args);\n queue.push(args);\n if (!active) {\n nextStream();\n }\n return el.postscribe;\n}\nObject.assign(postscribe, {\n streams: {},\n queue,\n WriteStream,\n});\n","export function existy(thing) {\n return thing !== void 0 && thing !== null;\n}\nexport function isFunction(x) {\n return 'function' === typeof x;\n}\nexport function each(arr, fn, target) {\n const len = (arr && arr.length) || 0;\n for (let i = 0; i < len; i++) {\n fn.call(target, arr[i], i);\n }\n}\nexport function eachKey(obj, fn, target) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n fn.call(target, key, obj[key]);\n }\n }\n}\nexport function defaults(options, _defaults) {\n options = options || {};\n eachKey(_defaults, function (key, val) {\n if (!existy(options[key])) {\n options[key] = val;\n }\n });\n return options;\n}\nexport function toArray(obj) {\n try {\n return Array.prototype.slice.call(obj);\n }\n catch (e) {\n const ret = [];\n each(obj, function (val) {\n ret.push(val);\n });\n return ret;\n }\n}\nexport function last(array) {\n return array[array.length - 1];\n}\nexport function isTag(tok, tag) {\n return !tok || !(tok.type === 'startTag' || tok.type === 'atomicTag') || !('tagName' in tok)\n ? !1\n : !!~tok.tagName.toLowerCase().indexOf(tag);\n}\nexport function isScript(tok) {\n return isTag(tok, 'script');\n}\nexport function isStyle(tok) {\n return isTag(tok, 'style');\n}\n","import { HtmlParser } from './parser/HtmlParser';\nimport * as utils from './utils';\nconst DEBUG_CHUNK = false;\nconst BASEATTR = 'data-ps-';\nconst PROXY_STYLE = 'ps-style';\nconst PROXY_SCRIPT = 'ps-script';\nfunction getData(el, name) {\n const attr = BASEATTR + name;\n const val = el.getAttribute(attr);\n return !utils.existy(val) ? val : String(val);\n}\nfunction setData(el, name, value = null) {\n const attr = BASEATTR + name;\n if (utils.existy(value) && value !== '') {\n el.setAttribute(attr, value);\n }\n else {\n el.removeAttribute(attr);\n }\n}\nexport default class WriteStream {\n constructor(root, options = {}) {\n this.root = root;\n this.options = options;\n this.doc = root.ownerDocument;\n this.win = this.doc.defaultView || this.doc.parentWindow;\n this.parser = new HtmlParser('', { autoFix: options.autoFix });\n this.actuals = [root];\n this.proxyHistory = '';\n this.proxyRoot = this.doc.createElement(root.nodeName);\n this.scriptStack = [];\n this.writeQueue = [];\n setData(this.proxyRoot, 'proxyof', 0);\n }\n write(...str) {\n this.writeQueue.push(...str);\n while (!this.deferredRemote && this.writeQueue.length) {\n const arg = this.writeQueue.shift();\n if (utils.isFunction(arg)) {\n this._callFunction(arg);\n }\n else {\n this._writeImpl(arg);\n }\n }\n }\n _callFunction(fn) {\n const tok = { type: 'function', value: fn.name || fn.toString() };\n this._onScriptStart(tok);\n fn.call(this.win, this.doc);\n this._onScriptDone(tok);\n }\n _writeImpl(html) {\n this.parser.append(html);\n let tok = null;\n let script = null;\n let style = null;\n const tokens = [];\n while ((tok = this.parser.readToken()) && !(script = utils.isScript(tok)) && !(style = utils.isStyle(tok))) {\n tok = this.options.beforeWriteToken(tok);\n if (tok) {\n tokens.push(tok);\n }\n }\n if (tokens.length > 0) {\n this._writeStaticTokens(tokens);\n }\n if (script) {\n this._handleScriptToken(tok);\n }\n if (style) {\n this._handleStyleToken(tok);\n }\n }\n _writeStaticTokens(tokens) {\n const chunk = this._buildChunk(tokens);\n if (!chunk.actual) {\n return null;\n }\n chunk.html = this.proxyHistory + chunk.actual;\n this.proxyHistory += chunk.proxy;\n this.proxyRoot.innerHTML = chunk.html;\n if (DEBUG_CHUNK) {\n chunk.proxyInnerHTML = this.proxyRoot.innerHTML;\n }\n this._walkChunk();\n if (DEBUG_CHUNK) {\n chunk.actualInnerHTML = this.root.innerHTML;\n }\n return chunk;\n }\n _addBaseAttr(tokenRaw, BASEATTR, id) {\n const regex = /^(<[a-zA-Z0-9\\-!]+)/;\n return tokenRaw.replace(regex, (match, capturedGroup) => {\n return capturedGroup + ` ${BASEATTR}id=${id}`;\n });\n }\n _buildChunk(tokens) {\n let nextId = this.actuals.length;\n const raw = [];\n const actual = [];\n const proxy = [];\n const len = tokens.length;\n for (let i = 0; i < len; i++) {\n const tok = tokens[i];\n const tokenRaw = tok.toString();\n raw.push(tokenRaw);\n if (tok.attrs) {\n if (!/^noscript$/i.test(tok.tagName)) {\n const id = nextId++;\n const actualToken = this._addBaseAttr(tokenRaw, BASEATTR, id);\n actual.push(actualToken);\n if (tok.attrs.id !== PROXY_SCRIPT && tok.attrs.id !== PROXY_STYLE) {\n proxy.push(tok.type === 'atomicTag' ? '' : `<${tok.tagName} ${BASEATTR}proxyof=${id}` + (tok.unary ? ' />' : '>'));\n }\n }\n }\n else {\n actual.push(tokenRaw);\n proxy.push(tok.type === 'endTag' ? tokenRaw : '');\n }\n }\n return {\n tokens,\n raw: raw.join(''),\n actual: actual.join(''),\n proxy: proxy.join(''),\n };\n }\n _walkChunk() {\n let node = null;\n const stack = [this.proxyRoot];\n while (utils.existy((node = stack.shift()))) {\n const isElement = node.nodeType === 1;\n const isProxy = isElement && getData(node, 'proxyof');\n if (!isProxy) {\n if (isElement) {\n this.actuals[getData(node, 'id')] = node;\n setData(node, 'id');\n }\n const parentIsProxyOf = node.parentNode && getData(node.parentNode, 'proxyof');\n if (parentIsProxyOf) {\n this.actuals[parentIsProxyOf].appendChild(node);\n }\n }\n stack.unshift.apply(stack, utils.toArray(node.childNodes));\n }\n }\n _handleScriptToken(tok) {\n const remainder = this.parser.clear();\n if (remainder) {\n this.writeQueue.unshift(remainder);\n }\n tok.src = tok.attrs.src || tok.attrs.SRC;\n tok = this.options.beforeWriteToken(tok);\n if (!tok) {\n return;\n }\n if (tok.src && this.scriptStack.length) {\n this.deferredRemote = tok;\n }\n else {\n this._onScriptStart(tok);\n }\n this._writeScriptToken(tok, () => {\n this._onScriptDone(tok);\n });\n }\n _handleStyleToken(tok) {\n const remainder = this.parser.clear();\n if (remainder) {\n this.writeQueue.unshift(remainder);\n }\n tok.type = tok.attrs.type || tok.attrs.TYPE || 'text/css';\n tok = this.options.beforeWriteToken(tok);\n if (tok) {\n this._writeStyleToken(tok);\n }\n if (remainder) {\n this.write();\n }\n }\n _writeStyleToken(tok) {\n const el = this._buildStyle(tok);\n this._insertCursor(el, PROXY_STYLE);\n if (tok.content) {\n if (el.styleSheet && !el.sheet) {\n el.styleSheet.cssText = tok.content;\n }\n else {\n el.appendChild(this.doc.createTextNode(tok.content));\n }\n }\n }\n _buildStyle(tok) {\n const el = this.doc.createElement(tok.tagName);\n el.setAttribute('type', tok.type);\n utils.eachKey(tok.attrs, (name, value) => {\n el.setAttribute(name, value);\n });\n return el;\n }\n _insertCursor(el, which) {\n this._writeImpl(`<span id=\"${which}\"/>`);\n const cursor = this.doc.getElementById(which);\n if (cursor && cursor.parentNode) {\n cursor.parentNode.replaceChild(el, cursor);\n }\n }\n _onScriptStart(tok) {\n tok.outerWrites = this.writeQueue;\n this.writeQueue = [];\n this.scriptStack.unshift(tok);\n }\n _onScriptDone(tok) {\n if (tok !== this.scriptStack[0]) {\n this.options.error({\n msg: 'Bad script nesting or script finished twice',\n });\n return;\n }\n this.scriptStack.shift();\n this.write.apply(this, tok.outerWrites);\n if (!this.scriptStack.length && this.deferredRemote) {\n this._onScriptStart(this.deferredRemote);\n this.deferredRemote = null;\n }\n }\n _writeScriptToken(tok, done) {\n const el = this._buildScript(tok);\n const asyncRelease = this._shouldRelease(el);\n const afterAsync = this.options.afterAsync;\n if (tok.src) {\n el.src = tok.src;\n this._scriptLoadHandler(el, !asyncRelease\n ? () => {\n done();\n afterAsync();\n }\n : afterAsync);\n }\n try {\n this._insertCursor(el, PROXY_SCRIPT);\n if (!el.src || asyncRelease) {\n done();\n }\n }\n catch (e) {\n this.options.error(e);\n done();\n }\n }\n _buildScript(tok) {\n const el = this.doc.createElement(tok.tagName);\n utils.eachKey(tok.attrs, (name, value) => {\n el.setAttribute(name, value);\n });\n if (tok.content) {\n el.text = tok.content;\n }\n return el;\n }\n _scriptLoadHandler(el, done) {\n function cleanup() {\n el = el.onload = el.onreadystatechange = el.onerror = null;\n }\n const error = this.options.error;\n function success() {\n cleanup();\n if (done !== null) {\n done();\n }\n done = null;\n }\n function failure(err) {\n cleanup();\n error(err);\n if (done !== null) {\n done();\n }\n done = null;\n }\n function reattachEventListener(el, evt) {\n const handler = el[`on${evt}`];\n if (handler !== null) {\n el[`_on${evt}`] = handler;\n }\n }\n reattachEventListener(el, 'load');\n reattachEventListener(el, 'error');\n Object.assign(el, {\n onload() {\n if (el._onload) {\n try {\n el._onload.apply(this, Array.prototype.slice.call(arguments, 0));\n }\n catch (err) {\n failure({ msg: `onload handler failed ${err} @ ${el.src}` });\n }\n }\n success();\n },\n onerror() {\n if (el._onerror) {\n try {\n el._onerror.apply(this, Array.prototype.slice.call(arguments, 0));\n }\n catch (err) {\n failure({ msg: `onerror handler failed ${err} @ ${el.src}` });\n return;\n }\n }\n failure({ msg: `remote script failed ${el.src}` });\n },\n onreadystatechange() {\n if (/^(loaded|complete)$/.test(el.readyState)) {\n success();\n }\n },\n });\n }\n _shouldRelease(el) {\n const isScript = /^script$/i.test(el.nodeName);\n return !isScript || !!(this.options.releaseAsync && el.src && el.hasAttribute('async'));\n }\n}\n","// Global\nexport const SSP_URL = {\n PROTOCOL: 'https://',\n HOSTNAME: 'ssp.seznam.cz',\n IFRAME_HOSTNAME: 'ssp.im.cz',\n PATH_TO_EMPTY: '/static/html/empty.html',\n};\nexport const CMP_URL = {\n PROTOCOL: 'https://',\n HOSTNAME: 'cmp.seznam.cz',\n PATH_TO_CMP: '/check-point/v1/cmp',\n};\n// Rendering\nexport const INT_PAW_LINK = 'https://o.seznam.cz/ochrana-udaju/personalizace-obsahu-a-reklamy/personalizovana-reklama/';\nexport const PAW_RENDER_DELAY = 42;\nexport const DSP_LIST = ['SKLIK', 'ADVERT', 'OGAR', 'ONEGAR', 'APPNEXUS', 'PUBMATIC'];\n// Collocation\nexport const COLLOCATION_WHITELIST = [\n 'seznamzpravy.cz',\n 'novinky.cz',\n 'localhost', // because of Cypress\n];\nexport const COLLOCATION_UNSAFE_KEYWORDS = ['Válka Rusko-Ukrajina', 'Válka v Izraeli', 'Sýrie', 'StÅ™elba v Praze'];\nexport const COLLOCATION_FLAG_SAFE = 'BrandSafety';\n// Hit\nexport const HIT_MODIFICATION_TITLE = 'unfreeze_sspjs';\n// Consent\nexport const CONSENT_CHECK_TIMEOUT = 500;\n// DOT events\nexport const DOT_FIRST_IMPRESS_EVENT = 'szn:dot:impressdone';\nexport const IMPRESS_TIMEOUT = 5000;\nexport const INTERNAL_SERVICES = [\n 'www.seznam.cz',\n 'hry.seznam.cz',\n 'www.horoskopy.cz',\n 'www.novinky.cz',\n 'www.seznamzpravy.cz',\n 'www.prozeny.cz',\n 'www.super.cz',\n 'www.sport.cz',\n 'www.garaz.cz',\n 'www.stream.cz',\n 'www.televizeseznam.cz',\n 'www.firmy.cz',\n 'www.sauto.cz',\n 'www.sreality.cz',\n 'www.sbazar.cz',\n 'www.zbozi.cz',\n 'mapy.cz',\n 'sdovolena.seznam.cz',\n 'search.seznam.cz',\n 'www.kupi.cz',\n 'www.expresfm.cz',\n 'www.classicpraha.cz',\n 'atlas.mapy.cz',\n 'login.szn.cz',\n 'email.seznam.cz',\n 'slovnik.seznam.cz',\n 'podcasty.seznam.cz',\n 'www.volnamista.cz',\n 'tv.seznam.cz',\n 'reporter.seznam.cz',\n 'ucet.seznam.cz',\n 'pocasi.seznam.cz',\n 'slearning.cz',\n 'special.novinky.cz',\n 'online.sport.cz',\n 'en.mapy.cz',\n 'sk.mapy.cz',\n 'pl.mapy.cz',\n 'de.mapy.cz',\n 'registrace.seznam.cz',\n 'en.firmy.cz',\n 'uk.mapy.cz',\n 'native.seznamzpravy.cz',\n 'advise.novinky.cz',\n 'medium.seznam.cz',\n 'partner.seznam.cz',\n];\n// Debugger\nexport const SERVICE_NAME = 'SSSP';\nexport const LOG_COLOR_DEFAULT = '#fff';\nexport const LOG_COLOR_BG = '#a90101';\n// AD-INFO PAGE\nexport const AD_INFO_REASONS = {\n PROFILING: 'Jedná se o\\u00A0behaviorálnÄ› cÃlenou reklamu.',\n BASIC_ADV: 'Jedná se o\\u00A0náhodnÄ› zobrazenou reklamu, nebo reklamu na základÄ› hledaného dotazu.',\n GEOLOCATION: 'Jedná se o\\u00A0geograficky cÃlenou reklamu.',\n};\n// AD-INFO PAGE\nexport const COOP_INFO_REASONS = {\n BASIC_ADV: 'Jedná se o\\u00A0náhodnÄ› zobrazenou komerÄnà spolupráci, nebo spolupráci na základÄ› hledaného dotazu.',\n};\nexport const AD_INFO_INT_PRIVACY_URL = 'https://o.seznam.cz/ochrana-udaju/personalizace-obsahu-a-reklamy/personalizovana-reklama/';\nexport const AD_INFO_EXT_PRIVACY_URL = 'https://partner.seznam.cz/app/ochrana-soukromi/';\nexport const AD_INFO_CLIENT_ZONE_URL = 'https://napoveda.seznam.cz/cz/klientska-zona/nastaveni-kz/kz-zakladni-informace/';\nexport const COOP_INFO_PRIVACY_URL = 'https://napoveda.seznam.cz/cz/login/produkt-seznam-bez-reklam/#vyjimky-zobrazeni';\n","import { dbg } from '#Modules/utils/dbg';\nimport { processSspAd } from '#Modules/ads/done';\nimport { getAdDataByZoneId } from '#Modules/ads/gam';\n/*\n * If GAM does not provide relevant ad for this zone,\n * the custom creative script will be delivered.\n * This script will remove the GAM ad and continue with Seznam AD.\n * https://support.google.com/admanager/answer/3185155?hl=en&ref_topic=10083476&sjid=12037626429500086839-EU\n */\nconst handleGamNoAdResponse = (slotUnitPath) => {\n if (typeof slotUnitPath !== 'string') {\n dbg('error', '### GAM TEST - slot unit path is not defined properly');\n return;\n }\n dbg('info', '### GAM does not provide relevant ad for this zone - use Seznam ad');\n // Get first ad slot\n const slotElementId = window.googletag?.pubads?.().getSlotIdMap?.()[`${slotUnitPath}_0`]?.getSlotElementId() ?? '';\n if (!slotElementId || typeof slotElementId !== 'string') {\n dbg('error', '### GAM TEST - slot element id is not defined properly');\n return;\n }\n // Remove GAM ad\n document.getElementById(slotElementId)?.remove();\n const elementIdParts = slotElementId.split('-');\n const zoneId = Number(elementIdParts[elementIdParts.length - 1]);\n const { ad, data } = getAdDataByZoneId(zoneId);\n if (!ad || !data) {\n dbg('error', 'Ad info not found');\n return;\n }\n // Create Seznam ad\n processSspAd(ad, data);\n};\nexport default handleGamNoAdResponse;\n","import { dbg } from '#Modules/utils/dbg';\nimport { loadScript } from '#Modules/utils/loadScript';\nimport { sendHit } from '#Modules/utils/sendHit';\nimport { omitWww } from '#Modules/utils/urls';\nimport { getUrlParams } from '#Modules/utils/helpers/getUrlParams';\nconst adData = {};\nexport const getAdDataByZoneId = (zoneId) => adData[zoneId] || null;\nexport const addGamFlagsToPayload = (requestPayload) => {\n requestPayload.zones.forEach((zone) => {\n zone.options = { ...zone.options, gam: true };\n });\n};\nexport const generateGamDimensionsFromMissAdData = (allowedDimensions, fallbackDimensions) => {\n if (Array.isArray(allowedDimensions)) {\n return allowedDimensions.map(({ width, height }) => [width, height]);\n }\n else {\n return fallbackDimensions;\n }\n};\nexport const isBlacklisted = () => {\n const blacklist = ['iprima.cz', 'kurzy.cz', 'nakluky.cz', 'autosalon.tv', 'playzone.cz', 'aimatch.com'];\n const hostname = window.location.hostname.toLowerCase();\n return blacklist.includes(omitWww(hostname));\n};\nconst initializeGAMObject = () => {\n if (!window.googletag) {\n window.googletag = {\n cmd: [],\n };\n }\n};\n/**\n * For \"empty\" ads we can request GAM ad (rendered to specified new HTML element)\n */\nexport const gamFallback = (ad, data) => {\n if (!ad?.zoneId || !data?.options?.sspRendering || !data?.width || !data?.height || !data?.id) {\n dbg('info', 'GAM fallback - missing data');\n return;\n }\n if (isBlacklisted()) {\n dbg('info', 'GAM fallback - service blacklisted');\n return;\n }\n dbg('info', 'GAM fallback - starting');\n const elementId = 'div-gpt-ad-1677658328819-' + ad.zoneId;\n const dimensions = generateGamDimensionsFromMissAdData(ad.formats?.sizes, [[data.width, data.height]]);\n // load google script & config\n loadScript('https://securepubads.g.doubleclick.net/tag/js/gpt.js')\n .then(() => {\n try {\n // prepare div for GAM rendering\n const gElement = document.createElement('div');\n gElement.setAttribute('id', elementId);\n // get \"empty\" ad element\n const emptyAdElement = document.getElementById(data.id.toString());\n // append to dom (after \"empty\" element or at the end of parent)\n if (emptyAdElement?.parentElement && emptyAdElement?.nextSibling) {\n emptyAdElement.parentElement.insertBefore(gElement, emptyAdElement.nextSibling);\n }\n else if (emptyAdElement.parentElement) {\n emptyAdElement.parentElement.appendChild(gElement);\n }\n else {\n dbg('error', 'GAM fallback - no element to render');\n return;\n }\n // GAM config\n initializeGAMObject();\n window.googletag.cmd.push(function () {\n window.googletag\n .defineSlot('/22819958440/ca-pub-2127466377868208-tag', dimensions, elementId)\n .addService(window.googletag.pubads());\n window.googletag.pubads().enableSingleRequest();\n window.googletag.enableServices();\n });\n dbg('info', 'GAM fallback - configured', dimensions, elementId);\n // render\n window.googletag.cmd.push(function () {\n dbg('info', 'GAM fallback - require display', dimensions, elementId);\n window.googletag.display(elementId);\n });\n // TEMPORARY log GAM calls\n const { requestId, zoneId, impressId } = ad;\n sendHit({ r: requestId, z: zoneId.toString(), i: (impressId || 0).toString(), t: 'gam', v: '1' });\n }\n catch (e) {\n dbg('error', 'GAM fallback - ad rendering failed', e);\n }\n })\n .catch((e) => {\n dbg('error', 'GAM fallback - gpt.js loading failed', e);\n });\n};\nexport const requestGamAd = async (ad, data) => {\n if (!ad.zoneId || !data?.options?.sspRendering || !data?.width || !data?.height || !data?.id) {\n dbg('info', 'GAM TEST - missing data');\n return false;\n }\n // RTB Testing web provide webId as null - we need to check web through hostname\n const isRtbTestingWeb = location.host === 'rtb.seznam.cz';\n if (ad.zoneId !== 292746 || !isRtbTestingWeb) {\n dbg('info', 'GAM TEST - Test is not supported on this website and zone id');\n return false;\n }\n dbg('info', 'GAM TEST - starting');\n const slotUnitPath = '/22819958440/SZN_GAM_PROMISE_ALL_SIZES_TEST';\n /*\n * We store AD data for later use in GAM custom creative\n * if GAM does not provide relevant ad for this zone.\n */\n adData[ad.zoneId] = { ad, data };\n const elementId = 'div-gpt-ad-1740141973465-' + ad.zoneId;\n const dimensions = generateGamDimensionsFromMissAdData(ad.formats?.sizes, [[data.width, data.height]]);\n try {\n await loadScript('https://securepubads.g.doubleclick.net/tag/js/gpt.js');\n const gamTestElement = document.createElement('div');\n gamTestElement.setAttribute('id', elementId);\n const emptyAdElement = document.getElementById(data.id.toString());\n if (emptyAdElement?.parentElement && emptyAdElement?.nextSibling) {\n emptyAdElement.parentElement.insertBefore(gamTestElement, emptyAdElement.nextSibling);\n }\n else if (emptyAdElement?.parentElement) {\n emptyAdElement.parentElement.appendChild(gamTestElement);\n }\n else {\n dbg('error', 'GAM TEST - no element to render');\n return false;\n }\n // GAM config\n initializeGAMObject();\n // Create a Promise with a timeout for TEST\n return new Promise((resolve) => {\n let currentSlot = null;\n const timeoutId = setTimeout(() => {\n dbg('info', 'GAM TEST - Timeout reached, Request SSP Ad');\n if (currentSlot) {\n currentSlot = null;\n window.googletag.destroySlots([currentSlot]);\n }\n resolve(false);\n }, 10000);\n // TODO: URL parameter only for testing\n const seznamPrice = getUrlParams().seznamPrice?.toString() || '11';\n window.googletag.cmd.push(function () {\n currentSlot = window.googletag\n .defineSlot(slotUnitPath, dimensions, elementId)\n .addService(window.googletag.pubads())\n .setTargeting('seznamPrice', seznamPrice);\n window.googletag.pubads().enableSingleRequest();\n window.googletag.enableServices();\n window.googletag.pubads().addEventListener('slotRenderEnded', function ({ isEmpty, slot }) {\n if (slot.getSlotElementId() === elementId) {\n clearTimeout(timeoutId);\n if (!currentSlot) {\n dbg('error', 'GAM TEST - Do not render GAM due to timeout');\n return resolve(false);\n }\n if (isEmpty) {\n dbg('info', 'Ad rendered but is empty');\n return resolve(false);\n }\n dbg('info', `Ad successfully rendered on slot ${slot.getSlotElementId()}`);\n return resolve(true);\n }\n });\n });\n // Render AD\n window.googletag.cmd.push(function () {\n dbg('info', 'GAM TEST - require display', dimensions, elementId);\n window.googletag.display(elementId);\n });\n const { requestId, zoneId, impressId } = ad;\n sendHit({ r: requestId, z: zoneId.toString(), i: (impressId || 0).toString(), t: 'gam', v: '1' });\n });\n }\n catch (error) {\n dbg('error', 'GAM TEST - Failed to load ad or render ad', error);\n return false; // In case of any error, return false\n }\n};\n","export const params = [\n 'zoneId',\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'options',\n 'serviceId',\n 'contentId',\n 'cidsAutoSend',\n];\nexport const optionsParams = [\n 'section',\n 'collocation',\n 'gam',\n 'passons',\n 'flags',\n 'spotId',\n 'minDuration',\n 'maxDuration',\n 'videoFormats',\n 'protocols',\n 'skippable',\n 'jsonPreloadDisabled',\n 'infoCallback',\n 'noSize',\n 'nativeTemplate',\n 'nativeVersion',\n 'sspRendering',\n 'sfExpandZIndex',\n 'pawTimeout',\n 'pawDisable',\n 'disableScaling',\n 'tags',\n 'reloadCount',\n 'doNotParseVastData',\n];\nexport const dopUrlParameters = [\n 'dop_ab_variant',\n 'dop_req_id',\n 'dop_source_zone_name',\n 'dop_id',\n 'dop_vert_id',\n 'dop_vert_ab',\n];\n","/* global PACKAGE_VERSION */\n\n/** The env variable PACKAGE_VERSION needs to be wrapped in try-catch if undefined.\n * Otherwise, Cypress crashes when importing the value from config. */\nconst getPackageVersion = () => {\n try {\n return PACKAGE_VERSION;\n } catch (e) {\n return 'development';\n }\n};\n\nexport default getPackageVersion;\n","export const SspAllowedSourcesObject = { 'hp_feed': 'hp_feed', 'sekce-z-internetu': 'hp_feed', 'denni-tisk': 'novinky', 'novinky': 'novinky', 'media': 'media', 'z-boxiku': 'hp_box', 'hp_box': 'hp_box', 'search': 'search', 'software': 'software', 'sbrowser': 'sbrowser', 'radio': 'radio', 'tvseznam': 'tvseznam', };\n","import { getConfig } from '#Modules/config/index';\nimport { getSessionData } from '#Modules/session/sessionDetection';\nimport { isValidActiveUserInConfig } from '#Modules/utils/user';\nimport { SspAllowedSourcesObject } from '@iva/types/dot';\n/**\n * @desc Module containing supporting methods for configuration.\n */\n/**\n * Table of allowed config properties and their types.\n * Simple type declarations will be evaluated using typeof,\n * more sophisticated value checks are implemented using a callback.\n */\nconst configTypes = {\n ab: 'object',\n adblock: 'boolean',\n badge: (value) => (typeof value === 'boolean' ? value : null),\n callCallbackOnError: 'boolean',\n cidsAutoSend: 'boolean',\n cookieDomain: 'string',\n debugExtensionId: 'string',\n fallbackToGAM: 'boolean',\n iframeStaticServer: 'string',\n isFollowerSsp: 'boolean',\n premium: (value) => (typeof value === 'boolean' ? value : null),\n preparePositionsCallback: 'function',\n protocol: (value) => (value === 'http://' || value === 'https://' ? value : null),\n requestErrorCallback: 'function',\n rusId: (value) => (typeof value === 'number' ? value : null),\n said: 'string',\n server: 'string',\n serviceIdForAllZones: 'string',\n site: 'string',\n source: (value) => getSessionData().media ||\n (Object.values(SspAllowedSourcesObject).includes(value) ? value : null),\n staticServer: 'string',\n test: 'boolean',\n webId: 'number',\n activeUser: (value) => (isValidActiveUserInConfig(value) ? value : null),\n};\n/**\n * Gets default conf value\n */\nconst _getDefaultValue = (key) => {\n const config = getConfig();\n return config[key];\n};\n/**\n * Сhecks the correctness of the config value\n */\nconst _validateValue = (key, value) => {\n const configType = configTypes[key];\n if (!configType) {\n return null;\n }\n if (typeof configType === 'function') {\n return configType(value);\n }\n return typeof value === configType ? value : _getDefaultValue(key);\n};\n/**\n * Iterates through all the new config parameters and returns the main ssp config object\n */\nconst _reduceConfig = (config) => {\n return Object.entries(config).reduce((acc, current) => {\n const [key, value] = current;\n const validatedValue = _validateValue(key, value);\n if (validatedValue !== null) {\n acc[key] = validatedValue;\n }\n return acc;\n }, {});\n};\n/**\n * Prepare a configuration object that only includes permitted keys and ensure that each key's value is of the correct type\n * See permitted keys an values on @link https://ssp.seznam.cz/static/doc/nastaveni\n */\nexport const prepareConfig = (config) => {\n if (typeof config !== 'object' || Array.isArray(config) || config === null) {\n return null;\n }\n if (config.server === 'ssp.imedia.cz') {\n // want to use seznam domain instead of imedia\n config.server = getConfig().server;\n }\n return _reduceConfig(config);\n};\n","import { dopUrlParameters, optionsParams, params } from '#Modules/config/configValues';\nimport getPackageVersion from '#Modules/config/getPackageVersion';\nimport { prepareConfig } from '#Modules/config/validation';\nimport { getCustoms } from '#Modules/customs';\nimport sync3rdparty from '#Modules/impress/sync3rdParty';\nimport { getOverrides } from '#Modules/utils/getOverrides';\nimport getLocation from '#Modules/utils/helpers/getLocation';\nimport { CMP_URL, SSP_URL } from '#Constants';\nimport { SspAllowedSourcesObject } from '@iva/types/dot';\n/**\n * @module config\n * @desc Module containing functions for reading and modifying the sssp configuration object.\n */\n/**\n * SSSP configuration object.\n * @link https://ssp.seznam.cz/static/doc/nastaveni for public configuration options with descriptions.\n */\nconst config = {\n ab: null,\n activeUser: null,\n adblock: false,\n /* The allowed source of the visit to the site where the ad is published. */\n allowedSources: SspAllowedSourcesObject,\n badge: null,\n callCallbackOnError: false,\n cidsAutoSend: false,\n /* The value can be taken from window.localStorage.ssspCustomPaths: \"{\\\"cmpServer\\\":\\\"<value>\\\"}\". */\n cmpData: null,\n cmpServer: getCustoms('cmpServer') || `${CMP_URL.PROTOCOL}${CMP_URL.HOSTNAME}${CMP_URL.PATH_TO_CMP}`,\n cookieDomain: '',\n cookieExpiration: 30,\n /* HTML element of currently executing script. */\n currentScript: document.currentScript,\n debugExtensionId: 'ljpnolgcojkhoemjaccecimbmiejkpmm',\n /* Additional url parameters (transition from news feed). */\n dopUrlParameters,\n /* Array of ad zones for DOT. Values are stored in the format: ['zoneId:zoneId1', 'zoneId:zoneId2',...]. */\n dotMeasureZones: [],\n /* Array of ids of ad zones for DOT. */\n dotMeasureZonesIds: [],\n fallbackToGAM: false,\n iframeStaticServer: getCustoms('iframeStaticServer') || SSP_URL.IFRAME_HOSTNAME,\n /* Attribute 'src' of iframe tag with ad. */\n iframeUrl: `/static/html/${window.location.host}/reklama.html`,\n isFollowerSsp: window !== window.top && window.Cypress === undefined,\n /* The method of the xhr request. */\n method: 'POST',\n optionsParams,\n packageVersion: getPackageVersion(),\n params,\n /* Path for xhr requests. */\n path: '/xhr',\n premium: null,\n /* Callback function is called if the session started by the user's arrival by clicking from news feed to homepage is valid Seznam.cz. */\n preparePositionsCallback: null,\n /* Protocol for communicate with ssp. */\n protocol: SSP_URL.PROTOCOL,\n /* Page View Id for Single-Page Application (SPA). During page initialization the value is set with window.sznRecass.getPageViewId() or is randomly generated. */\n pvId: '',\n /* Callback function that SSP calls when an xhr request fails. */\n requestErrorCallback: null,\n rusId: null,\n said: null,\n /* SSP server (From here, advertising will be issued). The value can be taken from window.localStorage.ssspCustomPaths: \"{\\\"server\\\":\\\"<value>\\\"} */\n server: getCustoms('server') || SSP_URL.HOSTNAME,\n serviceIdForAllZones: null,\n /* Current site. The value is sent in payload of xhr requests */\n site: getLocation(),\n source: '',\n /* SSP static server. The value can be taken from window.localStorage.ssspCustomPaths: \"{\\\"staticServer\\\":\\\"<value>\\\"} */\n staticServer: getCustoms('staticServer') || getOverrides().static || SSP_URL.HOSTNAME,\n /* Testing mode for partners. If true, then url of xhr request has parameter `test=1`. On the server, such xhr requests aren't taken into account in statistics. */\n test: false,\n /* SSP API version. This is used in xhr requests. */\n version: 'v1',\n webId: null,\n};\nconfig.dotMeasureZones = config.dotMeasureZonesIds.map((zoneId) => `\"zoneId\":${zoneId}`);\n/**\n * Function for getting the configuration\n */\nexport const getConfig = () => config;\n/**\n * Updates the configuration object with the new valueswrite\n */\nexport const _writeConfig = (newConfig) => {\n Object.assign(config, newConfig);\n if (window.sssp) {\n Object.assign(window.sssp.conf, config);\n }\n};\n/**\n * Function that updates the configuration object with the new allowed values\n */\nexport const setConfig = (newConfig) => {\n const preparedConfig = prepareConfig(newConfig);\n if ('activeUser' in preparedConfig) {\n window.sznIVA?.IS?.updateIdentities({ login: preparedConfig.activeUser });\n }\n if (!preparedConfig) {\n return;\n }\n _writeConfig(preparedConfig);\n // synchronization of 3rd party cookies in iframes (e.g. apnexus, pubmatic, etc.)\n sync3rdparty();\n};\n","/**\n * Generate expiration string (UTC format)\n */\nconst getExpireTime = ([value, units]) => {\n const multipliers = {\n seconds: 1000,\n minutes: 60,\n hours: 60,\n days: 24,\n };\n const unitIndex = Object.keys(multipliers).findIndex((unit) => unit === units);\n const multiplierArray = !~unitIndex ? [] : Object.values(multipliers).slice(0, unitIndex + 1);\n const offset = multiplierArray.reduce((acc, current) => {\n return acc * current;\n }, value);\n const date = new Date();\n date.setTime(date.getTime() + offset);\n return date.toUTCString();\n};\n/**\n * Get whole string (serialized object with all cookie related params)\n */\nexport const getCookieString = (cookieData, remove = false) => {\n if (!cookieData.name) {\n throw new Error('No cookie name provided');\n }\n const defaults = {\n value: '',\n expires: [365, 'days'],\n path: '/',\n secure: null,\n sameSite: null,\n domain: null,\n };\n const cookieValues = { ...defaults, ...cookieData };\n const { name, value, expires, path, secure, sameSite, domain } = cookieValues;\n const expireTime = remove ? new Date(0).toUTCString() : getExpireTime(expires);\n const cookieValue = [\n `${name}=${value}`,\n `Expires=${expireTime}`,\n `Path=${path}`,\n domain ? `Domain=${domain}` : '',\n sameSite ? `SameSite=${sameSite}` : '',\n secure ? 'Secure' : '',\n ];\n const filteredValues = cookieValue.filter((el) => !!el);\n return filteredValues.join(';');\n};\n/**\n * Get single cookie tuple ([key, value])\n */\nconst getCookieTuple = (singleCookie) => {\n const separatorIndex = singleCookie.indexOf('=');\n const key = singleCookie.substring(0, separatorIndex);\n const value = singleCookie.substring(separatorIndex + 1);\n return [key.trim(), value.trim()];\n};\n/**\n * Get cookie value by name\n */\nexport const getCookie = (requestedCookieName) => {\n const cookies = document.cookie.split(';');\n return cookies.reduce((acc, item) => {\n if (item) {\n const [key, value] = getCookieTuple(item);\n if (key === requestedCookieName) {\n acc = value;\n }\n }\n return acc;\n }, null);\n};\n/**\n * Set cookie (value, exipration, domain, path, ...)\n */\nexport const setCookie = (cookieData) => {\n return (document.cookie = getCookieString(cookieData));\n};\n/**\n * Remove cookie (set negative expiration + empty value)\n */\nexport const removeCookie = (cookieData) => {\n return (document.cookie = getCookieString(cookieData, true));\n};\n","import { debugFactory } from '@iva/debugger';\nimport { LOG_COLOR_BG, LOG_COLOR_DEFAULT, SERVICE_NAME } from '../../constants';\nconst DEBUG_CONFIG = {\n name: SERVICE_NAME,\n bColor: LOG_COLOR_BG,\n fColor: LOG_COLOR_DEFAULT,\n};\nexport const dbg = debugFactory(DEBUG_CONFIG);\n/** Returns new url with \"sznivadbg\" and \"sznivadbgsave\" query params if they exist in the searchParams.\n * used for propagation iava dbg params from top level to crated iframe (its \"src\")\n * @param url - url (of frame) to append to.\n * @param searchParams - searchParams (from top level) to append, for example '?foo=bar&sznivadbg=DOT',\n * @returns new url with \"sznivadbg\" and \"sznivadbgsave\" query params, if they were in searchParams.\n */\nexport const copyDebugQuery = (url, searchParams) => {\n const queries = new URLSearchParams(searchParams);\n const sznivadbg = queries.get('sznivadbg');\n const sznivadbgsave = queries.get('sznivadbgsave');\n const parsed = new URL(url);\n if (sznivadbg) {\n parsed.searchParams.append('sznivadbg', sznivadbg);\n }\n if (sznivadbgsave) {\n parsed.searchParams.append('sznivadbgsave', sznivadbgsave);\n }\n return parsed.toString();\n};\n","import { dbg } from './dbg';\nexport const sendDataToExtension = (requestData, ads) => {\n // extension expects string values for element IDs\n const expectString = (data) => (typeof data === 'string' ? data : null);\n // all non-string IDs -> null\n const handleIdProperties = (collection) => collection.map(({ id, ...item }) => ({ ...item, id: expectString(id) }));\n // sanitize data before serialization\n const requestDataSanitized = {\n ...requestData,\n zones: handleIdProperties(requestData.zones),\n };\n const responseDataSanitized = handleIdProperties(ads);\n // send to extension\n try {\n const sspExtensionEvent = new CustomEvent('advertData', {\n detail: JSON.stringify({\n request: requestDataSanitized,\n response: responseDataSanitized,\n }),\n });\n window.dispatchEvent(sspExtensionEvent);\n }\n catch (e) {\n dbg('error', 'Failed to serialize data for SSP debug extensions');\n // no op\n }\n};\nexport const sendSspAdsLoaded = (ad, data) => {\n const event = new CustomEvent('sspadsloaded', {\n detail: { ad, data },\n });\n window.dispatchEvent(event);\n};\nexport const sendSspAdsChange = (data) => {\n const event = new CustomEvent('sspadschange', {\n detail: { data },\n });\n window.dispatchEvent(event);\n};\nexport const emitDebugEvent = (name, data) => {\n dbg(`Emiting event: ${name}`, data);\n const event = new CustomEvent(name, {\n detail: data,\n });\n window.dispatchEvent(event);\n};\nexport const sendAdbEvent = (iframe) => {\n var event = new CustomEvent('xiframe', {\n detail: {\n id: iframe.id,\n },\n });\n window.dispatchEvent(event);\n};\nexport const sendPawVisibilityEvent = (name, data) => {\n var event = new CustomEvent(name, {\n detail: data,\n });\n window.dispatchEvent(event);\n};\nexport const sendPageViewIdSetEvent = (data) => {\n const event = new CustomEvent('ssppvidset', {\n detail: { data },\n });\n window.dispatchEvent(event);\n};\nexport const sendSspLoaded = () => {\n window.dispatchEvent(new CustomEvent('ssploaded'));\n};\n","import { getUrlParams } from '#Modules/utils/helpers/getUrlParams';\n/**\n * Looks for meta tags within the document.head that are set by the SSP debug extension.\n */\nconst _getExtensionOverrides = () => {\n const metaTags = Array.from(document.head.querySelectorAll('meta[name^=\"ssp:\"]'));\n return metaTags.reduce((acc, current) => {\n acc[current.name.substring(4)] = current.content;\n return acc;\n }, {});\n};\n/**\n * Looks for URL parameters that are set by the SSP debug extension.\n */\nconst _getUrlOverrides = () => {\n const { sspredirect, sspstatic } = getUrlParams();\n return {\n ...(sspredirect && { redirect: sspredirect }),\n ...(sspstatic && { static: sspstatic }),\n };\n};\nexport const getOverrides = () => ({\n ..._getExtensionOverrides(),\n ..._getUrlOverrides(),\n});\n","export const extractId = ({ id: idOrElement }) => {\n if (idOrElement instanceof HTMLElement) {\n return idOrElement.id || undefined;\n }\n if (typeof idOrElement === 'string') {\n return idOrElement;\n }\n return undefined;\n};\n","const secondLevelTlds = [\n 'com.au',\n 'net.au',\n 'org.au',\n 'edu.au',\n 'gov.au',\n 'co.at',\n 'or.at',\n 'ac.uk',\n 'co.uk',\n 'gov.uk',\n 'ltd.uk',\n 'co.nz',\n];\n/* For special cases when we're on actual TLD (hint: localhost) */\nconst _isTld = (hostname) => !hostname.includes('.');\nconst _isSecondLevelTld = (hostname) => secondLevelTlds.some((tld) => hostname.endsWith('.' + tld));\nexport const getDomainName = (hostname) => {\n if (_isTld(hostname)) {\n return hostname;\n }\n const sliceValue = _isSecondLevelTld(hostname) ? -3 : -2;\n return hostname.split('.').slice(sliceValue).join('.');\n};\nexport const getCookieStorageDomainName = (hostname) => {\n const domainName = getDomainName(hostname);\n return _isTld(domainName) ? domainName : `.${domainName}`;\n};\n","export const getJson = (raw) => {\n try {\n return JSON.parse(raw);\n }\n catch {\n return null;\n }\n};\n","/**\n * Generates a base-36 string of a specified length, composed of numerals (0-9) and lowercase letters (a-z).\n */\nexport const getRandomString = (count = 50) => [...Array(count)].map(() => (~~(Math.random() * 36)).toString(36)).join('');\n","/**\n * Extracts GET parameters from URL as key: value structured object\n */\nexport const getUrlParams = () => {\n try {\n const urlObj = new URL(window.location.href);\n const searchParams = urlObj.searchParams.entries();\n return Array.from(searchParams).reduce((acc, current) => {\n const [key, value] = current;\n acc[key] = value;\n return acc;\n }, {});\n }\n catch {\n return {};\n }\n};\n/**\n * Extracts value for a single querystring-style hash parameter\n * For parameter without value, even without equal sign, returns empty string.\n * For non existing parameter, returns null.\n */\nexport const getParameterFromURLHash = (name, hash = window.location.hash) => {\n const result = new URLSearchParams(hash.substring(1)).get(name);\n if (!result) {\n return result;\n }\n return decodeURIComponent(result.replace(/\\+/g, ' '));\n};\n/**\n * Attempts to extract value of a querystring parameter from either regular URL searchParams or from URL hash\n */\nexport const getParamFromQuerystringOrHash = (name, url = window.location.href) => {\n try {\n const parsedUrl = new URL(url);\n return parsedUrl.searchParams.get(name) || getParameterFromURLHash(name, parsedUrl.hash);\n }\n catch {\n return null;\n }\n};\n","/**\n * Sets multiple attributes on a given DOM element.\n */\nexport const setElementAttributes = (element, attributePairs) => {\n Object.entries(attributePairs).forEach((attrs) => {\n const [attrName, attrValue] = attrs;\n element.setAttribute(attrName, attrValue);\n });\n};\n","import { dbg } from '#Modules/utils/dbg';\n// todo fix \"any\", when deps types are fixed (error_reporter)\nexport const getIS = () => window.sznIVA?.IS || null;\n// temp fix (Partial identitites submited to IS\n// -> inconsistence between window.login.current and settled LOGIN identity)\n// will be fixed inside IS in future\nconst _validLoginAgainstNativeLoginCurrent = (login) => {\n return !!(login?.state &&\n window.login?.current?.state &&\n login.state === window.login?.current?.state &&\n // we validate that both UIDs are not set (NULL|UNDEFINED) or bot are set and equal\n // eslint-disable-next-line eqeqeq\n login?.uid == window.login?.current?.uid);\n};\n/**\n * wait for usable login identity\n */\nexport const waitForLogin = (timeoutMs = 5000) => {\n const getLoginIS = () => getIS()?.getIdentity('login');\n // check -> listen -> timeout\n return new Promise((resolve) => {\n let unsubscribe = null;\n let timeout = null;\n // optimize by direct badge listening\n const badgeListener = () => loginResolver('badge', false);\n // badge event\n window.addEventListener('badge', badgeListener);\n // universal resolver\n const loginResolver = (type, forceTerminate, loginData) => {\n const loginIS = loginData || getLoginIS();\n const loginValidated = !!(loginIS && _validLoginAgainstNativeLoginCurrent(loginIS));\n // terminate all (timeout, listener, subscriber, promise)\n const _terminate = (loginToResolve) => {\n dbg(`waitForLogin (${type}):`, loginToResolve, { timeoutMs, timeout, unsubscribe });\n unsubscribe?.();\n window.clearTimeout(timeout);\n window.removeEventListener('badge', badgeListener);\n resolve(loginToResolve);\n return true;\n };\n if (loginValidated) {\n return _terminate(loginIS);\n }\n else if (forceTerminate) {\n return _terminate(null);\n }\n };\n // immediate availability (if no timeout -> resolve immediately value from IS)\n if (loginResolver('immediate', !timeoutMs)) {\n return;\n }\n // timeout\n timeout = window.setTimeout(() => {\n if (loginResolver('timeout', true)) {\n return;\n }\n }, timeoutMs);\n // subsribe to IS -> wait for \"login\" to be present (fresh with \"state\" property)\n unsubscribe = getIS()?.subscribeIdentities(({ identities, changes }) => {\n dbg('waitForLogin (subscribing):', { identities, changes });\n if (!changes.includes('login')) {\n return;\n }\n const login = identities.login;\n if (login?.state === 'fresh') {\n if (loginResolver('subscribed', false, login.value)) {\n return;\n }\n }\n }, true);\n });\n};\n","export const loadScript = (url) => new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.addEventListener('load', resolve);\n script.addEventListener('error', reject);\n script.src = url;\n document.head.appendChild(script);\n});\n","/**\n * Run callback inside try catch, is mostly intended for functions passed as\n * parameters to SSPs public functions, so that the caller knows about the error\n */\nexport const safelyExecuteCallback = (callback) => {\n try {\n return callback();\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n};\n","const sspScriptSrcRegEx = /($|\\/)ssp\\.js\\?/;\n/**\n * For \"ssp.js?cmpURL=xxx&dotURL=yyy\" function returns\n * {cmpURL: \"xxx\", dotURL: \"yyy\"}\n */\nexport const getScriptParams = () => {\n const paramsObj = {};\n const scripts = document.querySelectorAll('script') || [];\n const sspScript = Array.from(scripts).find(({ src }) => {\n return sspScriptSrcRegEx.test(src);\n });\n if (sspScript) {\n const params = new URLSearchParams(sspScript.src.split('?')[1]);\n for (const [key, value] of params.entries()) {\n paramsObj[key] = value;\n }\n }\n return paramsObj;\n};\n","import { getConfig } from '#Modules/config';\nimport { dbg } from '#Modules/utils/dbg';\n/**\n * Generic method for sending hits to ssp\n * @see https://sg1.glpages.seznam.net/ssp/ssp-server/doc/bussiness-logs/event-log.html\n */\nexport const sendHit = (urlParams) => {\n try {\n const { protocol, server } = getConfig();\n const hitURL = new URL(`${protocol}${server}/v2/event`);\n for (const param in urlParams) {\n hitURL.searchParams.append(param, urlParams[param]);\n }\n dbg('info', `### event hit to url ${hitURL} ###`);\n const i = new Image(1, 1);\n i.src = hitURL.href;\n }\n catch {\n dbg('error', `### event hit failed ###`);\n }\n};\n","/**\n * Returns current timestamp that is accurate to hours\n * eg. for Tue Mar 17 2020 15:04:01 GMT+0100 (StÅ™edoevropský standardnà Äas)\n * this returns 202031715\n */\nexport const getTimestamp = () => {\n const date = new Date();\n return [date.getFullYear(), date.getMonth() + 1, date.getDate(), date.getHours()].join('');\n};\n/** timestamp from start of lifecycle */\nlet initTimestamp = null;\n/**\n * Sets init timestamp\n */\nexport const setInitTimestamp = (timestamp = performance.now()) => {\n if (timestamp !== null && typeof timestamp !== 'number') {\n timestamp = null;\n }\n return (initTimestamp = timestamp);\n};\n/**\n * Gets time from init time till now\n */\nexport const getTimeFromInitTimestamp = () => (initTimestamp ? performance.now() - initTimestamp : null);\n","export const isTopWindow = (win = window) => {\n try {\n return (win.top === win.self || !!win.Cypress) && !win.frameElement;\n }\n catch {\n return win.top === win.self;\n }\n};\n","import { getConfig } from '#Modules/config';\nimport { getOverrides } from '#Modules/utils/getOverrides';\nexport const getAdserverUrl = ({ protocol, server, version, path, test }) => {\n const { redirect } = getOverrides();\n const host = redirect || server;\n return `${protocol}${host}/${version}${path}${test ? '?test=1' : ''}`;\n};\nexport const omitWww = (hostname) => hostname.replace(/^www\\./, '');\nexport const getImageBaseUrl = () => {\n const { protocol, staticServer } = getConfig();\n return `${protocol}${staticServer}/static/img`;\n};\n","import { waitForLogin } from '#Modules/utils/identityStorage';\nimport { getConfig } from '#Modules/config';\nexport const USER_TIMEOUT = 5000;\n/**\n * Helper methods for ssp.config.activeUser validation (structure for login|logout|forget is required)\n */\nconst _isValidRusId = (rusId) => rusId && typeof rusId === 'number' && !isNaN(rusId);\nconst _isValidUserFlags = (userFlags) => userFlags && typeof userFlags === 'string';\nconst _isValidActiveLoggedUser = (user) => {\n const { uid, state, encodedFlags } = user;\n return !!(_isValidRusId(uid) && ['login', 'logout'].includes(state) && _isValidUserFlags(encodedFlags));\n};\nconst _isValidActiveForgottenUser = (user) => {\n const { uid, state, encodedFlags } = user;\n return !!(!uid && state === 'forget' && !encodedFlags);\n};\nexport const isValidActiveUserInConfig = (activeUser) => {\n try {\n return !!(activeUser &&\n (_isValidActiveLoggedUser(activeUser) || _isValidActiveForgottenUser(activeUser)));\n }\n catch {\n return false;\n }\n};\n/**\n * await login/badge with fallback to sssp.config.activeUser\n */\nexport const getCurrentSznUser = async () => {\n const { activeUser, badge } = getConfig();\n // default ->do not wait for badge (0ms timeout)\n let timeout = 0;\n if (badge) {\n if (activeUser) {\n // badge + activeUser -> wait for badge (max 1000ms)\n timeout = 1000;\n }\n else {\n // badge -> wait for badge (max 5000ms)\n timeout = USER_TIMEOUT;\n }\n }\n return (await waitForLogin(timeout)) || activeUser || {};\n};\n","import { getRandomString } from '../utils/helpers/getRandomString';\nimport { extractId } from '../utils/helpers/extractId';\nimport { observePositions } from '../impress/visibilityMeasure';\n\nlet pvIdSet = false;\nlet positionsStore = [];\nlet positionWatcher = null;\nconst runPositionsWatcher = () => positionWatcher && positionWatcher();\n\n// Repeatingové zóny (vÃce výskytů s jednÃm zoneId) hitovaly visibleImpress pouze\n// z poslednà reklamy z této zóny. Bylo to způsobené tÃm, že do positionStoru se\n// pÅ™idávaly reklamy na základÄ› zoneId, takže dalÅ¡Ã se stejným pÅ™episovaly ty pÅ™edchozÃ.\n// Revertnul jsem úpravu [https://gitlab.seznam.net/iva/sssp/-/merge_requests/666],\n// která to dÄ›lala. Ta opravovala jiný problém, kdy se na SPA webech kumulovaly reklamy\n// v positionStoru, proto na Romanovu radu pÅ™idávám mazánà positionStoru a watcheru,\n// když pÅ™ijde událost `ssppvidset`.\n// PÅ™i prvnÃm startu se pvId nastavovuje až po naÄtenà DOTu, kdy už zpravidla\n// je nastavený positionWatcher. Aby se nevymazat pÅ™ed provedenÃm, kontroluji,\n// jestli jde o prvnà pvId set a v takovém pÅ™ÃpadÄ› nic nemažu.\n\nwindow.addEventListener('ssppvidset', () => {\n if (pvIdSet) {\n // Do not reset positionsWatcher if pvId is set for the first time.\n // It's triggered by DOT page load and the position watcher could be already set.\n positionsStore = [];\n positionWatcher = null;\n }\n pvIdSet = true;\n});\n\nconst getPositions = () => positionsStore;\nconst addPositions = (adObject) => {\n positionsStore = [...positionsStore, ...adObject];\n};\n\n/**\n * Update position container ID (useful for adding missing info in callback rendering use cases)\n */\nconst updatePositionId = (adObject) => {\n if (!adObject?.id || !adObject?.zoneId) {\n return;\n }\n positionsStore = positionsStore.map((p) =>\n p.ad.zoneId === adObject.zoneId && !p.ad.id\n ? { ...p, ad: { ...p.ad, id: adObject.id }, data: { ...p.data, id: adObject.id } }\n : p\n );\n\n // observe updated positions (for example newly added IDs)\n observePositions();\n};\n\nconst getCompleteData = (positions, ads) => {\n if (positions.length !== ads.length) {\n return;\n }\n\n return positions.map((position, index) => ({\n data: position,\n ad: {\n impressId: getRandomString(25),\n ...ads[index],\n },\n }));\n};\n\nconst getAdByImpressId = (impressId) => {\n return positionsStore.find((position) => {\n return impressId === position.ad.impressId;\n });\n};\n\nconst setContainerElement = (ad, element) => {\n const adObject = getAdByImpressId(ad.impressId);\n\n if (adObject) {\n adObject.containerElement = element;\n }\n};\n\n/**\n * Get basic / trimmed info about positions (sorted by zoneId asc)\n */\nconst getBasicPositionsInfo = () =>\n getPositions()\n .sort((a, b) => a.ad.zoneId - b.ad.zoneId)\n .map((p) => {\n const { zoneId, type, width, height, responsive, zoneName, sbr } = p.ad;\n\n return {\n zoneId,\n zoneName,\n type,\n width,\n height,\n sbr: !!sbr,\n id: extractId(p.ad),\n responsive: !!responsive,\n };\n });\n\n/**\n * Get positions (optinally register positions watcher and return function for unregister)\n */\nconst getRenderedAds = (watcher) => {\n const output = {};\n if (typeof watcher === 'function') {\n positionWatcher = () => {\n watcher(getBasicPositionsInfo());\n return true;\n };\n output.removeWatcher = () => (positionWatcher = null);\n }\n output.data = getBasicPositionsInfo();\n return output;\n};\n\n/**\n * Add or update position in positionsStore for visibility measuring\n * @param {Object} position - Position to add.\n * @param {string} position.id - Position's id.\n * @param {string} position.url - Visibility tracking URL.\n * @return {boolean} - True if anything was added, false otherwise.\n */\n\nconst updatePositionInStore = (position) => {\n if (!position?.id || !position?.url) {\n return false;\n }\n\n const { id, url } = position;\n\n const existingPosition = positionsStore.find((p) => p?.data?.id === id);\n\n if (existingPosition) {\n existingPosition.ad?.tracking?.visible.push(url);\n } else {\n positionsStore.push({\n data: {\n id,\n },\n ad: {\n id,\n zoneId: `${id}`,\n type: 'visibility-tracking',\n tracking: {\n visible: [url],\n },\n },\n });\n }\n\n return true;\n};\n\n/**\n * Add or update callback ad data in PositionsStore for visibility measuring\n * @param {Array<position>} - Positions to observe.\n */\nconst extendVisibilityTracking = (callbackAdData) => {\n if (!Array.isArray(callbackAdData)) {\n return;\n }\n\n // Try to add every position, returns true if any was added\n const changed = callbackAdData.map(updatePositionInStore).some(Boolean);\n\n if (changed) {\n // Only observe if anything has been added\n observePositions();\n }\n};\n\nexport {\n getPositions,\n getCompleteData,\n addPositions,\n getAdByImpressId,\n setContainerElement,\n getRenderedAds,\n getBasicPositionsInfo,\n runPositionsWatcher,\n updatePositionId,\n extendVisibilityTracking,\n};\n","import { dbg } from '../utils/dbg';\n\nlet cids = [];\nconst CIDS_LIMIT = 20;\n\n/**\n * PÅ™idává cids z parametru opt.cids\n * @param {Object} newCids cids z parametru opt.cids\n */\nconst setCids = (newCids) => {\n if (Array.isArray(newCids)) {\n cids = newCids.slice(0, CIDS_LIMIT);\n }\n};\n\n/**\n * Getter\n * @return {Array<String>} pole cidů\n */\nconst getCids = () => cids;\n\n/**\n * SbÃráme CIDy volitelnÄ› z ssp response\n * @param {Object} response Data od ssp backendu (/xhr)\n */\nconst addCidsFromResponse = (response) => {\n try {\n response.ads.forEach((ad) => {\n if (ad?.bidIds?.cid && !cids.includes(ad.bidIds.cid)) {\n cids.push(ad.bidIds.cid);\n }\n if (cids.length > CIDS_LIMIT) {\n cids.splice(0, cids.length - CIDS_LIMIT);\n }\n });\n } catch (e) {\n dbg('error', e);\n }\n};\n\nexport { setCids, getCids, addCidsFromResponse };\n","import { dbg } from '../utils/dbg';\nimport { getCompleteData, addPositions, runPositionsWatcher, getBasicPositionsInfo } from './adRepository';\nimport processAdData from './processAdData';\nimport { sendDataToExtension, sendSspAdsLoaded, sendSspAdsChange, emitDebugEvent } from '../utils/events';\nimport { getJson } from '../utils/helpers/getJson';\nimport { runInfoCallback } from '../utils/runInfoCallback';\nimport { getConfig } from '../config';\nimport viewCheckHandler from '../impress/visibilityMeasure';\nimport { appendDspInfoEl } from './dspTest';\nimport { requestGamAd } from '#Modules/ads/gam';\n\n/**\n * @module sssp/done\n */\n\n/**\n * Fills in potential missing information\n * @param {Object} ad - Response object\n * @param {Object} position - Position object\n * @param {String} requestId - Identifier of ad request\n */\nconst fillInAdData = (ad, position, requestId) => {\n ad.tracking = ad.tracking || { served: null, visible: null }; // video reklama VAST nema tracking\n ad.id = position.id;\n ad.requestId = requestId;\n};\n\nexport const processSspAd = (ad, data) => {\n // Attempt to run infoCallback, if set in ad position\n runInfoCallback(ad, data);\n\n if (ad.type === 'error') {\n addPositions([{ ad, data }]);\n\n const error = (ad.dbginfo && ad.dbginfo.error) || '';\n const errorMessage = `Position type error: ${error}`;\n\n emitDebugEvent('donePositionError', { ad });\n dbg('error', errorMessage);\n return;\n }\n\n /* Send event with ad data. Some services require this to work properly. */\n sendSspAdsLoaded(ad, data);\n\n /* Continue processing this particular ad */\n processAdData(ad, data);\n};\n\n/**\n * Zpracuje reklamu po nacteni\n * @param serverResponse {Object} - reklama z sssp\n * @param positions {Object} - definice pozic\n * @param opt {Object} - volitelny konfiguracni objekt\n * @param requestData {Object} - originálnà pozadavek na reklamu\n */\nconst done = async function (serverResponse, positions, opt, requestData) {\n const { callCallbackOnError } = getConfig();\n\n dbg('info', '### starting _done ###');\n emitDebugEvent('doneCallStart', { positions });\n\n const parsedData = getJson(serverResponse);\n\n if ((parsedData?.error || !parsedData) && callCallbackOnError) {\n const errorMessage = parsedData?.error ? parsedData : { error: 'No valid JSON data from server response.' };\n requestData.zones.forEach((ad) => {\n ad.callback(errorMessage, ad);\n });\n }\n\n if (!parsedData) {\n return;\n }\n const { ads, requestId } = parsedData;\n if (!ads) {\n return;\n }\n\n emitDebugEvent('doneDataParsed', { parsedData });\n\n ads.forEach((ad, index) => {\n fillInAdData(ad, positions[index], requestId);\n });\n // Send raw request/response data to Chrome extension\n sendDataToExtension(requestData, ads);\n\n const completeData = getCompleteData(positions, ads);\n\n // volani z AMPHTML\n if (opt && opt.AMPcallback) {\n // eslint-disable-next-line new-cap\n opt.AMPcallback(ads);\n emitDebugEvent('doneAMPCallback', { ads });\n return;\n }\n\n const processPromises = completeData.map(async ({ ad, data }) => {\n // Try to request GAM first\n const isGamRequested = await requestGamAd(ad, data);\n\n if (isGamRequested) {\n dbg('info', 'Request GAM ad, skipping further processing.');\n\n return;\n }\n\n processSspAd(ad, data);\n });\n\n await Promise.all(processPromises);\n\n emitDebugEvent('doneEnded', {});\n\n // Init visibility measuring\n viewCheckHandler();\n emitDebugEvent('viewHandlerEnabledCall', {});\n\n // if watcher registered, call it with udpated positions\n runPositionsWatcher();\n\n // Generating a custom event 'sspadschange' with ad data\n sendSspAdsChange(getBasicPositionsInfo());\n\n appendDspInfoEl(parsedData);\n};\n\nexport default done;\n","export const runInfoCallback = (ad, data) => {\n if (typeof data.options?.infoCallback !== 'function') {\n return;\n }\n const { data: positionData, tracking, ...clearedAdResponse } = ad;\n data.options.infoCallback(clearedAdResponse, data);\n};\n","import { dbg } from '../utils/dbg';\nimport { getUrlParams } from '../utils/helpers/getUrlParams';\nimport { getImageBaseUrl } from '../utils/urls';\n\nexport const getCurrentDateFormatted = () => {\n return new Date().toLocaleDateString('nl-NL', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n });\n};\n\nexport const isItDspTestPage = () => {\n const url = window.location.href;\n const urlObj = new URL(url);\n const keys = Array.from(urlObj.searchParams.keys());\n return keys.some((key) => key.includes('ssp_zoneId') || key.includes('ssp_crid') || key.includes('ssp_bannerid'));\n};\n\nexport const parsedDspUrlParams = () => {\n const urlObj = new URL(window.location.href);\n const keys = Array.from(urlObj.searchParams.keys());\n const trimKeyRegex = /^ssp_(.*?)(-\\d+)?$/;\n const valuesToBeParsedToNumber = new Set(['zoneId', 'width', 'height', 'minWidth', 'minHeight']);\n\n const dspParams = keys.reduce((acc, key) => {\n const identificator = key.match(/\\d+/g);\n if (!acc[identificator]) {\n acc[identificator] = {};\n }\n const trimmedKey = key.replace(trimKeyRegex, '$1');\n acc[identificator][trimmedKey] = valuesToBeParsedToNumber.has(trimmedKey)\n ? Number(urlObj.searchParams.get(key))\n : urlObj.searchParams.get(key);\n return acc;\n }, {});\n\n return Object.values(dspParams);\n};\n\nexport const getDspParamsForZone = ({ zone, isVastRequest }) => {\n const dspParams = parsedDspUrlParams();\n const positionKeys = ['width', 'height', 'minHeight', 'minWidth'];\n const previewKeys = ['adType', 'bannerid', 'crid', 'deliveryType', 'dsp', 'mediaType'];\n\n const dspParamsForZone = dspParams.find((param) => {\n // for VAST requests we want to show the DSP params only if the target is '1'\n const isTargetMatch = isVastRequest ? param.target === '1' : param.target !== '1';\n\n // Check if the zoneId matches or if crid or bannerid are present with dsp 'advert'\n const isZoneMatch =\n param.zoneId === zone.zoneId ||\n (param.crid && !param.zoneId) ||\n (param.bannerid && param.dsp?.toLowerCase() === 'advert' && !param.zoneId);\n\n return isTargetMatch && isZoneMatch;\n });\n\n if (!dspParamsForZone) {\n dbg('DSP: no valid params or combination of params for position:', zone);\n return null;\n }\n\n const zoneParams = Object.entries(dspParamsForZone).reduce((acc, [key, value]) => {\n // VAST requests should contain only the preview keys\n if (!isVastRequest && positionKeys.includes(key)) {\n acc[key] = value;\n }\n\n if (previewKeys.includes(key)) {\n if (!acc.preview) {\n acc.preview = {};\n }\n\n acc.preview[key] = value;\n }\n\n return acc;\n }, {});\n\n dbg('DSP: added DSP params into position:', zone);\n return zoneParams;\n};\n\nexport const createDspStripeEl = ({ baseUrl, message, zoneId, isErrorStripe }) => {\n const stripeEl = document.createElement('div');\n stripeEl.id = isErrorStripe ? `dspTestError${zoneId ? '-' + zoneId : ''}` : 'dspTestInfo';\n stripeEl.style.cssText = `\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n background-color: ${isErrorStripe ? '#F08B34' : '#0C99CA'};\n color: #FFFFFF;\n font-family: Arial, \"Helvetica Neue\", Helvetica, sans-serif;\n font-size: 12px;\n font-weight: 400;\n line-height: 1.25;\n `;\n\n stripeEl.innerHTML = `\n <img src=\"${baseUrl}${isErrorStripe ? '/dspTest-error.svg' : '/dspTest-info.svg'}\" alt=\"Adpreview\" height=\"16\" width=\"16\" >\n <span style=\"font-weight: 700;\">Živý náhled.</span>\n <span>${message}</span>\n `;\n\n return stripeEl;\n};\n\nexport const shouldShowDspStripe = (urlParams) => {\n // should show stripe for dsp test page\n const isDspTestPage = isItDspTestPage();\n // should NOT show stripe if params below are set\n const shouldHideInfoStripe = urlParams?.ssp_infoStripe === 'false';\n // TEMPORARY disable on screenshotator page for now, screenshotator logic still keeped in place\n const isScreenshotatorPage = urlParams?.screenshot === 'true';\n const isVastDspTestPage = Object.entries(urlParams).some(\n ([key, value]) => key.includes('ssp_target') && value === '1'\n );\n\n return ![shouldHideInfoStripe, isVastDspTestPage, isScreenshotatorPage, !isDspTestPage].some(Boolean);\n};\n\nexport const createDspInfoStripe = () => {\n const urlParams = getUrlParams();\n\n // info stripe should be not shown on screenshotator page, vast dsp test page or if ssp_infoStripe is set to false\n // if we don't want to show into stripe just return no-operation function\n if (!shouldShowDspStripe(urlParams)) {\n // no-op\n return () => {};\n }\n\n dbg('info', 'DSP test page detected. Appending DSP info stripe.');\n\n const dspBarEl = document.createElement('div');\n dspBarEl.style.cssText = `\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: 9999;\n width: 100%;\n `;\n\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', () => document.body.appendChild(dspBarEl));\n } else {\n document.body.appendChild(dspBarEl);\n }\n\n const shadow = dspBarEl.attachShadow({ mode: 'open' });\n\n const baseUrl = getImageBaseUrl();\n const message =\n urlParams?.screenshot === 'true'\n ? `Screenshot poÅ™Ãzen ${getCurrentDateFormatted()}`\n : 'Tento náhled je vizualizace jak může vaÅ¡e reklama vypadat na tomto webu.';\n\n const infoBarEl = createDspStripeEl({ baseUrl, message, isErrorStripe: false });\n shadow.append(infoBarEl);\n\n const dspParams = parsedDspUrlParams();\n let showErrorBar = true;\n\n return (serverResponse) => {\n const hasEveryZoneError = serverResponse.ads.every((ad) => ad?.dbginfo?.error);\n\n // There may be multiple XHR requests sent in one page visit. They may also be delayed until user scrolls down far enough. In a case where the first request is successful, we do not want to show the error stripe ever again, even if the following requests fail.\n if (showErrorBar && !hasEveryZoneError) {\n showErrorBar = false;\n }\n\n dspParams.forEach(({ crid, zoneId }) => {\n const responseZoneForDSP = serverResponse.ads.find((ad) => ad.zoneId === zoneId);\n if (zoneId && crid && responseZoneForDSP?.dbginfo?.error) {\n const stripeEl = createDspStripeEl({\n baseUrl,\n message: `Neplatná konfigurace AdPreview pro zoneId: ${zoneId}.`,\n isErrorStripe: true,\n zoneId,\n });\n shadow.prepend(stripeEl);\n }\n\n if (!zoneId && crid && hasEveryZoneError && showErrorBar) {\n const stripeEl = createDspStripeEl({\n baseUrl,\n message: 'VaÅ¡Ã reklamÄ› aktuálnÄ› neodpovÃdá žádná zóna pro vykreslenà (zkuste scrollovat na konec stránky).',\n isErrorStripe: true,\n });\n shadow.prepend(stripeEl);\n showErrorBar = false;\n }\n\n if (!zoneId && crid && !hasEveryZoneError) {\n const errorStripeEl = shadow.querySelector('#dspTestError');\n errorStripeEl?.remove();\n }\n });\n };\n};\n\nexport const appendDspInfoEl = createDspInfoStripe();\n","import { dbg } from '../utils/dbg';\nimport writeAd from '../rendering/writeAd';\nimport { safelyExecuteCallback } from '../utils/safeCallback';\nimport { logBackgroundAdReload } from '../impress/backgroundAdsReloads';\n\n/**\n * Callback vypisu url kde se nachazi JSON nebo HTML data banneru\n * @param {Object} ad reklama z ssp\n * @param {Object} data popis pozice\n */\nconst urlDataToCallback = function (ad, data) {\n /* nejprve vyrobit instanci XHR */\n if (window.XMLHttpRequest) {\n var _xhr = new XMLHttpRequest();\n } else {\n return;\n }\n\n /* kvuli vice volani getAds si musim pamatovat aktualni data o pozicich */\n (function (ad, data) {\n var url = ad.data; // url na SKLIK API\n\n var errHandler = function (e, ad, data) {\n var d = e.target.responseText;\n\n if (d === '') {\n ad.type = 'error';\n if (data.callback) {\n data.callback(ad, data);\n return true;\n } else {\n writeAd(ad, data);\n return true;\n }\n } else {\n return false;\n }\n };\n\n _xhr.onload = function (e) {\n // pokud uzivatel zadal id, znamena to ze budeme stazeny kod vypisovat do stranky primo my\n // plati pro vast_url\n // pokud je typ json_url - nesmi byt zadan soucasne callback a id\n // v ostatnich pripadech ano, a vyuzijeme to k mereni visibility\n\n var fail = errHandler(e, ad, data); // zkontrolujeme odpoved\n\n if (fail) {\n return; //nechceme pokracovat\n }\n\n ad.data = e.target.responseText; // ziskana data z URL pridame do ad objektu\n\n if (ad.type === 'json_url') {\n ad.type = 'json';\n logBackgroundAdReload(ad);\n safelyExecuteCallback(() => data.callback(ad, data));\n } else {\n ad.type = 'code';\n if (data.callback) {\n logBackgroundAdReload(ad);\n safelyExecuteCallback(() => data.callback(ad, data));\n } else {\n writeAd(ad, data);\n }\n }\n };\n\n _xhr.onerror = function (e) {\n errHandler(e, ad, data); // zkontrolujeme odpoved\n };\n\n _xhr.open('GET', url);\n _xhr.withCredentials = true;\n _xhr.send();\n dbg('sending requset to SKLIK JSON API', url);\n })(ad, data);\n};\n\nexport default urlDataToCallback;\n","import { dbg } from '../utils/dbg';\nimport urlDataToCallback from './urlDataToCallback';\nimport writeAd from '../rendering/writeAd';\nimport { setupDocumentWrite } from '../utils/documentwrite';\nimport { getCompleteData, addPositions } from './adRepository';\nimport { emitDebugEvent } from '../utils/events';\nimport { hitAction } from '../impress/testMetric';\nimport { logBackgroundAdReload } from '../impress/backgroundAdsReloads';\n\n/**\n * Vykreslà reklamu nebo zavolá callback.\n * @param adInput {Object} - jedna reklama z ssp\n * @param dataInput {Object} - definice pozice\n */\nconst processAdData = (adInput, dataInput) => {\n emitDebugEvent('processAdDataCallStart', { adInput, dataInput });\n dbg('info', '### starting _processAdData ###');\n\n /* Attempt to replace document.write if enabled */\n setupDocumentWrite();\n\n const adObjects = getCompleteData([dataInput], [adInput]);\n addPositions(adObjects);\n\n const { ad, data } = adObjects[0];\n\n if (!ad?.type || !data) {\n dbg('error', 'invalid ad data', { ad, data });\n return;\n }\n\n if (data.callback && typeof data.callback === 'function') {\n dbg('info', '## call external callback for position', data.zoneId);\n switch (ad.type) {\n case 'vast':\n dbg('call VAST custom callback with:', data.callback, data);\n hitAction('processAdDataVAST', ad.zoneId);\n logBackgroundAdReload(ad);\n data.callback(data.options?.doNotParseVastData ? ad : ad.data, data);\n break;\n case 'code_url':\n dbg('call CODE_URL custom callback with:', data.callback, data);\n hitAction('processAdDataCodeURL', ad.zoneId);\n urlDataToCallback(ad, data);\n break;\n case 'json_url':\n if (data.options && data.options.jsonPreloadDisabled) {\n dbg('call JSON_URL custom callback with:', data.callback, data);\n hitAction('processAdDataJSONURLCallbackPreloadDisabled', ad.zoneId);\n logBackgroundAdReload(ad);\n data.callback(ad, data);\n } else {\n dbg('call JSON_URL custom callback with (urlDataToCallback):', data.callback, data);\n hitAction('processAdDataJSONURLCallback', ad.zoneId);\n urlDataToCallback(ad, data);\n }\n break;\n default: // vast_url, json\n hitAction('processAdDataDefault', ad.zoneId);\n logBackgroundAdReload(ad);\n data.callback(ad, data);\n }\n } else {\n if (ad.type === 'code_url') {\n // url_code je specificky, muze a nemusi mit vlastni callback\n urlDataToCallback(ad, data);\n } else {\n dbg('info', '## call writeAd for position', data.zoneId);\n hitAction('processAdDataWriteAd', ad.zoneId);\n writeAd(ad, data);\n }\n }\n};\n\nexport default processAdData;\n","const ua = window.navigator.userAgent;\n\n/** Whitelisted substrings in User Agent string */\nconst browserWhitelist = ['Firefox', 'Opera', 'OPR', 'SznProhlizec', 'Edg', 'MSIE', 'Trident/'];\n\n/**\n * Tries to fish out whether we're in Chrome and nothing else.\n * See #CMP-413\n * @returns {boolean}\n */\nconst isThisChrome = () => {\n /** Blacklisted substrings in User Agent string */\n const browserBlacklist = ['Firefox', 'OPR', 'CriOS', 'Edg', 'SznProhlizec', 'UCBrowser', 'YaBrowser', 'Yowser'];\n\n if (!ua.includes('Chrome')) {\n return false;\n }\n\n return !browserBlacklist.some((browserName) => {\n return ua.includes(browserName);\n });\n};\n\n/**\n * Tries to fish out whether we're in Safari browser.\n * @returns {boolean}\n */\nexport const isThisSafari = () => ~ua.indexOf('Safari/') && !~ua.indexOf('Chrome/') && !~ua.indexOf('Chromium/');\n\n/**\n * Tries to fish out whether we're in allowed browser.\n * @returns {boolean}\n */\nconst isThisAllowedBrowser = () => {\n return (\n isThisChrome() ||\n isThisSafari() ||\n browserWhitelist.some((browserName) => {\n return ua.includes(browserName);\n })\n );\n};\n\nexport const isAllowed = isThisAllowedBrowser();\n","import { INT_PAW_LINK } from '../../constants';\n\n// CSS selector for paws\nconst CSS_PAWS = `div.packa > a[href=\"${INT_PAW_LINK}\"]`;\n\n// URLs\nconst urls = {\n 1: 'https://partner.seznam.cz/app/ochrana-soukromi', // with our CMP; no our CMP, but cookie copied\n 2: 'https://partner.seznam.cz/cmp-externi/', // no our CMP, no cookie copied\n};\n\n// Link\nlet link = null;\nlet cmpCanManageAds = null;\n\n/**\n * Set the link\n * @param {boolean} canManageAds\n */\nconst setLink = (canManageAds) => {\n link = canManageAds ? urls[1] : urls[2];\n /* if (inCmp2Whitelist(window.location.hostname)) { TODO az bude CMP2 externi, tak pridat version\n\t\tlink += '?cmpversion=2';\n\t} */\n};\n\n/**\n * Modifies href attribute of the paw link\n * @param {*} pawLink node element\n */\nconst changeLink = (pawLink) => {\n if (pawLink && pawLink.href && link) {\n pawLink.href = link;\n }\n};\n\n/**\n * Returns correct url for paw in ad\n * @returns {String} URL for paws in ad\n */\nconst getExternalPawsUrl = () => {\n const url = cmpCanManageAds\n ? 'https://partner.seznam.cz/app/ochrana-soukromi'\n : 'https://partner.seznam.cz/cmp-externi/';\n return url;\n};\n\n/**\n * Starts observer for paw links\n */\nconst checkChangesInDOM = () => {\n if (typeof MutationObserver === 'undefined') {\n return;\n }\n\n const callback = function (mutationsList) {\n //observer\n for (const index in mutationsList) {\n const mutation = mutationsList[index];\n if (mutation.type === 'childList') {\n const nodes = Array.from(mutation.addedNodes);\n nodes.forEach((node) => {\n if (node?.nodeName.toLowerCase() === 'div' && node.className.indexOf('sssp-posCont') !== -1) {\n const pawLink = node.querySelector(CSS_PAWS);\n changeLink(pawLink);\n }\n });\n }\n }\n };\n const observer = new MutationObserver(callback);\n observer.observe(document.body, { attributes: false, childList: true, subtree: true });\n};\n\n/**\n * Set paw links in the page\n * @param {boolean} canManageAds\n */\nconst setPaws = (canManageAds) => {\n setLink(canManageAds);\n cmpCanManageAds = canManageAds;\n checkChangesInDOM();\n};\n\nexport { getExternalPawsUrl, setPaws };\n","export const isStandAlone = () => !!window._sspStandalone;\nexport const doNotInit = () => !!window._sspDoNotInit;\nexport const doNotLoadDOT = () => !!window._sspDoNotLoadDOT;\nexport const doNotLoadCMP = () => !!window._sspDoNotLoadCMP;\nexport const adLoadWaitForImpress = () => !!window._sspAdLoadWaitForImpress;\n","import { dbg } from '../utils/dbg';\n\n/**\n * @module sssp/customs\n * @desc Module for customs solutions in <code>window.localStorage.ssspCustomPaths</code>.\n */\n\nconst STORAGE_OBJECT_NAME = 'ssspCustomPaths';\nconst ALLOWED_KEYS = [\n 'server', // server where ads will be served\n 'staticServer', // ssp static server\n 'iframeStaticServer', // ssp static server for iframe with reklama.html\n 'cmpServer', // cmp server\n 'cmp', // cmp script directory\n 'dot', // dot-small.js url\n 'adform', // adform_sync.html url\n];\n\nconst isStorageSupported = (() => {\n const test = 'localStorageTest';\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch (e) {\n return false;\n }\n})();\n\n/**\n * Sets custom path of resource.\n * Can be called more times.\n *\n * @param {string} key one of allowed keys\n * @param {string} value\n */\nexport const setCustomPath = (key, value) => {\n if (!isStorageSupported || !ALLOWED_KEYS.includes(key)) {\n return;\n }\n\n const paths = localStorage.getItem(STORAGE_OBJECT_NAME);\n\n try {\n if (paths) {\n // parse data and delete local storage\n const data = JSON.parse(paths);\n localStorage.removeItem(STORAGE_OBJECT_NAME);\n\n // update and save\n data[key] = value;\n localStorage.setItem(STORAGE_OBJECT_NAME, JSON.stringify(data));\n dbg('info', '### custom paths - object updated.');\n } else {\n // create new object and save\n const newData = {};\n newData[key] = value;\n localStorage.setItem(STORAGE_OBJECT_NAME, JSON.stringify(newData));\n dbg('info', '### custom paths - new object created.');\n }\n } catch (e) {\n dbg('info', '### custom paths - data are invalid.');\n }\n};\n\n/**\n * Gets custom value from local storage if found. Otherwise returns null\n *\n * @param {string} key one of allowed keys\n * @returns {string|null}\n */\nexport const getCustoms = (key) => {\n if (!isStorageSupported || !ALLOWED_KEYS.includes(key)) {\n return null;\n }\n\n const paths = localStorage.getItem(STORAGE_OBJECT_NAME);\n\n if (!paths) {\n return null;\n }\n\n try {\n const data = JSON.parse(paths);\n\n if (data[key]) {\n dbg('info', '### custom paths - ' + key + ' is set to: ' + data[key]);\n return data[key];\n }\n } catch (e) {\n return null;\n }\n return null;\n};\n","import { sendHit } from '../utils/sendHit';\n\nexport const logBackgroundAdReload = (ad, { isCalledFromWriteAd = false } = {}) => {\n if (document.visibilityState === 'hidden') {\n const { requestId, zoneId, impressId } = ad;\n const t = isCalledFromWriteAd ? 'reload' : 'probablereload';\n sendHit({ r: requestId || 0, z: zoneId, i: impressId || 0, t, v: '1' });\n }\n};\n","import { getScriptParams } from '../utils/scriptParams';\nimport { getCustoms } from '../customs';\nimport { loadScript } from '../utils/loadScript';\nimport { INTERNAL_SERVICES } from '../../constants';\n/* global DOT */\n\nconst { dotUrl } = getScriptParams();\n\nlet dotInstance = null;\nlet dotTimer = null;\n\nconst dotConfig = {\n service: 'sklikp',\n load: false,\n mousedown: false,\n};\n\nconst dotFallback = {\n hit: () => null,\n getNewInstance: {},\n _cfg: {},\n fallback: true,\n};\n\nconst dotSource = dotUrl || getCustoms('dot') || '//h.seznam.cz/js/dot-small.js';\n\nconst configureDot = () => {\n if (window.DOT && window.DOT.getNewInstance) {\n dotInstance = DOT.getNewInstance();\n dotInstance.cfg(dotConfig);\n window.dispatchEvent(new CustomEvent('ssspdotconfigured'));\n } else {\n throw new Error('### DOT loaded but no DOT instance in window ###');\n }\n\n window.clearTimeout(dotTimer);\n};\nconst waitingForLoadDot = () =>\n new Promise((resolve, reject) => {\n dotTimer = window.setTimeout(() => {\n if (window.DOT) {\n // nejakym jinym zpusobem se mohl dostat do do stranky .. vyuzijeme to\n if (!window.DOT.isConfigured()) {\n try {\n configureDot();\n resolve();\n } catch (err) {\n reject(err);\n }\n }\n resolve();\n }\n reject('no DOT');\n }, 5000);\n });\n\nconst loadDot = () =>\n new Promise((resolve, reject) => {\n const configure = () => {\n try {\n configureDot();\n } catch (err) {\n reject(err);\n }\n };\n\n if (!window.DOT) {\n if (!INTERNAL_SERVICES.includes(window.location.hostname)) {\n return loadScript(dotSource)\n .then(() => {\n window.dispatchEvent(new CustomEvent('ssspdotloaded'));\n configure();\n return resolve();\n })\n .catch((error) => {\n dotInstance = dotFallback;\n return reject(error);\n });\n }\n return waitingForLoadDot()\n .then(() => {\n dotInstance = window.DOT;\n resolve();\n })\n .catch((error) => {\n dotInstance = dotFallback;\n return reject(error);\n });\n }\n\n if (DOT.isConfigured() === false) {\n dotTimer = window.setTimeout(() => {\n /* DOT exists, but was not configured by the service. Attempting to set up our own instance. */\n if (window.DOT.isConfigured && !DOT.isConfigured()) {\n configure();\n } else {\n dotInstance = DOT;\n }\n resolve();\n }, 2000);\n\n return window.addEventListener(DOT.setAfterCfgEvent(), () => {\n window.clearTimeout(dotTimer);\n dotInstance = DOT;\n resolve();\n });\n }\n\n dotInstance = DOT;\n resolve();\n });\n\nconst setDot = () => {\n dotInstance = DOT;\n};\n\nconst getDot = () => dotInstance;\n\nexport { loadDot, getDot, setDot };\n","import { getConfig } from '../config';\nimport { sendHit } from '../utils/sendHit';\n\n/**\n * Formovánà hitError na základÄ› impress/miss url\n * @param urlList (Array) - pole impress URL\n */\nconst hitError = function (urlList) {\n const { server } = getConfig();\n const regexp = new RegExp(\n server.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&') +\n `\\/[a-zA-Z0-9]+?\\/(impress|miss)[\\?]{1}r=[\\-a-zA-Z0-9]{36}&z=[^\\? &]+&i=[^\\? &]+&`\n );\n const urlImpress = urlList.find((url) => regexp.test(url));\n if (!urlImpress) {\n return;\n }\n\n const urlParams = new URL(urlImpress).searchParams;\n const hitErrorParams = {\n r: urlParams.get('r'),\n z: urlParams.get('z'),\n i: urlParams.get('i'),\n t: 'hitError',\n };\n\n sendHit(hitErrorParams);\n};\n\nexport default hitError;\n","import { dbg } from '../utils/dbg';\nimport hitError from './hitError';\n\n/**\n * Zapocitava served (miss, impress, visible) hity\n * @param urlList (Array) - pole impress URL\n */\nconst served = (urlList) => {\n if (!Array.isArray(urlList)) {\n return; // neni served - video reklama\n }\n\n dbg('info', '### served hits ###');\n urlList.forEach((item) => {\n dbg('served URL:', item);\n\n var i = new Image(1, 1);\n if (item?.includes('i.seznam.cz')) {\n i.onerror = () => {\n dbg('error', 'Failed count served URL:', item);\n hitError(urlList);\n };\n }\n i.src = item;\n });\n};\n\nexport default served;\n","import { getConfig } from '../../config';\nimport { getCustoms } from '../../customs';\nimport { dbg } from '../../utils/dbg';\nimport { CONSENT } from '@sklik/cmp2-common';\n\nvar finished3rdparty = false;\n/**\n * Sync 3rd party systémů a změřenà pageview\n */\n\nfunction iframeLoaded(e) {\n var iframe = e.target;\n iframe.removeEventListener('load', iframeLoaded);\n setTimeout(() => {\n if (iframe && iframe.parentNode instanceof Element) {\n iframe.parentNode.removeChild(iframe);\n }\n }, 5000);\n}\n\nfunction createIframe(src) {\n var iframe = document.createElement('iframe');\n var container = document.body || document.head;\n iframe.frameBorder = 0;\n iframe.setAttribute('style', 'position:absolute; top:-1px;left:-1px;visibility:hidden; width: 1px; height: 1px;');\n iframe.src = src;\n iframe.addEventListener('load', iframeLoaded);\n container.appendChild(iframe);\n}\n\nvar sync3rdparty = function () {\n const consent = CONSENT.getConsentFromCookieList();\n if (finished3rdparty || !consent?.purposeOne) {\n return;\n }\n dbg('info', '### starting 3rd party cookie sync ###');\n finished3rdparty = true;\n const { staticServer } = getConfig();\n\n /*synchronizace pubmaticu */\n createIframe(\n '//ads.pubmatic.com/AdServer/js/user_sync.html?p=49307&predirect=' +\n encodeURIComponent('//' + staticServer + '/static/html/sync/pub_sync.html?pmId=')\n );\n\n /*synchronizace apnexuxu */\n createIframe('//secure.adnxs.com/getuid?//' + staticServer + '/static/html/sync/apn_sync.html?uid=' + '$UID');\n\n /*synchronizce adformu*/\n const adformUrl = getCustoms('adform') || '//h.seznam.cz/html/adform_sync.html';\n createIframe(adformUrl);\n\n /*synchronizace Criteo*/\n let gdprPart = 'gdpr=0';\n if (consent?.consentString) {\n gdprPart = 'gdpr=1&gdpr_consent=' + consent.consentString;\n }\n createIframe(\n '//dis.criteo.com/dis/usersync.aspx?r=153&p=335&cp=seznam&cu=1&' +\n gdprPart +\n '&url=' +\n encodeURIComponent('https://' + staticServer + '/static/html/sync/criteo_sync.html?userid=@@CRITEO_USERID@@')\n );\n};\n\nexport default sync3rdparty;\n","import { getConfig } from '../config';\nimport { getDot } from '../impress/dotLoader';\n\nexport const hitAction = (action, zoneId) => {\n const { dotMeasureZonesIds } = getConfig();\n const DOT = getDot();\n if (dotMeasureZonesIds.includes(zoneId)) {\n DOT.hit('event', {\n d: {\n action,\n zoneId,\n },\n });\n }\n};\n","import { dbg } from '../utils/dbg';\nimport { getPositions } from '../ads/adRepository';\nimport { isBranding } from '../rendering/getPawHTML';\n\nlet observer = null; // one instance for each ssp script\nconst elmsIntersections = {}; //elms (ids) being measured (timer)\nconst VISIBLE_FOR = 1000; // ms treshlold for visibility to be valid\n\n// - element is being registered for intersection\n// - element already intersected enough)\n// - element intersection status / timer reset\nconst resetElmIntersection = (elmId, purge = false) => {\n if (elmsIntersections[elmId] && elmsIntersections[elmId].timer) {\n window.clearTimeout(elmsIntersections[elmId].timer);\n }\n if (purge) {\n delete elmsIntersections[elmId];\n } else {\n elmsIntersections[elmId] = {};\n }\n};\n\n// element is being interseted (start / persist timer)\nconst setElmIntersection = (elmId) => {\n elmsIntersections[elmId] = {\n timer: (elmsIntersections[elmId] || {}).timer || window.setTimeout(() => unobserveAndSend(elmId), VISIBLE_FOR),\n };\n};\n\n// \"forget\" all already intersected elements\nexport const clearElmsIntersections = () => {\n for (const elmId in elmsIntersections) {\n resetElmIntersection(elmId, true);\n }\n};\n\n/**\n * Perform visibility hits\n */\nconst visible = function (visibleUrls) {\n if (!visibleUrls) {\n return; // non visible - video ad\n }\n dbg('info', '### visible hits ###');\n visibleUrls.forEach(function (item) {\n dbg('visible URL:', item);\n var i = new Image(1, 1);\n i.onerror = () => dbg('error', 'Failed count visible URL:', item);\n i.src = item;\n });\n};\n\n/**\n * Get HTMLElement (by ID or reference)\n */\nconst getElementFromRepositoryItem = (adUnit) => {\n const pos = adUnit.data;\n let adElement = null;\n if (pos.id) {\n adElement = typeof pos.id === 'string' ? document.getElementById(pos.id) : pos.id;\n } else if (adUnit.containerElement) {\n adElement = adUnit.containerElement;\n }\n\n return adElement;\n};\n\n/**\n * AdUnit created in adRepository, but element not present in dom -> wait (check max 3x)\n */\nconst waitForElement = (adUnit) => {\n let tries = 0;\n return new Promise((resolve) => {\n const interval = window.setInterval(() => {\n if (tries >= 3) {\n window.clearInterval(interval);\n resolve(null);\n }\n const el = getElementFromRepositoryItem(adUnit);\n if (el) {\n window.clearInterval(interval);\n resolve(el);\n }\n tries++;\n }, 250);\n });\n};\n\n/**\n * Is visible for minimum time interval? Send visibility impress + unobserve\n */\nconst unobserveAndSend = (elmId) => {\n const elmById = document.getElementById(elmId);\n const adUnit = getPositions().find((pos) => elmById && getElementFromRepositoryItem(pos) === elmById);\n if (adUnit) {\n dbg('info', '### visibility counted ###', elmId);\n\n visible(adUnit.ad.tracking.visible);\n observer.unobserve(elmById);\n resetElmIntersection(elmId);\n }\n};\n\n/**\n * Observe all positions with specified element\n */\nexport const observePositions = async () => {\n if (observer) {\n const positions = getPositions().filter(({ ad }) => ad.type !== 'empty');\n for (let pIndex = 0; pIndex < positions.length; pIndex++) {\n const adUnit = positions[pIndex];\n let adElement = getElementFromRepositoryItem(adUnit);\n if (!adElement) {\n adElement = await waitForElement(adUnit);\n }\n if (adElement && adElement.id && !elmsIntersections[adElement.id]) {\n resetElmIntersection(adElement.id);\n observer.observe(adElement);\n }\n }\n }\n};\n\n/**\n * Observe intersections for each position (50% dimensions visibility is treshold)\n */\nconst viewCheckHandler = () => {\n if ('IntersectionObserver' in window) {\n if (!observer) {\n observer = new IntersectionObserver(\n (intersections) => {\n intersections.forEach(({ target, isIntersecting, intersectionRatio }) => {\n const adUnitByTarget = getPositions().find(({ ad }) => {\n return ad.containerElement === target || (ad.id && ad.id === target.id);\n });\n\n // for branding we do not validate intersection ratio\n const doNotValidateIntersectionRatio = !!(adUnitByTarget && isBranding(adUnitByTarget.ad.width));\n\n if (isIntersecting && (doNotValidateIntersectionRatio || Math.round(intersectionRatio))) {\n // is intersecting at least by 50% -> start timer -> send visibility hit and unobserve\n setElmIntersection(target.id);\n } else {\n // is not intersecting at least by 50% -> clear timer\n resetElmIntersection(target.id);\n }\n });\n },\n { threshold: [0, 0.5, 1] }\n );\n }\n observePositions();\n }\n};\n\nexport default viewCheckHandler;\n","import { getConfig } from '../config';\nimport { INT_PAW_LINK } from '../../constants';\nimport { getExternalPawsUrl } from '../cmp/externalPaws';\nimport { getImageBaseUrl } from '../utils/urls';\n\nconst getPawIcon = (type = '') => {\n let iconUrl = null;\n let rotationAngle = 0;\n\n switch (type.toUpperCase()) {\n case 'OGAR':\n iconUrl = `${getImageBaseUrl()}/paw-2.svg`;\n rotationAngle = 90;\n break;\n case 'ADVERT':\n iconUrl = `${getImageBaseUrl()}/paw.svg`;\n rotationAngle = 90;\n break;\n case 'APPNEXUS':\n case 'XANDR':\n iconUrl = `${getImageBaseUrl()}/paw-2.svg`;\n rotationAngle = 180;\n break;\n case 'CRITEO':\n iconUrl = `${getImageBaseUrl()}/paw.svg`;\n rotationAngle = 180;\n break;\n case 'SKLIK':\n iconUrl = `${getImageBaseUrl()}/paw-2.svg`;\n rotationAngle = 0;\n break;\n case 'ONEGAR':\n iconUrl = `${getImageBaseUrl()}/paw.svg`;\n rotationAngle = -90;\n break;\n case 'PUBMATIC':\n case 'PUBMATIC2':\n iconUrl = `${getImageBaseUrl()}/paw-2.svg`;\n rotationAngle = -90;\n break;\n default:\n iconUrl = `${getImageBaseUrl()}/paw.svg`;\n rotationAngle = 0;\n }\n\n const style = `\n\t\twidth: 13px;\n\t\theight: 13px;\n\t\tpadding:0;\n\t\tmargin:0;\n\t\tposition: absolute; left: 50%; top: 50%;\n\t\ttransform-origin: center center;\n\t\ttransform: translate(-50%, -50%) rotate(${rotationAngle}deg);\n\t`;\n\n return `<img src=\"${iconUrl}\" data-cy-paw=\"${type.toLowerCase()}\" style=\"${style}\">`;\n};\n\n/**\n * Generates HTML code of the paw icon (in the bottom-right corner of an ad container)\n * @param {String} type DSP type (SKLIK, APNEXUS,..)\n * @param {Boolean} visible - visibility of \"paw\"\n * @returns {String} paw HTML\n */\nconst createPawIconTemplate = (type, pawUrl = INT_PAW_LINK, visible) => {\n const url = getImageBaseUrl();\n return `\n\t\t<div style=\"position:absolute; bottom:0; right:0; height:15px;${!visible ? ' visibility: hidden' : ''}\" class=\"packa\">\n\t\t\t<a target=\"_blank\" class=\"packa-anchor\" href=\"${pawUrl}\"${\n pawUrl.startsWith('https://ssp.seznam.cz/ad-info') ? ' data-dot-data=\\'{\"action\": \"showAdInfoPage\"}\\'' : ''\n }>\n\t\t\t\t\t<div class=\"packa-icon\" style=\"width: 15px; height: 15px; position: relative;\">\n\t\t\t\t\t\t${getPawIcon(type)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<img src=\"${url}/advert.svg\" style=\"display:none;height:15px;padding:0;margin:0\" data-cy-pawinfo=\"seznam-reklama\">\n\t\t\t</a>\n\t\t</div>\n\t`;\n};\n\n/**\n * Returns paw code for all DSP types except Sklik, OGAR & ONEGAR\n * @param {String} type DSP type (SKLIK, APNEXUS,..)\n * @param {Boolean} visible - visibility of \"paw\"\n * @returns {String} paw HTML\n */\nconst getPawIconTemplate = (type, adInfoUrl, visible) => {\n const cmpData = getConfig();\n let pawUrl = adInfoUrl;\n if (!pawUrl) {\n if (cmpData && cmpData.internalPartner === false) {\n pawUrl = getExternalPawsUrl();\n } else {\n pawUrl = INT_PAW_LINK;\n }\n }\n\n return createPawIconTemplate(type, pawUrl, visible);\n};\n\nexport { createPawIconTemplate, getPawIconTemplate };\n","import { DSP_LIST } from '../../constants';\nimport { getPawIconTemplate } from './createPawIconTemplate';\n\nconst isValidDSP = (dsp) => DSP_LIST.includes(dsp);\nexport const isBranding = (width) => width > 1900;\n\n/**\n * Returns pawHTML for all DSP types except Sklik, OGAR & ONEGAR\n * @param {Object} ad - reklama z sssp\n * @param {Boolean} visible - viditelnost \"packy\"\n * @returns {String | null} paw HTML\n */\nexport const getPawHTML = (ad, visible = false) => {\n if (!ad || !ad.dsp || !isValidDSP(ad.dsp)) {\n return null;\n }\n\n return getPawIconTemplate(ad.dsp, ad.adInfoUrl, visible) || null;\n};\n\n/**\n * Handle collapse/expand mouse handler\n */\nconst _pawMouseHandler = (event, fragments = []) => {\n event.stopPropagation();\n const togglePawFragment = (which) => {\n const fragment = event.target.closest('.packa-anchor')?.[`${which}ElementChild`];\n fragment.style.display = getComputedStyle(fragment).display === 'block' ? 'none' : 'block';\n };\n fragments = fragments.filter((fragment) => ['first', 'last'].includes(fragment));\n fragments.forEach((fragment) => togglePawFragment(fragment));\n};\n\n/**\n * Fix to corner (reposition if outside viewport -> branding implementation on external partners)\n */\nconst _pawReposition = (element) => {\n element.style.position = 'fixed';\n\n const box = element.getBoundingClientRect();\n\n const rightOverflow = box.right - document.documentElement.clientWidth;\n const bottomOverflow = box.bottom - document.documentElement.clientHeight;\n\n let translate = '';\n\n if (rightOverflow > 0) {\n translate += ` translateX(-${rightOverflow}px)`;\n }\n if (bottomOverflow > 0) {\n translate += ` translateY(-${bottomOverflow}px)`;\n }\n\n if (!translate) {\n return;\n }\n element.style.transform = translate.trim();\n};\n\n/**\n * Add listeners to (not already handled) paw icons (+ reposition if needed)\n */\nexport const revivePaw = (ad, context, fragments) => {\n window.setTimeout(() => {\n const mark = 'ssp-handled';\n const paw = context.querySelector(`.packa:not(.${mark})`);\n\n // no paw element (or mocked in JEST)\n if (!(paw instanceof HTMLElement)) {\n return;\n }\n\n const pawAnchor = paw.querySelector('.packa-anchor');\n\n if (fragments.length) {\n pawAnchor.addEventListener('mouseover', (event) => _pawMouseHandler(event, fragments));\n pawAnchor.addEventListener('mouseout', (event) => _pawMouseHandler(event, fragments));\n }\n paw.classList.add(mark);\n if (ad && isBranding(ad.width)) {\n _pawReposition(paw);\n }\n });\n};\n","import { getPawIconTemplate } from './createPawIconTemplate';\n\n/**\n * Generates HTML markup for ad rendering\n * @param {Object} ad\n * @param {Object} positionOptions\n * @returns {String}\n */\nconst getAdMarkup = ({ dsp, responsive, width, height, adInfoUrl }, positionOptions) => {\n const size = (dim) => (responsive ? '100%' : `${dim}px`);\n const dimensions = `width: ${size(width)}; height: ${size(height)};`;\n\n let pawDisable = !!(positionOptions && positionOptions.pawDisable);\n\n // native ad will render its own 'reklama' text instead of paw icon\n if (['SKLIK', 'OGAR', 'ONEGAR'].includes(dsp) && width === 111 && height === 111 && responsive === 1) {\n pawDisable = true;\n }\n\n return `\n\t\t<div class=\"sssp-posCont\" style=\"width:100%;height:100%;position:relative;padding:0px;margin:0px\">\n\t\t\t<div\n\t\t\t\tclass=\"sssp-resizeCont\"\n\t\t\t\tdata-cy=\"ad-content\"\n\t\t\t\tstyle=\"${dimensions} padding: 0px; margin: 0px;\"\n\t\t\t></div>\n\t\t\t${pawDisable ? '' : getPawIconTemplate(dsp, adInfoUrl)}\n\t\t</div>\n\t`;\n};\n\n/**\n * Returns an object with ready-to-use DOM Node objects\n * to insert into the page and to render an ad into.\n * @param {Object} ad\n * @param {Object} positionOptions\n * @returns {Object}\n */\nexport const getAdElements = (ad, positionOptions) => {\n const htmlString = getAdMarkup(ad, positionOptions);\n const range = document.createRange();\n const adElement = range.createContextualFragment(htmlString);\n\n return {\n adElement,\n adContent: adElement.querySelector('.sssp-resizeCont'),\n };\n};\n","/**\n * Vybere z pole elements odpovÃdajÃcà Node; musà mÃt stejnou nebo nejbližšà vÄ›tÅ¡Ã velikost\n * @param ad {Object} - reklama z sssp\n * @param elements {Array}\n **/\nconst getBestElement = (ad, elements) => {\n const defaultValues = {\n area: Infinity,\n bestElement: null,\n };\n\n const calculatedValues = elements.reduce((acc, currentElement) => {\n const { width, height } = currentElement;\n if ((width || ad.width) < ad.width || (height || ad.height) < ad.height) {\n return acc;\n }\n\n const area = (width || ad.width) * (height || ad.height);\n if (area < acc.area) {\n return {\n area,\n bestElement: currentElement,\n };\n } else {\n return acc;\n }\n }, defaultValues);\n\n return calculatedValues.bestElement;\n};\n\nexport const getTargetElement = (ad, position) => {\n if (!position.elements && position.id) {\n return typeof position.id === 'string' ? document.getElementById(position.id) : position.id;\n } else if (position.elements) {\n const bestElement = getBestElement(ad, position.elements);\n return typeof bestElement.id === 'string' ? document.getElementById(bestElement.id) : bestElement.id;\n }\n};\n","import { getAdElements } from './adTemplate';\nimport { getTargetElement } from './getTargetElement';\nimport { setSize, resize } from './sizing';\nimport { setContainerElement } from '../ads/adRepository';\nimport { sendPawVisibilityEvent } from '../utils/events';\nimport { PAW_RENDER_DELAY } from '../../constants';\nimport { revivePaw } from './getPawHTML';\n\n/**\n * Prepares an ad space on page for rendering: adds an 'adFull' class\n * to container element and inserts ad template.\n * @param {Object} ad\n * @param {Object} position\n * @returns {Node} DOM element to insert ad content into\n */\nexport const prerenderAdToPage = (ad, position) => {\n const targetElement = getTargetElement(ad, position);\n const { adElement, adContent } = getAdElements(ad, position.options);\n\n if (!targetElement) {\n return null;\n }\n\n setSize(ad, position, targetElement);\n targetElement.classList.add('adFull');\n\n targetElement.appendChild(adElement);\n setContainerElement(ad, targetElement);\n\n const pawElement = targetElement.querySelector('div.packa');\n if (!ad.responsive && !(position && position.options && position.options.disableScaling)) {\n resize(ad, position, targetElement, adContent);\n }\n\n if (pawElement) {\n // not needed if paw isn't present\n const pawRenderDelay = (position.options && position.options.pawTimeout) || PAW_RENDER_DELAY;\n\n ad.pawTimeoutId = setTimeout(() => {\n sendPawVisibilityEvent('showPaw', { adContainer: targetElement });\n }, pawRenderDelay);\n }\n\n revivePaw(ad, targetElement, ['first', 'last']);\n\n return adContent;\n};\n","import { dbg } from '../utils/dbg';\n\n/**\n * Podle rozmeru, ktery presahuje velikost containeru, provede resize reklamy\n * @param {Object} ad - reklama z ssp\n * @param {Object} data - definice pozice\n * @param {Node} container - prvek ve strance (hlavni element)\n * @param {Node} f - prvek ve strance (nas s inner)\n */\nconst resize = function (ad, data, container, f) {\n dbg('info', '### resizing ###');\n if (container.offsetWidth < ad.width || container.offsetHeight < ad.height) {\n var wRatio = container.offsetWidth / ad.width;\n var hRatio = container.offsetHeight / ad.height;\n var r = Math.min(wRatio, hRatio);\n\n const dataset = { h: container.offsetHeight, w: container.offsetWidth, hR: f.offsetHeight, wR: f.offsetWidth };\n\n if (!wRatio) {\n r = hRatio;\n }\n if (!hRatio) {\n r = wRatio;\n }\n f.style.transformOrigin = 'top left';\n f.style.transform = 'scale(' + r + ')';\n container.style.height = Math.round(ad.height * r) + 'px'; // pokud resizujeme ... upravime i vysku containeru\n container.dataset.sspScaled = 'yes';\n dataset.hScaled = container.offsetHeight;\n dataset.wScaled = container.offsetWidth;\n dataset.scale = r;\n container.dataset.sspScaledMetadata = JSON.stringify(dataset);\n }\n};\n\nconst setSize = function (ad, data, container) {\n if (\n !container.offsetHeight &&\n (!ad.responsive || (ad.type === 'iframe_url' && ['SKLIK', 'ONEGAR'].includes(ad.dsp)))\n ) {\n container.style.height = ad.height + 'px';\n }\n\n if (!ad.responsive && (container.offsetWidth || container.offsetWidth !== ad.width)) {\n if (ad.width < document.documentElement.scrollWidth) {\n container.style.width = ad.width + 'px';\n container.style.maxWidth = '100%';\n }\n }\n\n // nejlepsi reseni pro branding pres pole elements\n if (data.bestElement && !container.offsetWidth) {\n container.style.width = ad.width + 'px';\n }\n};\n\nexport { resize, setSize };\n","import { prerenderAdToPage } from '../prerenderAdToPage';\nimport { createIframe } from '../createElements';\nimport { getConfig } from '../../config';\nimport { sendAdbEvent } from '../../utils/events';\nimport { isThisSafari } from '../../cmp/browserSniffing';\nimport { appendWithCacheBusting } from './cacheBuster';\nimport { dbg, copyDebugQuery } from '../../utils/dbg';\nimport { getJson } from '../../utils/helpers/getJson';\n\n/**\n * Wrapper function for currying callback functions and removing event listeners\n * @param {Function} callback\n * @param {...any} args\n * @returns {Function} event handler\n */\nconst getEventHandler = (callback, ...args) => {\n const eventHandler = (event) => {\n event.target.removeEventListener(event.type, eventHandler);\n callback(...args);\n };\n\n return eventHandler;\n};\n\n/**\n * Run when iframe content has loaded\n * @param {Object} ad\n * @param {Object} position\n * @param {Node} iframe DOM node\n * @param {Function} callback to run when iframe is loaded\n */\nconst onload = (ad, position, iframe, callback) => {\n const { protocol, iframeStaticServer } = getConfig();\n let targetOrigin = protocol + iframeStaticServer;\n\n if (ad.type === 'iframe_url') {\n const urlParts = ad.data.match(/((?:http[s]?)?:\\/{2}[^\\/\\s]+)(.*)?/);\n targetOrigin = urlParts[1];\n }\n\n new $sf.SF(iframe, ad, position, targetOrigin);\n\n if (ad.type === 'iframe') {\n const messageContent = JSON.stringify({ ...ad, sznssp: true, method: 'requestRender' });\n iframe.contentWindow?.postMessage(messageContent, targetOrigin);\n\n // Set data attribute to rendered iframe (type === 'iframe').\n // Useful for running tests only after an ad had been fully injected into the iframe.\n window.addEventListener('message', (event) => {\n const message = getJson(event.data);\n if (message && message.event === 'IFRAME_AD_RENDERED' && message.impressId === ad.impressId) {\n iframe.dataset.cyRendered = 'true';\n }\n });\n }\n\n if (ad.type === 'iframe_url') {\n if (ad.adInfoUrl) {\n iframe.contentWindow?.postMessage({ sznPawUrl: ad.adInfoUrl }, targetOrigin);\n }\n const messageContent = JSON.stringify({\n sznssp: true,\n ad: { pageViewId: ad.pageViewId, requestId: ad.requestId },\n method: 'setInfo',\n });\n iframe.contentWindow?.postMessage(messageContent, targetOrigin);\n }\n\n sendAdbEvent(iframe);\n\n /* Hack for Cypress so it only accesses iframes when they're ready */\n if (window.Cypress) {\n iframe.setAttribute('data-cy-loaded', 'true');\n }\n\n if (typeof callback === 'function') {\n return callback();\n }\n};\n\nconst onerror = (iframe) => {\n sendAdbEvent(iframe);\n};\n\n/**\n * Renders an ad of type: iframe || iframe_url\n * @param {Object} ad\n * @param {Object} position\n * @param {Function} callback\n */\nconst writeIframe = (ad, position, callback) => {\n const adContent = prerenderAdToPage(ad, position);\n const iframe = createIframe(ad);\n let src = null;\n const { pvId } = getConfig();\n\n const onloadCallback = getEventHandler(\n onload,\n {\n ...ad,\n pageViewId: pvId,\n },\n position,\n iframe,\n callback\n );\n const onerrorCallback = getEventHandler(onerror, iframe);\n iframe.addEventListener('load', onloadCallback);\n iframe.addEventListener('error', onerrorCallback);\n\n if (ad.type === 'iframe_url') {\n src = ad.data;\n } else if (ad.type === 'iframe') {\n const { protocol, iframeStaticServer, iframeUrl } = getConfig();\n src = `${protocol}${iframeStaticServer}${iframeUrl}?url=${encodeURIComponent(document.location.href)}`;\n if (dbg()) {\n src = copyDebugQuery(src, window.location.search);\n }\n }\n\n if (isThisSafari()) {\n appendWithCacheBusting(adContent, iframe, src);\n } else {\n iframe.src = src;\n adContent.appendChild(iframe);\n }\n};\n\nexport default writeIframe;\n","import { setElementAttributes } from '#Modules/utils/helpers/setElementAttributes';\n\n/**\n * Vyrobi element iframu a nastavi mu rozmery podle banneru nebo 100%\n * @param ad {Object} - reklama z ad serveru\n * @return iframe {Node} - iframe element\n */\nconst createIframe = (ad) => {\n const iframe = document.createElement('iframe');\n\n setElementAttributes(iframe, {\n frameborder: 'no',\n scrolling: 'no',\n width: ad.width,\n height: ad.height,\n id: 'x' + Math.floor(Math.random() * 100000),\n style: `\n\t\t\tdisplay: block;\n width: 100%;\n\t\t\theight: 100%;\n\t\t`,\n });\n\n return iframe;\n};\n\nexport { createIframe };\n","import { getRandomString } from '../../utils/helpers/getRandomString';\nimport { SSP_URL } from '../../../constants';\n\n/**\n * Appends iframe into page with meaningless src,\n * thus preventing iframe caching problems in Safari.\n * @param {HTMLElement} target - Element to append to.\n * @param {HTMLIframeElement} iframe - Iframe to be appended.\n * @param {String} src - Iframe src with desired content.\n */\nexport const appendWithCacheBusting = (target, iframe, src) => {\n iframe.src = `${SSP_URL.PROTOCOL}${SSP_URL.IFRAME_HOSTNAME}${SSP_URL.PATH_TO_EMPTY}?${getRandomString()}`;\n target.appendChild(iframe);\n try {\n // Using location.replace prevent new history records from being created\n iframe.contentWindow.location.replace(src);\n } catch (error) {\n iframe.src = src;\n }\n};\n","import { dbg } from '../../utils/dbg';\nimport served from '../../impress/served';\nimport { prerenderAdToPage } from '../prerenderAdToPage';\nimport { writeTo } from '../../utils/documentwrite';\n\n/**\n * Zapise reklamu typu code primo do stranky\n * @param ad {Object} - reklama z sssp\n * @param data {Object} - definice pozice\n **/\nconst writeCodeToPage = function (ad, data) {\n dbg('info', '### starting direct ad writitng ###');\n dbg('with parameters', ad, data);\n\n if (typeof ad.data === 'string' && ad.data.includes(`\\\"type\\\": \\\"code\\\"`) && ad.data.includes(`\\\"creative\\\":`)) {\n dbg('\"writeCodeToPage\" terminated, not supported data (not parsed raw data)');\n return;\n }\n\n const adContent = prerenderAdToPage(ad, data);\n\n try {\n writeTo(adContent, ad.data);\n } catch (e) {\n dbg('error', e);\n }\n\n // zapocitame impresse\n served(ad.tracking.served);\n};\n\nexport default writeCodeToPage;\n","import { dbg } from '../../utils/dbg';\nimport { getTargetElement } from '../getTargetElement';\n\n// Increment, used to generate id\nlet increment = 0;\n\n/**\n * Id generator in format 'sznssp-[zoneId]-[increment]'\n * @return {String} Generated id\n */\nconst generatorAdId = (zoneId) => {\n return `sznssp-${zoneId}-${++increment}`;\n};\n\n/**\n * Id synchronization between ad element (div) and data in positionsStore\n * @param {Object} ad server response\n * @param {Object} data zones description\n */\nconst syncId = (ad, data) => {\n try {\n dbg('info', '### start of id synchronization ###');\n const targetElement = getTargetElement(ad, data);\n if (!targetElement) {\n dbg('Element not found. syncId was not run');\n return;\n }\n\n if (targetElement.id) {\n dbg('syncId by id from element (div)');\n ad.id = targetElement.id;\n return;\n }\n if (ad.id && typeof ad.id === 'string') {\n dbg('syncId by id from positionsStore');\n targetElement.id = ad.id;\n return;\n }\n dbg('generating id and syncId');\n const id = generatorAdId(ad.zoneId);\n ad.id = id;\n targetElement.id = id;\n } catch (error) {\n dbg('error', 'syncId has an error:', error);\n }\n};\n\nexport { syncId };\n","import { dbg } from '../../utils/dbg';\nimport served from '../../impress/served';\nimport writeIframe from './writeIframe';\nimport writeCodeToPage from './writeCodeToPage';\nimport { hitAction } from '../../impress/testMetric';\nimport { syncId } from './syncId';\nimport { getConfig } from '../../config';\nimport { gamFallback } from '../../ads/gam';\nimport { logBackgroundAdReload } from '../../impress/backgroundAdsReloads';\n\n/**\n * @module sssp/writeAd\n * @desc Module for rendering ads on a page using its method <code>writeAd</code>.\n */\n\nconst handleEmpty = (ad, data) => {\n dbg('no ad type:', ad.type);\n hitAction('writeAdEmpty', ad.zoneId);\n served(ad.tracking.served);\n\n // GAM fallback (optional)\n if (getConfig().fallbackToGAM) {\n gamFallback(ad, data);\n }\n};\n\nconst handleIframe = (ad, data) => {\n const action = `writeAdIframe${ad.type === 'iframe_url' ? 'URL' : ''}`;\n hitAction(action, ad.zoneId);\n writeIframe(ad, data);\n served(ad.tracking.served);\n};\n\nconst handleCode = (ad, data) => {\n hitAction('writeAdCode', ad.zoneId);\n writeCodeToPage(ad, data);\n};\n\nconst handleIncorrectType = (ad) => ad.zoneId && hitAction('writeAdWrongFormat', ad.zoneId);\n\n/**\n * Main ad rendering method.</br>\n * Public function <code>sssp.writeAd</code></br>\n * <a href=\"https://ssp.seznam.cz/static/doc/#odezvy-z-ssp\">Public description</a>\n * (the public documentation describes some of the fields, not all)\n * @param {Object} ad Advertisement (banner).\n * @param {string} ad.data - Data of banner.\n * @param {string} [ad.content] - Content of banner (=ad.data?)\n * @param {string} ad.type - Type of advertisement (empty, iframe_url, iframe, code, json_url).\n * @param {boolean} [ad.iframe] - If ad should be rendered as <code>iframe</code>.<br>\n * <b>Warning:</b> Deprecated. Alternative is field <code>ad.type</code>.\n *\n * @param {string} ad.id - The identifier of the HTML element to add the ad to.\n * @param {string} ad.dsp - Advert DSP - Demand Side Platform ('SKLIK', 'ADVERT', 'OGAR', 'ONEGAR', 'APPNEXUS', 'PUBMATIC', PUBMATIC2').\n * @param {number} ad.height - Ad height in pixels.\n * @param {number} ad.width - Ad width in pixels.\n * @param {number} ad.zoneId - Unique ad zone identifier. <br/>\n * This number is assigned to the zone automatically when an ad code is generated in the <a href=\"https://partner.seznam.cz/seznam-ssp/\">partner interface</a>\n * @param {string} ad.zoneName - Human readable name corresponding to zoneId (for easier debugging).\n\n * @param {string} ad.impressId - Impress ID.\n * @param {string} ad.requestId - Request ID.\n * @param {string} ad.cacheId - Cache ID.\n * @param {boolean} ad.responsive - Banner is responsive or not. </br>\n * @param {number} [ad.ttl] - Number of seconds between auction and impression.\n * @param {number} [ad.pawTimeoutId] - Timer ID of the event `<code>showPaw</code>\n *\n * @param {object} ad.tracking - Tracking URLs. Contains URLs of all measurement codes.\n * @param {string[]} ad.tracking.served - Array of impression and miss URLs.\n * @param {string[]} ad.tracking.visible - Array of visible URLs.\n *\n * @param {object} ad.bidIds - Additional ad identifiers.\n * @param {string} ad.bidIds.cid - Campaigns identifiers.\n * @param {string} [ad.bidIds.crid] - Creatives identifiers.\n * @param {number} [ad.bidIds.fid] - Ad Firmy.cz identifier.\n *\n * @param {object} ad.dbginfo - Debug information from DSP.\n * @param {string} [ad.dbginfo.requestId] - Request ID.\n * @param {string} [ad.dbginfo.bidId] - Additional ad identifier.\n * @param {string[]} ad.dbginfo.spotId - ID of a spot to be served.\n *\n *\n * @param {Object} data - Zone description.\n * @param {string} data.id - The identifier of the HTML element to add the ad to.\n * @param {number} [data.zoneId] - Unique ad zone identifier.\n * @param {number} [data.height] - Ad height in pixels.\n * @param {number} [data.width] - Ad width in pixels.\n * @param {object} [data.options] - Additional options\n * @param {boolean} [data.options.sspRendering] - Whether the ad is rendered by ssp script (true) or externally (false, null).\n */\nconst writeAd = (ad, data) => {\n dbg('info', '### starting write ads ###');\n\n if (!ad) {\n dbg('error', 'invalid \"ad\" object', ad);\n return;\n }\n\n dbg('with parameters', ad, data);\n\n switch (ad.type) {\n case 'empty':\n handleEmpty(ad, data);\n break;\n\n case 'iframe_url':\n case 'iframe':\n handleIframe(ad, data);\n break;\n\n case 'code':\n handleCode(ad, data);\n break;\n\n default:\n handleIncorrectType(ad);\n break;\n }\n syncId(ad, data);\n\n // TEMPORARY send hit only when tab is hidden and writeAd is called by sssp\n logBackgroundAdReload(ad, { isCalledFromWriteAd: true });\n};\n\nexport default writeAd;\n","import { getSessionData } from './sessionDetection';\n\n/* eslint-disable camelcase */\n\nexport const getDopSourceData = () => {\n const sessionData = getSessionData();\n const dopParamsTransformations = {\n dop_req_id: 'req_id',\n dop_ab_variant: 'ab',\n dop_source_zone_name: 'zone_name',\n dop_id: 'id',\n };\n const dopSourceData = Object.keys(dopParamsTransformations).reduce((acc, current) => {\n const transformedDopKey = dopParamsTransformations[current];\n\n if (sessionData[current]) {\n acc[transformedDopKey] = sessionData[current];\n }\n return acc;\n }, {});\n return Object.keys(dopSourceData).length ? dopSourceData : null;\n};\n","import { getConfig } from '../config';\nimport { getCookie, setCookie, removeCookie } from '../utils/cookies';\nimport { getJson } from '../utils/helpers/getJson';\nimport { getCookieStorageDomainName } from '../utils/helpers/getDomainName';\n\nconst SSSP_COOKIE_NAME = 'sssp_session';\n\nexport const setSessionCookie = (sessionData) => {\n const { cookieExpiration, cookieDomain } = getConfig();\n const sessionValue = JSON.stringify(sessionData);\n setCookie({\n name: SSSP_COOKIE_NAME,\n value: encodeURIComponent(sessionValue),\n expires: [cookieExpiration, 'minutes'],\n domain: cookieDomain || getCookieStorageDomainName(window.location.hostname),\n sameSite: 'None',\n secure: true,\n });\n};\n\n/**\n * Odstrani session cookie pro HP feed\n */\nexport const removeSessionCookie = () => {\n const { cookieDomain } = getConfig();\n removeCookie({\n name: SSSP_COOKIE_NAME,\n domain: cookieDomain || getCookieStorageDomainName(window.location.hostname),\n });\n};\n\nexport const getDataFromSessionCookie = () => {\n const cookieValue = getCookie(SSSP_COOKIE_NAME);\n const decodedCookie = decodeURIComponent(cookieValue);\n return getJson(decodedCookie);\n};\n","import { getConfig, _writeConfig } from '../config';\nimport { getDomainName } from '../utils/helpers/getDomainName';\nimport { getParamFromQuerystringOrHash } from '../utils/helpers/getUrlParams';\nimport { getLastPageHost } from '../utils/pageView';\nimport { setSessionCookie, removeSessionCookie, getDataFromSessionCookie } from './sessionCookies';\n\nexport const getDopParametersFromUrl = () => {\n const { dopUrlParameters } = getConfig();\n return dopUrlParameters.reduce((acc, param) => {\n const paramValue = getParamFromQuerystringOrHash(param);\n if (paramValue) {\n acc[param] = paramValue;\n }\n return acc;\n }, {});\n};\n\n/**\n * Is this a user navigation event on publisher's website?\n * @returns {Boolean}\n */\nconst referrerMatchesService = () => {\n try {\n const ref = document.referrer ? new URL(document.referrer) : null;\n const refDomain = ref ? getDomainName(ref.hostname) : null;\n const prevHostDomain = getDomainName(getLastPageHost());\n const currentDomain = getDomainName(document.location.hostname);\n return refDomain === currentDomain || prevHostDomain === currentDomain;\n } catch (error) {\n return false;\n }\n};\n\n/**\n * Is utm_source parameter in URL set to correct value?\n * Is utm_medium present in URL?\n * @returns {Boolean}\n */\nconst landingPageParamsValid = () => {\n return (\n !!getParamFromQuerystringOrHash('utm_medium') && getParamFromQuerystringOrHash('utm_source') === 'www.seznam.cz'\n );\n};\n\n/**\n * The referrer must be homepage or empty string\n * @returns {Boolean}\n */\nexport const isFirstPageview = () => {\n try {\n const ref = new URL(document.referrer);\n return ref.hostname === 'www.seznam.cz' && landingPageParamsValid();\n } catch (error) {\n return document.referrer === '';\n }\n};\n\n/**\n * Find valid source medium in query params or hash.\n * Filter it through allowed sources.\n * @param {String} medium\n * @returns {String|null}\n */\nconst findValidSourceMedium = () => {\n const medium = getParamFromQuerystringOrHash('utm_medium');\n const { allowedSources } = getConfig();\n return medium in allowedSources ? allowedSources[medium] : null;\n};\n\n/**\n * Extract session data from URL and override with data from cookie if possible\n * @returns {Object}\n */\nexport const getSessionData = () => {\n // Read cookie data only while navigating the website\n const cookieData = referrerMatchesService() && getDataFromSessionCookie();\n\n // Read \"media\" from URL only on landing page from feed\n const media = getParamFromQuerystringOrHash('utm_source') === 'www.seznam.cz' ? findValidSourceMedium() : null;\n\n return {\n media,\n // Read \"dop\" parameters from URL when available and referrer is homepage or empty\n ...(isFirstPageview() ? getDopParametersFromUrl() : {}),\n // Override with cookie data when available\n ...cookieData,\n };\n};\n\n/**\n * The session is going to be either refreshed to T+30 minutes or deleted.\n * Runs on each page load.\n */\nexport const updateSession = () => {\n const sessionData = getSessionData();\n const source = sessionData.media;\n if (source) {\n setSessionCookie(sessionData);\n _writeConfig({ source });\n } else {\n removeSessionCookie();\n }\n};\n\n/**\n * Do we have a session?\n * @returns {Boolean}\n */\nexport const sessionExists = () => getSessionData().media !== null;\n","import { dbg } from './dbg';\nimport { postscribe } from '@iva/postscribe';\n\nconst reportError = (msg) => {\n const data = {\n msg,\n script: 'postscribe',\n referrer: document.referrer,\n };\n\n navigator.sendBeacon?.('https://confessor.iva.seznam.cz/postscribe', new URLSearchParams(data));\n};\n\nexport const writeTo = (dest, html) => {\n if (!document.writeTo) {\n dbg('Internal writeTo not available');\n return;\n }\n\n dbg('Using postscribe for writeTo');\n postscribe(dest, html, {\n autoFix: false,\n error: (e) => {\n const message = {\n msg: e.msg,\n html,\n };\n\n if (window._sssp?.ad) {\n message.sspMetadata = window._sssp.ad;\n }\n\n reportError(JSON.stringify(message));\n },\n });\n};\n\nexport const setupDocumentWrite = () => {\n if (document.writeTo) {\n return;\n }\n\n document.writeTo = (dest, html) => {\n dbg('ad used postscribe');\n postscribe(dest, html, {\n autoFix: false,\n error: (e) => reportError(e.msg + '; postscribe was called from ad.'),\n });\n };\n};\n","/**\n * Vracà referera iframe, pokud v nÄ›m jsme.\n * @returns {String} url referera, pokud jsme v iframe, jinak null\n */\nconst getIframeReferer = () => {\n try {\n if (window.self !== window.top) {\n return document.referrer;\n } else {\n return null;\n }\n } catch (e) {\n return document.referrer;\n }\n};\n\n/**\n * Vracà url z top window, pokud je dostupná.\n * @returns {String} url z top window nebo null\n */\nconst getTopWindowUrl = () => {\n try {\n return top.document.location.href;\n } catch (e) {\n return null;\n }\n};\n\nconst blacklistRegExp =\n /^https*:\\/\\/([^/]*\\.facebook\\.com|[^/]*\\.bing\\.com|[^/]*\\.google\\.(com|cz)|[^/]*\\.imedia\\.cz)\\//;\n\n/**\n * Vraci url aktualni stranky, kvuli bezpecnostnim hlavickam nemusime dostat http\n * refereru plnou cestu.\n * @returns {String} url aktualne otevrene stranky\n */\nconst getLocation = () => {\n return (\n [getIframeReferer(), getTopWindowUrl(), document.location.href].find(\n (url) => !!url && !blacklistRegExp.test(url)\n ) || ''\n );\n};\n\nexport default getLocation;\n","import { getDot } from '../impress/dotLoader';\nimport { dbg } from '../utils/dbg';\nimport { isTopWindow } from '../utils/topWindow';\nimport { getDopSourceData } from './dopSource';\n\nconst blacklist = [\n 'elektrina.cz',\n 'esjnews.com',\n 'gamingsite.cz',\n 'jakbytfit.cz',\n 'studentpoint.cz',\n 'svetandroida.cz',\n 'trailhunter.cz',\n 'ulekare.cz',\n 'ventil.vehiklo.cz',\n 'vitalnisenior.cz',\n];\n\nexport const sendSpentTimeData = () => {\n const host = document.location.hostname.replace('www.', '').toLowerCase();\n const normalizedBlacklist = blacklist.map((domain) => domain.toLowerCase());\n if (normalizedBlacklist.includes(host)) {\n return;\n }\n\n if (!isTopWindow(window)) {\n return;\n }\n\n const dopSourceData = getDopSourceData();\n\n const DOT = getDot();\n if (!DOT) {\n dbg('error', 'Unable to get DOT instance');\n } else if (!DOT.spenttime) {\n dbg('warn', 'Current DOT instance lacking spenttime module. Unable to send spenttime hits.');\n } else {\n // `initiator: ssp` is a temporary solution for migrating internal services to SSP initiated Spenttime\n /* eslint-disable-next-line camelcase */\n DOT.spenttime({ d: dopSourceData ? { dop_source: dopSourceData } : {}, initiator: 'ssp' });\n }\n};\n","import { dbg } from './dbg';\nimport { _writeConfig, getConfig } from '../config';\nimport { getDot } from '../impress/dotLoader';\nimport { getRandomString } from './helpers/getRandomString';\nimport { getTimeFromInitTimestamp, setInitTimestamp } from './timestamp';\nimport { updateSession } from '../session/sessionDetection';\nimport { getDomainName } from './helpers/getDomainName';\nimport getLocation from './helpers/getLocation';\nimport { sendSpentTimeData } from '../session/spentTime';\nimport { setCids } from '../ads/cids';\nimport { DOT_FIRST_IMPRESS_EVENT, IMPRESS_TIMEOUT } from '../../constants';\nimport { sendPageViewIdSetEvent } from './events';\nimport { adLoadWaitForImpress } from '../config/globalFlags';\nimport { clearElmsIntersections } from '../impress/visibilityMeasure';\n\nlet pageViewId = null;\n\n/**\n * Sends \"adload\" hit\n * @param {DOT} dot instance\n * @param {Object} hitData webhit data\n */\nconst sendAdLoad = (dot, hitData) => dot.hit('adload', { d: hitData });\n\n/**\n * Waits for \"impress\" hit, and then sends \"adload\" hit\n * @param {DOT} dot instance\n * @param {Object} hitData webhit data\n */\nconst waitForFirstImpress = (dot, hitData) => {\n let timer = null;\n\n const done = () => {\n window.removeEventListener(DOT_FIRST_IMPRESS_EVENT, done);\n clearTimeout(timer);\n timer = null;\n sendAdLoad(dot, hitData);\n };\n\n timer = setTimeout(() => {\n window.removeEventListener(DOT_FIRST_IMPRESS_EVENT, done);\n sendAdLoad(dot, hitData);\n }, IMPRESS_TIMEOUT);\n\n window.addEventListener(DOT_FIRST_IMPRESS_EVENT, done);\n};\n\n/**\n * Uchovávánà prev hosta pÅ™i pÅ™echodu mezi stránkami na SPA webu\n */\nlet lastPageUrl = document.referrer || '';\nexport const setLastPageHost = (url) => (lastPageUrl = url);\nexport const getLastPageHost = () => lastPageUrl;\n\n/**\n * Nastavuje id pro stranku, vola se pri vlozeni ssp scriptu do stranky a nebo\n * v SPA aplikacich rucne, kdyz je potreba\n */\nconst setPageViewId = (newPageViewId = null, resetVisibilityElements = false) => {\n const pvId = newPageViewId || getRandomString(50);\n\n const updatedConfig = { pvId };\n\n // update ssp session a site pÅ™i pÅ™echodu mezi stránkami na SPA webu\n if (getDomainName(getLastPageHost()) === getDomainName(document.location.hostname)) {\n setCids([]);\n updateSession();\n updatedConfig.site = getLocation();\n }\n\n _writeConfig(updatedConfig);\n\n sendPageViewIdSetEvent({ pvId });\n\n const dot = getDot();\n dbg('info', '#### setting pageViewId:', pvId);\n\n if (dot) {\n const hitData = { adId: pvId };\n\n // expand hitData with time from init\n const timeFromInit = getTimeFromInitTimestamp();\n if (timeFromInit) {\n hitData.timeFromInit = timeFromInit;\n setInitTimestamp(null);\n }\n\n if (adLoadWaitForImpress() && !window.DOT.impressBeforeAdloadSent) {\n waitForFirstImpress(dot, hitData);\n } else {\n sendAdLoad(dot, hitData);\n }\n }\n setLastPageHost(document.location.hostname);\n\n setTimeout(() => {\n // Because of the single page apps, we need to [re]init spenttime here\n sendSpentTimeData();\n });\n\n if (resetVisibilityElements) {\n clearElmsIntersections();\n }\n};\n\nconst getPageViewId = () => getConfig().pvId;\n\nconst pageViewIdChanged = (newPageViewId) => {\n if (newPageViewId !== pageViewId) {\n pageViewId = newPageViewId;\n return true;\n } else {\n return false;\n }\n};\n\nexport { setPageViewId, getPageViewId, pageViewIdChanged };\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","module.exports = require(\"core-js-pure/stable/url-search-params\");","module.exports = require(\"core-js-pure/stable/url\");","module.exports = require(\"core-js-pure/features/instance/replace-all\");","'use strict';\nvar parent = require('../../stable/instance/replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/symbol');\n\nrequire('../../modules/esnext.function.metadata');\nrequire('../../modules/esnext.symbol.async-dispose');\nrequire('../../modules/esnext.symbol.dispose');\nrequire('../../modules/esnext.symbol.metadata');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/symbol/iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/symbol/to-primitive');\n\nmodule.exports = parent;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../string/virtual/replace-all');\n\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n var own = it.replaceAll;\n return typeof it == 'string' || it === StringPrototype\n || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.replaceAll) ? method : own;\n};\n","'use strict';\nrequire('../../modules/es.object.define-property');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar defineProperty = module.exports = function defineProperty(it, key, desc) {\n return Object.defineProperty(it, key, desc);\n};\n\nif (Object.defineProperty.sham) defineProperty.sham = true;\n","'use strict';\nrequire('../../../modules/es.regexp.exec');\nrequire('../../../modules/es.string.replace');\nrequire('../../../modules/es.string.replace-all');\nvar getBuiltInPrototypeMethod = require('../../../internals/get-built-in-prototype-method');\n\nmodule.exports = getBuiltInPrototypeMethod('String', 'replaceAll');\n","'use strict';\nrequire('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.symbol.iterator');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('iterator');\n","'use strict';\nrequire('../../modules/es.date.to-primitive');\nrequire('../../modules/es.symbol.to-primitive');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('toPrimitive');\n","'use strict';\nmodule.exports = require('../../full/instance/replace-all');\n","'use strict';\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.string.replace-all');\n\nvar parent = require('../../actual/instance/replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/symbol');\nrequire('../../modules/esnext.symbol.is-registered-symbol');\nrequire('../../modules/esnext.symbol.is-well-known-symbol');\nrequire('../../modules/esnext.symbol.custom-matcher');\nrequire('../../modules/esnext.symbol.observable');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.is-registered');\nrequire('../../modules/esnext.symbol.is-well-known');\nrequire('../../modules/esnext.symbol.matcher');\nrequire('../../modules/esnext.symbol.metadata-key');\nrequire('../../modules/esnext.symbol.pattern-match');\nrequire('../../modules/esnext.symbol.replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/symbol/iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/symbol/to-primitive');\n\nmodule.exports = parent;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nmodule.exports = function () { /* empty */ };\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n result = IS_CONSTRUCTOR ? new this() : [];\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar arraySlice = require('../internals/array-slice');\n\nvar floor = Math.floor;\n\nvar sort = function (array, comparefn) {\n var length = array.length;\n\n if (length < 8) {\n // insertion sort\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n }\n } else {\n // merge sort\n var middle = floor(length / 2);\n var left = sort(arraySlice(array, 0, middle), comparefn);\n var right = sort(arraySlice(array, middle), comparefn);\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n }\n }\n\n return array;\n};\n\nmodule.exports = sort;\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n if (options && options.enumerable) target[key] = value;\n else createNonEnumerableProperty(target, key, value);\n return target;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) {\n if (options && options.unsafe && target[key]) target[key] = src[key];\n else defineBuiltIn(target, key, src[key], options);\n } return target;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n// add debugging info\nrequire('../internals/shared-store');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof Wrapper) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return apply(NativeConstructor, this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : global[TARGET] && global[TARGET].prototype;\n\n var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (!FORCED && !PROTO && typeof targetProperty == typeof sourceProperty) continue;\n\n // bind methods to global for calling from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);\n // wrap global constructors for prevent changes in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n createNonEnumerableProperty(target, key, resultProperty);\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n // export real prototype methods\n if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar path = require('../internals/path');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n var Namespace = path[CONSTRUCTOR + 'Prototype'];\n var pureMethod = Namespace && Namespace[METHOD];\n if (pureMethod) return pureMethod;\n var NativeConstructor = global[CONSTRUCTOR];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n return NativePrototype && NativePrototype[METHOD];\n};\n","'use strict';\nvar path = require('../internals/path');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = true;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n var target = STATIC ? it : it && it.prototype;\n if (target) {\n if (!hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n createNonEnumerableProperty(target, 'toString', toString);\n }\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.37.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Symbol = getBuiltIn('Symbol');\nvar keyFor = Symbol.keyFor;\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\nmodule.exports = Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) {\n try {\n return keyFor(thisSymbolValue(value)) !== undefined;\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isSymbol = require('../internals/is-symbol');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Symbol = getBuiltIn('Symbol');\nvar $isWellKnownSymbol = Symbol.isWellKnownSymbol;\nvar getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\nvar WellKnownSymbolsStore = shared('wks');\n\nfor (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {\n // some old engines throws on access to some keys like `arguments` or `caller`\n try {\n var symbolKey = symbolKeys[i];\n if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);\n } catch (error) { /* empty */ }\n}\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\nmodule.exports = function isWellKnownSymbol(value) {\n if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;\n try {\n var symbol = thisSymbolValue(value);\n for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {\n // eslint-disable-next-line eqeqeq -- polyfilled symbols case\n if (WellKnownSymbolsStore[keys[j]] == symbol) return true;\n }\n } catch (error) { /* empty */ }\n return false;\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://теÑÑ‚').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) {\n return call(replacer, searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return replace(toString(O), searchValue, replaceValue);\n }\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = indexOf(string, searchString);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = global.RangeError;\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null)));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n var $this = this === undefined ? global : this;\n if ($this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn($this, HIDDEN) && hasOwn($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor($this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty($this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar METADATA = wellKnownSymbol('metadata');\nvar FunctionPrototype = Function.prototype;\n\n// Function.prototype[@@metadata]\n// https://github.com/tc39/proposal-decorator-metadata\nif (FunctionPrototype[METADATA] === undefined) {\n defineProperty(FunctionPrototype, METADATA, {\n value: null\n });\n}\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.string.replace-all');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.customMatcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('customMatcher');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true }, {\n isRegisteredSymbol: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegistered` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, {\n isRegistered: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, forced: true }, {\n isWellKnownSymbol: isWellKnownSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnown` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, {\n isWellKnown: isWellKnownSymbol\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\ndefineWellKnownSymbol('replaceAll');\n","'use strict';\nrequire('../modules/es.array.iterator');\nvar DOMIterables = require('../internals/dom-iterables');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n setToStringTag(global[COLLECTION_NAME], COLLECTION_NAME);\n Iterators[COLLECTION_NAME] = Iterators.Array;\n}\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n target: getInternalParamsState(params).entries,\n index: 0,\n kind: kind\n });\n}, URL_SEARCH_PARAMS, function next() {\n var state = getInternalIteratorState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n var entry = target[index];\n switch (state.kind) {\n case 'keys': return createIterResultObject(entry.key, false);\n case 'values': return createIterResultObject(entry.value, false);\n } return createIterResultObject([entry.key, entry.value], false);\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var entries = this.entries;\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw new TypeError('Expected sequence with length 2');\n push(entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var entries = this.entries;\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var state = setInternalState(this, new URLSearchParamsState(init));\n if (!DESCRIPTORS) this.size = state.entries.length;\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 2);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n if (!DESCRIPTORS) this.length++;\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name /* , value */) {\n var state = getInternalParamsState(this);\n var length = validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index];\n if (entry.key === key && (value === undefined || entry.value === value)) {\n splice(entries, index, 1);\n if (value !== undefined) break;\n } else index++;\n }\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name /* , value */) {\n var entries = getInternalParamsState(this).entries;\n var length = validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index++];\n if (entry.key === key && (value === undefined || entry.value === value)) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n return getInternalParamsState(this).entries.length;\n },\n configurable: true,\n enumerable: true\n});\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// https://github.com/nodejs/node/issues/47505\n// https://github.com/denoland/deno/issues/18893\nvar THROWS_WITHOUT_ARGUMENTS = USE_NATIVE_URL && fails(function () {\n URL.canParse();\n});\n\n// Bun ~ 1.0.30 bug\n// https://github.com/oven-sh/bun/issues/9250\nvar WRONG_ARITY = fails(function () {\n return URL.canParse.length !== 1;\n});\n\n// `URL.canParse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !THROWS_WITHOUT_ARGUMENTS || WRONG_ARITY }, {\n canParse: function canParse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return !!new URL(urlString, base);\n } catch (error) {\n return false;\n }\n }\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] === '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part === '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) === '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix === 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index === partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() === ':') {\n if (charAt(input, 1) !== ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex === 8) return;\n if (chr() === ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() === '.') {\n if (length === 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() === '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece === 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n }\n if (numbersSeen !== 4) return;\n break;\n } else if (chr() === ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex !== 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length === 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length === 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw new TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw new TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) {\n buffer += toLowerCase(chr);\n } else if (chr === ':') {\n if (stateOverride && (\n (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme === 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme === 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] === '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr === '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme === 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr === '/' && codePoints[pointer + 1] === '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr === '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr === EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr === '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr === '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr !== '/' && chr !== '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr === '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint === ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer === '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme === 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr === ':' && !seenBracket) {\n if (buffer === '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride === HOSTNAME) return;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer === '') return INVALID_HOST;\n if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr === '[') seenBracket = true;\n else if (chr === ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer !== '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n else if (base && base.scheme === 'file') {\n switch (chr) {\n case EOF:\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n break;\n case '?':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n break;\n case '#':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n break;\n default:\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr === '/' || chr === '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer === '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host === 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr !== '/' && chr !== '\\\\') continue;\n } else if (!stateOverride && chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n state = PATH;\n if (chr !== '/') continue;\n } break;\n\n case PATH:\n if (\n chr === EOF || chr === '/' ||\n (chr === '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr === '?' || chr === '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n if (chr === \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr === '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) === '[') {\n if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme === 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username !== '' || this.password !== '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme === 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw new TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme === 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme === 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port === '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search === '') {\n this.query = null;\n } else {\n if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash === '') {\n this.fragment = null;\n return;\n }\n if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// `URL.parse` method\n// https://url.spec.whatwg.org/#dom-url-canparse\n$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {\n parse: function parse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return new URL(urlString, base);\n } catch (error) {\n return null;\n }\n }\n});\n","'use strict';\nvar parent = require('../../es/instance/replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/symbol');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/symbol/iterator');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/symbol/to-primitive');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../web/url-search-params');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../web/url');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../modules/web.url-search-params');\nrequire('../modules/web.url-search-params.delete');\nrequire('../modules/web.url-search-params.has');\nrequire('../modules/web.url-search-params.size');\nvar path = require('../internals/path');\n\nmodule.exports = path.URLSearchParams;\n","'use strict';\nrequire('./url-search-params');\nrequire('../modules/web.url');\nrequire('../modules/web.url.can-parse');\nrequire('../modules/web.url.parse');\nrequire('../modules/web.url.to-json');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\n","import _Symbol from \"core-js-pure/features/symbol/index.js\";\nimport _Symbol$iterator from \"core-js-pure/features/symbol/iterator.js\";\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof _Symbol && \"symbol\" == typeof _Symbol$iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof _Symbol && o.constructor === _Symbol && o !== _Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nimport _Symbol$toPrimitive from \"core-js-pure/features/symbol/to-primitive.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[_Symbol$toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _Object$defineProperty from \"core-js-pure/features/object/define-property.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? _Object$defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","export class Base64Url {\n /**\n * Base 64 URL character set. Different from standard Base64 char set\n * in that '+' and '/' are replaced with '-' and '_'.\n */\n static DICT = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';\n static REVERSE_DICT = new Map([\n ['A', 0],\n ['B', 1],\n ['C', 2],\n ['D', 3],\n ['E', 4],\n ['F', 5],\n ['G', 6],\n ['H', 7],\n ['I', 8],\n ['J', 9],\n ['K', 10],\n ['L', 11],\n ['M', 12],\n ['N', 13],\n ['O', 14],\n ['P', 15],\n ['Q', 16],\n ['R', 17],\n ['S', 18],\n ['T', 19],\n ['U', 20],\n ['V', 21],\n ['W', 22],\n ['X', 23],\n ['Y', 24],\n ['Z', 25],\n ['a', 26],\n ['b', 27],\n ['c', 28],\n ['d', 29],\n ['e', 30],\n ['f', 31],\n ['g', 32],\n ['h', 33],\n ['i', 34],\n ['j', 35],\n ['k', 36],\n ['l', 37],\n ['m', 38],\n ['n', 39],\n ['o', 40],\n ['p', 41],\n ['q', 42],\n ['r', 43],\n ['s', 44],\n ['t', 45],\n ['u', 46],\n ['v', 47],\n ['w', 48],\n ['x', 49],\n ['y', 50],\n ['z', 51],\n ['0', 52],\n ['1', 53],\n ['2', 54],\n ['3', 55],\n ['4', 56],\n ['5', 57],\n ['6', 58],\n ['7', 59],\n ['8', 60],\n ['9', 61],\n ['-', 62],\n ['_', 63],\n ]);\n /**\n * log2(64) = 6\n */\n static BASIS = 6;\n static LCM = 24;\n /**\n * Simple polyfill for the method String.prototype.repeat https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n * to support IE without the need to polyfill\n * @param str String that should be repeated\n * @param count How many times\n * @returns\n */\n static repeatStr(str, count) {\n let res = '';\n for (let i = 0; i < count; i++) {\n res += str;\n }\n return res;\n }\n /**\n * encodes an arbitrary-length bitfield string into base64url\n *\n * @static\n * @param {string} str - arbitrary-length bitfield string to be encoded to base64url\n * @return {string} - base64url encoded result\n */\n static encode(str) {\n /**\n * should only be 0 or 1\n */\n if (!/^[0-1]+$/.test(str)) {\n throw new Error('Invalid bitField');\n }\n /**\n * Pad the end of the string to the least common mutliple of 6 (basis for\n * base64) and 8 (one byte)\n */\n const padding = str.length % this.LCM;\n str += padding ? this.repeatStr('0', this.LCM - padding) : '';\n let result = '';\n for (let i = 0; i < str.length; i += this.BASIS) {\n result += this.DICT[parseInt(str.substr(i, this.BASIS), 2)];\n }\n return result;\n }\n /**\n * decodes a base64url encoded bitfield string\n *\n * @static\n * @param {string} str - base64url encoded bitfield string to be decoded\n * @return {string} - bitfield string\n */\n static decode(str) {\n /**\n * should contain only characters from the base64url set\n */\n if (!/^[A-Za-z0-9\\-_]+$/.test(str)) {\n throw new Error('Invalidly encoded Base64URL string');\n }\n let result = '';\n for (const strByte of str) {\n /**\n * index the binary value of the character from out reverse map\n */\n const strBits = this.REVERSE_DICT.get(strByte)?.toString(2);\n if (typeof strBits === 'undefined') {\n throw new Error('Invalidly encoded Base64URL string');\n }\n /**\n * Since a bit string converted to an integer on encoding will lose\n * leading zeros – pad to the left for those missing leading zeros\n */\n result += this.repeatStr('0', this.BASIS - strBits.length) + strBits;\n }\n return result;\n }\n}\n","import { Base64Url } from '#cmp/iabtcf/Base64Url.js';\nexport const decodePurposeOne = (encodedTCString) => {\n const segments = encodedTCString.split('.');\n // documentation says its always the first one for v2\n const [coreSegment] = segments;\n if (!coreSegment) {\n return false;\n }\n const bitField = Base64Url.decode(coreSegment);\n const { [152]: purposeOneBit } = bitField;\n return purposeOneBit === '1';\n};\n","/**\n * Method 'getCookie' gets cookie with provided name.\n * @param {String} name - Name of the cookie\n * @return {null | String } - description of each case:\n * null there is not cookie\n * string with value of cookie\n * string[] array of value of cookies (several cookies of the same name were found)\n */\nexport const getCookie = (name) => {\n const matches = document.cookie.match(new RegExp('(?:^|; )' + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + '=([^;]*)'));\n return matches && matches[1] ? decodeURIComponent(matches[1]) : null;\n};\n","import { decodePurposeOne } from '#cmp/cmpone.js';\nimport { getCookie } from '#cmp/cookie.js';\nexport const CONSENT_COOKIE_NAME = 'euconsent-v2';\nexport const CONSENT_PURPOSE_ONE_COOKIE_NAME = 'szncmpone';\nexport const CONSENT_GOOGLE_COOKIE_NAME = 'FCCDCF';\nexport const CONSENT_COOKIE_NAMES = [\n CONSENT_COOKIE_NAME,\n 'eupubconsent-v2',\n 'ibb_euconsent',\n 'gdpr_consent',\n 'sas_cmp_cookie_consentData',\n 'csent',\n CONSENT_GOOGLE_COOKIE_NAME,\n];\n/**\n * Extract consent string from cookie (special cases -> tc string wrapped inside non primitive).\n */\nconst extractConsentString = (cookieName, cookieValue) => {\n try {\n // GOOGLE consent\n if (cookieName === CONSENT_GOOGLE_COOKIE_NAME && cookieValue) {\n return JSON.parse(decodeURIComponent(cookieValue))[3][0];\n }\n }\n catch {\n return null;\n }\n // trust nobody\n return cookieValue && typeof cookieValue === 'string' ? cookieValue : null;\n};\nexport const PurposeId = {\n /**\n * Purpose one is not supposed to be saved to purposeLegitimateInterests because we have purposeOneTreatment true,\n * but it should be saved to purposeConsents, because RTB needs it.\n */\n COOKIE: 1,\n // implicit consent\n BASIC_ADS: 2,\n MEASURE_ADS: 7,\n MEASURE_PERFORMANCE: 8,\n MARKET_RESEARCH: 9,\n IMPROVE: 10,\n // user choice\n ADS_PROFILE: 3,\n ADS: 4,\n CONTENT_PROFILE: 5,\n CONTENT: 6,\n};\nexport const hasPurposeOne = (consentString) => {\n if (typeof consentString !== 'string') {\n return false;\n }\n return decodePurposeOne(consentString);\n};\nconst getResult = (euconsentString, name) => {\n return {\n version: 'v2',\n consentString: euconsentString,\n name,\n purposeOne: hasPurposeOne(euconsentString),\n };\n};\n// wait for TCF API v2 for TCData\nlet receivedTCFData = '';\nlet listeningTCFApi = false;\nconst receiverCallbackList = [];\nconst tcCallback = (tcData, success) => {\n if (success && tcData.eventStatus === 'useractioncomplete') {\n // do something with tcData.tcString\n receivedTCFData = tcData.tcString;\n const result = getResult(receivedTCFData);\n for (const receiverCallback of receiverCallbackList) {\n receiverCallback(result);\n }\n receiverCallbackList.length = 0;\n }\n};\nconst hasTCFApi = () => typeof window.__tcfapi === 'function';\n// listen to TCF api (just once)\nconst listenToTCFApi = () => {\n if (hasTCFApi() && !listeningTCFApi) {\n listeningTCFApi = true;\n window.__tcfapi('addEventListener', 2, tcCallback);\n }\n};\nlistenToTCFApi();\n/**\n * Get consent TCF cookie from predefined list.\n * @param receiverCallback if set you can wait until consent is set using TCF API v2\n * or you get no result it mean there is no TCF API\n * @returns Object ConsentResult from existing cookie or null if not found.\n */\nexport const getConsentFromCookieList = (receiverCallback) => {\n if (!document) {\n return null;\n }\n // in some cases TCF api is available after some time -> attach listener (if not already attached)\n listenToTCFApi();\n for (const cookie of CONSENT_COOKIE_NAMES) {\n const cookieValue = extractConsentString(cookie, getCookie(cookie));\n if (cookieValue) {\n return getResult(cookieValue, cookie);\n }\n }\n if (receivedTCFData) {\n return getResult(receivedTCFData);\n }\n else if (typeof receiverCallback === 'function') {\n if (hasTCFApi()) {\n receiverCallbackList.push(receiverCallback);\n }\n else {\n receiverCallback();\n }\n }\n return null;\n};\nexport const hasPurposeOneFromCookieList = () => {\n const consent = getConsentFromCookieList();\n return consent ? hasPurposeOne(consent.consentString) : false;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","(function () {\n\tif (window._1gif) {\n\t\tconst img = new Image(1, 1);\n\n\t\timg.src = window._1gif;\n\t}\n\tdelete window._1gif;\n})();\n","const SCALE_REGEX = /scale\\(([0-9]+(?:\\.[0-9]*)?)\\)/;\n\n/**\n * Returns whether the element has been resized by SSP\n * @param {HTMLElement} contResizing Element that is resized by SSP\n * @return {Boolean} Is element scaled?\n */\nconst isScaled = (contResizing) =>\n !!(\n contResizing &&\n contResizing.style &&\n contResizing.style.transform &&\n contResizing.style.transform.match(SCALE_REGEX)\n );\n\n/**\n * If the container has been scaled by SSP, return its scale modifier as a float\n * @param {HTMLElement} contResizing Element that is resized by SSP\n * @return {float | 1} Scale modifer - 1 if not scaled\n */\nconst getScaleModifier = (contResizing) => {\n if (!isScaled(contResizing)) {\n // No scaling - scale modifier is 1\n return 1;\n }\n\n const transformString = contResizing.style.transform;\n const resultArr = transformString.match(SCALE_REGEX);\n\n if (!(resultArr && resultArr.length && resultArr.length === 2)) {\n // Unexpected result - return modifier 1\n return 1;\n }\n\n const result = parseFloat(resultArr[1]);\n\n if (isNaN(result)) {\n // Unexpected result - return modifier 1\n return 1;\n }\n\n // Successfully got modifier as a float - return it\n return result;\n};\n\nexport { isScaled, getScaleModifier };\n","import { SSP_URL } from '../constants';\nimport { sendPawVisibilityEvent } from '../modules/utils/events';\nimport { getScaleModifier } from '../modules/utils/helpers/scaling';\nimport { getIS } from '../modules/utils/identityStorage';\n\nvar sf = {};\nsf.host = {};\n\n// interni konf\nvar _conf = {};\n_conf.server = `${SSP_URL.PROTOCOL}${SSP_URL.IFRAME_HOSTNAME}`;\n_conf.resizeUpdateInterval = 1000;\n_conf.scrollUpdateInterval = 100;\n_conf.registeredServers = [_conf.server];\n\nvar conf = {};\n// podporovane prostredky\n// musi se predat z hosta pri vytvoreni iframu\nconf.support = {\n 'exp-ovr': true,\n 'exp-push': true,\n 'read-cookie': false,\n 'write-cookie': false,\n};\n\nvar timeoutID = null;\n// posluchac z iframe\nsf._listen = function (e) {\n if (_conf.registeredServers.indexOf(e.origin) !== -1) {\n //if (e.origin == _conf.server ) {\n try {\n var d = JSON.parse(e.data);\n var id = d.sfName;\n var sfInstance = sf.SF.frames[id];\n switch (d.method) {\n case 'register':\n sfInstance._register(d);\n break;\n case 'expand':\n sfInstance._expand(d);\n break;\n case 'collapse':\n sfInstance._collapse(d);\n break;\n case 'setResizeProperties':\n sfInstance._setResizeProperties(d);\n break;\n case 'cookie':\n sfInstance._cookie(d);\n break;\n }\n } catch (E) {\n // Nothing happens\n }\n }\n};\n\nvar throttle = function throttle(fn, timeout) {\n var lastFc = null;\n var timeStamp = null;\n return function () {\n function fnCall() {\n fn.apply(this, arguments);\n timeStamp = Date.now();\n }\n\n if (!timeStamp) {\n fnCall();\n } else {\n clearTimeout(lastFc);\n lastFc = setTimeout(\n function () {\n if (Date.now() - timeStamp >= timeout) {\n fnCall();\n }\n },\n timeout - (Date.now() - timeStamp)\n );\n }\n };\n};\n\n// posluchac na scroll udalost\nsf._resize = function () {\n if (timeoutID === null) {\n timeoutID = setTimeout(function () {\n timeoutID = null;\n for (var instanceSF in sf.SF.frames) {\n var i = sf.SF.frames[instanceSF];\n // eslint-disable-next-line camelcase\n var d = { method: 'geom', geom_info: i.getGeom() };\n i.sendData(d);\n }\n }, _conf.resizeUpdateInterval);\n }\n};\n\nsf._getInstance = function () {\n for (var instanceSF in sf.SF.frames) {\n var i = sf.SF.frames[instanceSF];\n // eslint-disable-next-line camelcase\n var d = { method: 'geom', geom_info: i.getGeom() };\n i.sendData(d);\n }\n};\n\nwindow.addEventListener('message', sf._listen);\nwindow.addEventListener(\n 'scroll',\n throttle(function () {\n sf._getInstance();\n }, _conf.scrollUpdateInterval)\n);\nwindow.addEventListener('resize', sf._resize);\n\n// konstruktor pro jednu danou pozici\nsf.SF = function (iframe, ad, data, server) {\n // nastaveni serveru - kvuli test a dev prostredi\n this.server = server ? server : _conf.server;\n if (server) {\n _conf.registeredServers.push(server);\n }\n\n this.name = 'sf' + sf.SF.count++;\n\n iframe.id = this.name;\n sf.SF.frames[iframe.id] = this; // jako klic pouzijeme window iframu, v odpovedi z iframu je pak e.source\n\n this.iframe = iframe;\n var getElm = function (elm, className) {\n var count = 0;\n while (count < 10 && elm && elm.nodeName !== 'BODY') {\n count++;\n if (elm.classList.contains(className)) {\n return elm;\n } else {\n elm = elm.parentNode;\n }\n }\n };\n\n this.cont = getElm(iframe, 'adFull') || { dataset: {}, offsetWidth: 0, offsetHeight: 0 };\n\n // ad has smaller height, than native default frame height (111px vs 150px)\n if (ad.height < this.cont?.offsetHeight) {\n this.cont.style.height = ad.height + 'px';\n }\n\n if (this.cont.dataset.sspScaledMetadata) {\n try {\n this.contScaleMetadata = JSON.parse(this.cont.dataset.sspScaledMetadata);\n } catch (e) {\n // no-op\n }\n this.cont.removeAttribute('data-ssp-scaled-metadata');\n }\n\n this.contOriginalWidth = this.cont.offsetWidth;\n this.contOriginalHeight = this.cont.offsetHeight;\n this.contResizing = getElm(iframe, 'sssp-resizeCont');\n\n const cont = getElm(iframe, 'sssp-posCont');\n if (cont) {\n this.paw = cont.querySelector('.packa');\n }\n this.ad = ad;\n this.data = data;\n\n var d = {\n method: 'init',\n // eslint-disable-next-line camelcase\n geom_info: this.getGeom(),\n dsp: this.ad.dsp,\n };\n\n var IS = getIS();\n var login = IS && IS.getIdentity('login');\n if (login && login.advert_uid) {\n d.said = login.advert_uid;\n }\n\n this.sendData(d);\n};\n\nsf.SF.count = 0; // celkovy pocet instanci sf\nsf.SF.frames = {}; // pole instacni sf\n\nsf.SF.prototype.sendData = function (data) {\n data.sfName = this.name; // tohle posleme vzdy kvuli identifikaci;\n if (this.iframe.contentWindow && this.iframe.contentWindow.postMessage) {\n this.iframe.contentWindow.postMessage(JSON.stringify(data), this.server);\n }\n};\n\n// nacte hodnoty o okne a iframu\nsf.SF.prototype.getGeom = function () {\n var ifrPos = this.iframe.getBoundingClientRect();\n var iv = this._getInView();\n var o = {\n // okno\n win: {\n t: window.screenY,\n b: window.innerHeight - window.screenY,\n l: window.screenX,\n r: window.innerWidth - window.screenY,\n w: window.innerWidth,\n h: window.innerHeight,\n },\n // iframe\n self: {\n t: ifrPos.top,\n b: ifrPos.bottom,\n l: ifrPos.left,\n r: ifrPos.right,\n w: ifrPos.width,\n h: ifrPos.height,\n z: window.getComputedStyle(this.iframe, null).getPropertyValue('z-index'),\n xiv: iv.x,\n yiv: iv.y,\n td: ifrPos.top + window.scrollY,\n bd: ifrPos.bottom + window.scrollY,\n ld: ifrPos.left + window.scrollX,\n rd: ifrPos.right + window.scrollX,\n },\n exp: {\n t: 10000, // zde budou nuly nastavi stranka\n b: 10000, // kvuli nativnim inzarum\n l: 10000,\n r: 10000,\n xs: 0,\n ys: 0,\n },\n };\n return o;\n};\n\nsf.SF.prototype._register = function (data) {\n if (window.Cypress) {\n this.cont.dataset.cySfRegistered = '1';\n }\n const { width, height } = data.baseDimensions;\n\n if (this.ad.pawTimeoutId) {\n clearTimeout(this.ad.pawTimeoutId);\n sendPawVisibilityEvent('showPaw', { adContainer: this.cont });\n }\n\n this.contOriginalWidth = width;\n this.contOriginalHeight = height;\n this.contResizing.style.width = width + 'px';\n this.contResizing.style.height = height + 'px';\n\n const modifier = getScaleModifier(this.contResizing);\n\n this.cont.style.width = modifier * width + 'px';\n this.cont.style.height = modifier * height + 'px';\n};\n\nsf.SF.prototype._setResizeProperties = function (data) {\n const { width, height } = data;\n if (width) {\n this.contResizing.style.width = width + 'px';\n }\n\n if (height) {\n this.contResizing.style.height = height + 'px';\n }\n};\n\nsf.SF.prototype._getInView = function () {\n try {\n var rect = this.cont.getBoundingClientRect();\n if (!rect.width || !document.documentElement.clientWidth) {\n return { x: 0, y: 0 };\n }\n } catch (e) {\n return { x: 0, y: 0 };\n }\n\n // in case frame edges are equal, we compute real frame size from the ad size\n const right = rect.right === rect.left ? rect.left + this.ad.width : rect.right;\n const left = rect.left;\n const bottom = rect.bottom === rect.top ? rect.top + this.ad.height : rect.bottom;\n const top = rect.top;\n\n var w = right - left;\n var h = bottom - top;\n var W = document.documentElement.clientWidth;\n var H = document.documentElement.clientHeight;\n\n var vx = Math.max(0, Math.min(right, W) - Math.max(left, 0));\n var vy = Math.max(0, Math.min(bottom, H) - Math.max(top, 0));\n\n var px = vx / w;\n var py = vy / h;\n\n return { x: px, y: py };\n};\n\nfunction getZIndex() {\n return this.data.options && this.data.options.sfExpandZIndex !== undefined ? this.data.options.sfExpandZIndex : 1;\n}\n\nfunction styleAdContainerOnCollapse() {\n var cont = this.cont.style;\n var contResizing = this.contResizing.style;\n cont.width = this.contOriginalWidth + 'px';\n cont.height = this.contOriginalHeight + 'px';\n contResizing.position = 'static';\n contResizing.width = this.contScaleMetadata ? this.contScaleMetadata.wR + 'px' : '100%';\n contResizing.height = this.contScaleMetadata ? this.contScaleMetadata.hR + 'px' : '100%';\n contResizing.top = '';\n contResizing.right = '';\n contResizing.bottom = '';\n contResizing.left = '';\n contResizing.zIndex = '';\n if (this.paw) {\n this.paw.style.bottom = '0px';\n this.paw.style.right = '0px';\n }\n}\n\nfunction styleAdContainerOnExpand(resizeDimensions) {\n if (!conf.support['exp-push'] && !conf.support['exp-ovr']) {\n this.sendData({ method: 'expand', status: { error: 1, msg: 'not allowed' } });\n return;\n }\n\n const push = resizeDimensions.push && conf.support['exp-push'];\n this.contResizing.style.position = push ? 'static' : 'absolute';\n\n if (!push) {\n this.contResizing.style.zIndex = getZIndex.call(this);\n }\n\n const verticalDiff = this.contScaleMetadata ? this.contScaleMetadata.h - this.contScaleMetadata.hScaled : 0;\n const horizontalDiff = this.contScaleMetadata ? this.contScaleMetadata.w - this.contScaleMetadata.wScaled : 0;\n\n const countDirectionShift = function (value, oposite) {\n return (\n value +\n (~['t', 'b'].indexOf(oposite) ? verticalDiff : horizontalDiff) *\n (resizeDimensions[oposite] ? value / resizeDimensions[oposite] : 1)\n );\n };\n\n for (var o in resizeDimensions) {\n var value = resizeDimensions[o];\n\n switch (o) {\n case 't':\n this._setValues(countDirectionShift(value, 'b'), value, 'top', 'height', resizeDimensions);\n break;\n case 'b':\n this._setValues(countDirectionShift(value, 't'), value, 'bottom', 'height', resizeDimensions);\n break;\n case 'r':\n this._setValues(countDirectionShift(value, 'l'), value, 'right', 'width', resizeDimensions);\n break;\n case 'l':\n this._setValues(countDirectionShift(value, 'r'), value, 'left', 'width', resizeDimensions);\n break;\n }\n }\n}\n\nfunction togglePawTimeoutHandler(pawTimeout) {\n if (pawTimeout) {\n sendPawVisibilityEvent('hidePaw', { adContainer: this.cont });\n setTimeout(\n function () {\n sendPawVisibilityEvent('showPaw', { adContainer: this.cont });\n }.bind(this),\n pawTimeout\n );\n }\n}\n\nconst callWithTimeout = function (fn, timeout) {\n if (timeout) {\n setTimeout(() => fn(), timeout);\n } else {\n fn();\n }\n};\n\nsf.SF.prototype._collapse = function (d) {\n togglePawTimeoutHandler.call(this, d.config.pawTimeout);\n\n callWithTimeout(\n function () {\n styleAdContainerOnCollapse.call(this);\n this.sendData({ method: 'collapse', status: { ok: true, msg: 'done' } });\n }.bind(this),\n d.config.resizeTimeout\n );\n};\n\nsf.SF.prototype._expand = function (d) {\n togglePawTimeoutHandler.call(this, d.config.pawTimeout);\n\n callWithTimeout(\n function () {\n styleAdContainerOnExpand.call(this, d.resizeDimensions);\n this.sendData({ method: 'expand', status: { ok: true, msg: 'done' } });\n }.bind(this),\n d.config.resizeTimeout\n );\n};\n\nsf.SF.prototype._setValues = function (\n directionValue,\n dimensionValue,\n direction,\n cssPropertyToChange,\n resizeDimensions\n) {\n const resizingOffsetWidth = this.contResizing.offsetWidth;\n const resizingOffsetHeight = this.contResizing.offsetHeight;\n const offsetWidth = this.cont.offsetWidth;\n const offsetHeight = this.cont.offsetHeight;\n\n this.contResizing.style[direction] = -1 * directionValue + 'px';\n var push = resizeDimensions.push ? resizeDimensions.push : 0; // pokud nezada jedeme exp-ovr\n\n this.contResizing.style[cssPropertyToChange] =\n (~['top', 'bottom'].indexOf(direction) ? resizingOffsetHeight : resizingOffsetWidth) + dimensionValue + 'px';\n\n const dimensionDiff = dimensionValue * (this.contScaleMetadata ? this.contScaleMetadata.scale : 1);\n\n if (push) {\n this.cont.style[cssPropertyToChange] =\n (~['top', 'bottom'].indexOf(direction) ? offsetHeight : offsetWidth) + dimensionDiff + 'px';\n } else if (this.paw && (direction === 'bottom' || direction === 'right')) {\n // no paw postion adjustment needed for others\n this.paw.style[direction] = -1 * dimensionDiff + 'px';\n this.paw.style.zIndex = getZIndex.call(this);\n }\n};\n\nsf.SF.prototype._cookie = function (d) {\n var cookieName = d.cookieName;\n var cookieData = d.cookieData || null;\n var cook = '';\n\n if (cookieData) {\n if (!cookieData.info) {\n // data k ulozeni do cookie jsou povinna\n return;\n }\n cook = encodeURIComponent(cookieName) + '=' + encodeURIComponent(cookieData.info);\n // zadal i expire\n if (cookieData.expires) {\n var dE = new Date(cookieData.expires);\n var expires = '; expires=' + dE.toUTCString();\n cook += expires;\n }\n document.cookie = cook;\n this.sendData({ method: 'cookie', status: { ok: true, msg: 'done', cmd: 'write-cookie' } });\n } else {\n var newCookieName = encodeURIComponent(cookieName).replace(/[\\-\\.\\+\\*]/g, '\\\\$&');\n var c =\n decodeURIComponent(\n document.cookie.replace(new RegExp('(?:(?:^|.*;)\\\\s*' + newCookieName + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'), '$1')\n ) || null;\n // FIXME zakazat cteni nasich cookie potrebuju list\n this.sendData({ method: 'cookie', status: { ok: true, msg: 'done', cmd: 'read-cookie' }, cookie: c });\n }\n};\n\nwindow.$sf = sf;\nwindow.SF = sf.SF;\n","const blacklist = ['Bytespider; spider-feedback@bytedance.com'];\nconst browserAllowed = (userAgent) => {\n return !blacklist.some((item) => userAgent.includes(item));\n};\nexport { browserAllowed };\n","export const WINDOW_IVA_NAMESPACE = 'sznIVA';\nexport const ERROR_STORAGE_NAME = 'errorStorage';\nexport const BASE_URL = 'https://confessor.iva.seznam.cz';\n","import { BASE_URL } from '../constants';\nexport default class HitSender {\n /**\n * Instantiate HitSender.\n * @param {String} endpoint Name of the component.\n * @param {String} baseURL Optional target URL to which further data may be appended.\n */\n constructor(endpoint, baseUrl) {\n this.target = '';\n this.isFirst = true;\n this.maxLength = 2048;\n this.target = `${baseUrl || BASE_URL}/${endpoint}`;\n }\n delimiter() {\n if (this.isFirst) {\n this.isFirst = false;\n return '?';\n }\n return '&';\n }\n append(addition) {\n const newTarget = this.target + this.delimiter() + addition;\n if (newTarget.length < this.maxLength) {\n this.target = newTarget;\n }\n }\n encode(value) {\n return encodeURIComponent(value);\n }\n /**\n * Add query parameter to the URL.\n * @param {String} key\n * @param {String} value\n * @return {HitSender} Current instance is returned to allow method chaining.\n */\n appendValue(key, value) {\n this.append(this.encode(key) + '=' + this.encode(value));\n return this;\n }\n /**\n * Send GET request to the target.\n */\n send() {\n const pixel = new Image();\n pixel.src = this.target;\n return this.target;\n }\n}\n","import { WINDOW_IVA_NAMESPACE, ERROR_STORAGE_NAME } from '../constants';\nexport const storeMessage = (msg) => {\n if (!window[WINDOW_IVA_NAMESPACE]) {\n window[WINDOW_IVA_NAMESPACE] = { [ERROR_STORAGE_NAME]: new Set() };\n }\n if (!window[WINDOW_IVA_NAMESPACE][ERROR_STORAGE_NAME]) {\n window[WINDOW_IVA_NAMESPACE][ERROR_STORAGE_NAME] = new Set();\n }\n window[WINDOW_IVA_NAMESPACE][ERROR_STORAGE_NAME].add(msg);\n};\nexport const hasMessage = (msg) => {\n if (!window[WINDOW_IVA_NAMESPACE] || !window[WINDOW_IVA_NAMESPACE][ERROR_STORAGE_NAME]) {\n return false;\n }\n return window[WINDOW_IVA_NAMESPACE][ERROR_STORAGE_NAME].has(msg);\n};\n","import { browserAllowed } from './modules/browser';\nimport HitSender from './modules/HitSender';\nimport { hasMessage, storeMessage } from './modules/storage';\n/**\n * Parse stack trace lines - store mentioned \"/[name].js\" files\n */\nexport const _parseStackLines = (stack) => {\n return typeof stack === 'string'\n ? stack\n .split('\\n')\n .map((stackLine) => {\n return stackLine.match(new RegExp('/[a-zA-Z0-9_\\\\.-]+\\\\.js(\\\\?szn_loader=1)?', 'gi'));\n })\n .filter(Boolean)\n : [];\n};\n/**\n * Handler error - parse stack - validate - send\n */\nexport const _errorHandler = (errorEvent, configuration) => {\n const { error } = errorEvent;\n if (!error || !error.stack || !error.message) {\n return;\n }\n const { message, stack } = error;\n const { scriptName, baseUrl, endpoint } = configuration;\n // every script can log any error only once\n const storageMessage = `${scriptName}-${message}`;\n if (hasMessage(storageMessage)) {\n // This error has already been sent\n return;\n }\n const stackLinesParsed = _parseStackLines(stack);\n const linesLimit = 3;\n const scriptsMentionedFlat = stackLinesParsed.splice(0, linesLimit).reduce((acc, item) => {\n return (acc = [...acc, ...item]);\n }, []);\n if (scriptsMentionedFlat.find((script) => {\n return (~script.indexOf(`/${scriptName}`) &&\n // if loader redirect -> do not catch \"real\" loaded lib\n (endpoint !== 'loader-script' || !~script.indexOf('szn_loader=1')));\n })) {\n new HitSender(endpoint, baseUrl)\n .appendValue('msg', message)\n .appendValue('script', scriptName)\n .appendValue('href', window.location.href)\n .appendValue('referrer', document.referrer)\n .appendValue('stack', stack)\n .send();\n storeMessage(storageMessage);\n }\n};\n/**\n * Attach error listener (only once for each script)\n */\nexport const startErrorHandling = (config) => {\n const { scriptName } = config;\n const initMessage = `${scriptName}-init`;\n if (hasMessage(initMessage)) {\n // Prevent multiple listeners in SPA\n return;\n }\n if (!browserAllowed(window.navigator.userAgent)) {\n // browser blacklist check\n return;\n }\n storeMessage(initMessage);\n window.addEventListener('error', (errorEvent) => _errorHandler(errorEvent, config));\n};\n","/**\n * As DOT and ssp script itself are or can be loaded asynchronously, there is\n * a queue of callbacks stored before they can be executed. There are two queues\n * in ssp:\n *\n * 1. Internal, supported queue, stored in 'functionStack' array.\n * 2. Legacy, deprecated window.ssspQ array with monkey patched 'push' method\n * because of abuse by users.\n */\n\nimport { getDot } from '../impress/dotLoader';\n\nconst functionStack = [];\n\n/**\n * Adds a function to a queue for later execution\n * @param {function} callback function to be executed,\n * @param {...any} args arguments passed to callback\n * @returns {Promise} promise that resolves when callback is executed\n */\nconst addToQueue = (callback, ...args) => {\n if (getDot() === null) {\n return new Promise((resolve, reject) => {\n functionStack.push({ callback, args, resolve, reject });\n });\n } else if (typeof callback === 'function') {\n // Although Promise.resolve handles potentially rejected promise,\n // we must handle throwing synchronous functions.\n try {\n return Promise.resolve(callback(...args));\n } catch (e) {\n return Promise.reject(e);\n }\n }\n};\n\n/**\n * Executes all functions stored in the main queue\n */\nconst executeQueue = () =>\n functionStack.forEach((func) => {\n if (typeof func.callback === 'function') {\n // In case the callback returns a promise then just pass it on,\n // if it returns a normal value then wrap it in a promise.\n try {\n const returnValue = Promise.resolve(func.callback(...func.args));\n returnValue.then((ret) => func.resolve(ret)).catch((err) => func.reject(err));\n } catch (e) {\n func.reject(e);\n }\n }\n });\n\nlet isLegacyQueueMonkeyPatched = false;\n\n/**\n * Monkey patch window.ssspQ's native 'push' method so it triggers queue execution\n * on top of adding callback to the array.\n *\n * @param {Function} executeQueueCallback function to run after adding function to array\n */\nconst monkeyPatchQueue = (executeQueueCallback) => {\n if (isLegacyQueueMonkeyPatched) {\n return;\n }\n\n if (!window.ssspQ) {\n window.ssspQ = [];\n }\n\n window.ssspQ.push = (userCallback) => {\n if (typeof userCallback !== 'function') {\n return;\n }\n window.ssspQ[window.ssspQ.length] = userCallback;\n executeQueueCallback();\n };\n isLegacyQueueMonkeyPatched = true;\n};\n\n/**\n * Execute legacy static queue.\n */\nconst executeStaticQueue = () => {\n monkeyPatchQueue(executeStaticQueue);\n while (window.ssspQ && window.ssspQ.length !== 0) {\n window.ssspQ.shift()();\n }\n};\n\n/**\n * Execute all the queues\n */\nconst executeQueues = () => {\n executeQueue();\n executeStaticQueue();\n};\n\nexport { addToQueue, executeQueues };\n","import { createPawIconTemplate } from './createPawIconTemplate';\nimport { getPositions } from '../ads/adRepository';\nimport { getJson } from '../utils/helpers/getJson';\nimport { sendPawVisibilityEvent } from '../utils/events';\nimport { PAW_RENDER_DELAY } from '../../constants';\n\nconst writePaw = (container, dsp, pawOptions) => {\n if (pawOptions && pawOptions.pawDisable) {\n return;\n }\n\n const pawContainer = document.createElement('div');\n pawContainer.style = 'position:relative;';\n const innerAdContainer = container.querySelector('.sssp-resizeCont');\n pawContainer.innerHTML += createPawIconTemplate(dsp);\n innerAdContainer.appendChild(pawContainer);\n\n const pawRenderDelay = (pawOptions && pawOptions.pawTimeout) || PAW_RENDER_DELAY;\n\n // by default the paw is hidden, after pawRenderDelay timeout the paw is visible\n setTimeout(() => {\n sendPawVisibilityEvent('showPaw', { adContainer: container });\n }, pawRenderDelay);\n};\n\nconst handlePawForIframe = ({ data }) => {\n const jsonData = getJson(data);\n if (!jsonData || jsonData.action !== 'add_paw') {\n return;\n }\n\n const positions = getPositions();\n const storedAd = positions.find((position) => {\n const { dsp, type, impressId } = position.ad;\n if (impressId && jsonData.impressId) {\n return impressId === jsonData.impressId;\n } else {\n // fallback before newer-style customEvent template is deployed\n return dsp === 'SKLIK' && type === 'iframe';\n }\n });\n const adContainer = storedAd && storedAd.containerElement;\n\n let pawOptions = null;\n if (storedAd.data && storedAd.data.options) {\n const { pawTimeout, pawDisable } = storedAd.data.options;\n pawOptions = {\n pawTimeout,\n pawDisable,\n };\n }\n\n // only add paw if not already present\n if (adContainer && adContainer.querySelector('div.packa') === null) {\n writePaw(adContainer, storedAd.ad.dsp, pawOptions);\n }\n};\n\nexport const registerWritePawListenerForIframe = () => {\n window.addEventListener('message', handlePawForIframe);\n};\n\nconst renderPawElementForCode = () => {\n let oldPositionsLength = 0;\n return () => {\n const positions = getPositions();\n const newPositions = positions.slice(oldPositionsLength, positions.length);\n oldPositionsLength = positions.length;\n\n newPositions.forEach((position) => {\n const adContainer = position?.containerElement;\n const { dsp, type } = position.ad;\n\n if (\n adContainer?.querySelector('div.packa') === null &&\n ['SKLIK', 'PUBMATIC', 'ADVERT'].includes(dsp) &&\n type === 'code'\n ) {\n const pawOptions =\n position?.data?.options?.pawTimeout || position?.data?.options?.pawDisable\n ? { ...position.data.options }\n : null;\n writePaw(adContainer, dsp, pawOptions);\n }\n });\n };\n};\n\nexport const handlePawForCode = renderPawElementForCode();\n\nexport const registerWritePawListenerForCode = () => {\n window.addEventListener('requestpawelement', handlePawForCode);\n};\n","/**\n * Hides and shows paw according to the event received from sf.host\n * @param {CustomEvent} event\n * @param {Object} event.detail\n * @param {String} event.type\n */\nconst handleEvent = ({ detail, type }) => {\n const { adContainer } = detail;\n const paw = adContainer.querySelector(`div.packa`);\n\n if (!paw) {\n return;\n }\n\n switch (type) {\n case 'showPaw':\n paw.style.visibility = 'visible';\n break;\n case 'hidePaw':\n paw.style.visibility = 'hidden';\n break;\n }\n};\n\nexport const registerPawVisibilityListener = () => {\n window.addEventListener('hidePaw', handleEvent);\n window.addEventListener('showPaw', handleEvent);\n};\n","import { dbg } from '../utils/dbg';\nimport { CONSENT } from '@sklik/cmp2-common';\nimport { CONSENT_CHECK_TIMEOUT } from '../../constants';\n\n/**\n * Factory for creating scoped \"resolver\"\n */\nconst resolverFactory = (resolve, timingObject) => {\n return (consent, byCookie) => {\n if (consent) {\n if (byCookie) {\n dbg('info', 'Got v2 consent from cookie', consent);\n } else {\n dbg('info', 'Got v2 consent from tcf api', consent);\n }\n timingObject.stopAll();\n resolve(consent);\n } else {\n dbg('info', 'Resolved without consent');\n timingObject.stopAll();\n resolve(null);\n }\n };\n};\n\n/**\n * Get consent + cb flow\n */\nconst getConsentAndAttachCallback = (resolver) => {\n return CONSENT.getConsentFromCookieList((result) => {\n if (result) {\n resolver(result, false);\n }\n });\n};\n\n/**\n * Consent checking timeout. Terminated by existing consent data (cookie / TCF event)\n */\nconst consentCheckingTimeout = (resolver, timingObject) => {\n const consentChecked = getConsentAndAttachCallback(resolver);\n if (consentChecked) {\n resolver(consentChecked, true);\n }\n\n timingObject.timeout.start(() => {\n dbg('info', 'Consent checking timeout reached');\n resolver(null, false);\n }, CONSENT_CHECK_TIMEOUT);\n};\n\n/**\n * Factory for creating \"scoped time object\" for easy propagation\n */\nconst timingFactory = function () {\n return {\n start: Date.now(),\n interval: {\n _interval: null,\n start(fn, ms) {\n this._interval = window.setInterval(fn, ms);\n },\n stop() {\n window.clearInterval(this._interval);\n },\n },\n timeout: {\n _timeout: null,\n start(fn, ms) {\n this._timeout = window.setTimeout(fn, ms);\n },\n stop() {\n window.clearTimeout(this._timeout);\n },\n },\n stopAll() {\n this.interval.stop();\n this.timeout.stop();\n },\n };\n};\n\n/**\n * Get consent in async way (optionally block flow until any consent given)\n */\nexport const getLatestConsent = () => {\n return new Promise((resolve) => {\n // create \"scoped\" timing object\n const timing = timingFactory();\n\n // create \"scoped\" resolverr -> resolve accorind to consent value\n const resolver = resolverFactory(resolve, timing);\n\n // SHOULD NOT WAIT FOR CONSENT (\"soft\" waiting -> timeout)\n consentCheckingTimeout(resolver, timing);\n dbg('info', 'Consent checking timeout started -> \"timeout wait\"');\n });\n};\n\nexport const getLatestConsentString = async () => {\n try {\n const consent = await getLatestConsent();\n\n if (consent) {\n return consent.consentString;\n } else {\n return null;\n }\n } catch (e) {\n return null;\n }\n};\n","import { getLatestConsentString } from './consentCookie';\nimport { getAdByImpressId } from '../ads/adRepository';\nimport { getConfig } from '../config';\n\nexport const handleConsentRequest = async (event) => {\n let message = null;\n try {\n message = JSON.parse(event.data);\n if (!message.type || message.type !== 'SSSP_GET_CONSENT') {\n return;\n }\n } catch (e) {\n return;\n }\n\n const consent = await getLatestConsentString();\n\n if (!consent) {\n return;\n }\n\n const ad = getAdByImpressId(message.impressId);\n const iframe = ad.containerElement.querySelector('iframe');\n const { protocol, staticServer } = getConfig();\n const targetOrigin = protocol + staticServer;\n if (iframe) {\n const consentMessage = {\n type: 'SSSP_USER_CONSENT',\n consent,\n };\n iframe.contentWindow?.postMessage(JSON.stringify(consentMessage), targetOrigin);\n }\n};\n\nexport const enableConsentProvider = () => {\n window.addEventListener('message', handleConsentRequest);\n};\n","import { getDot } from '../impress/dotLoader';\nimport { dbg } from './dbg';\nimport { getJson } from './helpers/getJson';\n\nconst REPORTS_ACTION_ID = 'reports_collection';\n\n/**\n * Only one Observer can be registered for each frame\n */\nlet registered = false;\nexport const _setIsRegistered = (r = true) => (registered = r);\nexport const _getIsRegistered = () => registered;\n\n/**\n * Send DOT hits with report/s data\n */\nexport const sendReports = (reports) => {\n const DOT = getDot();\n if (!DOT.hit) {\n dbg('warn', `Browser reports / interventions (${reports.length}) couldn't be sent. DOT.hit() missing.`);\n return;\n }\n dbg('info', `Sending browser reports / interventions (${reports.length})`);\n for (const report of reports) {\n /*\n\t\t\tReport={type: 'intervention', url: 'https://ssp.im.cz/static/html/www.seznam.cz/reklama.html?url=https%3A%2F%2Fwww.seznam.cz%2F', body: InterventionReportBody}\n\t\t\tInterventionReportBody={id: 'HeavyAdIntervention', message: 'Ad was removed because its peak CPU usage exceeded…, sourceFile: null, lineNumber: null, columnNumber: null}\n\t\t*/\n dbg('Intervention reports item', report);\n DOT.hit('heavyAdIntervention');\n }\n};\n\n/**\n * Trigger reports sending (direct or send to parent)\n */\nexport const processReports = (reports, topLevel) => {\n if (topLevel) {\n // we are in toplevel -> we have DOT\n sendReports(reports);\n } else {\n // we are nested -> send event to parent to send hits\n window.parent.postMessage(\n JSON.stringify({\n action: REPORTS_ACTION_ID,\n reports,\n }),\n '*'\n );\n }\n};\n\n/**\n * If supported by browser, reporting observer is registered and collects (intervention) reports from itself or from child iframe.\n * Reports are send after collection or before page is hidden\n */\nconst initReporting = (topLevel = false) => {\n if (!_getIsRegistered() && 'ReportingObserver' in window) {\n _setIsRegistered(true);\n\n const observer = new window.ReportingObserver(\n (reports) => {\n processReports(reports, topLevel);\n },\n { types: ['intervention'], buffered: true }\n );\n observer.observe();\n\n dbg('ReportingObserver registered');\n\n window.addEventListener('pagehide', () => {\n const reports = observer.takeRecords();\n processReports(reports, topLevel);\n });\n\n if (topLevel) {\n window.addEventListener('message', (event) => {\n const message = getJson(event.data);\n if (message && message.action === REPORTS_ACTION_ID && message.reports) {\n sendReports(message.reports);\n }\n });\n }\n }\n};\n\nexport default initReporting;\n","import { getConfig } from '../config';\nimport { dbg } from '../utils/dbg';\n\n/** Sets up a listener which listens for messages from the current window.\n * If the message is of type 'getUtmSource', it sends a message back to the\n * sender with the utm_source from config.\n */\nexport const setUpUtmMessageListener = () => {\n window.addEventListener('message', (e) => {\n if (e.data.type === 'getUtmSource') {\n dbg('info', 'received getUtmSource message from iframe');\n const source = getConfig().source;\n e.source.postMessage({ type: 'utmSource', source }, '*');\n }\n });\n};\n\n// Returns the master window, which is the top window if there is no Cypress\n// or the parent window if there is Cypress (Here we presume that there will be\n// no SSP in iframe which is also in an iframe in tests).\nconst getLeaderWindow = () => {\n try {\n if (window.top.Cypress) {\n return window.parent;\n }\n } catch (e) {\n // noop\n }\n return window.top;\n};\n\n/** Tries to get utm_source from SSP in top window.\n * Returns a promise that resolves to the utm_source or null.\n */\nexport const syncUtmSourceWithLeader = () => {\n const masterWindow = getLeaderWindow();\n\n masterWindow.postMessage({ type: 'getUtmSource' }, '*');\n dbg('info', 'sent getUtmSource message to leader');\n const returnValue = new Promise((resolve) => {\n // In case there is no master or the master doesn't respond, resolve to null\n const timeout = setTimeout(() => {\n dbg('error', 'no response from master SSP, resolving to null');\n resolve(null);\n }, 250);\n const f = (e) => {\n if (e.data.type === 'utmSource') {\n clearTimeout(timeout);\n dbg('info', 'got message from leader', e);\n resolve(e.data.source);\n window.removeEventListener('message', f);\n }\n };\n window.addEventListener('message', f);\n });\n return returnValue;\n};\n","import { getSessionData, isFirstPageview } from './sessionDetection';\nimport { dopUrlParameters } from '../config/configValues';\n\n/**\n * Get all available doporucovani AB test data from session.\n * @returns {Object}\n */\nexport const getDopAbTestValues = () => {\n const sessionData = getSessionData();\n return dopUrlParameters.reduce((acc, key) => {\n if (sessionData[key]) {\n acc[key] = sessionData[key];\n }\n return acc;\n }, {});\n};\n\n/**\n * Get doporucovani AB test data required for ad request payload\n * (request ID should be logged on first pageview only).\n * @returns {Object}\n */\nexport const getDopPayloadValues = () => {\n const abTestValues = getDopAbTestValues();\n if (!isFirstPageview()) {\n delete abTestValues.dop_req_id;\n }\n return abTestValues;\n};\n","let lastRusId = null;\nlet lastConsent = '';\n\nexport const setLastRusId = (rusId) => {\n lastRusId = rusId;\n};\n\nexport const setLastConsent = (consent) => {\n lastConsent = consent;\n};\n\nexport const canUseCurrentConsent = (currentRusId, currentConsent) => {\n if (!currentRusId || !lastRusId) {\n lastRusId = '';\n return true;\n }\n\n // rusId changed but consent is still same. Cannot send current consent.\n if (currentRusId !== lastRusId && lastConsent === currentConsent) {\n return false;\n }\n\n return true;\n};\n","import { debugFactory } from '@iva/debugger';\nconst config = {\n name: 'utils',\n fColor: 'white',\n bColor: '#cc0044',\n};\nconst debug = debugFactory(config);\nexport { debug };\n","import { getDomainLevel } from './url.js';\nimport { getCookie, removeCookie } from './cookie.js';\nimport { SID } from './constants.js';\n/**\n * Accepts sid candidate and returns true if sid is valid and false if not.\n * It can handle any value, only sid in string format may evaluate to true.\n * @param sid Potentially valid sid\n * @return True if valid sid, false otherwise\n */\nexport const isValidSid = (sid) => typeof sid === 'string' && !!sid.match(/^id=(\\d+)\\|t=(\\d+\\.\\d{3})\\|te=(\\d+\\.\\d{3})\\|c=([A-Z0-9]{32})$/);\n/**\n * Encodes sid into \"znstring\". Can handle any input, but only\n * valid sid in string format will yield actual hash.\n * @param sid Potentially valid sid\n * @return Hash if valid sid, null otherwise\n */\nexport const sidToHash = (sid) => {\n if (!isValidSid(sid)) {\n return null;\n }\n // atob and btoa may throw an exception, see https://developer.mozilla.org/en-US/docs/Web/API/atob#exceptions\n try {\n return window.btoa(encodeURIComponent(sid));\n }\n catch {\n return null;\n }\n};\n/**\n * Decodes \"znstring\" into sid. Can handle any input, but only\n * valid \"znstring\" in string format will yield sid.\n * @param hash Potentially hashed sid\n * @return Sid if valid hash, null otherwise\n */\nexport const hashToSid = (hash) => {\n if (typeof hash !== 'string') {\n return null;\n }\n // atob and btoa may throw an exception, see https://developer.mozilla.org/en-US/docs/Web/API/atob#exceptions\n try {\n const sid = decodeURIComponent(window.atob(hash));\n if (isValidSid(sid)) {\n return sid;\n }\n else {\n return null;\n }\n }\n catch {\n return null;\n }\n};\n/**\n * Retrieves sid cookie, validates its value and returns valid sid or null.\n * @return Valid sid or null\n */\nexport const getValidSidFromCookie = () => {\n const sidCookieValue = getCookie(SID);\n return isValidSid(sidCookieValue) ? sidCookieValue : null;\n};\n/**\n * Retrieves sid cookie, validates its value and removes the cookie\n * if the value is not a valid sid.\n */\nexport const removeInvalidSidCookie = () => {\n if (!isValidSid(getCookie(SID))) {\n removeCookie(SID, { domain: getDomainLevel(), path: '/' });\n }\n};\n","export var ADDRESS;\n(function (ADDRESS) {\n ADDRESS[\"state\"] = \"a1\";\n ADDRESS[\"city\"] = \"a2\";\n ADDRESS[\"street\"] = \"a3\";\n ADDRESS[\"houseNumber\"] = \"a4\";\n ADDRESS[\"postalCode\"] = \"a5\";\n})(ADDRESS || (ADDRESS = {}));\n","import { ADDRESS as AID } from './types/address.js';\nimport { isObject, digestMessage, isValidSHA256String } from './modules/utils.js';\nexport const RULES = {\n [AID.state]: [\n {\n value: 'ceska republika',\n reg: /^(cz|cr|czechia|czech|czech republic|cesko)$/,\n },\n {\n value: 'slovenska republika',\n reg: /^(sk|sr|slovakia|slovak|slovak republic|slovensko)$/,\n },\n ],\n [AID.city]: [\n { value: 'hradec kralove', reg: /h\\.?\\s?kralove$/ },\n { value: 'karlovy vary', reg: /k\\.?\\s?vary$/ },\n { value: 'm.$1', reg: /(?:m\\.?|mor\\.|morav.*)\\s?(beroun|budejovice|trebova|krumlov)$/ },\n {\n value: '$1 nad labem',\n reg: /(usti|brandys|dvur kralove|roudnice|lysa|kostelec|tynec) (n\\.?|nad)\\s?(labem|l\\.?)/,\n },\n { value: '$1 nad nisou', reg: /(jablonec|hradek|lucany) (n\\.?|nad)\\s?(nisou|n\\.?)/ },\n { value: '$1 nad sazavou', reg: /(zdar|svetla|tynec|ledec|zruc|lipnice) (n\\.?|nad)\\s?(sazavou|s\\.?)/ },\n {\n value: '$1 nad vltavou',\n reg: /(kralupy|tyn|hluboka|libcice|krasna hora|rozmberk) (n\\.?|nad)\\s?(vltavou|vl\\.?|v\\.?)/,\n },\n { value: '$1 pod radhostem', reg: /(roznov|frenstat) (p\\.?|pod)\\s?(radhostem|r\\.?)/ },\n { value: '$1 nad ohri', reg: /(klasterec|kynsperk|bohusovice|budyne) (n\\.?|nad)\\s?(ohri|o\\.?)/ },\n { value: '$1 nad orlici', reg: /(usti|tyniste|kostelec|jablonne|brandys) (n\\.?|nad)\\s?(orlici|o\\.?)/ },\n { value: '$1 nad metuji', reg: /(nove mesto|police|teplice) (n\\.?|nad)\\s?(metuji|m\\.?)/ },\n { value: '$1 nad jizerou', reg: /(benatky|bakov|rokytnice|jablonec|vysoke) (n\\.?|nad)\\s?(jizerou|j\\.?)/ },\n { value: '$1 nad luznici', reg: /(veseli|plana|suchdol|lomnice) (n\\.?|nad)\\s?(luznici|l\\.?)/ },\n { value: 'rychnov nad kneznou', reg: /rychnov (n\\.?|nad)\\s?(kneznou|k\\.?)/ },\n { value: 'veseli nad moravou', reg: /veseli (n\\.?|nad)\\s?(moravou|m\\.?)/ },\n { value: 'nove mesto na morave', reg: /nove mesto (n\\.?|na)\\s?(morave|m\\.?)/ },\n { value: 'frydlant nad ostravici', reg: /frydlant (n\\.?|nad)\\s?(ostravici|o\\.?)/ },\n { value: 'bystrice pod hostynem', reg: /bystrice (p\\.?|pod)\\s?(hostynem|h\\.?)/ },\n { value: 'lipnik nad becvou', reg: /lipnik (n\\.?|nad)\\s?(becvou|b\\.?)/ },\n { value: 'bystrice nad pernstejnem', reg: /bystrice (n\\.?|nad)\\s?(pernstejnem|p\\.?)/ },\n { value: 'mnisek pod brdy', reg: /mnisek (p\\.?|pod)\\s?(brdy|b\\.?)/ },\n { value: 'trebechovice pod orebem', reg: /trebechovice (p\\.?|pod)\\s?(orebem|o\\.?)/ },\n { value: 'chlumec nad cidlinou', reg: /chlumec (n\\.?|nad)\\s?(cidlinou|c\\.?)/ },\n { value: 'lomnice nad popelkou', reg: /lomnice (n\\.?|nad)\\s?(popelkou|p\\.?)/ },\n { value: 'hradec nad moravici', reg: /hradec (n\\.?|nad)\\s?(moravici|m\\.?)/ },\n { value: 'bela pod bezdezem', reg: /bela (p\\.?|pod)\\s?(bezdezem|b\\.?)/ },\n { value: 'namest nad oslavou', reg: /namest (n\\.?|nad)\\s?(oslavou|o\\.?)/ },\n { value: 'vrbno pod pradedem', reg: /vrbno (p\\.?|pod)\\s?(pradedem|p\\.?)/ },\n { value: 'rozmital pod tremsinem', reg: /rozmital (p\\.?|pod)\\s?(tremsinem|t\\.?)/ },\n { value: 'jaromerice nad rokytnou', reg: /jaromerice (n\\.?|nad)\\s?(rokytnou|r\\.?)/ },\n { value: 'kostelec nad cernymi lesy', reg: /kostelec (n\\.?|nad)\\s?(cernymi|c\\.?)\\s?(lesy|l\\.?)/ },\n { value: 'straz pod ralskem', reg: /straz (p\\.?|pod)\\s?(ralskem|r\\.?)/ },\n { value: 'nove mesto pod smrkem', reg: /nove mesto (p\\.?|pod)\\s?(smrkem|s\\.?)/ },\n { value: 'kamenice nad lipou', reg: /kamenice (n\\.?|nad)\\s?(lipou|l\\.?)/ },\n { value: 'benesov nad ploucnici', reg: /benesov (n\\.?|nad)\\s?(ploucnici|p\\.?)/ },\n { value: 'hrusovany nad jevisovkou', reg: /hrusovany (n\\.?|nad)\\s?(jevisovkou|j\\.?)/ },\n { value: 'hodkovice nad mohelkou', reg: /hodkovice (n\\.?|nad)\\s?(mohelkou|m\\.?)/ },\n { value: 'rychnov u jablonce nad nisou', reg: /rychnov u (j\\.?|jablonce)\\s?(n\\.?|nad)\\s?(nisou|n\\.?)/ },\n { value: 'budisov nad budisovkou', reg: /budisov (n\\.?|nad)\\s?(budisovkou|b\\.?)/ },\n { value: 'janovice nad uhlavou', reg: /janovice (n\\.?|nad)\\s?(uhlavou|u\\.?)/ },\n { value: 'svoboda nad upou', reg: /svoboda (n\\.?|nad)\\s?(upou|u\\.?)/ },\n { value: 'nemcice nad hanou', reg: /nemcice (n\\.?|nad)\\s?(hanou|h\\.?)/ },\n { value: 'ronov nad doubravou', reg: /ronov (n\\.?|nad)\\s?(doubravou|d\\.?)/ },\n { value: 'bela nad radbuzou', reg: /bela (n\\.?|nad)\\s?(radbuzou|r\\.?)/ },\n { value: 'brezova nad svitavou', reg: /brezova (n\\.?|nad)\\s?(svitavou|s\\.?)/ },\n { value: 'becov nad teplou', reg: /becov (n\\.?|nad)\\s?(teplou|t\\.?)/ },\n { value: 'straz nad nezarkou', reg: /straz (n\\.?|nad)\\s?(nezarkou|n\\.?)/ },\n { value: 'praha', reg: /praha.*/ },\n { value: 'praha', reg: /pha(\\s.?|\\d+)?.*/ },\n { value: 'n.', reg: /\\sn(\\.?|a|ad)\\s/ },\n { value: 'p.', reg: /\\sp(\\.?|od)\\s/ },\n { value: 'c.', reg: /(^cesk[aey]\\s|^c\\s)/ },\n { value: 'sv.$2', reg: /(svat[aey]|sv\\s)(.+)/ },\n { value: '$1m.', reg: /(nove|stare|horni|dolni)\\smesto($|(\\s|\\-).*)/ },\n { value: '', reg: /[\\-–,\\/\\(\\s]+(sever|jih|vychod|zapad|mesto|stred)($|\\))/ },\n ],\n [AID.street]: [\n { value: '$1|$2', reg: /^([a-z\\-\\.\\' ]*[0-9]{0,}[a-z\\-\\.\\' ]+)([0-9]{1,}.*)?$/ },\n { value: '$1', reg: /^(.*)\\|$/ },\n ],\n [AID.houseNumber]: [],\n [AID.postalCode]: [],\n};\nconst CHAR_MAP = {\n À: 'A',\n Ã: 'A',\n Â: 'A',\n Ã: 'A',\n Ä: 'A',\n Ã…: 'A',\n Æ: 'AE',\n Ç: 'C',\n È: 'E',\n É: 'E',\n Ê: 'E',\n Ë: 'E',\n ÃŒ: 'I',\n Ã: 'I',\n ÃŽ: 'I',\n Ã: 'I',\n Ã: 'D',\n Ñ: 'N',\n Ã’: 'O',\n Ó: 'O',\n Ô: 'O',\n Õ: 'O',\n Ö: 'O',\n Ù: 'U',\n Ú: 'U',\n Û: 'U',\n Ãœ: 'U',\n Ã: 'Y',\n ß: 'ss',\n à : 'a',\n á: 'a',\n â: 'a',\n ã: 'a',\n ä: 'a',\n Ã¥: 'a',\n æ: 'ae',\n ç: 'c',\n è: 'e',\n é: 'e',\n ê: 'e',\n ë: 'e',\n ì: 'i',\n Ã: 'i',\n î: 'i',\n ï: 'i',\n ð: 'd',\n ñ: 'n',\n ò: 'o',\n ó: 'o',\n ô: 'o',\n õ: 'o',\n ö: 'o',\n ø: 'o',\n ù: 'u',\n ú: 'u',\n û: 'u',\n ü: 'u',\n ý: 'y',\n ÿ: 'y',\n Ä€: 'A',\n Ä: 'a',\n Ä‚: 'A',\n ă: 'a',\n Ä„: 'A',\n Ä…: 'a',\n Ć: 'C',\n ć: 'c',\n Ĉ: 'C',\n ĉ: 'c',\n ÄŠ: 'C',\n Ä‹: 'c',\n ÄŒ: 'C',\n Ä: 'c',\n ÄŽ: 'D',\n Ä: 'd',\n Ä: 'D',\n Ä‘: 'd',\n Ä’: 'E',\n Ä“: 'e',\n Ä”: 'E',\n Ä•: 'e',\n Ä–: 'E',\n Ä—: 'e',\n Ę: 'E',\n Ä™: 'e',\n Äš: 'E',\n Ä›: 'e',\n Äœ: 'G',\n Ä: 'g',\n Äž: 'G',\n ÄŸ: 'g',\n Ä : 'G',\n Ä¡: 'g',\n Ä¢: 'G',\n Ä£: 'g',\n Ĥ: 'H',\n Ä¥: 'h',\n Ħ: 'H',\n ħ: 'h',\n Ĩ: 'I',\n Ä©: 'i',\n Ī: 'I',\n Ä«: 'i',\n Ĭ: 'I',\n Ä: 'i',\n Ä®: 'I',\n į: 'i',\n Ä°: 'I',\n Ä´: 'J',\n ĵ: 'j',\n Ķ: 'K',\n Ä·: 'k',\n ĸ: 'k',\n Ĺ: 'L',\n ĺ: 'l',\n Ä»: 'L',\n ļ: 'l',\n Ľ: 'L',\n ľ: 'l',\n Ń: 'N',\n Å„: 'n',\n Å…: 'N',\n ņ: 'n',\n Ň: 'N',\n ň: 'n',\n ʼn: 'n',\n ÅŒ: 'O',\n Å: 'o',\n ÅŽ: 'O',\n Å: 'o',\n Å: 'O',\n Å‘: 'o',\n Å”: 'R',\n Å•: 'r',\n Å–: 'R',\n Å—: 'r',\n Ř: 'R',\n Å™: 'r',\n Åš: 'S',\n Å›: 's',\n Åœ: 'S',\n Å: 's',\n Åž: 'S',\n ÅŸ: 's',\n Å : 'S',\n Å¡: 's',\n Å¢: 'T',\n Å£: 't',\n Ť: 'T',\n Å¥: 't',\n Ŧ: 'T',\n ŧ: 't',\n Ũ: 'U',\n Å©: 'u',\n Ū: 'U',\n Å«: 'u',\n Ŭ: 'U',\n Å: 'u',\n Å®: 'U',\n ů: 'u',\n Å°: 'U',\n ű: 'u',\n Ų: 'U',\n ų: 'u',\n Å´: 'W',\n ŵ: 'w',\n Ŷ: 'Y',\n Å·: 'y',\n Ÿ: 'Y',\n Ź: 'Z',\n ź: 'z',\n Å»: 'Z',\n ż: 'z',\n Ž: 'Z',\n ž: 'z',\n};\nconst CHAR_PATTERN = new RegExp(Object.keys(CHAR_MAP).join('|'), 'g');\n/**\n * Replaces special chars with classical chars from alphabet\n */\nexport const _replaceSpecialChars = (strWithSpecialChars) => {\n return strWithSpecialChars.replace(CHAR_PATTERN, (match) => {\n return CHAR_MAP[match] ?? match;\n });\n};\n/**\n * Converts value to string, removes accents and transforms to lower case and applies custom regex rules\n */\nexport const _normalize = (value, addressKey) => {\n if (isObject(value) || Array.isArray(value)) {\n return null;\n }\n // normalize value\n let normalizedValue = _replaceSpecialChars(String(value).trim())\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/\\s+/, ' ')\n .replace(/[^a-zA-Z0-9\\-\\. ']/g, '')\n .toLowerCase();\n const addressKeyRules = RULES[addressKey] ?? [];\n // apply custom rules for address part\n if (addressKey && addressKeyRules.length > 0) {\n for (const { value: val, reg } of addressKeyRules) {\n if (reg.test(normalizedValue)) {\n normalizedValue = normalizedValue.replace(reg, val);\n }\n }\n }\n // remove all whitespaces and dashes\n normalizedValue = normalizedValue.replace(/[\\s-]/g, '');\n return normalizedValue;\n};\n/**\n * Creates object that contains hashes of address parts\n */\nexport const createAddressObject = (address, digest = true) => {\n if (!isObject(address)) {\n return {};\n }\n const normalizedObject = Object.entries(address).reduce((hashedAddressObj, [key, val]) => {\n if (isValidSHA256String(val)) {\n hashedAddressObj[key] = val;\n return hashedAddressObj;\n }\n // normalize value\n const normalizedAddressPart = _normalize(val, key);\n // hash normalized value when exists\n if (normalizedAddressPart) {\n // street part includes house number\n if (key === AID.street && normalizedAddressPart.includes('|')) {\n const [street, houseNumber] = normalizedAddressPart.split('|');\n if (street) {\n hashedAddressObj[AID.street] = street;\n }\n // when original houseNumber field is empty, fill it\n if (houseNumber != null && !address[AID.houseNumber]) {\n hashedAddressObj[AID.houseNumber] = houseNumber;\n }\n }\n else {\n hashedAddressObj[key] = normalizedAddressPart;\n }\n }\n return hashedAddressObj;\n }, {});\n if (digest) {\n const hashedObject = Object.entries(normalizedObject).map(([key, val]) => {\n if (isValidSHA256String(val)) {\n return [key, val];\n }\n else {\n return [key, digestMessage(val)];\n }\n });\n return Object.fromEntries(hashedObject);\n }\n else {\n return normalizedObject;\n }\n};\n","import { dbg } from '../utils/dbg';\nimport { getConfig } from '../config';\nimport { emitDebugEvent } from '../utils/events';\nimport { getCookie } from '../utils/cookies';\nimport { extractId } from '../utils/helpers/extractId';\nimport { getUrlParams } from '../utils/helpers/getUrlParams';\nimport { getDopPayloadValues } from '../session/abTest';\nimport { getLatestConsentString } from '../cmp/consentCookie';\nimport { getIS } from '../utils/identityStorage';\nimport { canUseCurrentConsent, setLastRusId, setLastConsent } from '../cmp/consentAccountSwitch';\nimport { SID_UTILS } from '@iva/utils';\nimport { getDopSourceData } from '../session/dopSource';\nimport { isItDspTestPage, getDspParamsForZone } from '../ads/dspTest';\nimport { getCurrentSznUser } from '../utils/user';\n\n/**\n * Extracts arbitrary params from URL unrelated to main SSP functionality to be\n * passed to the server.\n * format: https://example.com/?ssp-param-key=value&ssp-param-another=value2\n */\nconst getArbitraryParams = () => {\n const urlParamEntries = Object.entries(getUrlParams());\n\n if (!urlParamEntries.length) {\n return;\n }\n\n return urlParamEntries.reduce((acc, entry) => {\n const [param, value] = entry;\n if (param.includes('ssp-param-')) {\n const paramName = param.substring(10);\n acc[paramName] = value;\n }\n return acc;\n }, {});\n};\n\n/**\n * Vyrobime prefixove parametry pro url na ziskani reklam\n */\nconst createRequestPayload = async ({ zones, opt = null, cids = null, isVastRequest = false }) => {\n const config = getConfig();\n const { source, allowedSources, pvId, site, adblock, ab } = { ...config, ...opt?.config };\n dbg('info', 'Source from config:', source);\n\n let { premium, rusId, said } = config;\n const IS = getIS();\n const arbitraryParams = getArbitraryParams();\n dbg('info', '### build prefix ###');\n const payload = {\n pvId,\n };\n\n if (source && source !== '') {\n if (!(source in allowedSources)) {\n dbg('error', 'Source not allowed:', source);\n emitDebugEvent('sourceNotAllowed', { source });\n } else {\n payload.source = source;\n }\n }\n\n if (opt?.AMPcallback) {\n payload.amp = true;\n }\n\n if (site !== '') {\n payload.site = site;\n }\n\n if (adblock !== '') {\n payload.adblock = adblock;\n }\n\n // TEMPORARY for SSP-10663\n payload.ab = { q25test: 'A', ...ab };\n\n /* If we found an AB test variant in session cookie, report it. */\n const dopAbTestData = getDopPayloadValues();\n\n if (dopAbTestData.dop_ab_variant) {\n // attach dop_source data (same as in spenttime hits from ssp)\n const dopSourceData = getDopSourceData();\n\n payload.ab = {\n ...payload.ab,\n ...dopAbTestData,\n // eslint-disable-next-line camelcase\n ...(dopSourceData ? { dop_source: JSON.stringify(dopSourceData) } : {}),\n };\n }\n\n // Temporary for test DOP-11655\n if (site) {\n const searchParams = {};\n\n try {\n const url = new URL(site);\n\n const urlOrigin = url.origin;\n const siteHashToParams = url.hash.replace('#', '?');\n const hashUrl = new URL(`${urlOrigin}${siteHashToParams}`);\n\n hashUrl.searchParams.forEach((value, key) => {\n url.searchParams.append(key, value);\n });\n\n const allUrlParams = Object.fromEntries(url.searchParams.entries());\n\n Object.assign(searchParams, allUrlParams);\n } catch (error) {\n // no op\n }\n\n const dopKeys = ['dop_ab_variant', 'dop_req_id', 'dop_source_zone_name'];\n const hasSiteDopTestData = dopKeys.some((key) => searchParams[key]);\n\n if (hasSiteDopTestData) {\n payload.ab = dopKeys.reduce(\n (result, key) => {\n if (searchParams[key]) {\n result[`site_${key}`] = searchParams[key];\n }\n return result;\n },\n { ...payload.ab }\n );\n }\n }\n\n /* sid cookie */\n const sid = getCookie('sid');\n if (SID_UTILS.isValidSid(sid)) {\n payload.sid = sid;\n payload.dsid = sid;\n }\n\n /* SZN login flags (from config or badge) (fast resolve on \"no szn login\" sites) */\n const login = (await getCurrentSznUser()) || {};\n\n premium = typeof login.premium === 'boolean' ? login.premium : premium;\n rusId = login.uid || rusId;\n said = login.said || said;\n\n // user flags (with cookie fallback)\n const userFlags = login.encodedFlags || getCookie('user-flags');\n if (userFlags) {\n payload.userFlags = userFlags;\n }\n\n /* euconsent cookies */\n const consent = await getLatestConsentString();\n\n if (consent && canUseCurrentConsent(rusId, consent)) {\n payload.consent = consent;\n setLastConsent(consent);\n }\n\n if (typeof rusId === 'number' && !isNaN(rusId)) {\n payload.rusId = rusId;\n setLastRusId(rusId);\n }\n\n if (typeof premium === 'boolean') {\n payload.premium = premium;\n }\n\n if (said && typeof said === 'string') {\n payload.said = said;\n }\n\n if (cids && cids.length) {\n payload.cids = cids;\n }\n\n /** Add grantConset from url params for DSP testing page*/\n if (isItDspTestPage()) {\n const grantConsentfromUrl = getUrlParams()?.grantConsent;\n if (grantConsentfromUrl === 'true') {\n payload.grantConsent = true;\n }\n }\n\n /** Add grantConset from opt for DSP testing page */\n if (opt?.grantConsent === true) {\n payload.grantConsent = opt.grantConsent;\n }\n\n /** Allows for passing arbitrary params from URL. Used by sablony for debugging */\n if (arbitraryParams) {\n payload.customParams = arbitraryParams;\n }\n\n payload.zones = zones.map((zone) => ({\n ...zone,\n ...(extractId(zone) ? { id: extractId(zone) } : {}),\n ...(isItDspTestPage() ? getDspParamsForZone({ zone, isVastRequest }) : {}),\n }));\n\n // IS - identity-storage\n if (IS) {\n payload.ids = {\n ...IS.prepareIdsForBe({\n ...IS.getIdentities({ cacheEnough: true, justSettled: false }, { login: { justSettled: true } }), // login just fresh, rest from cache\n }),\n };\n }\n\n return payload;\n};\n\nexport default createRequestPayload;\n","import { COLLOCATION_FLAG_SAFE, COLLOCATION_UNSAFE_KEYWORDS, COLLOCATION_WHITELIST } from '#Constants';\nimport { dbg } from '#Modules/utils/dbg';\nimport { omitWww } from '#Modules/utils/urls';\nlet collocationFlags = [];\n/**\n * Collocations (string arrays) helpers\n */\nconst _hasIntersection = (a, b) => a.some((element) => b.includes(element));\nconst _sanitizeString = (str) => str.trim().toLowerCase();\nconst _hasSameMember = (a, b) => _hasIntersection(sanitizeStrings(a), sanitizeStrings(b));\nconst _resetCollocation = () => (collocationFlags = []);\nexport const sanitizeStrings = (arr) => arr.map(_sanitizeString);\n/**\n * Detect collocations against UN/SAFE keywords\n */\nexport const evaluateCollocation = (keywords) => {\n dbg('info', `[collocation.js] Keywords provided: ${keywords.join(', ')}`);\n _resetCollocation();\n // Unsafe keyword[s] is not present\n if (!_hasSameMember(COLLOCATION_UNSAFE_KEYWORDS, keywords)) {\n collocationFlags.push(COLLOCATION_FLAG_SAFE);\n }\n dbg('info', `[collocation.js] Collocation detected: \"${collocationFlags.join(', ')}\"`);\n};\n/**\n * Add collocation flags to each zone (inside options)\n */\nexport const addCollocationFlagsToPayload = (requestPayload) => {\n if (collocationFlags.length) {\n requestPayload.zones.forEach((_, index, zones) => {\n zones[index].options = zones[index].options || {};\n const prevCollocation = zones[index].options.collocation;\n const addCollocation = collocationFlags.join(' ');\n zones[index].options.collocation = prevCollocation ? `${prevCollocation} ${addCollocation}` : addCollocation;\n });\n }\n};\n/**\n * We allow collocation only for whitelisted domains\n */\nexport const allowCollocation = () => COLLOCATION_WHITELIST.includes(omitWww(document.location.hostname));\n","import { sanitizeStrings } from '#Modules/utils/collocation';\nimport { getJson } from '#Modules/utils/helpers/getJson';\n/**\n * Parse JSON (from a script tag content)\n */\nconst parseLD = (scriptTag) => getJson(scriptTag.innerHTML);\n/**\n * Get all scripts of type \"ld+json\" and parse them\n */\nexport const getParsedLDs = () => {\n const allLds = document.querySelectorAll('script[type=\"application/ld+json\"]');\n return [...allLds].map((ld) => parseLD(ld)).filter(Boolean);\n};\n/**\n * Get all keywords from all parsed LDs\n */\nexport const getKeywords = () => {\n const lds = getParsedLDs();\n const keywords = lds.flatMap((ld) => (ld.keywords ? ld.keywords.split(',') : []));\n return sanitizeStrings(keywords);\n};\n","import { UADATA } from '@iva/utils';\n/**\n * User Agent Data headers that are accepted by advert server\n */\nconst uaHeadersMap = {\n fullVersionList: 'X-Sec-CH-UA-Full-Version-List',\n model: 'X-Sec-CH-UA-Model',\n mobile: 'X-Sec-CH-UA-Mobile',\n platform: 'X-Sec-CH-UA-Platform',\n platformVersion: 'X-Sec-CH-UA-Platform-Version',\n};\n/**\n * Retrieves available low & high entropy values from the User Agent Data API\n */\nexport const getFormattedUaDataHeaders = async () => {\n const uaData = await UADATA.getHighEntropyValues([\n 'fullVersionList',\n 'model',\n 'platformVersion',\n ]);\n if (!uaData) {\n return null;\n }\n const formattedUaDataHeaders = {};\n if (uaData.fullVersionList) {\n const fullVersionListAsString = uaData.fullVersionList\n .map((item) => `\"${item.brand}\";v=\"${item.version}\"`)\n .join(', ');\n formattedUaDataHeaders[uaHeadersMap.fullVersionList] = fullVersionListAsString;\n }\n if (uaData.model) {\n formattedUaDataHeaders[uaHeadersMap.model] = uaData.model;\n }\n if (typeof uaData.mobile === 'boolean') {\n formattedUaDataHeaders[uaHeadersMap.mobile] = uaData.mobile ? '?1' : '?0';\n }\n if (uaData.platform) {\n formattedUaDataHeaders[uaHeadersMap.platform] = `\"${uaData.platform}\"`;\n }\n if (uaData.platformVersion) {\n formattedUaDataHeaders[uaHeadersMap.platformVersion] = uaData.platformVersion;\n }\n return formattedUaDataHeaders;\n};\n","/**\n * [USES EXPERIMENTAL FEATURES] Retrieves high entropy values from user agent\n *\n * @param hints high entropy value keys\n * @returns Promise that resolves either to an object containing low & high entropy values or null\n */\nexport const getHighEntropyValues = (hints) => {\n return new Promise((resolve) => {\n if (!navigator?.userAgentData?.getHighEntropyValues) {\n resolve(null);\n }\n navigator.userAgentData\n ?.getHighEntropyValues(hints)\n .then(resolve)\n .catch(() => {\n resolve(null);\n });\n });\n};\n","import createRequestPayload from '#Modules/ads/createRequestPayload';\nimport { dbg } from '#Modules/utils/dbg';\nimport { getKeywords } from '#Modules/utils/keywords';\nimport { isTopWindow } from '#Modules/utils/topWindow';\nimport { USER_TIMEOUT } from '#Modules/utils/user';\nimport { requestVastAds } from '../utils/request';\nconst getDataEvent = 'SSSP_GET_VAST_DATA';\nconst sendDataEvent = 'SSSP_SEND_VAST_DATA';\nconst allowedFrames = ['localhost', 'www.stream.cz', 'stream.cz', 'podcasty.seznam.cz'];\nconst validateZones = (zones) => {\n if (!Array.isArray(zones)) {\n return null;\n }\n const validatedZones = zones.filter(({ zoneId }) => typeof zoneId === 'number');\n return validatedZones.length ? validatedZones : null;\n};\nexport const getVastAds = async (zones) => {\n const validatedZones = validateZones(zones);\n if (!validatedZones) {\n dbg('warn', 'VAST: Invalid zones passed into getVastAds: ', validatedZones);\n return null;\n }\n dbg('info', 'VAST: Getting vast data for valid zones: ', validatedZones);\n const vastPayload = await getVastPayload(validatedZones);\n dbg('info', 'VAST: Requesting vast data with payload: ', vastPayload);\n const vastAds = await requestVastAds(vastPayload);\n return vastAds;\n};\nconst getVastPayload = async (zones) => {\n try {\n if (isTopWindow()) {\n dbg('info', 'VAST: (in TOP window) Getting vast data from TOP window (itself)');\n // we are in TOP frame -> just read it from \"itself\"\n const payload = await createRequestPayload({ zones, isVastRequest: true });\n const keywords = getKeywords().join(' ');\n const payloadWithCollocation = {\n ...payload,\n zones: payload.zones.map((zone) => {\n const collocation = `${zone?.options?.collocation || ''} ${keywords}`.trim();\n return { ...zone, options: { ...zone.options, collocation } };\n }),\n };\n return payloadWithCollocation;\n }\n // we are in CHILD frame -> request it from \"top\" window\n dbg('info', 'VAST: (in IFRAME) Getting vast data request from TOP window');\n const payload = await vastPayloadFromTop(zones);\n return payload;\n }\n catch (e) {\n dbg('error', `VAST: Error getting vast data from ${isTopWindow() ? 'TOP WINDOW' : 'IFRAME'}. Error: ${e}`);\n return null;\n }\n};\nconst vastPayloadFromTop = (zones) => {\n return new Promise((resolve) => {\n let timeout = null;\n let interval = null;\n const fromTopHandler = (event) => {\n const { name, payload } = event.data;\n if (name === sendDataEvent && payload) {\n window.clearTimeout(timeout);\n window.clearInterval(interval);\n window.removeEventListener('message', fromTopHandler);\n resolve(payload);\n }\n };\n window.addEventListener('message', fromTopHandler);\n dbg('info', 'VAST: Sending vast data request to TOP window');\n const pingTop = () => window.parent.postMessage({ name: getDataEvent, zones }, '*');\n pingTop();\n interval = window.setInterval(pingTop, 250);\n timeout = window.setTimeout(() => {\n window.clearInterval(interval);\n dbg('warn', 'Timeout waiting for vast data');\n }, USER_TIMEOUT);\n });\n};\n/**\n * Listen to data requests from child frames and send them back\n */\nexport const registerVastDataPayloadProvider = () => {\n if (isTopWindow()) {\n window.addEventListener('message', async (event) => {\n try {\n const originHostname = new URL(event.origin).hostname;\n if (event.data.name === getDataEvent && event.data.zones && allowedFrames.includes(originHostname)) {\n const payload = await getVastPayload(event.data.zones);\n event.source.postMessage({ name: sendDataEvent, payload }, event.origin);\n }\n }\n catch {\n dbg('error', 'VAST: Failed to process message from child frame');\n }\n });\n }\n};\n","import { getAdserverUrl } from './urls';\nimport { dbg } from './dbg';\nimport { getConfig } from '../config';\nimport { getFormattedUaDataHeaders } from './helpers/getFormattedUaDataHeaders';\n\nconst requestAds = (payload, pvIdStart, handlePageViewIdChange) =>\n new Promise(async (resolve, reject) => {\n const { method, pvId, protocol, server, version, path, test } = getConfig();\n\n /* Check for user-configured endpoint URL, or fall back to site-configured host */\n const url = getAdserverUrl({ protocol, server, version, path, test });\n\n if (!window.XMLHttpRequest) {\n dbg('error', 'No XHR available');\n }\n\n const xhr = new XMLHttpRequest();\n\n if (handlePageViewIdChange) {\n const pvIdChangeListner = (e) => {\n try {\n // request běžÃ, ale v průbÄ›hu se nám zmÄ›nilo pvId (napÅ™. rychlé pÅ™enavigovánà na SPA) - abortujeme XHR - nechceme takovou reklamu renderovat\n if (pvIdStart !== e.detail.data.pvId) {\n dbg('info', 'Aborting XHR - pvId changed');\n xhr.abort();\n resolve(false);\n return;\n }\n } catch {\n // no-op\n } finally {\n window.removeEventListener('ssppvidset', pvIdChangeListner);\n }\n };\n\n window.addEventListener('ssppvidset', pvIdChangeListner);\n }\n\n const errorCallback = () => {\n const errorName = `Error attempting XMLHttpRequest (error ${xhr.status}).`;\n dbg('error', errorName);\n reject({ errorName, errorCode: xhr.status });\n };\n\n xhr.onload = (e) => {\n if (handlePageViewIdChange && pvIdStart !== pvId) {\n // request OK, ale v průbÄ›hu se nám zmÄ›nilo pvId (napÅ™. rychlé pÅ™enavigovánà na SPA) - nechceme takovou reklamu renderovat\n dbg('info', 'Ignoring XHR response - pvId changed');\n resolve(false);\n return;\n }\n if (!e.target || !e.target.responseText) {\n reject({\n errorName: e.currentTarget.statusText,\n errorCode: e.currentTarget.status,\n });\n return;\n }\n\n resolve(e.target.responseText);\n };\n\n xhr.onerror = errorCallback;\n xhr.onabort = errorCallback;\n xhr.ontimeout = errorCallback;\n\n xhr.open(method, url);\n xhr.withCredentials = true;\n xhr.setRequestHeader('Content-type', 'application/json');\n\n const uaDataHeaders = await getFormattedUaDataHeaders();\n\n if (uaDataHeaders) {\n for (const header in uaDataHeaders) {\n xhr.setRequestHeader(header, uaDataHeaders[header]);\n }\n }\n\n xhr.send(JSON.stringify(payload));\n dbg('sending data to adserver', payload);\n });\n\nconst requestVastAds = async (payload) => {\n if (!window.fetch) {\n dbg('error', 'VAST: Error attempting fetch vast ads. Fetch not available.');\n return null;\n }\n\n try {\n const response = await fetch('https://ssp.seznam.cz/v2/vast', {\n method: 'POST',\n body: JSON.stringify(payload),\n credentials: 'include',\n });\n\n if (!response.ok) {\n dbg('error', `VAST: Error attempting fetch vast ads. Response status: ${response.status}).`);\n return null;\n }\n\n const responseText = await response.text();\n return responseText;\n } catch (e) {\n dbg('error', `VAST: Error attempting fetch vast ads. Error: ${e}`);\n return null;\n }\n};\n\nconst requestCmp = (params) =>\n new Promise((resolve, reject) => {\n if (!params.webId && !params.zoneId) {\n return;\n }\n\n const { cmpServer } = getConfig();\n const query = params.webId ? `webId=${params.webId}` : `zoneId=${params.zoneId}`;\n const url = `${cmpServer}?${query}`;\n\n const xhr = new XMLHttpRequest();\n xhr.onreadystatechange = () => {\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (xhr.status === 200 && xhr.responseText) {\n resolve(xhr.responseText);\n } else if (xhr.status === 400) {\n reject('Bad request');\n } else {\n reject('Something wrong happened');\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n });\n\nexport { requestAds, requestCmp, requestVastAds };\n","import { dbg } from '#Modules/utils/dbg';\nimport { getKeywords } from '#Modules/utils/keywords';\nimport { isTopWindow } from '#Modules/utils/topWindow';\nimport { getCurrentSznUser, USER_TIMEOUT } from '#Modules/utils/user';\nimport { getCookie } from '#Modules/utils/cookies';\nimport { parsedDspUrlParams } from '#Modules/ads/dspTest';\nimport { getIS } from './identityStorage';\nconst getDataEvent = 'SSSP_GET_DATA';\nconst sendDataEvent = 'SSSP_SEND_DATA';\nconst allowedFrames = ['localhost', 'www.stream.cz', 'stream.cz', 'podcasty.seznam.cz'];\nconst isValidVastDataMessagePayload = (data) => {\n try {\n return !!(data.satisfied && data.data !== undefined);\n }\n catch {\n return false;\n }\n};\nconst _emptyObjectToNull = (data) => (Object.keys(data).length ? data : null);\nconst _getTagForZones = (zoneIds) => {\n const tags = getKeywords();\n const tagsForZones = tags.length\n ? zoneIds.reduce((acc, _, i) => ({ ...acc, [`tags-${i + 1}`]: tags }), {})\n : {};\n return tagsForZones;\n};\n// TODO: Update type for parsedUrlParams from dspTest.js when migrating to TypeScript\nexport const _getDspParamsForZones = (zoneIds, parsedUrlParams) => {\n const vastDspParams = parsedUrlParams.filter((param) => param.target === '1');\n const previewKeys = ['zoneId', 'adType', 'bannerid', 'crid', 'deliveryType', 'dsp', 'mediaType'];\n const previewData = zoneIds.reduce((acc, zone, index) => {\n const dspParam = vastDspParams.find((param) => param.zoneId.toString() === zone) || {};\n const dspPreviewData = previewKeys.reduce((accInner, key) => {\n if (dspParam.hasOwnProperty(key)) {\n accInner[`${key}-${index + 1}`] = dspParam[key].toString();\n }\n return accInner;\n }, {});\n return { ...acc, ...dspPreviewData };\n }, {});\n return previewData;\n};\n/**\n * Prepare final object -> do not include \"empty\" keys\n */\nconst _prepareDataObject = async (type, zoneIds, callback) => {\n const output = {};\n // user flags (with cookie fallback)\n const getUserFlags = (encodedFlags) => {\n const userFlags = encodedFlags || getCookie('user-flags');\n if (userFlags) {\n output.userFlags = userFlags;\n }\n };\n if (type === 'async') {\n /**\n * ASYNC data\n */\n // login (badge/config)\n const login = await getCurrentSznUser();\n const { sbr, uid, said, premium, encodedFlags } = login;\n const identity = getIS()?.getIdentities();\n const { consent, eid } = identity ?? {};\n // user flags string\n getUserFlags(encodedFlags);\n if (typeof sbr === 'boolean') {\n output.sbr = sbr;\n }\n if (uid) {\n output.rusId = uid;\n }\n if (said) {\n output.said = said;\n }\n if (typeof premium === 'boolean') {\n output.premium = premium;\n }\n if (consent) {\n output.consentString = consent.consentString;\n }\n if (eid) {\n output.eid = eid;\n }\n }\n else {\n /**\n * SYNC data\n */\n // keywords\n const tags = _getTagForZones(zoneIds);\n Object.assign(output, tags);\n // dsp ad preview params\n const dspParams = _getDspParamsForZones(zoneIds, parsedDspUrlParams());\n Object.assign(output, dspParams);\n // user flags string\n getUserFlags();\n }\n const payload = { data: _emptyObjectToNull(output), satisfied: type };\n // eslint-disable-next-line callback-return\n callback?.(payload);\n return payload;\n};\n/**\n * Get VAST related DATA (tags, ...) from anywhere -> top, embeds, etc.\n */\nexport const getVastData = (zoneIds = []) => {\n return new Promise(async (resolve) => {\n // shared resolver for top level / chlild frame / catch usecases\n const _resolver = (data, dbgData) => {\n dbg(...dbgData, data);\n resolve(data);\n };\n try {\n if (isTopWindow()) {\n //******************//\n // we are in TOP frame -> just read it from \"itself\"\n //******************//\n _resolver(_emptyObjectToNull({\n ...(await _prepareDataObject('sync', zoneIds))?.data,\n ...(await _prepareDataObject('async', zoneIds))?.data,\n }), ['info', 'Getting DATA as TOP window']);\n }\n else {\n //******************//\n // we are in CHILD frame -> request it from \"top\"\n //******************//\n let timeout = null;\n let interval = null;\n const needs = { sync: true, async: true };\n let dataBag = {};\n // handle response from TOP window\n const _fromTopHandler = (event) => {\n const { name, payload } = event.data;\n if (name === sendDataEvent && isValidVastDataMessagePayload(payload)) {\n const { data, satisfied } = payload;\n needs[satisfied] = false;\n dataBag = { ...dataBag, ...data };\n if (!needs.sync && !needs.async) {\n window.clearTimeout(timeout);\n window.clearInterval(interval);\n window.removeEventListener('message', _fromTopHandler);\n _resolver(_emptyObjectToNull(dataBag), ['info', 'Getting DATA as CHILD window']);\n }\n }\n };\n window.addEventListener('message', _fromTopHandler);\n // ask TOP window\n const pingTop = () => {\n dbg('info', 'Sending DATA request to TOP window');\n window.parent.postMessage({ name: getDataEvent, needs, zoneIds }, '*');\n };\n pingTop();\n // interval (we do not know when TOP instance will be ready)\n interval = window.setInterval(pingTop, 250);\n // timeout\n timeout = window.setTimeout(() => {\n window.clearInterval(interval);\n _resolver(_emptyObjectToNull(dataBag), [\n 'info',\n `Getting DATA as CHILD window (timeout - ${USER_TIMEOUT}ms))`,\n ]);\n }, USER_TIMEOUT);\n }\n }\n catch {\n _resolver(null, ['info', 'Getting DATA (fallbacked to NULL)']);\n }\n });\n};\n/**\n * Listen to data requests from child frames and send them back\n */\nexport const registerVastDataProvider = () => {\n if (isTopWindow()) {\n window.addEventListener('message', (event) => {\n try {\n const originHostname = new URL(event.origin).hostname;\n if (event.data.name === getDataEvent && allowedFrames.includes(originHostname) && event.data.zoneIds) {\n const pingChild = (payload) => {\n dbg('info', 'Sending DATA to children', payload);\n event.source.postMessage({ name: sendDataEvent, payload }, event.origin);\n };\n if (event.data.needs.sync) {\n _prepareDataObject('sync', event.data.zoneIds, pingChild);\n }\n if (event.data.needs.async) {\n _prepareDataObject('async', event.data.zoneIds, pingChild);\n }\n }\n }\n catch (e) {\n // noop\n }\n });\n }\n};\n","import { dbg } from './utils/dbg';\nimport { loadDot, setDot } from './impress/dotLoader';\nimport { setPageViewId, getPageViewId } from './utils/pageView';\nimport { updateSession } from './session/sessionDetection';\nimport { executeQueues } from './utils/functionStack';\nimport { registerWritePawListenerForIframe, registerWritePawListenerForCode } from './rendering/renderRequestedPaw';\nimport { registerPawVisibilityListener } from './rendering/pawVisibilityListener';\nimport { enableConsentProvider } from './cmp/consentProvider';\nimport { setInitTimestamp } from './utils/timestamp';\nimport { sendSspLoaded } from './utils/events';\nimport initReporting from './utils/reporting';\nimport { isStandAlone, doNotLoadDOT } from './config/globalFlags';\nimport { setUpUtmMessageListener } from './session/leaderFollowerSync';\nimport { getConfig } from './config';\nimport { registerVastDataPayloadProvider } from '../modules/ads/getVastAds';\nimport { registerVastDataProvider } from '../modules/utils/vastData';\n\n/* Has init() been run already? */\nlet wasInitialized = false;\n\n/**\n * Spusti inicializaci ssp az po naceteni DOT\n */\nconst run = function () {\n dbg('info', '### initializating ssp after loading DOT ###');\n\n if (window.sznRecass && window.sznRecass.getPageViewId() !== null) {\n setPageViewId(window.sznRecass.getPageViewId());\n } else {\n setPageViewId();\n dbg('info', '#### pageViewId:', getPageViewId());\n }\n\n /* Init browser reporting (when supported) */\n initReporting(true);\n\n registerWritePawListenerForIframe();\n registerWritePawListenerForCode();\n registerPawVisibilityListener();\n registerVastDataProvider();\n registerVastDataPayloadProvider();\n enableConsentProvider();\n executeQueues();\n\n if (!getConfig().isFollowerSsp) {\n dbg('info', '### setting up utm message listener ###');\n setUpUtmMessageListener();\n }\n};\n\n/**\n * Main SSP init function.\n * Runs automatically by default. This can be overriden by setting\n * window._sspDoNotInit to true prior to ssp execution\n */\nconst init = () => {\n if (wasInitialized) {\n return;\n }\n\n wasInitialized = true;\n\n /* set init timestamp (start of lifetime) */\n setInitTimestamp();\n\n /* Create, update or destroy session cookie */\n updateSession();\n\n /* Generating a custom event 'ssploaded' */\n sendSspLoaded();\n\n if (isStandAlone() || doNotLoadDOT()) {\n setDot();\n run(); // no check for DOT, service guaranteed existence of DOT\n return;\n }\n\n loadDot().catch(dbg).finally(run);\n};\n\nexport default init;\n","import { dbg } from '../utils/dbg';\nimport { getDot } from './dotLoader';\n\n/**\n * Zalogovat pouzita zoneIds\n * @param data (Object) - popis pozic ve strance\n */\nconst logAds = (positions) => {\n const dot = getDot();\n const zones = positions.map((position) => position.zoneId).join(',');\n\n if (dot) {\n dbg('logging zones to Reporter', zones);\n dot.hit('ad', { d: { zones } });\n }\n};\n\nexport default logAds;\n","import { safelyExecuteCallback } from '../utils/safeCallback';\n\nconst callPositionErrorCallback = (position, errorMessage) =>\n position.options &&\n position.options.infoErrorCallback &&\n typeof position.options.infoErrorCallback === 'function' &&\n /* All conditions above are true. Invoke the callback. */\n safelyExecuteCallback(() => {\n position.options.infoErrorCallback(position, errorMessage);\n });\n\nexport default callPositionErrorCallback;\n","import callPositionErrorCallback from '#Modules/ads/callPositionErrorCallback';\nimport { optionsParams } from '#Modules/config/configValues';\nimport { dbg } from '#Modules/utils/dbg';\nconst isOptionsParam = (key) => {\n return optionsParams.includes(key);\n};\n/**\n * Validate position object and prepare it for ad request\n */\nexport const validatePosition = (positionOrig, opt) => {\n dbg('info', '### check ad position data ###');\n const position = { ...positionOrig };\n const positionEl = typeof position.id === 'string' ? document.getElementById(position.id) : position.id;\n // callback or position element must be defined, otherwise is not possible to render ad\n if (!opt?.AMPcallback && !position.callback && !positionEl) {\n const errorMessage = `No callback or invalid ID passed to IM (zoneId: ${position.zoneId})`;\n // eslint-disable-next-line no-console\n console.log(`%c !!! ${errorMessage}`, 'font-size:20px; font-weight:bold; background:#ec0000; color: #fff');\n callPositionErrorCallback(position, errorMessage);\n dbg(errorMessage);\n return null;\n }\n const width = position.width || positionEl?.offsetWidth;\n const height = position.height || positionEl?.offsetHeight;\n // update position object only if the dimensions are positive numbers otherwise delete the key\n if (width > 0) {\n position.width = width;\n }\n else {\n delete position.width;\n }\n if (height > 0) {\n position.height = height;\n }\n else {\n delete position.height;\n }\n // element must have at least one valid size otherwise is not possible to render ad\n // if noSize is allowed, we can skip this check\n if (positionEl && !width && !height && !position?.options?.noSize) {\n const errorMessage = `No valid size of container or no size configuration passed: (${width}, ${height}).`;\n callPositionErrorCallback(position, errorMessage);\n dbg(errorMessage);\n return null;\n }\n if (position?.options?.noSize) {\n dbg('noSize allowed in position:', position.zoneId);\n }\n dbg('callback and container check .. OK');\n // validate position options keys\n const optionsEntries = Object.entries(position.options || {});\n const validOptions = optionsEntries.reduce((acc, [key, value]) => {\n if (isOptionsParam(key)) {\n acc[key] = value;\n }\n return acc;\n }, {});\n // set options to only valid options and add sspRendering flag\n position.options = { ...validOptions, ...{ sspRendering: !position.callback } };\n dbg(position.zoneId + ' position object prepared: ', position);\n return position;\n};\n","import { getConfig } from '../config';\nimport { requestCmp } from '../utils/request';\n\n/**\n * Resolves into CMP server response with CMP-related data for requested site.\n * Attempts to pass webid (if configured) or zoneId (if called from getAds).\n * @param zoneId {Number}\n * @returns {Promise}\n */\nconst getCmpInfo = (zoneId) =>\n new Promise((resolve, reject) => {\n const { webId } = getConfig();\n const requestData = { webId, zoneId };\n\n if (requestData.webId || requestData.zoneId) {\n requestCmp(requestData)\n .then((response) => {\n try {\n resolve(JSON.parse(response));\n } catch (error) {\n reject(error);\n }\n })\n .catch(reject);\n } else {\n reject('No webId or zoneId provided');\n }\n });\n\nexport { getCmpInfo };\n","import { getParamFromQuerystringOrHash } from '../utils/helpers/getUrlParams';\nimport { omitWww } from '../utils/urls';\n\n/** Internal services blacklisted from using CMP */\nconst blacklist = [];\n\nexport const inBlacklist = (hostname) => {\n return (\n blacklist.includes(omitWww(hostname)) ||\n // for testing pourposes\n getParamFromQuerystringOrHash('ignore_cmp') === '1'\n );\n};\n\nconst chunksWhitelist = ['kuchticka.cz'];\n\nexport const inChunksWhitelist = (hostname) => {\n return (\n chunksWhitelist.includes(omitWww(hostname)) ||\n // for testing pourposes\n getParamFromQuerystringOrHash('cmp_chunks') === '1'\n );\n};\n","/* eslint-disable no-console */\nimport { dbg } from '../utils/dbg';\nimport { getTimestamp } from '../utils/timestamp';\n\nconst SERVICE = 'partner3';\nconst ACTION = 'event';\nconst CMP = true;\nconst TIMESTAMP = getTimestamp();\n\nclass DOT {\n /**\n * Configures DOT script and sends impress.\n */\n config() {\n try {\n if (!window.DOT) {\n dbg('info', 'window.DOT is missing');\n return;\n }\n this.instance = window.DOT.getNewInstance();\n\n const config = {\n service: SERVICE,\n impress: false,\n mousedown: false,\n load: false,\n cmp: CMP,\n timestamp: TIMESTAMP,\n };\n\n this.instance.cfg(config);\n } catch (error) {\n console.error(error);\n }\n }\n\n /**\n * Sends hit.\n * @param {string} action\n * @param {Object} data\n */\n _hit(action, data) {\n try {\n data.d.cmp = CMP;\n data.d.timestamp = TIMESTAMP;\n this.instance.hit(action, data);\n } catch (error) {\n console.error(error);\n }\n }\n\n /**\n * Sends info that cookie was copied from global storage to partner without our CMP.\n */\n cookieCopied() {\n this._hit(ACTION, {\n d: {\n action: 'cookieCopied',\n },\n });\n }\n}\n\nexport default new DOT();\n","import { dbg } from '../utils/dbg';\nimport { getJson } from '../utils/helpers/getJson';\nimport { setElementAttributes } from '#Modules/utils/helpers/setElementAttributes';\nimport { getConfig } from '../config';\nimport { setCookie, getCookie, removeCookie } from '../utils/cookies';\nimport { getCookieStorageDomainName } from '../utils/helpers/getDomainName';\nimport { setPaws } from './externalPaws';\nimport DOT from './DOT';\nimport { CONSENT } from '@sklik/cmp2-common';\n\nlet syncIframe = null;\nlet syncIframeLoaded = null;\n\nconst getCookieFromResponse = (messageData) => {\n const cmpData = getJson(messageData);\n\n if (cmpData && cmpData.cmp === 'szn' && cmpData.method === 'get' && cmpData.cookie) {\n return cmpData.cookie;\n }\n\n return null;\n};\n\nconst createSyncIframe = () =>\n new Promise((resolve) => {\n if (syncIframe && syncIframeLoaded) {\n return resolve(syncIframe);\n }\n\n if (!syncIframe) {\n syncIframe = document.createElement('iframe');\n }\n\n if (!syncIframeLoaded) {\n syncIframe.addEventListener('load', () => {\n syncIframeLoaded = true;\n resolve(syncIframe);\n });\n }\n\n const { protocol, staticServer } = getConfig();\n\n setElementAttributes(syncIframe, {\n src: `${protocol}${staticServer}/static/html/cmp.html`,\n frameborder: 0,\n style: 'display: none;',\n });\n\n document.body.appendChild(syncIframe);\n });\n\nconst getResponseFromIframe = (iframe) =>\n new Promise((resolve, reject) => {\n const parseMessageCallback = (event) => {\n return event.data && resolve(event.data);\n };\n\n window.addEventListener('message', parseMessageCallback);\n setTimeout(reject, 5000);\n\n const { protocol, staticServer } = getConfig();\n const CMP_SSP_IFRAME_URL = protocol + staticServer;\n const message = JSON.stringify({\n method: 'getCookie',\n type: 'ext',\n });\n\n iframe.contentWindow?.postMessage(message, CMP_SSP_IFRAME_URL);\n });\n\nconst getCookieFromGlobalStorage = async () => {\n const iframe = await createSyncIframe();\n const response = await getResponseFromIframe(iframe);\n const cookieValue = getCookieFromResponse(response);\n if (!cookieValue) {\n throw new Error('No consent data found in global storage');\n }\n return cookieValue;\n};\n\nexport const getConsentV2FromGlobalStorage = async () => {\n try {\n const cookie = await getCookieFromGlobalStorage();\n return cookie;\n } catch (e) {\n return null;\n }\n};\n\nexport const copyGlobalConsent = ({ consentString }) => {\n const browserCookie = {\n name: CONSENT.CONSENT_COOKIE_NAME,\n value: getCookie(CONSENT.CONSENT_COOKIE_NAME),\n };\n const domainName = getCookieStorageDomainName(window.location.hostname);\n\n if (!browserCookie.value) {\n dbg('info', '### Cookie not found in local.');\n setCookie({\n name: browserCookie.name,\n value: consentString,\n domain: domainName,\n expires: [365, 'days'],\n });\n DOT.config();\n DOT.cookieCopied();\n if (window.Cypress) {\n // Let Cypress know it can start looking for a cookie\n window.document.body.dataset.cyCookieSynced = true;\n }\n } else {\n dbg('info', '### Cookie found in local - resave for 2nd level domain');\n removeCookie({ name: browserCookie.name });\n setCookie({\n name: browserCookie.name,\n value: browserCookie.value,\n domain: domainName,\n expires: [365, 'days'],\n });\n }\n};\n\nexport const copyCookieFromGlobalStorage = () => {\n getConsentV2FromGlobalStorage().then((consent) => {\n const globalConsent = consent\n ? {\n consentString: consent,\n }\n : null;\n\n if (globalConsent) {\n copyGlobalConsent(globalConsent);\n }\n\n setPaws(Boolean(globalConsent));\n });\n};\n","import { getCmpInfo } from './cmpServerApi';\nimport { inBlacklist, inChunksWhitelist } from './whitelist';\nimport { setPaws } from './externalPaws';\nimport { copyCookieFromGlobalStorage } from './sync';\nimport { isAllowed } from './browserSniffing';\nimport { getCustoms } from '../customs';\nimport { getCookieStorageDomainName } from '../utils/helpers/getDomainName';\nimport DOT from './DOT';\nimport { getConfig, _writeConfig } from '../config';\nimport { getLatestConsent } from './consentCookie';\nimport { CONSENT } from '@sklik/cmp2-common';\nimport { setCookie, removeCookie } from '../utils/cookies';\nimport { doNotLoadCMP } from '../config/globalFlags';\n\nlet cmpInitialized = false;\nconst cookieStorageDomainName = getCookieStorageDomainName(location.hostname);\nconst Type = {\n INTERNAL: 'internal',\n EXTERNAL: 'external',\n};\n\nexport const getBaseUrl = () => {\n const custom = getCustoms('cmp');\n const urls = {\n prod: 'https://h.seznam.cz/js/cmp2',\n dev: 'https://h.seznam.dev.dszn.cz/js/cmp2',\n test: 'https://h.seznam.test.dszn.cz/js/cmp2',\n };\n\n if (custom) {\n // user has specified URL for debugging\n return custom;\n }\n\n const { currentScript } = getConfig();\n\n if (!currentScript) {\n // cannot read currentScript (maybe IE)\n // fallback to production\n return urls.prod;\n }\n\n const hostname = new URL(currentScript.src).hostname;\n\n if (hostname.includes('seznam.dev.dszn.cz')) {\n return urls.dev;\n }\n if (hostname.includes('seznam.test.dszn.cz')) {\n return urls.test;\n }\n\n return urls.prod;\n};\n\nexport const getCmpScriptUrl = (type, hostname) => {\n const script = type === Type.EXTERNAL ? 'scmp-external.js' : 'scmp.js';\n const url = new URL(`${getBaseUrl()}/${script}`);\n if (inChunksWhitelist(hostname)) {\n url.searchParams.set('chunks', '1');\n }\n return url.href;\n};\n\nconst getCmpStubUrl = () => `${getBaseUrl()}/cmp_stub.js`;\n\n/**\n * Insert CMP script into the DOM\n * @param {('internal'|'external')} [type]\n */\nconst cmpInsert = (type = Type.INTERNAL) => {\n if (type === Type.INTERNAL && !isAllowed) {\n // We are not in allowed browser or this is an Apple device, do not load CMP\n return;\n }\n\n if (window.scmpInserted) {\n // CMP already inserted (e.g. config with webId and getAds are called together)\n return;\n }\n\n const cmpStub = document.createElement('script');\n cmpStub.src = getCmpStubUrl();\n document.head.appendChild(cmpStub);\n\n const cmpScript = document.createElement('script');\n cmpScript.src = getCmpScriptUrl(type, window.location.hostname);\n document.head.appendChild(cmpScript);\n\n window.scmpInserted = true;\n};\n\n/**\n * Initialize CMP loading\n * @param {Number} zoneId\n */\nexport const cmpInit = async (zoneId) => {\n DOT.config();\n\n if (doNotLoadCMP() || cmpInitialized) {\n return;\n }\n\n try {\n if (window.scmp || window.parent.scmp) {\n // CMP already inserted directly\n cmpInitialized = true;\n return;\n }\n } catch (error) {\n // ssp in cross domain iframe, ignore and continue.\n }\n\n try {\n const cmpData = await getCmpInfo(zoneId);\n const { internalPartner, showDialog, startDate } = cmpData;\n\n _writeConfig({ cmpData });\n cmpInitialized = true;\n const cmpConfigEvent = new CustomEvent('cmpdatareceived', { detail: { ...cmpData } });\n window.dispatchEvent(cmpConfigEvent);\n\n // Pass cmp data to cmp dialog by global variable\n // eslint-disable-next-line camelcase\n window.scmp_sspServerData = cmpData;\n\n if (!showDialog) {\n // CMP is disabled for this site\n return;\n }\n\n if (internalPartner) {\n if (!inBlacklist(window.location.hostname)) {\n cmpInsert(Type.INTERNAL);\n }\n return;\n }\n\n if (startDate) {\n // We're on an external partner site with CMP enabled, load CMP\n cmpInsert(Type.EXTERNAL);\n setPaws(true);\n return;\n }\n\n /** We're on an external partner site with CMP disabled,\n * use whatever cookie we have available */\n\n const localConsentCookie = await getLatestConsent();\n\n if (!localConsentCookie) {\n /** No local consent cookie found. Attempt to use cookie stored in\n * global storage (if exists) */\n copyCookieFromGlobalStorage();\n return;\n }\n\n /* Cookie found in local domain - resave for all subdomains */\n /* Resave only for \"our\" cookie names */\n if (CONSENT.CONSENT_COOKIE_NAME === localConsentCookie.name) {\n removeCookie({ name: localConsentCookie.name });\n setCookie({\n name: localConsentCookie.name,\n value: localConsentCookie.consentString,\n domain: cookieStorageDomainName,\n expires: [365, 'days'],\n });\n }\n } catch (error) {\n // Request to CMP server failed. We'll try next time.\n }\n};\n","import { dbg } from '../utils/dbg';\nimport { getConfig } from '../config';\nimport sync3rdparty from '../impress/sync3rdParty';\nimport logAds from '../impress/logAds';\nimport createRequestPayload from './createRequestPayload';\nimport { validatePosition } from '../utils/validatePosition';\nimport { sessionExists } from '../session/sessionDetection';\nimport { requestAds } from '../utils/request';\nimport { emitDebugEvent } from '../utils/events';\nimport { cmpInit } from '../cmp/cmpLoader';\nimport done from './done';\nimport { getJson } from '../utils/helpers/getJson';\nimport { setCids, getCids, addCidsFromResponse } from './cids';\nimport { addCollocationFlagsToPayload, allowCollocation, evaluateCollocation } from '../utils/collocation';\nimport { getKeywords } from '../utils/keywords';\nimport { getPageViewId, pageViewIdChanged } from '../utils/pageView';\nimport { safelyExecuteCallback } from '../utils/safeCallback';\nimport { isStandAlone } from '../config/globalFlags';\nimport { addGamFlagsToPayload } from './gam';\nimport { syncUtmSourceWithLeader } from '../session/leaderFollowerSync';\n\n/**\n * @module sssp/getAds\n * @desc Module describes method <code>getAds</code> for requesting ads from the server by zones.</br>\n * <a href=\"https://ssp.seznam.cz/static/doc/#pouziti-pro-zacatecniky-singlerequest\">Public description of how to use the method getAds (singlerequest use)</a></br>\n * <a href=\"https://ssp.seznam.cz/static/doc/#multirequest-pouziti\">Public description of how to use the method getAds (multirequest use)</a></br>\n */\n\nlet cmpRequested = false;\n\n/**\n * Main method for calling and displaying ads. Allows requesting and displaying\n * a single zone (single object as the first parameter) or multiple zones by\n * passing an array of zone objects.<br/>\n * Public function <code>sssp.getAds</code></br></br>\n * <a href=\"https://ssp.seznam.cz/static/doc/#prehled-nastaveni-ssp\">Public description of the incoming parameters of the method</a>\n * (the public documentation describes some of the fields, not all)\n *\n * @param {Object|Object[]} positions Configuring zones on the page <br/>\n * <b>Object</b> - singlerequest use <br/>\n * <b>Object[]</b> (Array of Object) - multirequest use (the object format is used the same) <br/>\n * <a href=\"https://ssp.seznam.cz/static/doc/#prehled-nastaveni-zony\">Public description of configuring zones</a>\n * @param {string} positions.id - The identifier of the HTML element to add the ad to.<br/>\n * Not required if the <code>positions.callback</code> is specified\n * Element with ad can be found by <code>document.getElementById(positions.id);</code>\n * @param {number} positions.zoneId - Unique ad zone identifier. <br/>\n * This number is assigned to the zone automatically when an ad code is generated in the <a href=\"https://partner.seznam.cz/seznam-ssp/\">partner interface</a>\n * @param {number} positions.width - Maximal ad width in pixels. <br/>\n * The server searches for an advertising banner suitable in size. One dimension (width or height) must be specified.\n * @param {number} [positions.height] - Maximal ad height in pixels. <br/>\n * The server searches for an advertising banner suitable in size. One dimension (width or height) must be specified.\n * @param {number} [positions.minWidth] - Minimal ad width in pixels <br/>\n * Specifies the size for different types of devices\n * @param {number} [positions.minHeight] - Minimal ad height in pixels <br/>\n * Specifies the size for different types of devices\n * @param {object[]} [positions.elements] - The field of elements where you can list the ad, and their dimensions\n * @param {string} [positions.serviceId] - Service ID of zone.\n * @param {string} [positions.contentId] - Content ID of zone.\n * @param {boolean} [positions.cidsAutoSend=false] - If true, then collect CIDs from response\n * @param {function} [positions.callback] - Function that browser calls when ad arrives from the SSP server\n *\n * @param {Object} [positions.options]\n * @param {boolean} [positions.options.branding] - Whether wider variant of leaderboard can be served.\n * @param {string} [positions.options.section] Section for hierarchical ad targeting. <br/>\n * Value is passed only to Advert DSP, for backward compatibility.\n * @param {string} [positions.options.collocation] Ad targeting keywords. <br/>\n * Value is passed only to Advert DSP, for backward compatibility.\n * @param {object} [positions.options.passons] Spot variant flags. Ignored for video zones. <br/>\n * Value is passed only to Advert DSP, for backward compatibility.\n * @param {string} [positions.options.flags] Template arguments. <br/>\n * Value is passed only to Advert DSP, for backward compatibility.\n * @param {number} [positions.options.spotId] ID of a spot to be served. <br/>\n * Value is passed only to Advert DSP and only when *test=1*. Advert DSP sends bid for this spotId and then this bid has to win SSP auction to be served.\n * @param {number} [positions.options.minDuration] Minimal video duration in seconds. <br/>\n * Attribute is ignored for zones that do not serve video ads.\n * @param {number} [positions.options.maxDuration] Maximal video duration in seconds. <br/>\n * Attribute is ignored for zones that do not serve video ads.\n * @param {string[]} [positions.options.videoFormats] Supported MIME types list.<br/>\n * Empty list means it is possible to server any format.<br/>\n * Attribute is ignored for zones that do not serve video ads.\n * @param {string[]} [positions.options.protocols] Supported protocols (VAST, VPAID etc.).<br/>\n * Attribute is ignored for zones that do not serve video ads.\n * @param {boolean} [positions.options.skippable] If player allows ad skipping.\n * @param {function} [positions.options.jsonPreloadDisabled] For ad type json_url disables automatic JSON download\n * @param {function} [positions.options.infoCallback] Function is called for each ad position after the data from the SSP is retrieved\n * @param {function} [positions.options.infoErrorCallback] Function is called for each ad position that is incorrectly configured\n * @param {boolean} [positions.options.noSize] If set to true, SSP will not require a position dimension\n * @param {number[]} [positions.options.nativeTemplate] Which template to use when asking DSPs for native ads.\n * @param {number[]} [positions.options.nativeVersion] Which version to use when asking DSPs for native ads.\n * @param {boolean} [positions.options.sspRendering] Whether the ad is rendered by ssp script (true) or externally (false, null).\n * @param {number} [positions.options.sfExpandZIndex=1] Z-index value for an expanding overlay banner\n * @param {number} [positions.options.pawTimeout=1000] Sets paw rendering delay\n * @param {boolean} [positions.options.pawDisable=false] Determines whether a paw is hidden or not\n * @param {boolean} [positions.options.disableScaling] If disableScaling = true, SSP does not change size for nonresponsive ads\n * @param {number} [positions.options.reloadCount] Number of ad reloads performed on the zone, default 0\n * DSP test params\n * @param {string} [positions.preview.adType] optional addType\n * @param {string} [positions.preview.bannerid] optional bannerid\n * @param {string} [positions.preview.crid] optional crid\n * @param {string} [positions.preview.deliveryType] optional deliveryType\n * @param {string} [positions.preview.dsp] optional dsp setting (\"Sklik\", \"Advert\", \"Ogar\", \"Onegar\"). If not specified the SSP server sets the value to \"Sklik\".\n * @param {string} [positions.preview.mediaType] optional mediaType\n *\n * Opt params\n * @param {Object} [opt] Additional request configuration\n * @param {function} [opt.AMPcallback] Function calls from AMPHTML\n * @param {string[]} [opt.cids] Campaigns identifiers\n * @param {boolean} [opt.grantConsent] turn on grantConsent for DSP testing page\n * @param {boolean} [opt.pvIdChangeIgnore] turn off pvId change handlind (xhr aborting)\n * @param {Object} [opt.config.ab] A/B testing variant e.g. { recass_ab_variant_test: \"ab_variant\" }\n * @param {string} [opt.config.source] UTM Source parameter, indicating whether user has arrived from HP. See session/ for more information.\n */\n\nconst getAds = async function (positions, opt) {\n emitDebugEvent('getAdsCallStart', { positions });\n const {\n isFollowerSsp,\n preparePositionsCallback,\n requestErrorCallback,\n cidsAutoSend,\n serviceIdForAllZones,\n pvId,\n fallbackToGAM,\n } = getConfig();\n\n if (opt && opt.cids) {\n setCids(opt.cids);\n }\n\n /* Execute user-defined callback if we have an active session cookie */\n if (typeof preparePositionsCallback === 'function' && sessionExists()) {\n safelyExecuteCallback(preparePositionsCallback);\n emitDebugEvent('preparePositionsCallbackCalled', { preparePositionsCallback });\n }\n\n sync3rdparty(); // volani sync kodu apnexus, pubmatic, ...\n\n dbg('info', '### starting get ads ###');\n dbg('with parameters', positions, opt);\n if (typeof positions !== 'object') {\n dbg('error', 'no valid parameters: types', positions);\n emitDebugEvent('errorNoValidParametersType', { positions });\n return;\n } else if (Array.isArray(positions) && !positions.length) {\n dbg('error', 'no valid parameters: array length 0', positions);\n emitDebugEvent('errorNoValidParametersLenght', { positions });\n return;\n }\n\n /* If `positions` is an Object, convert it to Array of length = 1 */\n if (!Array.isArray(positions)) {\n positions = [positions];\n dbg('data object transformed to array', positions);\n emitDebugEvent('positionTransformed', { positions });\n }\n\n /* If a \"serviceIdForAllZones\" is set in config, this \"serviceIdForAllZones\" will be used as \"serviceId\" for all positions. */\n if (serviceIdForAllZones) {\n positions.forEach((position) => {\n position.serviceId = serviceIdForAllZones;\n });\n }\n\n /* Request site's CMP config, sync consent cookies, maybe even display a CMP dialog */\n if (!isStandAlone() && !cmpRequested) {\n cmpInit(positions[0].zoneId);\n cmpRequested = true;\n }\n\n /* Log to Reporter */\n logAds(positions);\n\n /* Filter out invalid positions */\n const validPositions = positions.map((position) => validatePosition(position, opt)).filter(Boolean);\n emitDebugEvent('validatingPositionsEnd', { validPositions });\n\n /* Get current array of cids */\n const cids = getCids();\n\n /* If we're in an iframe, get the utm source from the master SSP */\n if (isFollowerSsp) {\n dbg('info', 'Getting utm source from leader SSP');\n const utmSource = await syncUtmSourceWithLeader();\n dbg('info', 'Utm source from leader SSP', utmSource);\n opt = opt ?? {};\n opt.config = opt.config ?? {};\n opt.config.source = utmSource;\n }\n\n /* Get full request data */\n const requestPayload = await createRequestPayload({ zones: validPositions, opt, cids });\n\n if (allowCollocation()) {\n if (pageViewIdChanged(getPageViewId())) {\n evaluateCollocation(getKeywords());\n }\n\n addCollocationFlagsToPayload(requestPayload);\n }\n\n if (fallbackToGAM) {\n addGamFlagsToPayload(requestPayload);\n }\n\n emitDebugEvent('requestPayloadEnd', { requestPayload });\n\n dbg('merged prefix and data object', requestPayload);\n\n /* Finally, request the ads */\n const handlePageViewIdChange = typeof opt?.pvIdChangeIgnore === 'boolean' ? !opt.pvIdChangeIgnore : false;\n requestAds(requestPayload, pvId, handlePageViewIdChange)\n /* Success, continue in `done` */\n .then(async (response) => {\n if (!response) {\n return;\n }\n const responseParsed = getJson(response);\n\n if (cidsAutoSend) {\n addCidsFromResponse(responseParsed);\n }\n\n await done(response, validPositions, opt, requestPayload);\n })\n\n /* Error, invoke website-defined callback */\n .catch((error) => {\n const { errorName, errorCode } = error;\n dbg('error', errorName);\n emitDebugEvent('xhrError', { error });\n if (typeof requestErrorCallback === 'function') {\n requestErrorCallback(errorName, errorCode);\n }\n });\n\n emitDebugEvent('getAdsEnded', {});\n};\n\nexport default getAds;\n","import { dbg } from '../utils/dbg';\nimport getAds from './getAds';\n\n/**\n * A simpler method for requesting and displaying ads on the page. It doesn't\n * require to pass an array or object with zone configuration, instead it scans\n * the DOM for HTML elements with \"data-szn-ssp-ad\" attributes and creates the\n * object pased to getAds method.\n */\nconst getAdsByTags = function () {\n var divs = document.querySelectorAll('div[data-szn-ssp-ad]');\n var data = [];\n\n for (var i = 0; i < divs.length; i++) {\n try {\n var o = JSON.parse(divs[i].getAttribute('data-szn-ssp-ad'));\n o.id = divs[i];\n data.push(o);\n } catch (e) {\n dbg('error', e);\n }\n }\n\n getAds(data);\n};\n\nexport default getAdsByTags;\n","import { getPawHTML, revivePaw } from './getPawHTML';\nimport { dbg } from '../utils/dbg';\n\n/**\n * Appends pawHTML to an element\n * @param {Object} ad - reklama z sssp\n * @param {HTMLElement} element - HTML DOM element, where the paw should be inserted\n * @param {Boolean} visible - visibility of \"paw\"\n */\nexport const appendPawToElement = (ad, element, visible = true) => {\n const isValidInput = ad && ad.dsp && element && element.insertAdjacentHTML;\n\n if (!isValidInput) {\n dbg('error', 'invalid arguments provided to \"appendPawToElement\"', { ad, element });\n return;\n }\n\n const pawElement = getPawHTML(ad, visible);\n\n if (pawElement) {\n element.insertAdjacentHTML('beforeend', pawElement);\n revivePaw(ad, element, ['first', 'last']);\n }\n};\n","import { dbg } from '../utils/dbg';\nimport { getImageBaseUrl } from '../utils/urls';\nimport { stringToBase64url } from '../utils/base64';\nimport { getConfig } from '../config';\nimport { revivePaw } from './getPawHTML';\n/**\n * Generates HTML code of the info icon, which is displayed on the top right corner of the banner.\n * @param {String} coopUrl URL to the coop info page\n * @returns {String} info icon template HTML\n */\nconst createCoopIconTemplate = (coopUrl, align = 'right', disableAnimation = false) => {\n const infoUrl = getImageBaseUrl();\n const style = `\n\t\twidth: 13px;\n\t\theight: 13px;\n margin: 0;\n padding: 0;\n\t`;\n const coopIcon = `<img src=\"${infoUrl}/coop.svg\" data-cy-paw=\"coop\" style=\"${style}\">`;\n const textFragment = `<span style=\"display: ${disableAnimation ? 'block' : 'none'}; height:15px; color: #808080; font-size: 8pt;\" data-cy-pawinfo=\"seznam-reklama\">KomerÄnà spolupráce</span>`;\n const iconFragment = `<div class=\"packa-icon\" style=\"display: block; width: 15px; height: 15px; filter: brightness(85%)\">${coopIcon}</div>`;\n let fragmentOrder = [textFragment, iconFragment];\n if (align === 'left') {\n fragmentOrder = fragmentOrder.reverse();\n }\n return `\n\t\t<div style=\"height:15px; margin: 5px;\" class=\"packa\">\n\t\t\t<a target=\"_blank\" style=\"cursor: pointer;text-decoration: underline; text-decoration-color: #808080;display: flex;justify-content: ${align === 'left' ? 'start' : 'end'};gap: 5px;align-items: center;\" class=\"packa-anchor\" href=\"${coopUrl}\" data-dot-data=\\'{\"action\": \"showCoopInfoPage\"}\\'>\n ${fragmentOrder.join('\\n')}\n\t\t\t</a>\n\t\t</div>\n\t`;\n};\n/**\n * Appends Commercial Cooperation icon to an element. An info icon on top right corner of the banner.\n * @param {Object} params - coop parameters\n * @param {HTMLElement} element - HTML DOM element, where the icon should be inserted\n */\nexport const appendCoopIconToElement = (params, element) => {\n const isValidInput = element && element.insertAdjacentHTML;\n if (!isValidInput) {\n dbg('error', 'invalid arguments provided to \"appendCoopIconToElement\"', { params, element });\n return;\n }\n const coopUrlHash = JSON.stringify({\n a: [\n {\n ...(params?.paid && { p: params.paid }),\n ...(params?.behalf && { b: params.behalf }),\n r: [2],\n },\n ],\n });\n const { protocol, staticServer } = getConfig();\n const coopUrl = `${protocol}${staticServer}/cooperation-info#${stringToBase64url(coopUrlHash).replace(/=/g, '')}`;\n const iconElement = createCoopIconTemplate(coopUrl, params?.align, params?.disableAnimation);\n element.insertAdjacentHTML('afterbegin', iconElement);\n const animationFragments = [];\n if (params?.disableAnimation !== true) {\n animationFragments.push(params?.align === 'left' ? 'last' : 'first');\n }\n revivePaw(null, element, animationFragments);\n};\n","export function base64urlToString(base64) {\n const binString = atob(base64.replace(/-/g, '+').replace(/_/g, '/'));\n const bytes = Uint8Array.from(binString, (m) => m.codePointAt(0));\n return new TextDecoder().decode(bytes);\n}\nexport function stringToBase64url(str) {\n const bytes = new TextEncoder().encode(str);\n const binString = Array.from(bytes, (byte) => String.fromCodePoint(byte)).join('');\n return btoa(binString).replace(/\\+/g, '-').replace(/\\//g, '_');\n}\n","import { setConfig, getConfig } from '../config';\nimport getAds from '../ads/getAds';\nimport getAdsByTags from '../ads/getAdsByTags';\nimport { setPageViewId, getPageViewId } from '../utils/pageView';\nimport { sessionExists } from '../session/sessionDetection';\nimport { setSessionCookie } from '../session/sessionCookies';\nimport writeAd from '../rendering/writeAd';\nimport served from '../impress/served';\nimport processAdData from '../ads/processAdData';\nimport { cmpInit } from '../cmp/cmpLoader';\nimport { getDot } from '../impress/dotLoader';\nimport { setCustomPath } from '../customs';\nimport { getRenderedAds, updatePositionId, extendVisibilityTracking } from '../ads/adRepository';\nimport { getPawHTML } from '../rendering/getPawHTML';\nimport { appendPawToElement } from '../rendering/appendPawToElement';\nimport { appendCoopIconToElement } from '../rendering/appendCoopIconToElement';\nimport { isStandAlone } from '../config/globalFlags';\nimport { getVastData } from '../utils/vastData';\nimport { getVastAds } from '../ads/getVastAds';\nimport { addToQueue } from '../utils/functionStack';\nimport init from '../init';\nimport handleGamNoAdResponse from '#Modules/ads/gam/handleGamNoAdResponse';\nexport default () => {\n const sssp = {\n /**\n * Main configuration method for setting config\n */\n config: (config) => {\n return addToQueue(() => {\n setConfig(config);\n if (!isStandAlone()) {\n cmpInit(0);\n }\n sssp.conf = getConfig();\n });\n },\n /**\n * [deprecated] Object representing current configuration. Read-only.\n */\n conf: getConfig(),\n /**\n * This method is used as GAM custom creative to render Seznam AD if GAM does not provide relevant AD\n * https://support.google.com/admanager/answer/3185155?hl=en&ref_topic=10083476&sjid=12037626429500086839-EU\n */\n gamTest: (slotUnitPath) => handleGamNoAdResponse(slotUnitPath),\n /**\n * Main method for calling and displaying ads. Allows requesting and displaying\n * a single zone (single object as the first parameter) or multiple zones by\n * passing an array of zone objects.\n */\n getAds: (positions, opt) => addToQueue(getAds, positions, opt),\n // Method for for calling and displaying VAST ads.\n getVastAds: (positions) => addToQueue(() => getVastAds(positions)),\n /**\n * A simpler method for requesting and displaying ads on the page. It doesn't\n * require to pass an array or object with zone configuration, instead it scans\n * the DOM for HTML elements with \"data-szn-ssp-ad\" attributes and creates the\n * object pased to getAds method.\n */\n getAdsByTags: () => addToQueue(getAdsByTags),\n /**\n * Inserts ad to page according to parameters passed.\n */\n writeAd,\n /**\n * Attempts to hit each provided URL in array in order to count metrics (miss,\n * impress, visible)\n */\n served,\n /**\n * Retrieve page view ID from config (web is Single-Page Application (SPA))\n */\n getPageViewId,\n /**\n * Set page view ID. If provided, pageview ID will be set to the value of\n * the argument. If not, the script will generate one (usually the desired\n * behavior).\n */\n setPageViewId: (pageViewId, resetVisibilityElements) => addToQueue(setPageViewId, pageViewId, resetVisibilityElements),\n /**\n * Detects an active Seznam partner session. Intended for partner websites\n * to check for traffic generated by Seznam and display ads according to the\n * traffic source.\n */\n displaySeznamAds: sessionExists,\n /**\n * Detects if a session cookie was set for a Seznam partner website\n *\n */\n existSessionCookie: sessionExists,\n /**\n * Set session cookie to mark valid session to continue serving Seznam ads\n */\n setSessionCookie: (media) => setSessionCookie({ media }),\n /**\n * Renders an ad or invokes a callback.\n */\n processAdData: (ad, data) => addToQueue(processAdData, ad, data),\n /**\n * Gets info about rendered positions/ads (= content of positionsStore). Watcher for future updates can be registered.\n */\n getRenderedAds,\n /**\n * Manually initialize SSP. Use only when `window._sspDoNotInit` has been set to\n * a truthy value before running ssp.js.\n */\n init,\n /**\n * Private method for debugging and testing purposes only\n * returns SSP's current DOT instance\n */\n _getDotInstance: getDot,\n /**\n * Updating element / container ID according to zoneId (if adRepository[item].ad.id = falsy) in adRepository (affects all positions satisfying condition)\n */\n updateAdContainerId: updatePositionId,\n /**\n * Sets custom resources paths for debugging and testing purposes only\n */\n _setCustomPath: setCustomPath,\n /**\n * Returns pawHTML for all DSP types except Sklik, OGAR & ONEGAR\n */\n getPawHTML,\n /**\n * Appends pawHTML to an element\n */\n appendPawToElement,\n /**\n * Appends coop icon to an element\n */\n appendCoopIconToElement,\n /**\n * Add positions from callback ad into positionsStore for visibility measurement\n */\n extendVisibilityTracking,\n /**\n * Clear sklikData from window object\n */\n clearData: () => {\n try {\n if (!delete window.sklikData) {\n window.sklikData = null;\n }\n }\n catch (e) {\n window.sklikData = null;\n }\n },\n /**\n * Geet VAST related data (tags, ...) from \"anywhere\".\n * Returns Promise (syncing from top) -> works in top level and also embeds.\n */\n getVastData: (zoneIds) => addToQueue(() => getVastData(zoneIds)),\n };\n return sssp;\n};\n","import init from '#Modules/init';\nimport apiObject from '#Modules/global/api';\nimport { dbg } from '#Modules/utils/dbg';\nimport { sendHit } from '#Modules/utils/sendHit';\nimport { doNotInit } from '#Modules/config/globalFlags';\nimport { HIT_MODIFICATION_TITLE } from '#Constants';\n/**\n * Prepare public API object + assign\n */\nexport const constructSssp = () => {\n const sssp = apiObject();\n _setNamespace(sssp);\n _init();\n return sssp;\n};\n/**\n * Clear \"stubbed\" global sssp object\n */\nexport const _cleanUpNamespace = () => {\n if (window.sssp?.isStub) {\n // @ts-ignore\n delete window.sssp;\n }\n};\n/**\n * Assign global sssp object\n */\nexport const _setNamespace = (sssp) => {\n _cleanUpNamespace();\n // assign sssp namespace (proxy vs basic object)\n if (!window.sssp) {\n dbg('info', '### exporting sssp object to window');\n if ('Proxy' in window) {\n _constructProxy(sssp);\n }\n else {\n window.sssp = sssp;\n }\n }\n else {\n dbg('info', '### sssp already exists - exiting');\n }\n};\n/**\n * In supported environment -> proxy (with \"set\" access logging)\n */\nconst _constructProxy = (sssp) => {\n const proxyHandler = {\n set(obj, prop, value) {\n obj[prop] = value;\n // log modification of module properties\n sendHit({ t: HIT_MODIFICATION_TITLE, i: '1', r: top.location.origin, z: '1' });\n return true;\n },\n };\n Object.defineProperty(window, 'sssp', {\n configurable: true,\n get() {\n return new Proxy(sssp, proxyHandler);\n },\n set(value) {\n // log modification of the whole module\n sendHit({ t: HIT_MODIFICATION_TITLE, i: '1', r: top.location.origin, z: '1' });\n Object.defineProperty(window, 'sssp', { value });\n },\n });\n};\n/**\n * init ssp workflow (if not disabled by global flag)\n */\nconst _init = () => {\n if (!doNotInit()) {\n dbg('info', '### initializing sssp');\n init();\n }\n else {\n dbg('info', '### variable window._sspDoNotInit is set, skipping ssp initialization');\n }\n};\n","/**\n * @file SSP reklamnà výdejový script\n *\n * @author Seznam Partner <ssp-nasazeni@firma.seznam.cz>\n *\n */\n/* IVA Refresher */\nimport '@iva/refresher';\n/* IAB SafeFrame support */\nimport './safeframe/sf.host';\n/* IVA error handler */\nimport { startErrorHandling } from '@iva/error-reporter';\n/* SSP itself */\nimport { constructSssp } from './modules/global/constructor';\nstartErrorHandling({\n endpoint: 'ssp-static',\n scriptName: 'ssp.js',\n});\n/**\n * @interface sssp\n * @desc Public object <code>sssp</code> exposing API methods for working with Seznam ads.\n */\nconst sssp = constructSssp();\nexport { sssp };\n"],"names":["ENABLER","PERMANENT_ENABLER","EVENT_PREFIX","DEFAULTS","FCOLOR","BCOLOR","getDebuggerRule","_a","paramValue","getParamValue","topFrameRule","getTopFrameRule","localStorageRule","window","localStorage","getItem","error","log","getInternalConfig","undefined","JSON","stringify","getShouldLog","name","rule","getGlobalDebuggerObject","welcomeNotified","isTopLevel","upsertGlobalDebuggerObject","findNameInValue","indexOf","toLowerCase","__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","getOwnPropertySymbols","i","length","propertyIsEnumerable","fColor","bColor","initIframeBridge","debugFactory","config","permanentEnabler","assign","types","_len","arguments","args","Array","_key","argsCount","shouldLog","isArray","firstArg","state","type","subName","message","data","logArgs","push","values","keys","status","slice","style","badge","messages","messagesCopy","map","v","cloneDeep","console","table","_b","_c","lastValue","removeItem","setItem","EVENT_TYPE","detail","sznIVA","event","CustomEvent","dispatchEvent","param","queryString","location","search","paramRegex","RegExp","matches","match","win","top","self","Cypress","frameElement","debugger","windowObject","addEventListener","source","postMessage","targetOrigin","iframeBridgeNotified","Error","handlerFromChildMessage","handlerFromTopMessage","document","referrer","detect","comment","endTag","atomicTag","startTag","chars","HtmlParser","constructor","stream","options","this","fix","fixedTokenOptions","key","supports","autoFix","_readToken","fixedReadTokenFactory","_readTokenImpl","_peekToken","_peekTokenImpl","append","str","prepend","token","test","streamReaders","tagName","text","substring","peekToken","readToken","readTokens","handlers","tok","clear","rest","tokenToString","toString","escapeAttributes","attrs","escapedAttrs","escapeQuotes","browserHasFlaw","EMPTY","CLOSESELF","correct","unary","html5Unary","closeLast","parser","stack","pop","readTokenImpl","last","lastTagNameEq","toUpperCase","containsTagName","newStack","prepareNextToken","selfCloseFix","tagSoupFix","tmp","REGEXES","doctype4","xmlProlog","attr","fillAttr","index","CommentToken","CharsToken","unescapeHTMLEntities","html","replace","join","_replaceAllInstanceProperty","m","booleanAttrs","value","StartTagToken","start","AtomicTagToken","EndTagToken","tagSoup","selfClose","work","createElement","innerHTML","childNodes","Token","content","super","TagToken","formatTag","entries","_ref","val","defaultValue","_","prefix","doNothing","OPTIONS","afterAsync","afterDequeue","afterStreamStart","afterWrite","beforeEnqueue","beforeWriteToken","beforeWrite","done","msg","releaseAsync","nextId","queue","active","nextStream","shift","utils","el","WriteStream","id","postscribe","streams","doc","ownerDocument","stash","close","open","write","writeln","_len2","_key2","oldOnError","onerror","url","line","col","apply","runStream","getElementById","jquery","cancel","abort","existy","thing","isFunction","x","eachKey","obj","fn","target","defaults","_defaults","toArray","ret","arr","len","each","array","isTag","tag","isScript","isStyle","BASEATTR","PROXY_STYLE","PROXY_SCRIPT","getData","getAttribute","String","setData","setAttribute","removeAttribute","root","defaultView","parentWindow","actuals","proxyHistory","proxyRoot","nodeName","scriptStack","writeQueue","deferredRemote","arg","_callFunction","_writeImpl","_onScriptStart","_onScriptDone","script","tokens","_writeStaticTokens","_handleScriptToken","_handleStyleToken","chunk","_buildChunk","actual","proxy","_walkChunk","_addBaseAttr","tokenRaw","capturedGroup","raw","actualToken","node","isElement","nodeType","parentIsProxyOf","parentNode","appendChild","unshift","remainder","src","SRC","_writeScriptToken","TYPE","_writeStyleToken","_buildStyle","_insertCursor","styleSheet","sheet","cssText","createTextNode","which","cursor","replaceChild","outerWrites","_buildScript","asyncRelease","_shouldRelease","_scriptLoadHandler","cleanup","onload","onreadystatechange","success","failure","err","reattachEventListener","evt","handler","_onload","_onerror","readyState","hasAttribute","SSP_URL","PROTOCOL","HOSTNAME","IFRAME_HOSTNAME","PATH_TO_EMPTY","CMP_URL","PATH_TO_CMP","INT_PAW_LINK","PAW_RENDER_DELAY","DSP_LIST","COLLOCATION_WHITELIST","COLLOCATION_UNSAFE_KEYWORDS","COLLOCATION_FLAG_SAFE","HIT_MODIFICATION_TITLE","CONSENT_CHECK_TIMEOUT","DOT_FIRST_IMPRESS_EVENT","IMPRESS_TIMEOUT","INTERNAL_SERVICES","SERVICE_NAME","LOG_COLOR_DEFAULT","LOG_COLOR_BG","slotUnitPath","_window$googletag$pub","_window$googletag","_window$googletag$pub2","_window$googletag$pub3","_window$googletag$pub4","_document$getElementB","dbg","slotElementId","googletag","pubads","getSlotIdMap","getSlotElementId","remove","elementIdParts","split","zoneId","Number","ad","getAdDataByZoneId","processSspAd","adData","addGamFlagsToPayload","requestPayload","zones","forEach","zone","gam","generateGamDimensionsFromMissAdData","allowedDimensions","fallbackDimensions","width","height","initializeGAMObject","cmd","gamFallback","_data$options","_ad$formats","sspRendering","isBlacklisted","hostname","includes","omitWww","elementId","dimensions","formats","sizes","loadScript","then","gElement","emptyAdElement","parentElement","nextSibling","insertBefore","defineSlot","addService","enableSingleRequest","enableServices","display","requestId","impressId","sendHit","r","z","catch","requestGamAd","async","_data$options2","_ad$formats2","isRtbTestingWeb","host","gamTestElement","Promise","resolve","_getUrlParams$seznamP","currentSlot","timeoutId","setTimeout","destroySlots","seznamPrice","getUrlParams","setTargeting","_ref2","isEmpty","slot","clearTimeout","params","optionsParams","dopUrlParameters","getPackageVersion","PACKAGE_VERSION","SspAllowedSourcesObject","configTypes","ab","adblock","callCallbackOnError","cidsAutoSend","cookieDomain","debugExtensionId","fallbackToGAM","iframeStaticServer","isFollowerSsp","premium","preparePositionsCallback","protocol","requestErrorCallback","rusId","said","server","serviceIdForAllZones","site","getSessionData","media","staticServer","webId","activeUser","isValidActiveUserInConfig","_validateValue","configType","getConfig","_getDefaultValue","prepareConfig","reduce","acc","current","validatedValue","_reduceConfig","allowedSources","cmpData","cmpServer","getCustoms","cookieExpiration","currentScript","dotMeasureZones","dotMeasureZonesIds","iframeUrl","method","packageVersion","path","pvId","getLocation","getOverrides","static","version","_writeConfig","newConfig","sssp","conf","setConfig","preparedConfig","_window$sznIVA","IS","updateIdentities","login","sync3rdparty","getCookieString","cookieData","cookieValues","expires","secure","sameSite","domain","expireTime","Date","toUTCString","units","multipliers","seconds","minutes","hours","days","unitIndex","findIndex","unit","offset","date","setTime","getTime","getExpireTime","filter","getCookie","requestedCookieName","cookie","item","singleCookie","separatorIndex","trim","getCookieTuple","setCookie","removeCookie","DEBUG_CONFIG","copyDebugQuery","searchParams","queries","_URLSearchParams","sznivadbg","get","sznivadbgsave","parsed","_URL","sendDataToExtension","requestData","ads","handleIdProperties","collection","requestDataSanitized","responseDataSanitized","sspExtensionEvent","request","response","sendSspAdsLoaded","sendSspAdsChange","emitDebugEvent","sendAdbEvent","iframe","sendPawVisibilityEvent","sendPageViewIdSetEvent","sendSspLoaded","_getUrlOverrides","sspredirect","sspstatic","redirect","from","head","querySelectorAll","extractId","idOrElement","HTMLElement","secondLevelTlds","_isTld","getDomainName","sliceValue","some","tld","endsWith","_isSecondLevelTld","getCookieStorageDomainName","domainName","getJson","parse","getRandomString","Math","random","href","getParamFromQuerystringOrHash","parsedUrl","hash","result","decodeURIComponent","getParameterFromURLHash","setElementAttributes","element","attributePairs","attrName","attrValue","getIS","waitForLogin","timeoutMs","_getIS2","unsubscribe","timeout","badgeListener","loginResolver","forceTerminate","loginData","loginIS","_getIS","getIdentity","getLoginIS","_window$login","_window$login2","_window$login3","_terminate","loginToResolve","_unsubscribe","removeEventListener","uid","subscribeIdentities","identities","changes","reject","safelyExecuteCallback","callback","sspScriptSrcRegEx","getScriptParams","paramsObj","scripts","sspScript","find","urlParams","hitURL","Image","getTimestamp","getFullYear","getMonth","getDate","getHours","initTimestamp","setInitTimestamp","timestamp","performance","now","getTimeFromInitTimestamp","isTopWindow","getAdserverUrl","getImageBaseUrl","USER_TIMEOUT","_isValidActiveLoggedUser","user","encodedFlags","isNaN","userFlags","_isValidActiveForgottenUser","getCurrentSznUser","pvIdSet","positionsStore","positionWatcher","runPositionsWatcher","getPositions","addPositions","adObject","updatePositionId","observePositions","getCompleteData","positions","position","getAdByImpressId","setContainerElement","containerElement","getBasicPositionsInfo","sort","a","b","responsive","zoneName","sbr","getRenderedAds","watcher","output","removeWatcher","updatePositionInStore","existingPosition","_p$data","_existingPosition$ad","tracking","visible","extendVisibilityTracking","callbackAdData","Boolean","cids","setCids","newCids","getCids","addCidsFromResponse","_ad$bidIds","bidIds","cid","splice","runInfoCallback","infoCallback","positionData","clearedAdResponse","errorMessage","dbginfo","processAdData","serverResponse","opt","parsedData","fillInAdData","served","completeData","AMPcallback","processPromises","all","viewCheckHandler","appendDspInfoEl","isItDspTestPage","urlObj","parsedDspUrlParams","trimKeyRegex","valuesToBeParsedToNumber","Set","dspParams","identificator","trimmedKey","has","getDspParamsForZone","isVastRequest","positionKeys","previewKeys","dspParamsForZone","_param$dsp","isTargetMatch","isZoneMatch","crid","bannerid","dsp","zoneParams","preview","createDspStripeEl","_ref3","baseUrl","isErrorStripe","stripeEl","createDspInfoStripe","isDspTestPage","shouldHideInfoStripe","ssp_infoStripe","isScreenshotatorPage","screenshot","_ref4","shouldShowDspStripe","dspBarEl","body","shadow","attachShadow","mode","toLocaleDateString","year","month","day","infoBarEl","showErrorBar","hasEveryZoneError","every","_ad$dbginfo","_ref5","_responseZoneForDSP$d","responseZoneForDSP","errorStripeEl","querySelector","XMLHttpRequest","_xhr","errHandler","responseText","writeAd","logBackgroundAdReload","withCredentials","send","adInput","dataInput","setupDocumentWrite","adObjects","hitAction","doNotParseVastData","urlDataToCallback","jsonPreloadDisabled","ua","navigator","userAgent","browserWhitelist","isThisSafari","isAllowed","browserName","CSS_PAWS","urls","link","cmpCanManageAds","changeLink","pawLink","getExternalPawsUrl","setPaws","canManageAds","setLink","checkChangesInDOM","MutationObserver","mutationsList","mutation","addedNodes","className","observe","attributes","childList","subtree","isStandAlone","_sspStandalone","doNotInit","_sspDoNotInit","doNotLoadDOT","_sspDoNotLoadDOT","doNotLoadCMP","_sspDoNotLoadCMP","adLoadWaitForImpress","_sspAdLoadWaitForImpress","STORAGE_OBJECT_NAME","ALLOWED_KEYS","isStorageSupported","setCustomPath","paths","newData","isCalledFromWriteAd","visibilityState","dotUrl","dotInstance","dotTimer","dotConfig","service","load","mousedown","dotFallback","hit","getNewInstance","_cfg","fallback","dotSource","configureDot","DOT","cfg","loadDot","configure","isConfigured","setAfterCfgEvent","setDot","getDot","urlList","regexp","urlImpress","hitErrorParams","hitError","finished3rdparty","iframeLoaded","Element","removeChild","createIframe","container","frameBorder","consent","CONSENT","purposeOne","encodeURIComponent","gdprPart","consentString","action","d","observer","elmsIntersections","resetElmIntersection","elmId","purge","timer","clearElmsIntersections","getElementFromRepositoryItem","adUnit","pos","adElement","waitForElement","tries","interval","setInterval","clearInterval","unobserveAndSend","elmById","visibleUrls","unobserve","pIndex","IntersectionObserver","intersections","isIntersecting","intersectionRatio","adUnitByTarget","doNotValidateIntersectionRatio","isBranding","round","threshold","createPawIconTemplate","pawUrl","startsWith","iconUrl","rotationAngle","getPawIcon","getPawIconTemplate","adInfoUrl","internalPartner","getPawHTML","_pawMouseHandler","fragments","stopPropagation","fragment","_event$target$closest","closest","getComputedStyle","togglePawFragment","revivePaw","context","mark","paw","pawAnchor","classList","add","box","getBoundingClientRect","rightOverflow","right","documentElement","clientWidth","bottomOverflow","bottom","clientHeight","translate","transform","_pawReposition","getAdElements","positionOptions","htmlString","getAdMarkup","size","dim","pawDisable","createRange","createContextualFragment","adContent","getTargetElement","elements","bestElement","getBestElement","defaultValues","area","Infinity","currentElement","prerenderAdToPage","targetElement","offsetHeight","offsetWidth","scrollWidth","maxWidth","setSize","pawElement","disableScaling","f","wRatio","hRatio","min","dataset","h","w","hR","wR","transformOrigin","sspScaled","hScaled","wScaled","scale","sspScaledMetadata","resize","pawRenderDelay","pawTimeout","pawTimeoutId","adContainer","getEventHandler","eventHandler","$sf","SF","_iframe$contentWindow","messageContent","sznssp","contentWindow","cyRendered","_iframe$contentWindow3","_iframe$contentWindow2","sznPawUrl","pageViewId","writeIframe","frameborder","scrolling","floor","onloadCallback","onerrorCallback","appendWithCacheBusting","writeTo","increment","syncId","handleEmpty","handleIframe","handleCode","writeCodeToPage","handleIncorrectType","getDopSourceData","sessionData","dopParamsTransformations","dop_req_id","dop_ab_variant","dop_source_zone_name","dop_id","dopSourceData","transformedDopKey","SSSP_COOKIE_NAME","setSessionCookie","sessionValue","removeSessionCookie","getDataFromSessionCookie","cookieValue","decodedCookie","getDopParametersFromUrl","isFirstPageview","referrerMatchesService","ref","refDomain","prevHostDomain","getLastPageHost","currentDomain","findValidSourceMedium","medium","updateSession","sessionExists","reportError","_navigator$sendBeacon","_navigator","sendBeacon","dest","_window$_sssp","_sssp","sspMetadata","getIframeReferer","getTopWindowUrl","blacklistRegExp","blacklist","sendAdLoad","dot","hitData","lastPageUrl","setPageViewId","resetVisibilityElements","updatedConfig","adId","timeFromInit","impressBeforeAdloadSent","waitForFirstImpress","sendSpentTimeData","spenttime","dop_source","initiator","getPageViewId","pageViewIdChanged","newPageViewId","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","g","freeSelf","Function","freeExports","exports","freeModule","module","moduleExports","addMapEntry","pair","set","addSetEntry","arrayReduce","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","setToArray","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","Buffer","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entry","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","n","baseTimes","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","props","keysFunc","symbolsFunc","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","arrayBuffer","newValue","getMapData","getValue","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","parent","isPrototypeOf","StringPrototype","it","own","replaceAll","defineProperty","desc","sham","getBuiltInPrototypeMethod","WrappedWellKnownSymbolModule","isCallable","tryToString","$TypeError","TypeError","argument","isPossiblePrototype","$String","Prototype","bind","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","O","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","step","iterator","next","iteratorMethod","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","uncurryThis","IndexedObject","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","that","specificCreate","boundFunction","filterReject","fails","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","foo","arraySlice","comparefn","j","middle","left","llength","rlength","lindex","rindex","originalArray","C","arraySpeciesConstructor","anObject","iteratorClose","ENTRIES","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tryGet","callee","F","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","bitmap","enumerable","configurable","writable","descriptor","createNonEnumerableProperty","defineBuiltIn","unsafe","global","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","process","Deno","versions","v8","getOwnPropertyDescriptor","isForced","hasOwn","wrapConstructor","NativeConstructor","Wrapper","c","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","TARGET","GLOBAL","STATIC","stat","PROTO","nativeSource","targetPrototype","forced","dontCallGetSet","wrap","real","NATIVE_BIND","FunctionPrototype","Reflect","aCallable","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","CONSTRUCTOR","METHOD","Namespace","pureMethod","NativePrototype","aFunction","variable","namespace","classof","getMethod","isNullOrUndefined","Iterators","ITERATOR","usingIterator","replacer","rawLength","keysLength","V","P","charAt","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","symbols","ch","capture","check","globalThis","getBuiltIn","store","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","metadata","facade","STATE","enforce","getterFor","ArrayPrototype","documentAll","noop","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","feature","detection","normalize","POLYFILL","NATIVE","string","MATCH","isRegExp","USE_SYMBOL_AS_UID","$Symbol","kind","innerResult","innerError","IteratorPrototype","setToStringTag","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","$","IS_PURE","FunctionName","createIteratorConstructor","setPrototypeOf","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","ceil","trunc","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","concat","A","B","alphabet","chr","T","S","activeXDocument","definePropertiesModule","enumBugKeys","documentCreateElement","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","temp","NullProtoObject","ActiveXObject","iframeDocument","JS","Properties","V8_PROTOTYPE_DEFINE_BUG","defineProperties","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","$getOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","uncurryThisAccessor","requireObjectCoercible","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","pref","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","regExpFlags","RegExpPrototype","R","flags","TAG","SET_METHOD","defineGlobalProperty","SHARED","copyright","license","toIntegerOrInfinity","charCodeAt","CONVERT_TO_STRING","first","second","codeAt","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","$RangeError","RangeError","fromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","baseMinusTMin","base","encode","counter","extra","ucs2decode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","baseMinusT","label","encoded","labels","SymbolPrototype","TO_PRIMITIVE","hint","arity","keyFor","thisSymbolValue","isRegisteredSymbol","isSymbol","$isWellKnownSymbol","isWellKnownSymbol","WellKnownSymbolsStore","symbolKeys","symbolKeysLength","symbolKey","NATIVE_SYMBOL","max","integer","number","ordinaryToPrimitive","exoticToPrim","toPrimitive","postfix","URL","params2","URLSearchParams","pathname","toJSON","username","passed","required","wrappedWellKnownSymbolModule","createWellKnownSymbol","withoutSetter","doesNotExceedSafeInteger","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","E","addToUnscopables","InternalStateModule","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","getInternalState","iterated","Arguments","getReplacerFunction","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","prev","space","$getOwnPropertySymbols","STRING_ITERATOR","point","getRegExpFlags","getSubstitution","REPLACE","searchValue","replaceValue","IS_REG_EXP","searchString","functionalReplace","searchLength","advanceBy","endOfLastMatch","defineWellKnownSymbol","$toString","nativeObjectCreate","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineBuiltInAccessor","defineSymbolToPrimitive","$forEach","HIDDEN","SYMBOL","QObject","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","fallbackDefineProperty","ObjectPrototypeDescriptor","setSymbolDescriptor","description","$defineProperties","properties","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","METADATA","isRegistered","isWellKnown","DOMIterables","COLLECTION_NAME","safeGetBuiltIn","USE_NATIVE_URL","defineBuiltIns","anInstance","validateArgumentsLength","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","nativeFetch","NativeRequest","Headers","RequestPrototype","HeadersPrototype","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","replacements","serialize","URLSearchParamsIterator","URLSearchParamsState","init","parseObject","parseQuery","bindURL","update","entryIterator","entryNext","query","attribute","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","$value","getAll","found","headersHas","headersSet","wrapRequestOptions","headers","fetch","RequestConstructor","Request","getState","THROWS_WITHOUT_ARGUMENTS","canParse","WRONG_ARITY","urlString","EOF","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","parseInt","pow","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_C0_CONTROL_OR_SPACE","TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","code","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","stateOverride","codePoints","bufferCodePoints","pointer","seenAt","seenBracket","seenPasswordToken","scheme","password","port","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","parseIPv6","partsLength","numbers","part","radix","ipv4","parts","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","origin","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","getter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","_typeof","o","_defineProperty","Base64Url","repeatStr","count","res","padding","LCM","BASIS","DICT","substr","decode","strByte","_this$REVERSE_DICT$ge","strBits","REVERSE_DICT","CONSENT_COOKIE_NAME","CONSENT_PURPOSE_ONE_COOKIE_NAME","CONSENT_GOOGLE_COOKIE_NAME","CONSENT_COOKIE_NAMES","extractConsentString","cookieName","PurposeId","COOKIE","BASIC_ADS","MEASURE_ADS","MEASURE_PERFORMANCE","MARKET_RESEARCH","IMPROVE","ADS_PROFILE","ADS","CONTENT_PROFILE","CONTENT","hasPurposeOne","encodedTCString","segments","coreSegment","bitField","purposeOneBit","decodePurposeOne","getResult","euconsentString","receivedTCFData","listeningTCFApi","receiverCallbackList","tcCallback","tcData","eventStatus","tcString","receiverCallback","hasTCFApi","__tcfapi","listenToTCFApi","getConsentFromCookieList","hasPurposeOneFromCookieList","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","__esModule","definition","prop","toStringTag","nmd","children","_1gif","SCALE_REGEX","getScaleModifier","contResizing","isScaled","resultArr","parseFloat","sf","_conf","resizeUpdateInterval","scrollUpdateInterval","registeredServers","timeoutID","_listen","sfName","sfInstance","frames","_register","_expand","_collapse","_setResizeProperties","_cookie","lastFc","timeStamp","getZIndex","sfExpandZIndex","styleAdContainerOnCollapse","cont","contOriginalWidth","contOriginalHeight","contScaleMetadata","zIndex","styleAdContainerOnExpand","resizeDimensions","support","sendData","verticalDiff","horizontalDiff","countDirectionShift","oposite","_setValues","togglePawTimeoutHandler","_resize","instanceSF","geom_info","getGeom","_getInstance","fnCall","_this$cont","getElm","elm","contains","advert_uid","ifrPos","iv","_getInView","screenY","innerHeight","l","screenX","innerWidth","getPropertyValue","xiv","yiv","y","td","scrollY","bd","ld","scrollX","rd","exp","xs","ys","cySfRegistered","baseDimensions","modifier","rect","W","H","callWithTimeout","ok","resizeTimeout","directionValue","dimensionValue","direction","cssPropertyToChange","resizingOffsetWidth","resizingOffsetHeight","dimensionDiff","cook","info","newCookieName","WINDOW_IVA_NAMESPACE","ERROR_STORAGE_NAME","HitSender","endpoint","isFirst","delimiter","addition","newTarget","appendValue","storeMessage","hasMessage","_errorHandler","errorEvent","configuration","scriptName","storageMessage","stackLinesParsed","stackLine","_parseStackLines","functionStack","addToQueue","isLegacyQueueMonkeyPatched","executeStaticQueue","executeQueueCallback","ssspQ","userCallback","executeQueues","writePaw","pawOptions","pawContainer","innerAdContainer","handlePawForIframe","jsonData","storedAd","handlePawForCode","renderPawElementForCode","oldPositionsLength","newPositions","_position$data","_position$data2","handleEvent","visibility","consentCheckingTimeout","resolver","timingObject","consentChecked","getConsentAndAttachCallback","getLatestConsent","timing","_interval","ms","stop","_timeout","stopAll","resolverFactory","byCookie","getLatestConsentString","handleConsentRequest","consentMessage","REPORTS_ACTION_ID","registered","sendReports","reports","report","processReports","topLevel","_setIsRegistered","ReportingObserver","buffered","takeRecords","syncUtmSourceWithLeader","getLeaderWindow","returnValue","getDopPayloadValues","abTestValues","getDopAbTestValues","lastRusId","lastConsent","isValidSid","sid","ADDRESS","AID","city","street","houseNumber","postalCode","CHAR_MAP","À","Ã","Â","Ã","Ä","Ã…","Æ","Ç","È","É","Ê","Ë","ÃŒ","Ã","ÃŽ","Ã","Ã","Ñ","Ã’","Ó","Ô","Õ","Ö","Ù","Ú","Û","Ãœ","Ã","ß","à ","á","â","ã","ä","Ã¥","æ","ç","è","é","ê","ë","ì","Ã","î","ï","ð","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","ÿ","Ä€","Ä","Ä‚","ă","Ä„","Ä…","Ć","ć","Ĉ","ĉ","ÄŠ","Ä‹","ÄŒ","Ä","ÄŽ","Ä","Ä","Ä‘","Ä’","Ä“","Ä”","Ä•","Ä–","Ä—","Ę","Ä™","Äš","Ä›","Äœ","Ä","Äž","ÄŸ","Ä ","Ä¡","Ä¢","Ä£","Ĥ","Ä¥","Ħ","ħ","Ĩ","Ä©","Ī","Ä«","Ĭ","Ä","Ä®","į","Ä°","Ä´","ĵ","Ķ","Ä·","ĸ","Ĺ","ĺ","Ä»","ļ","Ľ","ľ","Ń","Å„","Å…","ņ","Ň","ň","ʼn","ÅŒ","Å","ÅŽ","Å","Å","Å‘","Å”","Å•","Å–","Å—","Ř","Å™","Åš","Å›","Åœ","Å","Åž","ÅŸ","Å ","Å¡","Å¢","Å£","Ť","Å¥","Ŧ","ŧ","Ũ","Å©","Ū","Å«","Ŭ","Å","Å®","ů","Å°","ű","Ų","ų","Å´","ŵ","Ŷ","Å·","Ÿ","Ź","ź","Å»","ż","Ž","ž","arbitraryParams","getArbitraryParams","urlParamEntries","payload","amp","q25test","dopAbTestData","urlOrigin","siteHashToParams","allUrlParams","fromEntries","dopKeys","SID_UTILS","dsid","canUseCurrentConsent","currentRusId","currentConsent","setLastConsent","setLastRusId","_getUrlParams","grantConsent","customParams","ids","prepareIdsForBe","getIdentities","cacheEnough","justSettled","collocationFlags","_sanitizeString","sanitizeStrings","evaluateCollocation","keywords","_hasSameMember","_hasIntersection","getParsedLDs","parseLD","getKeywords","flatMap","uaHeadersMap","getFormattedUaDataHeaders","uaData","hints","_navigator$userAgentD","userAgentData","getHighEntropyValues","formattedUaDataHeaders","fullVersionList","fullVersionListAsString","brand","model","mobile","platform","platformVersion","getDataEvent","sendDataEvent","allowedFrames","getVastAds","validatedZones","validateZones","vastPayload","getVastPayload","credentials","requestVastAds","createRequestPayload","_zone$options","collocation","vastPayloadFromTop","fromTopHandler","pingTop","_emptyObjectToNull","_prepareDataObject","zoneIds","getUserFlags","identity","eid","tags","_getTagForZones","_getDspParamsForZones","parsedUrlParams","vastDspParams","dspParam","accInner","satisfied","wasInitialized","run","sznRecass","initReporting","originHostname","pingChild","needs","sync","finally","callPositionErrorCallback","infoErrorCallback","validatePosition","positionOrig","_position$options","_position$options2","positionEl","noSize","validOptions","isOptionsParam","getCmpInfo","xhr","chunksWhitelist","CMP","TIMESTAMP","instance","impress","cmp","_hit","cookieCopied","syncIframe","syncIframeLoaded","getCookieFromGlobalStorage","CMP_SSP_IFRAME_URL","getResponseFromIframe","messageData","getCookieFromResponse","copyCookieFromGlobalStorage","getConsentV2FromGlobalStorage","globalConsent","browserCookie","cyCookieSynced","copyGlobalConsent","cmpInitialized","cookieStorageDomainName","Type","getBaseUrl","custom","getCmpScriptUrl","inChunksWhitelist","cmpInsert","scmpInserted","cmpStub","cmpScript","cmpInit","scmp","showDialog","startDate","cmpConfigEvent","scmp_sspServerData","localConsentCookie","cmpRequested","_opt","serviceId","logAds","validPositions","_opt$config","utmSource","prevCollocation","addCollocation","addCollocationFlagsToPayload","handlePageViewIdChange","pvIdChangeIgnore","requestAds","pvIdStart","pvIdChangeListner","errorCallback","errorName","errorCode","currentTarget","statusText","onabort","ontimeout","setRequestHeader","uaDataHeaders","header","responseParsed","divs","getAds","appendPawToElement","insertAdjacentHTML","appendCoopIconToElement","coopUrlHash","paid","behalf","iconElement","coopUrl","align","fragmentOrder","reverse","createCoopIconTemplate","TextEncoder","binString","byte","fromCodePoint","btoa","stringToBase64url","disableAnimation","animationFragments","gamTest","handleGamNoAdResponse","getAdsByTags","displaySeznamAds","existSessionCookie","_getDotInstance","updateAdContainerId","_setCustomPath","clearData","sklikData","getVastData","_resolver","dbgData","_await$_prepareDataOb","_await$_prepareDataOb2","dataBag","_fromTopHandler","isValidVastDataMessagePayload","_setNamespace","_cleanUpNamespace","_window$sssp","isStub","_constructProxy","proxyHandler","Proxy","_init","initMessage","startErrorHandling","constructSssp","apiObject"],"sourceRoot":""}